// Copyright (C) 2018-2019 Intel Corporation // SPDX-License-Identifier: Apache-2.0 // #ifndef _SEMAPHORE_H_ #define _SEMAPHORE_H_ #include <errno.h> #include <fcntl.h> #include <windows.h> #include <stdio.h> #if !defined(malloc) #include <malloc.h> #endif #if !defined(INT_MAX) #include <limits.h> #endif #ifndef SEM_VALUE_MAX #define SEM_VALUE_MAX INT_MAX #endif #if (_MSC_VER == 1800) struct timespec { /* long long in windows is the same as long in unix for 64bit */ long long tv_sec; long long tv_nsec; }; #elif (_MSC_VER >= 1800) #include "time.h" #endif #ifdef __cplusplus extern "C" { #endif struct sem_t_ { HANDLE handle; }; typedef struct sem_t_ * sem_t; int sem_init(sem_t *sem, int pshared, unsigned int value); int sem_wait(sem_t *sem); int sem_timedwait(sem_t *sem, const struct timespec *ts); int sem_post(sem_t *sem); int sem_destroy(sem_t *sem); #ifdef __cplusplus } #endif #endif /* _SEMAPHORE_H_ */