122851890Sopenharmony_ci/* 222851890Sopenharmony_ci * This header was generated from the Linux kernel headers by update_headers.py, 322851890Sopenharmony_ci * to provide necessary information from kernel to userspace, such as constants, 422851890Sopenharmony_ci * structures, and macros, and thus, contains no copyrightable information. 522851890Sopenharmony_ci */ 622851890Sopenharmony_ci#ifndef _UAPI_LINUX_SHM_H_ 722851890Sopenharmony_ci#define _UAPI_LINUX_SHM_H_ 822851890Sopenharmony_ci#include <linux/ipc.h> 922851890Sopenharmony_ci#include <linux/errno.h> 1022851890Sopenharmony_ci#include <asm-generic/hugetlb_encode.h> 1122851890Sopenharmony_ci#ifndef __KERNEL__ 1222851890Sopenharmony_ci#include <unistd.h> 1322851890Sopenharmony_ci#endif 1422851890Sopenharmony_ci#define SHMMIN 1 1522851890Sopenharmony_ci#define SHMMNI 4096 1622851890Sopenharmony_ci#define SHMMAX (ULONG_MAX - (1UL << 24)) 1722851890Sopenharmony_ci#define SHMALL (ULONG_MAX - (1UL << 24)) 1822851890Sopenharmony_ci#define SHMSEG SHMMNI 1922851890Sopenharmony_cistruct __kernel_legacy_shmid_ds { 2022851890Sopenharmony_ci struct __kernel_legacy_ipc_perm shm_perm; 2122851890Sopenharmony_ci int shm_segsz; 2222851890Sopenharmony_ci __kernel_time_t shm_atime; 2322851890Sopenharmony_ci __kernel_time_t shm_dtime; 2422851890Sopenharmony_ci __kernel_time_t shm_ctime; 2522851890Sopenharmony_ci __kernel_ipc_pid_t shm_cpid; 2622851890Sopenharmony_ci __kernel_ipc_pid_t shm_lpid; 2722851890Sopenharmony_ci unsigned short shm_nattch; 2822851890Sopenharmony_ci unsigned short shm_unused; 2922851890Sopenharmony_ci void *shm_unused2; 3022851890Sopenharmony_ci void *shm_unused3; 3122851890Sopenharmony_ci}; 3222851890Sopenharmony_ci#include <asm/shmbuf.h> 3322851890Sopenharmony_ci#define SHM_R 0400 3422851890Sopenharmony_ci#define SHM_W 0200 3522851890Sopenharmony_ci#define SHM_HUGETLB 04000 3622851890Sopenharmony_ci#define SHM_NORESERVE 010000 3722851890Sopenharmony_ci#define SHM_HUGE_SHIFT HUGETLB_FLAG_ENCODE_SHIFT 3822851890Sopenharmony_ci#define SHM_HUGE_MASK HUGETLB_FLAG_ENCODE_MASK 3922851890Sopenharmony_ci#define SHM_HUGE_64KB HUGETLB_FLAG_ENCODE_64KB 4022851890Sopenharmony_ci#define SHM_HUGE_512KB HUGETLB_FLAG_ENCODE_512KB 4122851890Sopenharmony_ci#define SHM_HUGE_1MB HUGETLB_FLAG_ENCODE_1MB 4222851890Sopenharmony_ci#define SHM_HUGE_2MB HUGETLB_FLAG_ENCODE_2MB 4322851890Sopenharmony_ci#define SHM_HUGE_8MB HUGETLB_FLAG_ENCODE_8MB 4422851890Sopenharmony_ci#define SHM_HUGE_16MB HUGETLB_FLAG_ENCODE_16MB 4522851890Sopenharmony_ci#define SHM_HUGE_32MB HUGETLB_FLAG_ENCODE_32MB 4622851890Sopenharmony_ci#define SHM_HUGE_256MB HUGETLB_FLAG_ENCODE_256MB 4722851890Sopenharmony_ci#define SHM_HUGE_512MB HUGETLB_FLAG_ENCODE_512MB 4822851890Sopenharmony_ci#define SHM_HUGE_1GB HUGETLB_FLAG_ENCODE_1GB 4922851890Sopenharmony_ci#define SHM_HUGE_2GB HUGETLB_FLAG_ENCODE_2GB 5022851890Sopenharmony_ci#define SHM_HUGE_16GB HUGETLB_FLAG_ENCODE_16GB 5122851890Sopenharmony_ci#define SHM_RDONLY 010000 5222851890Sopenharmony_ci#define SHM_RND 020000 5322851890Sopenharmony_ci#define SHM_REMAP 040000 5422851890Sopenharmony_ci#define SHM_EXEC 0100000 5522851890Sopenharmony_ci#define SHM_LOCK 11 5622851890Sopenharmony_ci#define SHM_UNLOCK 12 5722851890Sopenharmony_ci#define SHM_STAT 13 5822851890Sopenharmony_ci#define SHM_INFO 14 5922851890Sopenharmony_ci#define SHM_STAT_ANY 15 6022851890Sopenharmony_cistruct shminfo { 6122851890Sopenharmony_ci int shmmax; 6222851890Sopenharmony_ci int shmmin; 6322851890Sopenharmony_ci int shmmni; 6422851890Sopenharmony_ci int shmseg; 6522851890Sopenharmony_ci int shmall; 6622851890Sopenharmony_ci}; 6722851890Sopenharmony_cistruct shm_info { 6822851890Sopenharmony_ci int used_ids; 6922851890Sopenharmony_ci __kernel_ulong_t shm_tot; 7022851890Sopenharmony_ci __kernel_ulong_t shm_rss; 7122851890Sopenharmony_ci __kernel_ulong_t shm_swp; 7222851890Sopenharmony_ci __kernel_ulong_t swap_attempts; 7322851890Sopenharmony_ci __kernel_ulong_t swap_successes; 7422851890Sopenharmony_ci}; 7522851890Sopenharmony_ci#endif 76