1
2 #ifndef _UAPI_LINUX_SHM_H_
3 #define _UAPI_LINUX_SHM_H_
4
5 #include <linux/ipc.h>
6 #include <linux/errno.h>
7 #include <asm-generic/hugetlb_encode.h>
8 #ifndef __KERNEL__
9 #include <unistd.h>
10 #endif
11
12
13
14
15
16
17
18
19
20
21 #define SHMMIN 1
22 #define SHMMNI 4096
23 #define SHMMAX (ULONG_MAX - (1UL << 24))
24 #define SHMALL (ULONG_MAX - (1UL << 24))
25 #define SHMSEG SHMMNI
26
27
28 struct shmid_ds {
29 struct ipc_perm shm_perm;
30 int shm_segsz;
31 __kernel_time_t shm_atime;
32 __kernel_time_t shm_dtime;
33 __kernel_time_t shm_ctime;
34 __kernel_ipc_pid_t shm_cpid;
35 __kernel_ipc_pid_t shm_lpid;
36 unsigned short shm_nattch;
37 unsigned short shm_unused;
38 void *shm_unused2;
39 void *shm_unused3;
40 };
41
42
43 #include <asm/shmbuf.h>
44
45
46
47
48
49 #define SHM_R 0400
50 #define SHM_W 0200
51
52 #define SHM_HUGETLB 04000
53 #define SHM_NORESERVE 010000
54
55
56
57
58
59 #define SHM_HUGE_SHIFT HUGETLB_FLAG_ENCODE_SHIFT
60 #define SHM_HUGE_MASK HUGETLB_FLAG_ENCODE_MASK
61
62 #define SHM_HUGE_64KB HUGETLB_FLAG_ENCODE_64KB
63 #define SHM_HUGE_512KB HUGETLB_FLAG_ENCODE_512KB
64 #define SHM_HUGE_1MB HUGETLB_FLAG_ENCODE_1MB
65 #define SHM_HUGE_2MB HUGETLB_FLAG_ENCODE_2MB
66 #define SHM_HUGE_8MB HUGETLB_FLAG_ENCODE_8MB
67 #define SHM_HUGE_16MB HUGETLB_FLAG_ENCODE_16MB
68 #define SHM_HUGE_32MB HUGETLB_FLAG_ENCODE_32MB
69 #define SHM_HUGE_256MB HUGETLB_FLAG_ENCODE_256MB
70 #define SHM_HUGE_512MB HUGETLB_FLAG_ENCODE_512MB
71 #define SHM_HUGE_1GB HUGETLB_FLAG_ENCODE_1GB
72 #define SHM_HUGE_2GB HUGETLB_FLAG_ENCODE_2GB
73 #define SHM_HUGE_16GB HUGETLB_FLAG_ENCODE_16GB
74
75
76
77
78 #define SHM_RDONLY 010000
79 #define SHM_RND 020000
80 #define SHM_REMAP 040000
81 #define SHM_EXEC 0100000
82
83
84 #define SHM_LOCK 11
85 #define SHM_UNLOCK 12
86
87
88 #define SHM_STAT 13
89 #define SHM_INFO 14
90 #define SHM_STAT_ANY 15
91
92
93 struct shminfo {
94 int shmmax;
95 int shmmin;
96 int shmmni;
97 int shmseg;
98 int shmall;
99 };
100
101 struct shm_info {
102 int used_ids;
103 __kernel_ulong_t shm_tot;
104 __kernel_ulong_t shm_rss;
105 __kernel_ulong_t shm_swp;
106 __kernel_ulong_t swap_attempts;
107 __kernel_ulong_t swap_successes;
108 };
109
110
111 #endif