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