mirror of git://git.musl-libc.org/musl
sys/{mman,shm}.h: add {MAP,SHM}_HUGE_ macros from linux uapi
*_HUGE_SHIFT, *_HUGE_2MB, *_HUGE_1GB are documented in the man page, so add all of the *_HUGE_* macros from linux uapi. if MAP_HUGETLB is set, top bits of the mmap flags encode the page size. see the linux commit aafd4562dfee81a40ba21b5ea3cf5e06664bc7f6 if SHM_HUGETLB is set, top bits of the shmget flags encode the page size. see the linux commit 4da243ac1cf6aeb30b7c555d56208982d66d6d33 *_HUGE_16GB is defined unsigned to avoid signed left shift ub.
This commit is contained in:
parent
fba3059d72
commit
abdaba8616
|
@ -35,6 +35,19 @@ extern "C" {
|
|||
#define MAP_HUGETLB 0x40000
|
||||
#define MAP_FILE 0
|
||||
|
||||
#define MAP_HUGE_SHIFT 26
|
||||
#define MAP_HUGE_MASK 0x3f
|
||||
#define MAP_HUGE_64KB (16 << 26)
|
||||
#define MAP_HUGE_512KB (19 << 26)
|
||||
#define MAP_HUGE_1MB (20 << 26)
|
||||
#define MAP_HUGE_2MB (21 << 26)
|
||||
#define MAP_HUGE_8MB (23 << 26)
|
||||
#define MAP_HUGE_16MB (24 << 26)
|
||||
#define MAP_HUGE_256MB (28 << 26)
|
||||
#define MAP_HUGE_1GB (30 << 26)
|
||||
#define MAP_HUGE_2GB (31 << 26)
|
||||
#define MAP_HUGE_16GB (34U << 26)
|
||||
|
||||
#define PROT_NONE 0
|
||||
#define PROT_READ 1
|
||||
#define PROT_WRITE 2
|
||||
|
|
|
@ -40,6 +40,19 @@ extern "C" {
|
|||
#define SHM_HUGETLB 04000
|
||||
#define SHM_NORESERVE 010000
|
||||
|
||||
#define SHM_HUGE_SHIFT 26
|
||||
#define SHM_HUGE_MASK 0x3f
|
||||
#define SHM_HUGE_64KB (16 << 26)
|
||||
#define SHM_HUGE_512KB (19 << 26)
|
||||
#define SHM_HUGE_1MB (20 << 26)
|
||||
#define SHM_HUGE_2MB (21 << 26)
|
||||
#define SHM_HUGE_8MB (23 << 26)
|
||||
#define SHM_HUGE_16MB (24 << 26)
|
||||
#define SHM_HUGE_256MB (28 << 26)
|
||||
#define SHM_HUGE_1GB (30 << 26)
|
||||
#define SHM_HUGE_2GB (31 << 26)
|
||||
#define SHM_HUGE_16GB (34U << 26)
|
||||
|
||||
typedef unsigned long shmatt_t;
|
||||
|
||||
void *shmat(int, const void *, int);
|
||||
|
|
Loading…
Reference in New Issue