/****************************************************************************
 ****************************************************************************
 ***
 ***   This header was automatically generated from a Linux kernel header
 ***   of the same name, to make information necessary for userspace to
 ***   call into the kernel available to libc.  It contains only constants,
 ***   structures, and macros generated from the original header, and thus,
 ***   contains no copyrightable information.
 ***
 ***   To edit the content of this header, modify the corresponding
 ***   source file (e.g. under external/kernel-headers/original/) then
 ***   run bionic/libc/kernel/tools/update_all.py
 ***
 ***   Any manual change here will be lost the next time this script will
 ***   be run. You've been warned!
 ***
 ****************************************************************************
 ****************************************************************************/
#ifndef _UAPI_LINUX_SEM_H
#define _UAPI_LINUX_SEM_H
#include <linux/ipc.h>
#define SEM_UNDO 0x1000
#define GETPID 11
#define GETVAL 12
#define GETALL 13
#define GETNCNT 14
#define GETZCNT 15
#define SETVAL 16
#define SETALL 17
#define SEM_STAT 18
#define SEM_INFO 19
#define SEM_STAT_ANY 20
struct __kernel_legacy_semid_ds {
  struct __kernel_legacy_ipc_perm sem_perm;
  __kernel_time_t sem_otime;
  __kernel_time_t sem_ctime;
  struct sem * sem_base;
  struct sem_queue * sem_pending;
  struct sem_queue * * sem_pending_last;
  struct sem_undo * undo;
  unsigned short sem_nsems;
};
#include <asm/sembuf.h>
struct sembuf {
  unsigned short sem_num;
  short sem_op;
  short sem_flg;
};
union __kernel_legacy_semun {
  int val;
  struct __kernel_legacy_semid_ds __user * buf;
  unsigned short __user * array;
  struct seminfo __user * __buf;
  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 32000
#define SEMMSL 32000
#define SEMMNS (SEMMNI * SEMMSL)
#define SEMOPM 500
#define SEMVMX 32767
#define SEMAEM SEMVMX
#define SEMUME SEMOPM
#define SEMMNU SEMMNS
#define SEMMAP SEMMNS
#define SEMUSZ 20
#endif
