#ifndef _SYS_SHM_H #define _SYS_SHM_H #ifdef __cplusplus extern "C" { #endif #define __NEED_time_t #define __NEED_size_t #define __NEED_pid_t #include #include #include #define SHM_RDONLY 010000 #define SHM_RND 020000 #define SHM_REMAP 040000 #define SHM_EXEC 0100000 #define SHM_LOCK 11 #define SHM_UNLOCK 12 #define SHM_STAT 13 #define SHM_INFO 14 #define SHM_DEST 01000 #define SHM_LOCKED 02000 #define SHM_HUGETLB 04000 #define SHM_NORESERVE 010000 struct shminfo { unsigned long shmmax, shmmin, shmmni, shmseg, shmall, __unused[4]; }; struct shm_info { int used_ids; unsigned long shm_tot, shm_rss, shm_swp; #ifdef _GNU_SOURCE unsigned long swap_attempts, swap_successes; #else unsigned long __reserved[2]; #endif }; void *shmat(int, const void *, int); int shmctl(int, int, struct shmid_ds *); int shmdt(const void *); int shmget(key_t, size_t, int); #ifdef __cplusplus } #endif #endif