Home | History | Annotate | Download | only in linux
      1 /****************************************************************************
      2  ****************************************************************************
      3  ***
      4  ***   This header was automatically generated from a Linux kernel header
      5  ***   of the same name, to make information necessary for userspace to
      6  ***   call into the kernel available to libc.  It contains only constants,
      7  ***   structures, and macros generated from the original header, and thus,
      8  ***   contains no copyrightable information.
      9  ***
     10  ****************************************************************************
     11  ****************************************************************************/
     12 #ifndef _LINUX_SEM_H
     13 #define _LINUX_SEM_H
     14 
     15 #include <linux/ipc.h>
     16 
     17 #define SEM_UNDO 0x1000
     18 
     19 #define GETPID 11
     20 #define GETVAL 12
     21 #define GETALL 13
     22 #define GETNCNT 14
     23 #define GETZCNT 15
     24 #define SETVAL 16
     25 #define SETALL 17
     26 
     27 #define SEM_STAT 18
     28 #define SEM_INFO 19
     29 
     30 struct semid_ds {
     31  struct ipc_perm sem_perm;
     32  __kernel_time_t sem_otime;
     33  __kernel_time_t sem_ctime;
     34  struct sem *sem_base;
     35  struct sem_queue *sem_pending;
     36  struct sem_queue **sem_pending_last;
     37  struct sem_undo *undo;
     38  unsigned short sem_nsems;
     39 };
     40 
     41 #include <asm/sembuf.h>
     42 
     43 struct sembuf {
     44  unsigned short sem_num;
     45  short sem_op;
     46  short sem_flg;
     47 };
     48 
     49 union semun {
     50  int val;
     51  struct semid_ds __user *buf;
     52  unsigned short __user *array;
     53  struct seminfo __user *__buf;
     54  void __user *__pad;
     55 };
     56 
     57 struct seminfo {
     58  int semmap;
     59  int semmni;
     60  int semmns;
     61  int semmnu;
     62  int semmsl;
     63  int semopm;
     64  int semume;
     65  int semusz;
     66  int semvmx;
     67  int semaem;
     68 };
     69 
     70 #define SEMMNI 128
     71 #define SEMMSL 250
     72 #define SEMMNS (SEMMNI*SEMMSL)
     73 #define SEMOPM 32
     74 #define SEMVMX 32767
     75 #define SEMAEM SEMVMX
     76 
     77 #define SEMUME SEMOPM
     78 #define SEMMNU SEMMNS
     79 #define SEMMAP SEMMNS
     80 #define SEMUSZ 20
     81 
     82 #endif
     83