OpenCores
URL https://opencores.org/ocsvn/c0or1k/c0or1k/trunk

Subversion Repositories c0or1k

[/] [c0or1k/] [trunk/] [conts/] [posix/] [libposix/] [include/] [posix/] [bits/] [sem.h] - Blame information for rev 2

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 drasko
/* 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.  */
39
struct 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
 
73
struct  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 */

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.