• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/toolchains/hndtools-arm-linux-2.6.36-uclibc-4.5.3/usr/include/bits/
1/* Copyright (C) 1995, 1996, 1997, 1998, 2000 Free Software Foundation, Inc.
2   This file is part of the GNU C Library.
3
4   The GNU C Library is free software; you can redistribute it and/or
5   modify it under the terms of the GNU Lesser General Public
6   License as published by the Free Software Foundation; either
7   version 2.1 of the License, or (at your option) any later version.
8
9   The GNU C Library is distributed in the hope that it will be useful,
10   but WITHOUT ANY WARRANTY; without even the implied warranty of
11   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12   Lesser General Public License for more details.
13
14   You should have received a copy of the GNU Lesser General Public
15   License along with the GNU C Library; if not, write to the Free
16   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
17   02111-1307 USA.  */
18
19#ifndef _SYS_SEM_H
20# error "Never include <bits/sem.h> directly; use <sys/sem.h> instead."
21#endif
22
23#include <sys/types.h>
24
25/* Flags for `semop'.  */
26#define SEM_UNDO	0x1000		/* undo the operation on exit */
27
28/* Commands for `semctl'.  */
29#define GETPID		11		/* get sempid */
30#define GETVAL		12		/* get semval */
31#define GETALL		13		/* get all semval's */
32#define GETNCNT		14		/* get semncnt */
33#define GETZCNT		15		/* get semzcnt */
34#define SETVAL		16		/* set semval */
35#define SETALL		17		/* set all semval's */
36
37
38/* Data structure describing a set of semaphores.  */
39struct semid_ds
40{
41  struct ipc_perm sem_perm;		/* operation permission struct */
42  __time_t sem_otime;			/* last semop() time */
43  unsigned long int __unused1;
44  __time_t sem_ctime;			/* last time changed by semctl() */
45  unsigned long int __unused2;
46  unsigned long int sem_nsems;		/* number of semaphores in set */
47  unsigned long int __unused3;
48  unsigned long int __unused4;
49};
50
51/* The user should define a union like the following to use it for arguments
52   for `semctl'.
53
54   union semun
55   {
56     int val;				<= value for SETVAL
57     struct semid_ds *buf;		<= buffer for IPC_STAT & IPC_SET
58     unsigned short int *array;		<= array for GETALL & SETALL
59     struct seminfo *__buf;		<= buffer for IPC_INFO
60   };
61
62   Previous versions of this file used to define this union but this is
63   incorrect.  One can test the macro _SEM_SEMUN_UNDEFINED to see whether
64   one must define the union or not.  */
65#define _SEM_SEMUN_UNDEFINED	1
66
67#ifdef __USE_MISC
68
69/* ipcs ctl cmds */
70# define SEM_STAT 18
71# define SEM_INFO 19
72
73struct  seminfo
74{
75  int semmap;
76  int semmni;
77  int semmns;
78  int semmnu;
79  int semmsl;
80  int semopm;
81  int semume;
82  int semusz;
83  int semvmx;
84  int semaem;
85};
86
87#endif /* __USE_MISC */
88