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