XWOS API  4.0
XWOS C/C++ API参考手册
载入中...
搜索中...
未找到
cond.h
浏览该文件的文档.
1
13#ifndef __xwos_osal_sync_cond_h__
14#define __xwos_osal_sync_cond_h__
15
16#include <xwos/standard.h>
18#include <xwos/osal/time.h>
19#include <xwos/osal/sync/sel.h>
20#include <xwos/osal/lock/mtx.h>
21
87struct xwos_cond {
88 struct xwosdl_cond oscond;
89};
90
94typedef struct {
95 struct xwos_cond * cond;
98
102#define XWOS_COND_NILD ((xwos_cond_d){NULL, 0,})
103
115{
116 return xwosdl_cond_init(&cond->oscond);
117}
118
130{
131 return xwosdl_cond_fini(&cond->oscond);
132}
133
149{
150 return xwosdl_cond_grab(&cond->oscond);
151}
152
168{
169 return xwosdl_cond_put(&cond->oscond);
170}
171
183{
184 return xwosdl_cond_create((xwosdl_cond_d *)condd);
185}
186
198{
199 return xwosdl_cond_delete(&condd.cond->oscond, condd.tik);
200}
201
215{
216 return xwosdl_cond_acquire(&condd.cond->oscond, condd.tik);
217}
218
232{
233 return xwosdl_cond_release(&condd.cond->oscond, condd.tik);
234}
235
245{
246 return xwosdl_cond_get_tik(&cond->oscond);
247}
248
258{
259 xwos_cond_d condd;
260
261 condd.cond = cond;
262 condd.tik = xwosdl_cond_get_tik(&cond->oscond);
263 return condd;
264}
265
283xwer_t xwos_cond_bind(struct xwos_cond * cond, struct xwos_sel * sel, xwsq_t pos)
284{
285 return xwosdl_cond_bind(&cond->oscond, &sel->ossel, pos);
286}
287
300xwer_t xwos_cond_unbind(struct xwos_cond * cond, struct xwos_sel * sel)
301{
302 return xwosdl_cond_unbind(&cond->oscond, &sel->ossel);
303}
304
320{
321 return xwosdl_cond_freeze(&cond->oscond);
322}
323
339{
340 return xwosdl_cond_thaw(&cond->oscond);
341}
342
359{
360 return xwosdl_cond_broadcast(&cond->oscond);
361}
362
379{
380 return xwosdl_cond_unicast(&cond->oscond);
381}
382
429 union xwos_ulock lock, xwsq_t lktype, void * lkdata,
430 xwsq_t * lkst)
431{
432 return xwosdl_cond_wait(&cond->oscond, lock, lktype, lkdata, lkst);
433}
434
489 union xwos_ulock lock, xwsq_t lktype, void * lkdata,
490 xwtm_t to, xwsq_t * lkst)
491{
492 return xwosdl_cond_wait_to(&cond->oscond, lock, lktype, lkdata, to, lkst);
493}
494
540 union xwos_ulock lock, xwsq_t lktype, void * lkdata,
541 xwsq_t * lkst)
542{
543 return xwosdl_cond_wait_unintr(&cond->oscond, lock, lktype, lkdata, lkst);
544}
545
550#endif /* xwos/osal/sync/cond.h */
#define __xwos_inline_api
Definition compiler.h:179
xws64_t xwtm_t
XWOS系统时间 (有符号)
Definition type.h:742
signed long xwer_t
Definition type.h:554
unsigned long xwsq_t
Definition type.h:445
static xwer_t xwos_cond_init(struct xwos_cond *cond)
XWOS API:静态方式初始化条件量对象
Definition cond.h:114
static xwer_t xwos_cond_acquire(xwos_cond_d condd)
XWOS API:检查条件量对象的标签并增加引用计数
Definition cond.h:214
static xwer_t xwos_cond_wait_unintr(struct xwos_cond *cond, union xwos_ulock lock, xwsq_t lktype, void *lkdata, xwsq_t *lkst)
XWOS API:不可中断地等待条件量
Definition cond.h:539
static xwer_t xwos_cond_fini(struct xwos_cond *cond)
XWOS API:销毁静态方式初始化的条件量对象
Definition cond.h:129
static xwsq_t xwos_cond_get_tik(struct xwos_cond *cond)
XWOS API:获取条件量对象的标签
Definition cond.h:244
static xwer_t xwos_cond_wait(struct xwos_cond *cond, union xwos_ulock lock, xwsq_t lktype, void *lkdata, xwsq_t *lkst)
XWOS API:等待条件量
Definition cond.h:428
static xwer_t xwos_cond_delete(xwos_cond_d condd)
XWOS API:删除动态方式创建的条件量对象
Definition cond.h:197
static xwer_t xwos_cond_broadcast(struct xwos_cond *cond)
XWOS API:广播条件量对象
Definition cond.h:358
static xwer_t xwos_cond_create(xwos_cond_d *condd)
XWOS API:动态方式创建条件量对象
Definition cond.h:182
static xwer_t xwos_cond_grab(struct xwos_cond *cond)
XWOS API:增加条件量对象的引用计数
Definition cond.h:148
static xwer_t xwos_cond_thaw(struct xwos_cond *cond)
XWOS API:解冻条件量对象
Definition cond.h:338
static xwer_t xwos_cond_release(xwos_cond_d condd)
XWOS API:检查对象的标签并减少引用计数
Definition cond.h:231
static xwer_t xwos_cond_wait_to(struct xwos_cond *cond, union xwos_ulock lock, xwsq_t lktype, void *lkdata, xwtm_t to, xwsq_t *lkst)
XWOS API:限时等待条件量
Definition cond.h:488
static xwer_t xwos_cond_bind(struct xwos_cond *cond, struct xwos_sel *sel, xwsq_t pos)
XWOS API:绑定条件量对象到信号选择器
Definition cond.h:283
static xwer_t xwos_cond_freeze(struct xwos_cond *cond)
XWOS API:冻结条件量对象
Definition cond.h:319
static xwer_t xwos_cond_put(struct xwos_cond *cond)
XWOS API:减少条件量对象的引用计数
Definition cond.h:167
static xwos_cond_d xwos_cond_get_d(struct xwos_cond *cond)
XWOS API:获取条件量对象描述符
Definition cond.h:257
static xwer_t xwos_cond_unbind(struct xwos_cond *cond, struct xwos_sel *sel)
XWOS API:从信号选择器上解绑条件量对象
Definition cond.h:300
static xwer_t xwos_cond_unicast(struct xwos_cond *cond)
XWOS API:单播条件量对象
Definition cond.h:378
操作系统抽象层:条件量接口描述
操作系统抽象层:互斥锁
XWOS API:条件量对象描述符
Definition cond.h:94
xwsq_t tik
Definition cond.h:96
struct xwos_cond * cond
Definition cond.h:95
XWOS API:条件量对象
Definition cond.h:87
struct xwmp_cond oscond
Definition cond.h:88
XWOS API:信号选择器对象
Definition sel.h:78
struct xwmp_evt ossel
Definition sel.h:79
操作系统抽象层:信号选择器
操作系统抽象层:时间
所有锁的联合
Definition type.h:680
XWOS的标准头文件