April 2024 | ||||||
Mo | Tu | We | Th | Fr | Sa | Su |
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 1 | 2 | 3 | 4 | 5 |
6 | 7 | 8 | 9 | 10 | 11 | 12 |
01: /* Copyright (C) 1995-1999, 2000, 2003 Free Software Foundation, Inc. 02: This file is part of the GNU C Library. 03: 04: The GNU C Library is free software; you can redistribute it and/or 05: modify it under the terms of the GNU Lesser General Public 06: License as published by the Free Software Foundation; either 07: version 2.1 of the License, or (at your option) any later version. 08: 09: 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: #define _SYS_SEM_H 1 21: 22: #include <features.h> 23: 24: #define __need_size_t 25: #include <stddef.h> 26: 27: /* Get common definition of System V style IPC. */ 28: #include <sys/ipc.h> 29: 30: /* Get system dependent definition of `struct semid_ds' and more. */ 31: #include <bits/sem.h> 32: 33: #ifdef __USE_GNU 34: # define __need_timespec 35: # include <time.h> 36: #endif 37: 38: /* The following System V style IPC functions implement a semaphore 39: handling. The definition is found in XPG2. */ 40: 41: /* Structure used for argument to `semop' to describe operations. */ 42: struct sembuf 43: { 44: unsigned short int sem_num; /* semaphore number */ 45: short int sem_op; /* semaphore operation */ 46: short int sem_flg; /* operation flag */ 47: }; 48: 49: 50: __BEGIN_DECLS 51: 52: /* Semaphore control operation. */ 53: extern int semctl (int __semid, int __semnum, int __cmd, ...) __THROW; 54: 55: /* Get semaphore. */ 56: extern int semget (key_t __key, int __nsems, int __semflg) __THROW; 57: 58: /* Operate on semaphore. */ 59: extern int semop (int __semid, struct sembuf *__sops, size_t __nsops) __THROW; 60: 61: #ifdef __USE_GNU 62: /* Operate on semaphore with timeout. */ 63: extern int semtimedop (int __semid, struct sembuf *__sops, size_t __nsops, 64: __const struct timespec *__timeout) __THROW; 65: #endif 66: 67: __END_DECLS 68: 69: #endif /* sys/sem.h */ 70: