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