#ifndef _SYS_SEM_H #define _SYS_SEM_H #ifdef __cplusplus extern "C" { #endif #include #define __NEED_size_t #define __NEED_pid_t #define __NEED_time_t #ifdef _GNU_SOURCE #define __NEED_struct_timespec #endif #include #include #define SEM_UNDO 0x1000 #define GETPID 11 #define GETVAL 12 #define GETALL 13 #define GETNCNT 14 #define GETZCNT 15 #define SETVAL 16 #define SETALL 17 #include #include #define _SEM_SEMUN_UNDEFINED 1 #define SEM_STAT 18 #define SEM_INFO 19 #define SEM_STAT_ANY 20 struct seminfo { int semmap; int semmni; int semmns; int semmnu; int semmsl; int semopm; int semume; int semusz; int semvmx; int semaem; }; struct sembuf { unsigned short sem_num; short sem_op; short sem_flg; }; int semctl(int, int, int, ...); int semget(key_t, int, int); int semop(int, struct sembuf *, size_t); #ifdef _GNU_SOURCE int semtimedop(int, struct sembuf *, size_t, const struct timespec *); #endif #ifdef __cplusplus } #endif #endif