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