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