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 19struct __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 60struct shminfo { 61 int shmmax; 62 int shmmin; 63 int shmmni; 64 int shmseg; 65 int shmall; 66}; 67struct 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