1 /*
2  * Copyright (c) 2018 Intel Corporation
3  *
4  * SPDX-License-Identifier: Apache-2.0
5  */
6 #ifndef ZEPHYR_INCLUDE_POSIX_SEMAPHORE_H_
7 #define ZEPHYR_INCLUDE_POSIX_SEMAPHORE_H_
8 
9 #include <zephyr/posix/time.h>
10 #include "posix_types.h"
11 
12 #ifdef __cplusplus
13 extern "C" {
14 #endif
15 
16 #define SEM_FAILED ((sem_t *) 0)
17 
18 int sem_destroy(sem_t *semaphore);
19 int sem_getvalue(sem_t *ZRESTRICT semaphore, int *ZRESTRICT value);
20 int sem_init(sem_t *semaphore, int pshared, unsigned int value);
21 int sem_post(sem_t *semaphore);
22 int sem_timedwait(sem_t *ZRESTRICT semaphore, struct timespec *ZRESTRICT abstime);
23 int sem_trywait(sem_t *semaphore);
24 int sem_wait(sem_t *semaphore);
25 sem_t *sem_open(const char *name, int oflags, ...);
26 int sem_unlink(const char *name);
27 int sem_close(sem_t *sem);
28 
29 #ifdef __cplusplus
30 }
31 #endif
32 
33 #endif /* ZEPHYR_INCLUDE_POSIX_SEMAPHORE_H_ */
34