constant PROT_READ
constant PROT_WRITE
constant PROT_EXEC
constant PROT_NONE

constant MAP_SHARED
constant MAP_PRIVATE
constant MAP_FIXED

constant MS_ASYNC
constant MS_SYNC
constant MS_INVALIDATE

constant MCL_CURRENT
constant MCL_FUTURE

constant MAP_FAILED

constant POSIX_MADV_NORMAL
constant POSIX_MADV_SEQUENTIAL
constant POSIX_MADV_RANDOM
constant POSIX_MADV_WILLNEED
constant POSIX_MADV_DONTNEED

optional-constant POSIX_TYPED_MEM_ALLOCATE
optional-constant POSIX_TYPED_MEM_ALLOCATE_CONTIG
optional-constant POSIX_TYPED_MEM_MAP_ALLOCATABLE

type size_t
type off_t
type mode_t

optional-type {struct posix_typedmem_info}
optional-element {struct posix_typedmem_info} size_t posix_tmi_length

function int mlock (const void*, size_t)
function int mlockall (int)
function {void*} mmap (void*, size_t, int, int, int, off_t)
function int mprotect (void*, size_t, int)
function int msync (void*, size_t, int)
function int munlock (const void*, size_t)
function int munlockall (void)
function int munmap (void*, size_t)
function int posix_madvise (void*, size_t, int)
optional-function int posix_mem_offset (const void*, size_t, off_t*, size_t*, int*)
optional-function int posix_typed_mem_get_info (int, struct posix_typed_mem_info*)
optional-function int posix_typed_mem_open (const char*, int, int)
function int shm_open (const char*, int, mode_t)
function int shm_unlink (const char*)

allow shm_*
allow MAP_*
allow MCL_*
allow MS_*
allow PROT_*
allow *_t
