xref: /aosp_15_r20/external/musl/include/sys/sem.h (revision c9945492fdd68bbe62686c5b452b4dc1be3f8453)
1*c9945492SAndroid Build Coastguard Worker #ifndef _SYS_SEM_H
2*c9945492SAndroid Build Coastguard Worker #define _SYS_SEM_H
3*c9945492SAndroid Build Coastguard Worker #ifdef __cplusplus
4*c9945492SAndroid Build Coastguard Worker extern "C" {
5*c9945492SAndroid Build Coastguard Worker #endif
6*c9945492SAndroid Build Coastguard Worker 
7*c9945492SAndroid Build Coastguard Worker #include <features.h>
8*c9945492SAndroid Build Coastguard Worker 
9*c9945492SAndroid Build Coastguard Worker #define __NEED_size_t
10*c9945492SAndroid Build Coastguard Worker #define __NEED_pid_t
11*c9945492SAndroid Build Coastguard Worker #define __NEED_time_t
12*c9945492SAndroid Build Coastguard Worker #ifdef _GNU_SOURCE
13*c9945492SAndroid Build Coastguard Worker #define __NEED_struct_timespec
14*c9945492SAndroid Build Coastguard Worker #endif
15*c9945492SAndroid Build Coastguard Worker #include <bits/alltypes.h>
16*c9945492SAndroid Build Coastguard Worker 
17*c9945492SAndroid Build Coastguard Worker #include <sys/ipc.h>
18*c9945492SAndroid Build Coastguard Worker 
19*c9945492SAndroid Build Coastguard Worker #define SEM_UNDO	0x1000
20*c9945492SAndroid Build Coastguard Worker #define GETPID		11
21*c9945492SAndroid Build Coastguard Worker #define GETVAL		12
22*c9945492SAndroid Build Coastguard Worker #define GETALL		13
23*c9945492SAndroid Build Coastguard Worker #define GETNCNT		14
24*c9945492SAndroid Build Coastguard Worker #define GETZCNT		15
25*c9945492SAndroid Build Coastguard Worker #define SETVAL		16
26*c9945492SAndroid Build Coastguard Worker #define SETALL		17
27*c9945492SAndroid Build Coastguard Worker 
28*c9945492SAndroid Build Coastguard Worker #include <bits/sem.h>
29*c9945492SAndroid Build Coastguard Worker 
30*c9945492SAndroid Build Coastguard Worker #define _SEM_SEMUN_UNDEFINED 1
31*c9945492SAndroid Build Coastguard Worker 
32*c9945492SAndroid Build Coastguard Worker #define SEM_STAT (18 | (IPC_STAT & 0x100))
33*c9945492SAndroid Build Coastguard Worker #define SEM_INFO 19
34*c9945492SAndroid Build Coastguard Worker #define SEM_STAT_ANY (20 | (IPC_STAT & 0x100))
35*c9945492SAndroid Build Coastguard Worker 
36*c9945492SAndroid Build Coastguard Worker struct  seminfo {
37*c9945492SAndroid Build Coastguard Worker 	int semmap;
38*c9945492SAndroid Build Coastguard Worker 	int semmni;
39*c9945492SAndroid Build Coastguard Worker 	int semmns;
40*c9945492SAndroid Build Coastguard Worker 	int semmnu;
41*c9945492SAndroid Build Coastguard Worker 	int semmsl;
42*c9945492SAndroid Build Coastguard Worker 	int semopm;
43*c9945492SAndroid Build Coastguard Worker 	int semume;
44*c9945492SAndroid Build Coastguard Worker 	int semusz;
45*c9945492SAndroid Build Coastguard Worker 	int semvmx;
46*c9945492SAndroid Build Coastguard Worker 	int semaem;
47*c9945492SAndroid Build Coastguard Worker };
48*c9945492SAndroid Build Coastguard Worker 
49*c9945492SAndroid Build Coastguard Worker struct sembuf {
50*c9945492SAndroid Build Coastguard Worker 	unsigned short sem_num;
51*c9945492SAndroid Build Coastguard Worker 	short sem_op;
52*c9945492SAndroid Build Coastguard Worker 	short sem_flg;
53*c9945492SAndroid Build Coastguard Worker };
54*c9945492SAndroid Build Coastguard Worker 
55*c9945492SAndroid Build Coastguard Worker int semctl(int, int, int, ...);
56*c9945492SAndroid Build Coastguard Worker int semget(key_t, int, int);
57*c9945492SAndroid Build Coastguard Worker int semop(int, struct sembuf *, size_t);
58*c9945492SAndroid Build Coastguard Worker 
59*c9945492SAndroid Build Coastguard Worker #ifdef _GNU_SOURCE
60*c9945492SAndroid Build Coastguard Worker int semtimedop(int, struct sembuf *, size_t, const struct timespec *);
61*c9945492SAndroid Build Coastguard Worker #endif
62*c9945492SAndroid Build Coastguard Worker 
63*c9945492SAndroid Build Coastguard Worker #if _REDIR_TIME64
64*c9945492SAndroid Build Coastguard Worker #ifdef _GNU_SOURCE
65*c9945492SAndroid Build Coastguard Worker __REDIR(semtimedop, __semtimedop_time64);
66*c9945492SAndroid Build Coastguard Worker #endif
67*c9945492SAndroid Build Coastguard Worker #endif
68*c9945492SAndroid Build Coastguard Worker 
69*c9945492SAndroid Build Coastguard Worker #ifdef __cplusplus
70*c9945492SAndroid Build Coastguard Worker }
71*c9945492SAndroid Build Coastguard Worker #endif
72*c9945492SAndroid Build Coastguard Worker #endif
73