1570af302Sopenharmony_ci#ifndef _SYS_SHM_H 2570af302Sopenharmony_ci#define _SYS_SHM_H 3570af302Sopenharmony_ci 4570af302Sopenharmony_ci#ifdef __cplusplus 5570af302Sopenharmony_ciextern "C" { 6570af302Sopenharmony_ci#endif 7570af302Sopenharmony_ci 8570af302Sopenharmony_ci#include <features.h> 9570af302Sopenharmony_ci 10570af302Sopenharmony_ci#define __NEED_time_t 11570af302Sopenharmony_ci#define __NEED_size_t 12570af302Sopenharmony_ci#define __NEED_pid_t 13570af302Sopenharmony_ci 14570af302Sopenharmony_ci#include <bits/alltypes.h> 15570af302Sopenharmony_ci 16570af302Sopenharmony_ci#include <sys/ipc.h> 17570af302Sopenharmony_ci 18570af302Sopenharmony_ci#ifdef _GNU_SOURCE 19570af302Sopenharmony_ci#define __used_ids used_ids 20570af302Sopenharmony_ci#define __swap_attempts swap_attempts 21570af302Sopenharmony_ci#define __swap_successes swap_successes 22570af302Sopenharmony_ci#endif 23570af302Sopenharmony_ci 24570af302Sopenharmony_ci#include <bits/shm.h> 25570af302Sopenharmony_ci 26570af302Sopenharmony_ci#define SHM_R 0400 27570af302Sopenharmony_ci#define SHM_W 0200 28570af302Sopenharmony_ci 29570af302Sopenharmony_ci#define SHM_RDONLY 010000 30570af302Sopenharmony_ci#define SHM_RND 020000 31570af302Sopenharmony_ci#define SHM_REMAP 040000 32570af302Sopenharmony_ci#define SHM_EXEC 0100000 33570af302Sopenharmony_ci 34570af302Sopenharmony_ci#define SHM_LOCK 11 35570af302Sopenharmony_ci#define SHM_UNLOCK 12 36570af302Sopenharmony_ci#define SHM_STAT (13 | (IPC_STAT & 0x100)) 37570af302Sopenharmony_ci#define SHM_INFO 14 38570af302Sopenharmony_ci#define SHM_STAT_ANY (15 | (IPC_STAT & 0x100)) 39570af302Sopenharmony_ci#define SHM_DEST 01000 40570af302Sopenharmony_ci#define SHM_LOCKED 02000 41570af302Sopenharmony_ci#define SHM_HUGETLB 04000 42570af302Sopenharmony_ci#define SHM_NORESERVE 010000 43570af302Sopenharmony_ci 44570af302Sopenharmony_ci#define SHM_HUGE_SHIFT 26 45570af302Sopenharmony_ci#define SHM_HUGE_MASK 0x3f 46570af302Sopenharmony_ci#define SHM_HUGE_64KB (16 << 26) 47570af302Sopenharmony_ci#define SHM_HUGE_512KB (19 << 26) 48570af302Sopenharmony_ci#define SHM_HUGE_1MB (20 << 26) 49570af302Sopenharmony_ci#define SHM_HUGE_2MB (21 << 26) 50570af302Sopenharmony_ci#define SHM_HUGE_8MB (23 << 26) 51570af302Sopenharmony_ci#define SHM_HUGE_16MB (24 << 26) 52570af302Sopenharmony_ci#define SHM_HUGE_32MB (25 << 26) 53570af302Sopenharmony_ci#define SHM_HUGE_256MB (28 << 26) 54570af302Sopenharmony_ci#define SHM_HUGE_512MB (29 << 26) 55570af302Sopenharmony_ci#define SHM_HUGE_1GB (30 << 26) 56570af302Sopenharmony_ci#define SHM_HUGE_2GB (31 << 26) 57570af302Sopenharmony_ci#define SHM_HUGE_16GB (34U << 26) 58570af302Sopenharmony_ci 59570af302Sopenharmony_citypedef unsigned long shmatt_t; 60570af302Sopenharmony_ci 61570af302Sopenharmony_civoid *shmat(int, const void *, int); 62570af302Sopenharmony_ciint shmctl(int, int, struct shmid_ds *); 63570af302Sopenharmony_ciint shmdt(const void *); 64570af302Sopenharmony_ciint shmget(key_t, size_t, int); 65570af302Sopenharmony_ci 66570af302Sopenharmony_ci#ifdef __cplusplus 67570af302Sopenharmony_ci} 68570af302Sopenharmony_ci#endif 69570af302Sopenharmony_ci 70570af302Sopenharmony_ci#endif 71