linux-headers (unknown)

(root)/
include/
linux/
ipc.h
       1  /* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
       2  #ifndef _LINUX_IPC_H
       3  #define _LINUX_IPC_H
       4  
       5  #include <linux/types.h>
       6  
       7  #define IPC_PRIVATE ((__kernel_key_t) 0)  
       8  
       9  /* Obsolete, used only for backwards compatibility and libc5 compiles */
      10  struct ipc_perm
      11  {
      12  	__kernel_key_t	key;
      13  	__kernel_uid_t	uid;
      14  	__kernel_gid_t	gid;
      15  	__kernel_uid_t	cuid;
      16  	__kernel_gid_t	cgid;
      17  	__kernel_mode_t	mode; 
      18  	unsigned short	seq;
      19  };
      20  
      21  /* Include the definition of ipc64_perm */
      22  #include <asm/ipcbuf.h>
      23  
      24  /* resource get request flags */
      25  #define IPC_CREAT  00001000   /* create if key is nonexistent */
      26  #define IPC_EXCL   00002000   /* fail if key exists */
      27  #define IPC_NOWAIT 00004000   /* return error on wait */
      28  
      29  /* these fields are used by the DIPC package so the kernel as standard
      30     should avoid using them if possible */
      31     
      32  #define IPC_DIPC 00010000  /* make it distributed */
      33  #define IPC_OWN  00020000  /* this machine is the DIPC owner */
      34  
      35  /* 
      36   * Control commands used with semctl, msgctl and shmctl 
      37   * see also specific commands in sem.h, msg.h and shm.h
      38   */
      39  #define IPC_RMID 0     /* remove resource */
      40  #define IPC_SET  1     /* set ipc_perm options */
      41  #define IPC_STAT 2     /* get ipc_perm options */
      42  #define IPC_INFO 3     /* see ipcs */
      43  
      44  /*
      45   * Version flags for semctl, msgctl, and shmctl commands
      46   * These are passed as bitflags or-ed with the actual command
      47   */
      48  #define IPC_OLD 0	/* Old version (no 32-bit UID support on many
      49  			   architectures) */
      50  #define IPC_64  0x0100  /* New version (support 32-bit UIDs, bigger
      51  			   message sizes, etc. */
      52  
      53  /*
      54   * These are used to wrap system calls.
      55   *
      56   * See architecture code for ugly details..
      57   */
      58  struct ipc_kludge {
      59  	struct msgbuf *msgp;
      60  	long msgtyp;
      61  };
      62  
      63  #define SEMOP		 1
      64  #define SEMGET		 2
      65  #define SEMCTL		 3
      66  #define SEMTIMEDOP	 4
      67  #define MSGSND		11
      68  #define MSGRCV		12
      69  #define MSGGET		13
      70  #define MSGCTL		14
      71  #define SHMAT		21
      72  #define SHMDT		22
      73  #define SHMGET		23
      74  #define SHMCTL		24
      75  
      76  /* Used by the DIPC package, try and avoid reusing it */
      77  #define DIPC            25
      78  
      79  #define IPCCALL(version,op)	((version)<<16 | (op))
      80  
      81  
      82  #endif /* _LINUX_IPC_H */