If one or more of the Advisory Information, Memory Mapped Files, or
Shared Memory Objects options are supported, the following
protection options shall be defined:
|
|
PROT_READ
|
| |
Page can be read.
|
|
PROT_WRITE
|
| |
Page can be written.
|
|
PROT_EXEC
|
| |
Page can be executed.
|
|
PROT_NONE
|
| |
Page cannot be accessed.
|
|
The following flag options shall be defined:
|
|
MAP_SHARED
|
| |
Share changes.
|
|
MAP_PRIVATE
|
| |
Changes are private.
|
|
MAP_FIXED
|
| |
Interpret addr exactly.
|
|
The following flags shall be defined for msync():
|
|
MS_ASYNC
|
| |
Perform asynchronous writes.
|
|
MS_SYNC
|
Perform synchronous writes.
|
|
MS_INVALIDATE
|
| |
Invalidate mappings.
|
|
The following symbolic constants shall be defined for the mlockall()
function:
|
|
MCL_CURRENT
|
| |
Lock currently mapped pages.
|
|
MCL_FUTURE
|
| |
Lock pages that become mapped.
|
|
The symbolic constant MAP_FAILED shall be defined to indicate a failure
from the mmap() function.
|
|
If the Advisory Information and either the Memory Mapped Files or
Shared Memory Objects options are supported, values for
advice used by posix_madvise() shall be defined as follows:
|
|
POSIX_MADV_NORMAL
|
| |
The application has no advice to give on its behavior with respect
to the specified range. It is the default characteristic if no
advice is given for a range of memory.
|
|
POSIX_MADV_SEQUENTIAL
|
| |
The application expects to access the specified range sequentially
from lower addresses to higher addresses.
|
|
POSIX_MADV_RANDOM
|
| |
The application expects to access the specified range in a random
order.
|
|
POSIX_MADV_WILLNEED
|
| |
The application expects to access the specified range in the near
future.
|
|
POSIX_MADV_DONTNEED
|
| |
The application expects that it will not access the specified range
in the near future.
|
|
The following flags shall be defined for posix_typed_mem_open():
|
|
POSIX_TYPED_MEM_ALLOCATE
|
| |
Allocate on mmap().
|
|
POSIX_TYPED_MEM_ALLOCATE_CONTIG
|
| |
Allocate contiguously on mmap().
|
|
POSIX_TYPED_MEM_MAP_ALLOCATABLE
|
| |
Map on mmap(), without affecting allocatability.
|
|
The
The following shall be declared as functions and may also be defined
as macros. Function prototypes shall be provided.
int mlock(const void *, size_t);
int mlockall(int);
void *mmap(void *, size_t, int, int, int, off_t);
int mprotect(void *, size_t, int);
int msync(void *, size_t, int);
int munlock(const void *, size_t);
int munlockall(void);
int munmap(void *, size_t);
int posix_madvise(void *, size_t, int);
int posix_mem_offset(const void *restrict, size_t, off_t *restrict,
size_t *restrict, int *restrict);
int posix_typed_mem_get_info(int, struct posix_typed_mem_info *);
int posix_typed_mem_open(const char *, int, int);
int shm_open(const char *, int, mode_t);
int shm_unlink(const char *);