1 /* 2 * This header was generated from the Linux kernel headers by update_headers.py, 3 * to provide necessary information from kernel to userspace, such as constants, 4 * structures, and macros, and thus, contains no copyrightable information. 5 */ 6 #ifndef _UAPI_LINUX_SHM_H_ 7 #define _UAPI_LINUX_SHM_H_ 8 #include <linux/ipc.h> 9 #include <linux/errno.h> 10 #include <asm-generic/hugetlb_encode.h> 11 #ifndef __KERNEL__ 12 #include <unistd.h> 13 #endif 14 #define SHMMIN 1 15 #define SHMMNI 4096 16 #define SHMMAX (ULONG_MAX - (1UL << 24)) 17 #define SHMALL (ULONG_MAX - (1UL << 24)) 18 #define SHMSEG SHMMNI 19 struct __kernel_legacy_shmid_ds { 20 struct __kernel_legacy_ipc_perm shm_perm; 21 int shm_segsz; 22 __kernel_time_t shm_atime; 23 __kernel_time_t shm_dtime; 24 __kernel_time_t shm_ctime; 25 __kernel_ipc_pid_t shm_cpid; 26 __kernel_ipc_pid_t shm_lpid; 27 unsigned short shm_nattch; 28 unsigned short shm_unused; 29 void *shm_unused2; 30 void *shm_unused3; 31 }; 32 #include <asm/shmbuf.h> 33 #define SHM_R 0400 34 #define SHM_W 0200 35 #define SHM_HUGETLB 04000 36 #define SHM_NORESERVE 010000 37 #define SHM_HUGE_SHIFT HUGETLB_FLAG_ENCODE_SHIFT 38 #define SHM_HUGE_MASK HUGETLB_FLAG_ENCODE_MASK 39 #define SHM_HUGE_64KB HUGETLB_FLAG_ENCODE_64KB 40 #define SHM_HUGE_512KB HUGETLB_FLAG_ENCODE_512KB 41 #define SHM_HUGE_1MB HUGETLB_FLAG_ENCODE_1MB 42 #define SHM_HUGE_2MB HUGETLB_FLAG_ENCODE_2MB 43 #define SHM_HUGE_8MB HUGETLB_FLAG_ENCODE_8MB 44 #define SHM_HUGE_16MB HUGETLB_FLAG_ENCODE_16MB 45 #define SHM_HUGE_32MB HUGETLB_FLAG_ENCODE_32MB 46 #define SHM_HUGE_256MB HUGETLB_FLAG_ENCODE_256MB 47 #define SHM_HUGE_512MB HUGETLB_FLAG_ENCODE_512MB 48 #define SHM_HUGE_1GB HUGETLB_FLAG_ENCODE_1GB 49 #define SHM_HUGE_2GB HUGETLB_FLAG_ENCODE_2GB 50 #define SHM_HUGE_16GB HUGETLB_FLAG_ENCODE_16GB 51 #define SHM_RDONLY 010000 52 #define SHM_RND 020000 53 #define SHM_REMAP 040000 54 #define SHM_EXEC 0100000 55 #define SHM_LOCK 11 56 #define SHM_UNLOCK 12 57 #define SHM_STAT 13 58 #define SHM_INFO 14 59 #define SHM_STAT_ANY 15 60 struct shminfo { 61 int shmmax; 62 int shmmin; 63 int shmmni; 64 int shmseg; 65 int shmall; 66 }; 67 struct shm_info { 68 int used_ids; 69 __kernel_ulong_t shm_tot; 70 __kernel_ulong_t shm_rss; 71 __kernel_ulong_t shm_swp; 72 __kernel_ulong_t swap_attempts; 73 __kernel_ulong_t swap_successes; 74 }; 75 #endif 76