github.com/afumu/libc@v0.0.6/musl/include/sys/sem.h (about)

     1  #ifndef _SYS_SEM_H
     2  #define _SYS_SEM_H
     3  #ifdef __cplusplus
     4  extern "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  
    36  struct  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  
    49  struct sembuf {
    50  	unsigned short sem_num;
    51  	short sem_op;
    52  	short sem_flg;
    53  };
    54  
    55  int semctl(int, int, int, ...);
    56  int semget(key_t, int, int);
    57  int semop(int, struct sembuf *, size_t);
    58  
    59  #ifdef _GNU_SOURCE
    60  int 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