42 lines
687 B
C
42 lines
687 B
C
|
|
/**
|
||
|
|
* @file os_semaphore.h
|
||
|
|
* @author LokLiang (lokliang@163.com)
|
||
|
|
* @brief
|
||
|
|
* @version 0.1
|
||
|
|
* @date 2023-05-01
|
||
|
|
*
|
||
|
|
* @copyright Copyright (c) 2023
|
||
|
|
*
|
||
|
|
*/
|
||
|
|
|
||
|
|
#ifndef __OS_SEMAPHORE_H__
|
||
|
|
#define __OS_SEMAPHORE_H__
|
||
|
|
|
||
|
|
#include "os/os_common.h"
|
||
|
|
|
||
|
|
#ifdef __cplusplus
|
||
|
|
extern "C"
|
||
|
|
{
|
||
|
|
#endif
|
||
|
|
|
||
|
|
typedef os_handle_t os_sem_handle_t;
|
||
|
|
|
||
|
|
typedef struct
|
||
|
|
{
|
||
|
|
os_sem_handle_t handle;
|
||
|
|
} os_sem_t;
|
||
|
|
|
||
|
|
os_state os_sem_create(os_sem_t *sem, size_t init_value, size_t max_value);
|
||
|
|
os_state os_sem_delete(os_sem_t *sem);
|
||
|
|
|
||
|
|
os_state os_sem_take(os_sem_t *sem, os_time_t wait_ms);
|
||
|
|
os_state os_sem_release(os_sem_t *sem);
|
||
|
|
|
||
|
|
bool os_sem_is_valid(os_sem_t *sem);
|
||
|
|
|
||
|
|
#ifdef __cplusplus
|
||
|
|
}
|
||
|
|
#endif
|
||
|
|
|
||
|
|
#endif /* __OS_SEMAPHORE_H__ */
|