sem.h
01: #ifndef _LINUX_SEM_H
02: #define _LINUX_SEM_H
03: 
04: #include <linux/ipc.h>
05: 
06: 
07: #define SEM_UNDO        0x1000  
08: 
09: 
10: #define GETPID  11       
11: #define GETVAL  12       
12: #define GETALL  13       
13: #define GETNCNT 14       
14: #define GETZCNT 15       
15: #define SETVAL  16       
16: #define SETALL  17       
17: 
18: 
19: #define SEM_STAT 18
20: #define SEM_INFO 19
21: 
22: 
23: struct semid_ds {
24:         struct ipc_perm sem_perm;               
25:         __kernel_time_t sem_otime;              
26:         __kernel_time_t sem_ctime;              
27:         struct sem      *sem_base;              
28:         struct sem_queue *sem_pending;          
29:         struct sem_queue **sem_pending_last;    
30:         struct sem_undo *undo;                  
31:         unsigned short  sem_nsems;              
32: };
33: 
34: 
35: #include <asm/sembuf.h>
36: 
37: 
38: struct sembuf {
39:         unsigned short  sem_num;        
40:         short           sem_op;         
41:         short           sem_flg;        
42: };
43: 
44: 
45: union semun {
46:         int val;                        
47:         struct semid_ds *buf;   
48:         unsigned short *array;  
49:         struct seminfo *__buf;  
50:         void *__pad;
51: };
52: 
53: struct  seminfo {
54:         int semmap;
55:         int semmni;
56:         int semmns;
57:         int semmnu;
58:         int semmsl;
59:         int semopm;
60:         int semume;
61:         int semusz;
62:         int semvmx;
63:         int semaem;
64: };
65: 
66: #define SEMMNI  128             
67: #define SEMMSL  250             
68: #define SEMMNS  (SEMMNI*SEMMSL) 
69: #define SEMOPM  32              
70: #define SEMVMX  32767           
71: #define SEMAEM  SEMVMX          
72: 
73: 
74: #define SEMUME  SEMOPM          
75: #define SEMMNU  SEMMNS          
76: #define SEMMAP  SEMMNS          
77: #define SEMUSZ  20              
78: 
79: 
80: #endif 
81: 
      
      
      
      
   
      
      
         
            
            © Andrew Scott 2006 -
            2025, 
            All Rights Reserved