13#ifndef __xwos_osal_sync_sem_h__
14#define __xwos_osal_sync_sem_h__
110#define XWOS_SEM_NILD ((xwos_sem_d){NULL, 0,})
127 return xwosdl_sem_init(&sem->
ossem, val, max);
142 return xwosdl_sem_fini(&sem->
ossem);
161 return xwosdl_sem_grab(&sem->
ossem);
180 return xwosdl_sem_put(&sem->
ossem);
199 return xwosdl_sem_create((xwosdl_sem_d *)semd, val, max);
214 return xwosdl_sem_delete(&semd.
sem->
ossem, semd.
tik);
231 return xwosdl_sem_acquire(&semd.
sem->
ossem, semd.
tik);
248 return xwosdl_sem_release(&semd.
sem->
ossem, semd.
tik);
261 return xwosdl_sem_get_tik(&sem->
ossem);
277 semd.
tik = xwosdl_sem_get_tik(&sem->
ossem);
299 return xwosdl_sem_bind(&sem->
ossem, &sel->
ossel, pos);
316 return xwosdl_sem_unbind(&sem->
ossem, &sel->
ossel);
337 return xwosdl_sem_freeze(&sem->
ossem);
356 return xwosdl_sem_thaw(&sem->
ossem);
375 return xwosdl_sem_post(&sem->
ossem);
394 return xwosdl_sem_wait(&sem->
ossem);
420 return xwosdl_sem_wait_to(&sem->
ossem, to);
438 return xwosdl_sem_wait_unintr(&sem->
ossem);
456 return xwosdl_sem_trywait(&sem->
ossem);
472 return xwosdl_sem_get_max(&sem->
ossem, max);
488 return xwosdl_sem_get_value(&sem->
ossem, val);
#define __xwos_inline_api
xws64_t xwtm_t
XWOS系统时间 (有符号)
static xwos_sem_d xwos_sem_get_d(struct xwos_sem *sem)
XWOS API:获取信号量对象描述符
static xwer_t xwos_sem_get_value(struct xwos_sem *sem, xwssq_t *val)
XWOS API:获取信号量对象计数器的值
static xwer_t xwos_sem_release(xwos_sem_d semd)
XWOS API:检查对象的标签并减少引用计数
static xwer_t xwos_sem_get_max(struct xwos_sem *sem, xwssq_t *max)
XWOS API:获取信号量对象计数器的最大值
static xwer_t xwos_sem_trywait(struct xwos_sem *sem)
XWOS API:尝试获取信号量
static xwer_t xwos_sem_bind(struct xwos_sem *sem, struct xwos_sel *sel, xwsq_t pos)
XWOS API:绑定信号量对象到信号选择器
static xwer_t xwos_sem_unbind(struct xwos_sem *sem, struct xwos_sel *sel)
XWOS API:从信号选择器上解绑信号量对象
static xwer_t xwos_sem_wait(struct xwos_sem *sem)
XWOS API:等待并获取信号量
static xwer_t xwos_sem_delete(xwos_sem_d semd)
XWOS API:删除动态方式创建的信号量对象
static xwer_t xwos_sem_grab(struct xwos_sem *sem)
XWOS API:增加信号量对象的引用计数
static xwer_t xwos_sem_wait_unintr(struct xwos_sem *sem)
XWOS API:等待并获取信号量,且等待不可被中断
static xwer_t xwos_sem_put(struct xwos_sem *sem)
XWOS API:减少信号量对象的引用计数
static xwer_t xwos_sem_fini(struct xwos_sem *sem)
XWOS API:销毁静态方式初始化的信号量对象
static xwer_t xwos_sem_freeze(struct xwos_sem *sem)
XWOS API:冻结信号量对象
static xwer_t xwos_sem_wait_to(struct xwos_sem *sem, xwtm_t to)
XWOS API:限时等待并获取信号量
static xwer_t xwos_sem_acquire(xwos_sem_d semd)
XWOS API:检查信号量对象的标签并增加引用计数
static xwer_t xwos_sem_thaw(struct xwos_sem *sem)
XWOS API:解冻信号量对象
static xwsq_t xwos_sem_get_tik(struct xwos_sem *sem)
XWOS API:获取信号量对象的标签
static xwer_t xwos_sem_create(xwos_sem_d *semd, xwssq_t val, xwssq_t max)
XWOS API:动态方式创建信号量对象
static xwer_t xwos_sem_init(struct xwos_sem *sem, xwssq_t val, xwssq_t max)
XWOS API:静态方式初始化信号量对象
static xwer_t xwos_sem_post(struct xwos_sem *sem)
XWOS API:发布信号量