43 lines
1.1 KiB
C
43 lines
1.1 KiB
C
|
#ifndef _SYS_IPC_H
|
||
|
#define _SYS_IPC_H
|
||
|
|
||
|
/* For gid_t, uid_t */
|
||
|
#include <sys/types.h>
|
||
|
|
||
|
/* Mode bits for `msgget', `semget', and `shmget'. */
|
||
|
/* Create key if key does not exist. */
|
||
|
#define IPC_CREAT 01000
|
||
|
/* Fail if key exists. */
|
||
|
#define IPC_EXCL 02000
|
||
|
/* Return error on wait. */
|
||
|
#define IPC_NOWAIT 04000
|
||
|
|
||
|
/* Control commands for `msgctl', `semctl', and `shmctl'. */
|
||
|
/* Remove identifier. */
|
||
|
#define IPC_RMID 0
|
||
|
/* Set `ipc_perm' options. */
|
||
|
#define IPC_SET 1
|
||
|
/* Get `ipc_perm' options. */
|
||
|
#define IPC_STAT 2
|
||
|
#define IPC_INFO 3 /* See ipcs. */
|
||
|
|
||
|
/* Special key values. */
|
||
|
/* Private key. */
|
||
|
#define IPC_PRIVATE ((key_t) 0)
|
||
|
|
||
|
/* Data structure used to pass permission information to IPC operations. */
|
||
|
struct ipc_perm
|
||
|
{
|
||
|
key_t key; /* Key. */
|
||
|
uid_t uid; /* Owner's user ID. */
|
||
|
gid_t gid; /* Owner's group ID. */
|
||
|
uid_t cuid; /* Creator's user ID. */
|
||
|
gid_t cgid; /* Creator's group ID. */
|
||
|
unsigned short int mode; /* Reader/write permission. */
|
||
|
unsigned short int __seq; /* Sequence number. */
|
||
|
};
|
||
|
|
||
|
_PROTOTYPE( key_t ftok, (const char *__path, int __id));
|
||
|
|
||
|
#endif /* _SYS_IPC_H */
|