• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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_SEM_H
7 #define _UAPI_LINUX_SEM_H
8 #include <linux/ipc.h>
9 #define SEM_UNDO        0x1000
10 #define GETPID  11
11 #define GETVAL  12
12 #define GETALL  13
13 #define GETNCNT 14
14 #define GETZCNT 15
15 #define SETVAL  16
16 #define SETALL  17
17 #define SEM_STAT 18
18 #define SEM_INFO 19
19 #define SEM_STAT_ANY 20
20 struct __kernel_legacy_semid_ds {
21 	struct __kernel_legacy_ipc_perm	sem_perm;
22 	__kernel_time_t	sem_otime;
23 	__kernel_time_t	sem_ctime;
24 	struct sem	*sem_base;
25 	struct sem_queue *sem_pending;
26 	struct sem_queue **sem_pending_last;
27 	struct sem_undo	*undo;
28 	unsigned short	sem_nsems;
29 };
30 #include <asm/sembuf.h>
31 struct sembuf {
32 	unsigned short  sem_num;
33 	short		sem_op;
34 	short		sem_flg;
35 };
36 union __kernel_legacy_semun {
37 	int val;
38 	struct __kernel_legacy_semid_ds __user *buf;
39 	unsigned short __user *array;
40 	struct seminfo __user *__buf;
41 	void __user *__pad;
42 };
43 struct  seminfo {
44 	int semmap;
45 	int semmni;
46 	int semmns;
47 	int semmnu;
48 	int semmsl;
49 	int semopm;
50 	int semume;
51 	int semusz;
52 	int semvmx;
53 	int semaem;
54 };
55 #define SEMMNI  32000
56 #define SEMMSL  32000
57 #define SEMMNS  (SEMMNI*SEMMSL)
58 #define SEMOPM  500
59 #define SEMVMX  32767
60 #define SEMAEM  SEMVMX
61 #define SEMUME  SEMOPM
62 #define SEMMNU  SEMMNS
63 #define SEMMAP  SEMMNS
64 #define SEMUSZ  20
65 #endif
66