From abdaba8616c29b0814a4dbe726224b6f2c9f8604 Mon Sep 17 00:00:00 2001 From: Szabolcs Nagy Date: Sun, 26 Nov 2017 23:58:25 +0000 Subject: 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. --- include/sys/shm.h | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'include/sys/shm.h') diff --git a/include/sys/shm.h b/include/sys/shm.h index 67be822b..e7d39ff6 100644 --- a/include/sys/shm.h +++ b/include/sys/shm.h @@ -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); -- cgit 1.4.1