[prev in list] [next in list] [prev in thread] [next in thread]
List: apr-cvs
Subject: cvs commit: apr/mmap/unix mmap.c
From: rbb () apache ! org
Date: 2001-04-30 0:07:35
[Download RAW message or body]
rbb 01/04/29 17:07:35
Modified: . CHANGES
mmap/unix mmap.c
Log:
Make the apr_mmap_create() function use the native_flags variable.
This allows us to actually create WRITEABLE MMAPs.
Submitted by: Ed Korthof <ed@apache.org>
Revision Changes Path
1.98 +4 -0 apr/CHANGES
Index: CHANGES
===================================================================
RCS file: /home/cvs/apr/CHANGES,v
retrieving revision 1.97
retrieving revision 1.98
diff -u -d -b -w -u -r1.97 -r1.98
--- CHANGES 2001/04/29 05:22:15 1.97
+++ CHANGES 2001/04/30 00:07:34 1.98
@@ -1,5 +1,9 @@
Changes with APR b1
+ *) Make the apr_mmap_create() function use the native_flags variable.
+ This allows us to actually create WRITEABLE MMAPs.
+ [Ed Korthof <ed@apache.org>]
+
*) Completely revamp configure so that it preserves the standard make
variables CPPFLAGS, CFLAGS, CXXFLAGS, LDFLAGS and LIBS by moving
the configure additions to EXTRA_* variables. Also, allow the user
1.35 +4 -10 apr/mmap/unix/mmap.c
Index: mmap.c
===================================================================
RCS file: /home/cvs/apr/mmap/unix/mmap.c,v
retrieving revision 1.34
retrieving revision 1.35
diff -u -d -b -w -u -r1.34 -r1.35
--- mmap.c 2001/02/25 20:39:35 1.34
+++ mmap.c 2001/04/30 00:07:35 1.35
@@ -105,13 +105,12 @@
apr_off_t offset, apr_size_t size,
apr_int32_t flag, apr_pool_t *cont)
{
- apr_int32_t native_flags = 0;
-#ifdef BEOS
void *mm;
+#ifdef BEOS
area_id aid = -1;
uint32 pages = 0;
#else
- void *mm;
+ apr_int32_t native_flags = 0;
#endif
if (file == NULL || file->filedes == -1 || file->buffered)
@@ -121,15 +120,10 @@
#ifdef BEOS
/* XXX: mmap shouldn't really change the seek offset */
apr_file_seek(file, APR_SET, &offset);
- if (flag & APR_MMAP_WRITE) {
- native_flags |= B_WRITE_AREA;
- }
- if (flag & APR_MMAP_READ) {
- native_flags |= B_READ_AREA;
- }
/* There seems to be some strange interactions that mean our area must
* be set as READ & WRITE or writev will fail! Go figure...
+ * So we ignore the value in flags and always ask for both READ and WRITE
*/
pages = (size + B_PAGE_SIZE -1) / B_PAGE_SIZE;
aid = create_area("apr_mmap", &mm , B_ANY_ADDRESS, pages * B_PAGE_SIZE,
@@ -153,7 +147,7 @@
native_flags |= PROT_READ;
}
- mm = mmap(NULL, size, PROT_READ, MAP_SHARED, file->filedes, offset);
+ mm = mmap(NULL, size, native_flags, MAP_SHARED, file->filedes, offset);
if (mm == (void *)-1) {
/* we failed to get an mmap'd file... */
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic