summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--sys/sys/mman.h4
-rw-r--r--sys/sys/param.h3
-rw-r--r--sys/vm/vm_mmap.c12
-rw-r--r--usr.bin/truss/syscalls.c4
4 files changed, 15 insertions, 8 deletions
diff --git a/sys/sys/mman.h b/sys/sys/mman.h
index f0e01b6..53b656c 100644
--- a/sys/sys/mman.h
+++ b/sys/sys/mman.h
@@ -69,8 +69,8 @@
#define MAP_FIXED 0x0010 /* map addr must be exactly as requested */
#if __BSD_VISIBLE
-#define MAP_RENAME 0x0020 /* Sun: rename private pages to file */
-#define MAP_NORESERVE 0x0040 /* Sun: don't reserve needed swap area */
+#define MAP_RESERVED0020 0x0020 /* previously unimplemented MAP_RENAME */
+#define MAP_RESERVED0040 0x0040 /* previously unimplemented MAP_NORESERVE */
#define MAP_RESERVED0080 0x0080 /* previously misimplemented MAP_INHERIT */
#define MAP_RESERVED0100 0x0100 /* previously unimplemented MAP_NOEXTEND */
#define MAP_HASSEMAPHORE 0x0200 /* region may contain semaphores */
diff --git a/sys/sys/param.h b/sys/sys/param.h
index e9d8685..87307fd 100644
--- a/sys/sys/param.h
+++ b/sys/sys/param.h
@@ -58,7 +58,7 @@
* in the range 5 to 9.
*/
#undef __FreeBSD_version
-#define __FreeBSD_version 1100038 /* Master, propagated to newvers */
+#define __FreeBSD_version 1100039 /* Master, propagated to newvers */
/*
* __FreeBSD_kernel__ indicates that this system uses the kernel of FreeBSD,
@@ -81,6 +81,7 @@
#define P_OSREL_SIGSEGV 700004
#define P_OSREL_MAP_ANON 800104
#define P_OSREL_MAP_FSTRICT 1100036
+#define P_OSREL_MAP_RENAME 1100039
#define P_OSREL_MAJOR(x) ((x) / 100000)
#endif
diff --git a/sys/vm/vm_mmap.c b/sys/vm/vm_mmap.c
index 9506efe..cf72c83 100644
--- a/sys/vm/vm_mmap.c
+++ b/sys/vm/vm_mmap.c
@@ -220,6 +220,12 @@ sys_mmap(td, uap)
fp = NULL;
/*
+ * Ignore old flags that used to be defined but did not do anything.
+ */
+ if (td->td_proc->p_osrel < P_OSREL_MAP_RENAME)
+ flags &= ~(MAP_RESERVED0020 | MAP_RESERVED0040);
+
+ /*
* Enforce the constraints.
* Mapping of length 0 is only allowed for old binaries.
* Anonymous mapping shall specify -1 as filedescriptor and
@@ -244,9 +250,9 @@ sys_mmap(td, uap)
flags |= MAP_ANON;
pos = 0;
}
- if ((flags & ~(MAP_SHARED | MAP_PRIVATE | MAP_FIXED | MAP_RENAME |
- MAP_NORESERVE | MAP_HASSEMAPHORE | MAP_STACK | MAP_NOSYNC |
- MAP_ANON | MAP_EXCL | MAP_NOCORE | MAP_PREFAULT_READ |
+ if ((flags & ~(MAP_SHARED | MAP_PRIVATE | MAP_FIXED | MAP_HASSEMAPHORE |
+ MAP_STACK | MAP_NOSYNC | MAP_ANON | MAP_EXCL | MAP_NOCORE |
+ MAP_PREFAULT_READ |
#ifdef MAP_32BIT
MAP_32BIT |
#endif
diff --git a/usr.bin/truss/syscalls.c b/usr.bin/truss/syscalls.c
index 700af60..ff170f1 100644
--- a/usr.bin/truss/syscalls.c
+++ b/usr.bin/truss/syscalls.c
@@ -312,8 +312,8 @@ static struct xlat poll_flags[] = {
};
static struct xlat mmap_flags[] = {
- X(MAP_SHARED) X(MAP_PRIVATE) X(MAP_FIXED) X(MAP_RENAME)
- X(MAP_NORESERVE) X(MAP_RESERVED0080) X(MAP_RESERVED0100)
+ X(MAP_SHARED) X(MAP_PRIVATE) X(MAP_FIXED) X(MAP_RESERVED0020)
+ X(MAP_RESERVED0040) X(MAP_RESERVED0080) X(MAP_RESERVED0100)
X(MAP_HASSEMAPHORE) X(MAP_STACK) X(MAP_NOSYNC) X(MAP_ANON)
X(MAP_NOCORE) X(MAP_PREFAULT_READ)
#ifdef MAP_32BIT
OpenPOWER on IntegriCloud