diff options
| author | David Howells <dhowells@redhat.com> | 2012-10-13 10:46:48 +0100 | 
|---|---|---|
| committer | David Howells <dhowells@redhat.com> | 2012-10-13 10:46:48 +0100 | 
| commit | 607ca46e97a1b6594b29647d98a32d545c24bdff (patch) | |
| tree | 30f4c0784bfddb57332cdc0678bd06d1e77fa185 /include/uapi/linux/sem.h | |
| parent | 08cce05c5a91f5017f4edc9866cf026908c73f9f (diff) | |
| download | olio-linux-3.10-607ca46e97a1b6594b29647d98a32d545c24bdff.tar.xz olio-linux-3.10-607ca46e97a1b6594b29647d98a32d545c24bdff.zip  | |
UAPI: (Scripted) Disintegrate include/linux
Signed-off-by: David Howells <dhowells@redhat.com>
Acked-by: Arnd Bergmann <arnd@arndb.de>
Acked-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Michael Kerrisk <mtk.manpages@gmail.com>
Acked-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Acked-by: Dave Jones <davej@redhat.com>
Diffstat (limited to 'include/uapi/linux/sem.h')
| -rw-r--r-- | include/uapi/linux/sem.h | 80 | 
1 files changed, 80 insertions, 0 deletions
diff --git a/include/uapi/linux/sem.h b/include/uapi/linux/sem.h new file mode 100644 index 00000000000..541fce03b50 --- /dev/null +++ b/include/uapi/linux/sem.h @@ -0,0 +1,80 @@ +#ifndef _UAPI_LINUX_SEM_H +#define _UAPI_LINUX_SEM_H + +#include <linux/ipc.h> + +/* semop flags */ +#define SEM_UNDO        0x1000  /* undo the operation on exit */ + +/* semctl Command Definitions. */ +#define GETPID  11       /* get sempid */ +#define GETVAL  12       /* get semval */ +#define GETALL  13       /* get all semval's */ +#define GETNCNT 14       /* get semncnt */ +#define GETZCNT 15       /* get semzcnt */ +#define SETVAL  16       /* set semval */ +#define SETALL  17       /* set all semval's */ + +/* ipcs ctl cmds */ +#define SEM_STAT 18 +#define SEM_INFO 19 + +/* Obsolete, used only for backwards compatibility and libc5 compiles */ +struct semid_ds { +	struct ipc_perm	sem_perm;		/* permissions .. see ipc.h */ +	__kernel_time_t	sem_otime;		/* last semop time */ +	__kernel_time_t	sem_ctime;		/* last change time */ +	struct sem	*sem_base;		/* ptr to first semaphore in array */ +	struct sem_queue *sem_pending;		/* pending operations to be processed */ +	struct sem_queue **sem_pending_last;	/* last pending operation */ +	struct sem_undo	*undo;			/* undo requests on this array */ +	unsigned short	sem_nsems;		/* no. of semaphores in array */ +}; + +/* Include the definition of semid64_ds */ +#include <asm/sembuf.h> + +/* semop system calls takes an array of these. */ +struct sembuf { +	unsigned short  sem_num;	/* semaphore index in array */ +	short		sem_op;		/* semaphore operation */ +	short		sem_flg;	/* operation flags */ +}; + +/* arg for semctl system calls. */ +union semun { +	int val;			/* value for SETVAL */ +	struct semid_ds __user *buf;	/* buffer for IPC_STAT & IPC_SET */ +	unsigned short __user *array;	/* array for GETALL & SETALL */ +	struct seminfo __user *__buf;	/* buffer for IPC_INFO */ +	void __user *__pad; +}; + +struct  seminfo { +	int semmap; +	int semmni; +	int semmns; +	int semmnu; +	int semmsl; +	int semopm; +	int semume; +	int semusz; +	int semvmx; +	int semaem; +}; + +#define SEMMNI  128             /* <= IPCMNI  max # of semaphore identifiers */ +#define SEMMSL  250             /* <= 8 000 max num of semaphores per id */ +#define SEMMNS  (SEMMNI*SEMMSL) /* <= INT_MAX max # of semaphores in system */ +#define SEMOPM  32	        /* <= 1 000 max num of ops per semop call */ +#define SEMVMX  32767           /* <= 32767 semaphore maximum value */ +#define SEMAEM  SEMVMX          /* adjust on exit max value */ + +/* unused */ +#define SEMUME  SEMOPM          /* max num of undo entries per process */ +#define SEMMNU  SEMMNS          /* num of undo structures system wide */ +#define SEMMAP  SEMMNS          /* # of entries in semaphore map */ +#define SEMUSZ  20		/* sizeof struct sem_undo */ + + +#endif /* _UAPI_LINUX_SEM_H */  |