111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert/**************************************************************************** 211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert **************************************************************************** 311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** 411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** This header was automatically generated from a Linux kernel header 511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** of the same name, to make information necessary for userspace to 611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** call into the kernel available to libc. It contains only constants, 711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** structures, and macros generated from the original header, and thus, 811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** contains no copyrightable information. 911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert *** 1011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert **************************************************************************** 1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert ****************************************************************************/ 1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef _LINUX_SEM_H 1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _LINUX_SEM_H 1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <linux/ipc.h> 1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SEM_UNDO 0x1000 1811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 1911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GETPID 11 2011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GETVAL 12 2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GETALL 13 2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GETNCNT 14 2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define GETZCNT 15 2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SETVAL 16 2511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SETALL 17 2611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 2711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SEM_STAT 18 2811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SEM_INFO 19 2911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct semid_ds { 3111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct ipc_perm sem_perm; 3211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __kernel_time_t sem_otime; 3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert __kernel_time_t sem_ctime; 3411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct sem *sem_base; 3511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct sem_queue *sem_pending; 3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct sem_queue **sem_pending_last; 3711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct sem_undo *undo; 3811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned short sem_nsems; 3911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 4111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#include <asm/sembuf.h> 4211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 4311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct sembuf { 4411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned short sem_num; 4511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert short sem_op; 4611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert short sem_flg; 4711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 4811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 4911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertunion semun { 5011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int val; 5111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct semid_ds __user *buf; 5211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert unsigned short __user *array; 5311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert struct seminfo __user *__buf; 5411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert void __user *__pad; 5511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 5611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 5711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct seminfo { 5811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int semmap; 5911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int semmni; 6011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int semmns; 6111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int semmnu; 6211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int semmsl; 6311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int semopm; 6411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int semume; 6511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int semusz; 6611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int semvmx; 6711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert int semaem; 6811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 6911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SEMMNI 128 7111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SEMMSL 250 7211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SEMMNS (SEMMNI*SEMMSL) 7311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SEMOPM 32 7411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SEMVMX 32767 7511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SEMAEM SEMVMX 7611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SEMUME SEMOPM 7811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SEMMNU SEMMNS 7911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SEMMAP SEMMNS 8011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define SEMUSZ 20 8111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 8211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 83