blob: 10b798a0f0a45b3e77599530dc0b61041849ecd1 [file] [log] [blame]
Elliott Hughes180edef2023-11-02 00:08:05 +00001/*
2 * This file is auto-generated. Modifications will be lost.
3 *
4 * See https://android.googlesource.com/platform/bionic/+/master/libc/kernel/
5 * for more information.
6 */
Ben Cheng655a7c02013-10-16 16:09:24 -07007#ifndef _UAPI_LINUX_SHM_H_
8#define _UAPI_LINUX_SHM_H_
9#include <linux/ipc.h>
10#include <linux/errno.h>
Christopher Ferris1308ad32017-11-14 17:32:13 -080011#include <asm-generic/hugetlb_encode.h>
Ben Cheng655a7c02013-10-16 16:09:24 -070012#include <unistd.h>
Ben Cheng655a7c02013-10-16 16:09:24 -070013#define SHMMIN 1
14#define SHMMNI 4096
Christopher Ferrisba8d4f42014-09-03 19:56:49 -070015#define SHMMAX (ULONG_MAX - (1UL << 24))
Christopher Ferrisba8d4f42014-09-03 19:56:49 -070016#define SHMALL (ULONG_MAX - (1UL << 24))
Ben Cheng655a7c02013-10-16 16:09:24 -070017#define SHMSEG SHMMNI
Elliott Hughes7c59f3f2016-08-16 18:14:26 -070018struct __kernel_legacy_shmid_ds {
19 struct __kernel_legacy_ipc_perm shm_perm;
Tao Baod7db5942015-01-28 10:07:51 -080020 int shm_segsz;
Christopher Ferrisef80d682020-02-04 16:16:51 -080021 __kernel_old_time_t shm_atime;
22 __kernel_old_time_t shm_dtime;
23 __kernel_old_time_t shm_ctime;
Tao Baod7db5942015-01-28 10:07:51 -080024 __kernel_ipc_pid_t shm_cpid;
25 __kernel_ipc_pid_t shm_lpid;
26 unsigned short shm_nattch;
27 unsigned short shm_unused;
Tao Baod7db5942015-01-28 10:07:51 -080028 void * shm_unused2;
29 void * shm_unused3;
Ben Cheng655a7c02013-10-16 16:09:24 -070030};
31#include <asm/shmbuf.h>
Ben Cheng655a7c02013-10-16 16:09:24 -070032#define SHM_R 0400
33#define SHM_W 0200
Christopher Ferris1308ad32017-11-14 17:32:13 -080034#define SHM_HUGETLB 04000
35#define SHM_NORESERVE 010000
36#define SHM_HUGE_SHIFT HUGETLB_FLAG_ENCODE_SHIFT
37#define SHM_HUGE_MASK HUGETLB_FLAG_ENCODE_MASK
38#define SHM_HUGE_64KB HUGETLB_FLAG_ENCODE_64KB
39#define SHM_HUGE_512KB HUGETLB_FLAG_ENCODE_512KB
40#define SHM_HUGE_1MB HUGETLB_FLAG_ENCODE_1MB
41#define SHM_HUGE_2MB HUGETLB_FLAG_ENCODE_2MB
42#define SHM_HUGE_8MB HUGETLB_FLAG_ENCODE_8MB
43#define SHM_HUGE_16MB HUGETLB_FLAG_ENCODE_16MB
Christopher Ferrisa981e2e2018-10-25 12:11:39 -070044#define SHM_HUGE_32MB HUGETLB_FLAG_ENCODE_32MB
Christopher Ferris1308ad32017-11-14 17:32:13 -080045#define SHM_HUGE_256MB HUGETLB_FLAG_ENCODE_256MB
Christopher Ferrisa981e2e2018-10-25 12:11:39 -070046#define SHM_HUGE_512MB HUGETLB_FLAG_ENCODE_512MB
Christopher Ferris1308ad32017-11-14 17:32:13 -080047#define SHM_HUGE_1GB HUGETLB_FLAG_ENCODE_1GB
48#define SHM_HUGE_2GB HUGETLB_FLAG_ENCODE_2GB
49#define SHM_HUGE_16GB HUGETLB_FLAG_ENCODE_16GB
Ben Cheng655a7c02013-10-16 16:09:24 -070050#define SHM_RDONLY 010000
51#define SHM_RND 020000
Ben Cheng655a7c02013-10-16 16:09:24 -070052#define SHM_REMAP 040000
53#define SHM_EXEC 0100000
54#define SHM_LOCK 11
55#define SHM_UNLOCK 12
Ben Cheng655a7c02013-10-16 16:09:24 -070056#define SHM_STAT 13
57#define SHM_INFO 14
Christopher Ferris76a1d452018-06-27 14:12:29 -070058#define SHM_STAT_ANY 15
Ben Cheng655a7c02013-10-16 16:09:24 -070059struct shminfo {
Tao Baod7db5942015-01-28 10:07:51 -080060 int shmmax;
Tao Baod7db5942015-01-28 10:07:51 -080061 int shmmin;
62 int shmmni;
63 int shmseg;
64 int shmall;
Ben Cheng655a7c02013-10-16 16:09:24 -070065};
66struct shm_info {
Tao Baod7db5942015-01-28 10:07:51 -080067 int used_ids;
68 __kernel_ulong_t shm_tot;
Tao Baod7db5942015-01-28 10:07:51 -080069 __kernel_ulong_t shm_rss;
70 __kernel_ulong_t shm_swp;
71 __kernel_ulong_t swap_attempts;
72 __kernel_ulong_t swap_successes;
Ben Cheng655a7c02013-10-16 16:09:24 -070073};
74#endif