| #ifndef _SYS_SEM_H |
| #define _SYS_SEM_H |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| #include <features.h> |
| |
| #define __NEED_size_t |
| #define __NEED_pid_t |
| #define __NEED_time_t |
| #ifdef _GNU_SOURCE |
| #define __NEED_struct_timespec |
| #endif |
| #include <bits/alltypes.h> |
| |
| #include <sys/ipc.h> |
| |
| #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 <endian.h> |
| |
| #include <bits/sem.h> |
| |
| #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 |