78 |
7u83 |
1 |
#ifndef __TENDRA_SYS_SEM_H
|
|
|
2 |
#define __TENDRA_SYS_SEM_H
|
|
|
3 |
|
|
|
4 |
|
|
|
5 |
/*
|
|
|
6 |
* semop's sops parameter structure
|
|
|
7 |
*/
|
|
|
8 |
struct sembuf {
|
|
|
9 |
unsigned short sem_num; /* semaphore # */
|
|
|
10 |
short sem_op; /* semaphore operation */
|
|
|
11 |
short sem_flg; /* operation flags */
|
|
|
12 |
};
|
|
|
13 |
#define SEM_UNDO 010000
|
|
|
14 |
|
|
|
15 |
struct semid_ds {
|
|
|
16 |
struct ipc_perm sem_perm; /* operation permission struct */
|
|
|
17 |
struct sem *__sem_base; /* pointer to first semaphore in set */
|
|
|
18 |
unsigned short sem_nsems; /* number of sems in set */
|
|
|
19 |
time_t sem_otime; /* last operation time */
|
|
|
20 |
time_t sem_ctime; /* last change time */
|
|
|
21 |
/* Times measured in secs since */
|
|
|
22 |
/* 00:00:00 UTC, Jan. 1, 1970, without leap seconds */
|
|
|
23 |
};
|
|
|
24 |
|
|
|
25 |
|
|
|
26 |
/*
|
|
|
27 |
* commands for semctl
|
|
|
28 |
*/
|
|
|
29 |
#define GETNCNT 3 /* Return the value of semncnt {READ} */
|
|
|
30 |
#define GETPID 4 /* Return the value of sempid {READ} */
|
|
|
31 |
#define GETVAL 5 /* Return the value of semval {READ} */
|
|
|
32 |
#define GETALL 6 /* Return semvals into arg.array {READ} */
|
|
|
33 |
#define GETZCNT 7 /* Return the value of semzcnt {READ} */
|
|
|
34 |
#define SETVAL 8 /* Set the value of semval to arg.val {ALTER} */
|
|
|
35 |
#define SETALL 9 /* Set semvals from arg.array {ALTER} */
|
|
|
36 |
#define SEM_STAT 10 /* Like IPC_STAT but treats semid as sema-index */
|
|
|
37 |
#define SEM_INFO 11 /* Like IPC_INFO but treats semid as sema-index */
|
|
|
38 |
|
|
|
39 |
|
|
|
40 |
#endif
|