ipc.h
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:2k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  1. #ifndef _LINUX_IPC_H
  2. #define _LINUX_IPC_H
  3. #include <linux/types.h>
  4. #define IPC_PRIVATE ((__kernel_key_t) 0)  
  5. /* Obsolete, used only for backwards compatibility and libc5 compiles */
  6. struct ipc_perm
  7. {
  8. __kernel_key_t key;
  9. __kernel_uid_t uid;
  10. __kernel_gid_t gid;
  11. __kernel_uid_t cuid;
  12. __kernel_gid_t cgid;
  13. __kernel_mode_t mode; 
  14. unsigned short seq;
  15. };
  16. /* Include the definition of ipc64_perm */
  17. #include <asm/ipcbuf.h>
  18. /* resource get request flags */
  19. #define IPC_CREAT  00001000   /* create if key is nonexistent */
  20. #define IPC_EXCL   00002000   /* fail if key exists */
  21. #define IPC_NOWAIT 00004000   /* return error on wait */
  22. /* these fields are used by the DIPC package so the kernel as standard
  23.    should avoid using them if possible */
  24.    
  25. #define IPC_DIPC 00010000  /* make it distributed */
  26. #define IPC_OWN  00020000  /* this machine is the DIPC owner */
  27. /* 
  28.  * Control commands used with semctl, msgctl and shmctl 
  29.  * see also specific commands in sem.h, msg.h and shm.h
  30.  */
  31. #define IPC_RMID 0     /* remove resource */
  32. #define IPC_SET  1     /* set ipc_perm options */
  33. #define IPC_STAT 2     /* get ipc_perm options */
  34. #define IPC_INFO 3     /* see ipcs */
  35. /*
  36.  * Version flags for semctl, msgctl, and shmctl commands
  37.  * These are passed as bitflags or-ed with the actual command
  38.  */
  39. #define IPC_OLD 0 /* Old version (no 32-bit UID support on many
  40.    architectures) */
  41. #define IPC_64  0x0100  /* New version (support 32-bit UIDs, bigger
  42.    message sizes, etc. */
  43. #ifdef __KERNEL__
  44. #define IPCMNI 32768  /* <= MAX_INT limit for ipc arrays (including sysctl changes) */
  45. /* used by in-kernel data structures */
  46. struct kern_ipc_perm
  47. {
  48. key_t key;
  49. uid_t uid;
  50. gid_t gid;
  51. uid_t cuid;
  52. gid_t cgid;
  53. mode_t mode; 
  54. unsigned long seq;
  55. };
  56. #endif /* __KERNEL__ */
  57. #endif /* _LINUX_IPC_H */