00001 #ifndef _SYS_IPC_H 00002 #define _SYS_IPC_H 00003 00004 /* For gid_t, uid_t */ 00005 #include <sys/types.h> 00006 00007 /* Mode bits for `msgget', `semget', and `shmget'. */ 00008 /* Create key if key does not exist. */ 00009 #define IPC_CREAT 01000 00010 /* Fail if key exists. */ 00011 #define IPC_EXCL 02000 00012 /* Return error on wait. */ 00013 #define IPC_NOWAIT 04000 00014 00015 /* Control commands for `msgctl', `semctl', and `shmctl'. */ 00016 /* Remove identifier. */ 00017 #define IPC_RMID 0 00018 /* Set `ipc_perm' options. */ 00019 #define IPC_SET 1 00020 /* Get `ipc_perm' options. */ 00021 #define IPC_STAT 2 00022 #define IPC_INFO 3 /* See ipcs. */ 00023 00024 /* Special key values. */ 00025 /* Private key. */ 00026 #define IPC_PRIVATE ((key_t) 0) 00027 00028 /* Data structure used to pass permission information to IPC operations. */ 00029 struct ipc_perm 00030 { 00031 key_t key; /* Key. */ 00032 uid_t uid; /* Owner's user ID. */ 00033 gid_t gid; /* Owner's group ID. */ 00034 uid_t cuid; /* Creator's user ID. */ 00035 gid_t cgid; /* Creator's group ID. */ 00036 unsigned short int mode; /* Reader/write permission. */ 00037 unsigned short int __seq; /* Sequence number. */ 00038 }; 00039 00040 _PROTOTYPE( key_t ftok, (const char *__path, int __id)); 00041 00042 #endif /* _SYS_IPC_H */
1.5.8