194f03308SSascha Wildner /*- 294f03308SSascha Wildner * Copyright (c) 1996, 1997 394f03308SSascha Wildner * HD Associates, Inc. All rights reserved. 494f03308SSascha Wildner * 594f03308SSascha Wildner * Redistribution and use in source and binary forms, with or without 694f03308SSascha Wildner * modification, are permitted provided that the following conditions 794f03308SSascha Wildner * are met: 894f03308SSascha Wildner * 1. Redistributions of source code must retain the above copyright 994f03308SSascha Wildner * notice, this list of conditions and the following disclaimer. 1094f03308SSascha Wildner * 2. Redistributions in binary form must reproduce the above copyright 1194f03308SSascha Wildner * notice, this list of conditions and the following disclaimer in the 1294f03308SSascha Wildner * documentation and/or other materials provided with the distribution. 1394f03308SSascha Wildner * 3. All advertising materials mentioning features or use of this software 1494f03308SSascha Wildner * must display the following acknowledgement: 1594f03308SSascha Wildner * This product includes software developed by HD Associates, Inc 1694f03308SSascha Wildner * 4. Neither the name of the author nor the names of any co-contributors 1794f03308SSascha Wildner * may be used to endorse or promote products derived from this software 1894f03308SSascha Wildner * without specific prior written permission. 1994f03308SSascha Wildner * 2094f03308SSascha Wildner * THIS SOFTWARE IS PROVIDED BY HD ASSOCIATES AND CONTRIBUTORS ``AS IS'' AND 2194f03308SSascha Wildner * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 2294f03308SSascha Wildner * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 2394f03308SSascha Wildner * ARE DISCLAIMED. IN NO EVENT SHALL HD ASSOCIATES OR CONTRIBUTORS BE LIABLE 2494f03308SSascha Wildner * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 2594f03308SSascha Wildner * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 2694f03308SSascha Wildner * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 2794f03308SSascha Wildner * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 2894f03308SSascha Wildner * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 2994f03308SSascha Wildner * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 3094f03308SSascha Wildner * SUCH DAMAGE. 3194f03308SSascha Wildner * 3294f03308SSascha Wildner * $FreeBSD: src/sys/posix4/semaphore.h,v 1.6 2000/01/20 07:55:42 jasone Exp $ 3394f03308SSascha Wildner */ 3494f03308SSascha Wildner 3594f03308SSascha Wildner #ifndef _SEMAPHORE_H_ 3694f03308SSascha Wildner #define _SEMAPHORE_H_ 3794f03308SSascha Wildner 3894f03308SSascha Wildner /* semaphore.h: POSIX 1003.1b semaphores */ 3994f03308SSascha Wildner 4094f03308SSascha Wildner #include <sys/cdefs.h> 4194f03308SSascha Wildner #include <sys/_timespec.h> 4294f03308SSascha Wildner #include <machine/limits.h> 4394f03308SSascha Wildner 4494f03308SSascha Wildner /* Opaque type definition. */ 4594f03308SSascha Wildner struct sem; 4694f03308SSascha Wildner typedef struct sem *sem_t; 4794f03308SSascha Wildner 4894f03308SSascha Wildner #define SEM_FAILED ((sem_t *)0) 4994f03308SSascha Wildner #define SEM_VALUE_MAX INT_MAX 5094f03308SSascha Wildner 5194f03308SSascha Wildner __BEGIN_DECLS 5294f03308SSascha Wildner int sem_init(sem_t *, int, unsigned int); 5394f03308SSascha Wildner int sem_destroy(sem_t *); 5494f03308SSascha Wildner sem_t *sem_open(const char *, int, ...); 5594f03308SSascha Wildner int sem_close(sem_t *); 5694f03308SSascha Wildner int sem_unlink(const char *); 5794f03308SSascha Wildner int sem_wait(sem_t *); 5894f03308SSascha Wildner int sem_trywait(sem_t *); 5994f03308SSascha Wildner int sem_timedwait(sem_t * __restrict, const struct timespec * __restrict); 6094f03308SSascha Wildner int sem_post(sem_t *); 6194f03308SSascha Wildner int sem_getvalue(sem_t * __restrict, int * __restrict); 6294f03308SSascha Wildner __END_DECLS 6394f03308SSascha Wildner 64*91bc5450SSascha Wildner #endif /* !_SEMAPHORE_H_ */ 65