root/include/linux/ipc.h

/* [previous][next][first][last][top][bottom][index][help] */

INCLUDED FROM


   1 #ifndef _LINUX_IPC_H
   2 #define _LINUX_IPC_H
   3 #include <linux/types.h>
   4 
   5 typedef int key_t;              /* should go in <types.h> type for IPC key */
   6 #define IPC_PRIVATE ((key_t) 0)  
   7 
   8 struct ipc_perm
   9 {
  10   key_t  key;
  11   ushort uid;   /* owner euid and egid */
  12   ushort gid;
  13   ushort cuid;  /* creator euid and egid */
  14   ushort cgid;
  15   ushort mode;  /* access modes see mode flags below */
  16   ushort seq;   /* sequence number */
  17 };
  18 
  19 
  20 /* resource get request flags */
  21 #define IPC_CREAT  00001000   /* create if key is nonexistent */
  22 #define IPC_EXCL   00002000   /* fail if key exists */
  23 #define IPC_NOWAIT 00004000   /* return error on wait */
  24 
  25 
  26 /* 
  27  * Control commands used with semctl, msgctl and shmctl 
  28  * see also specific commands in sem.h, msg.h and shm.h
  29  */
  30 #define IPC_RMID 0     /* remove resource */
  31 #define IPC_SET  1     /* set ipc_perm options */
  32 #define IPC_STAT 2     /* get ipc_perm options */
  33 #define IPC_INFO 3     /* see ipcs */
  34 
  35 #ifdef __KERNEL__
  36 
  37 /* special shmsegs[id], msgque[id] or semary[id]  values */
  38 #define IPC_UNUSED      ((void *) -1)
  39 #define IPC_NOID        ((void *) -2)           /* being allocated/destroyed */
  40 
  41 /* 
  42  * These are used to wrap system calls. See ipc/util.c.
  43  */
  44 struct ipc_kludge {
  45     struct msgbuf *msgp;
  46     long msgtyp;
  47 };
  48 
  49 #define SEMOP           1
  50 #define SEMGET          2
  51 #define SEMCTL          3
  52 #define MSGSND          11
  53 #define MSGRCV          12
  54 #define MSGGET          13
  55 #define MSGCTL          14
  56 #define SHMAT           21
  57 #define SHMDT           22
  58 #define SHMGET          23
  59 #define SHMCTL          24
  60 
  61 #define IPCCALL(version,op)     ((version)<<16 | (op))
  62 
  63 #endif /* __KERNEL__ */
  64 
  65 #endif /* _LINUX_IPC_H */
  66 
  67 

/* [previous][next][first][last][top][bottom][index][help] */