blob: 91b1941d2e3c251a0d815ddeb6d5e85132e9d26e [file] [log] [blame]
Ben Cheng655a7c02013-10-16 16:09:24 -07001/****************************************************************************
2 ****************************************************************************
3 ***
4 *** This header was automatically generated from a Linux kernel header
5 *** of the same name, to make information necessary for userspace to
6 *** call into the kernel available to libc. It contains only constants,
7 *** structures, and macros generated from the original header, and thus,
8 *** contains no copyrightable information.
9 ***
10 *** To edit the content of this header, modify the corresponding
11 *** source file (e.g. under external/kernel-headers/original/) then
12 *** run bionic/libc/kernel/tools/update_all.py
13 ***
14 *** Any manual change here will be lost the next time this script will
15 *** be run. You've been warned!
16 ***
17 ****************************************************************************
18 ****************************************************************************/
19#ifndef _UAPI_LINUX_SEM_H
20#define _UAPI_LINUX_SEM_H
21#include <linux/ipc.h>
22#define SEM_UNDO 0x1000
Ben Cheng655a7c02013-10-16 16:09:24 -070023#define GETPID 11
24#define GETVAL 12
25#define GETALL 13
26#define GETNCNT 14
Ben Cheng655a7c02013-10-16 16:09:24 -070027#define GETZCNT 15
28#define SETVAL 16
29#define SETALL 17
30#define SEM_STAT 18
Ben Cheng655a7c02013-10-16 16:09:24 -070031#define SEM_INFO 19
Elliott Hughes7c59f3f2016-08-16 18:14:26 -070032struct __kernel_legacy_semid_ds {
33 struct __kernel_legacy_ipc_perm sem_perm;
Tao Baod7db5942015-01-28 10:07:51 -080034 __kernel_time_t sem_otime;
Tao Baod7db5942015-01-28 10:07:51 -080035 __kernel_time_t sem_ctime;
36 struct sem * sem_base;
37 struct sem_queue * sem_pending;
38 struct sem_queue * * sem_pending_last;
Tao Baod7db5942015-01-28 10:07:51 -080039 struct sem_undo * undo;
40 unsigned short sem_nsems;
Ben Cheng655a7c02013-10-16 16:09:24 -070041};
42#include <asm/sembuf.h>
Ben Cheng655a7c02013-10-16 16:09:24 -070043struct sembuf {
Tao Baod7db5942015-01-28 10:07:51 -080044 unsigned short sem_num;
45 short sem_op;
46 short sem_flg;
Ben Cheng655a7c02013-10-16 16:09:24 -070047};
Elliott Hughes497ad302017-05-18 15:05:26 -070048union __kernel_legacy_semun {
Tao Baod7db5942015-01-28 10:07:51 -080049 int val;
Elliott Hughes7c59f3f2016-08-16 18:14:26 -070050 struct __kernel_legacy_semid_ds __user * buf;
Tao Baod7db5942015-01-28 10:07:51 -080051 unsigned short __user * array;
52 struct seminfo __user * __buf;
53 void __user * __pad;
Ben Cheng655a7c02013-10-16 16:09:24 -070054};
Ben Cheng655a7c02013-10-16 16:09:24 -070055struct seminfo {
Tao Baod7db5942015-01-28 10:07:51 -080056 int semmap;
57 int semmni;
58 int semmns;
Tao Baod7db5942015-01-28 10:07:51 -080059 int semmnu;
60 int semmsl;
61 int semopm;
62 int semume;
Tao Baod7db5942015-01-28 10:07:51 -080063 int semusz;
64 int semvmx;
65 int semaem;
Ben Cheng655a7c02013-10-16 16:09:24 -070066};
Christopher Ferris05d08e92016-02-04 13:16:38 -080067#define SEMMNI 32000
68#define SEMMSL 32000
Tao Baod7db5942015-01-28 10:07:51 -080069#define SEMMNS (SEMMNI * SEMMSL)
Christopher Ferris05d08e92016-02-04 13:16:38 -080070#define SEMOPM 500
Ben Cheng655a7c02013-10-16 16:09:24 -070071#define SEMVMX 32767
72#define SEMAEM SEMVMX
73#define SEMUME SEMOPM
74#define SEMMNU SEMMNS
Ben Cheng655a7c02013-10-16 16:09:24 -070075#define SEMMAP SEMMNS
76#define SEMUSZ 20
77#endif