Retire the unimplemented MAP_RENAME and MAP_NORESERVE flags to mmap(2).
Older binaries are still permitted to use these flags. PR: 193961 (exp-run in ports) Differential Revision: https://reviews.freebsd.org/D848 Reviewed by: kib
This commit is contained in:
parent
5c0a54a380
commit
5817298f31
@ -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 */
|
||||
|
@ -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
|
||||
|
@ -219,6 +219,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.
|
||||
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user