1c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner/****************************************************************************
2c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner ****************************************************************************
3c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner ***
4c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner ***   This header was automatically generated from a Linux kernel header
5c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner ***   of the same name, to make information necessary for userspace to
6c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner ***   call into the kernel available to libc.  It contains only constants,
7c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner ***   structures, and macros generated from the original header, and thus,
8c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner ***   contains no copyrightable information.
9c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner ***
10c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner ****************************************************************************
11c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner ****************************************************************************/
12c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#ifndef _LINUX_SEM_H
13c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define _LINUX_SEM_H
14c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
15c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#include <linux/ipc.h>
16c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
17c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define SEM_UNDO 0x1000
18c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
19c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define GETPID 11
20c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define GETVAL 12
21c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define GETALL 13
22c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define GETNCNT 14
23c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define GETZCNT 15
24c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define SETVAL 16
25c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define SETALL 17
26c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
27c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define SEM_STAT 18
28c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define SEM_INFO 19
29c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
30c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turnerstruct semid_ds {
31c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner struct ipc_perm sem_perm;
32c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner __kernel_time_t sem_otime;
33c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner __kernel_time_t sem_ctime;
34c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner struct sem *sem_base;
35c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner struct sem_queue *sem_pending;
36c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner struct sem_queue **sem_pending_last;
37c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner struct sem_undo *undo;
38c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner unsigned short sem_nsems;
39c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner};
40c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
41c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#include <asm/sembuf.h>
42c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
43c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turnerstruct sembuf {
44c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner unsigned short sem_num;
45c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner short sem_op;
46c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner short sem_flg;
47c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner};
48c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
49c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turnerunion semun {
50c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner int val;
51c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner struct semid_ds __user *buf;
52c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner unsigned short __user *array;
53c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner struct seminfo __user *__buf;
54c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner void __user *__pad;
55c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner};
56c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
57c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turnerstruct seminfo {
58c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner int semmap;
59c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner int semmni;
60c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner int semmns;
61c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner int semmnu;
62c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner int semmsl;
63c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner int semopm;
64c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner int semume;
65c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner int semusz;
66c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner int semvmx;
67c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner int semaem;
68c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner};
69c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
70c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define SEMMNI 128
71c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define SEMMSL 250
72c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define SEMMNS (SEMMNI*SEMMSL)
73c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define SEMOPM 32
74c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define SEMVMX 32767
75c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define SEMAEM SEMVMX
76c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
77c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define SEMUME SEMOPM
78c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define SEMMNU SEMMNS
79c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define SEMMAP SEMMNS
80c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#define SEMUSZ 20
81c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner
82c817c5210e4207908b83faaf08a2c5b95251f871David 'Digit' Turner#endif
83