#ifndef SYS_SHM_H #define SYS_SHM_H #define IPC_RMID 0x1 #define IPC_CREAT 0x2 #define IPC_PRIVATE 0x4 typedef int uid_t; typedef int gid_t; typedef int shmatt_t; typedef int key_t; struct ipc_perm { uid_t uid; /* owner's user ID */ gid_t gid; /* owner's group ID */ uid_t cuid; /* creator's user ID */ gid_t cgid; /* creator's group ID */ mode_t mode; /* read/write permission */ }; struct shmid_ds { struct ipc_perm shm_perm; /* operation permission structure */ size_t shm_segsz; /* size of segment in bytes */ pid_t shm_lpid; /* process ID of last shared memory operation */ pid_t shm_cpid; /* process ID of creator */ shmatt_t shm_nattch; /* number of current attaches */ time_t shm_atime; /* time of last shmat() */ time_t shm_dtime; /* time of last shmdt() */ time_t shm_ctime; /* time of last change by shmctl() */ }; int shmctl(int shmid, int cmd, struct shmid_ds *buf); int shmget(key_t key, size_t size, int shmflg); void *shmat(int shmid, const void *shmaddr, int shmflg); int shmdt(const void *shmaddr); #endif /* SYS_SHM_H */