Home | History | Annotate | Download | only in sys
      1 #ifndef SYS_SHM_H
      2 #define SYS_SHM_H
      3 
      4 #define IPC_RMID	0x1
      5 #define IPC_CREAT	0x2
      6 #define IPC_PRIVATE	0x4
      7 
      8 typedef int uid_t;
      9 typedef int gid_t;
     10 
     11 typedef int shmatt_t;
     12 typedef int key_t;
     13 
     14 struct ipc_perm
     15 {
     16 	uid_t    uid;    /* owner's user ID */
     17 	gid_t    gid;    /* owner's group ID */
     18 	uid_t    cuid;   /* creator's user ID */
     19 	gid_t    cgid;   /* creator's group ID */
     20 	mode_t   mode;   /* read/write permission */
     21 };
     22 
     23 
     24 struct shmid_ds
     25 {
     26 	struct ipc_perm shm_perm;   /* operation permission structure */
     27 	size_t          shm_segsz;  /* size of segment in bytes */
     28 	pid_t           shm_lpid;   /* process ID of last shared memory operation */
     29 	pid_t           shm_cpid;   /* process ID of creator */
     30 	shmatt_t        shm_nattch; /* number of current attaches */
     31 	time_t          shm_atime;  /* time of last shmat() */
     32 	time_t          shm_dtime;  /* time of last shmdt() */
     33 	time_t          shm_ctime;  /* time of last change by shmctl() */
     34 };
     35 
     36 int shmctl(int shmid, int cmd, struct shmid_ds *buf);
     37 int shmget(key_t key, size_t size, int shmflg);
     38 void *shmat(int shmid, const void *shmaddr, int shmflg);
     39 int shmdt(const void *shmaddr);
     40 
     41 #endif /* SYS_SHM_H */
     42