13#ifndef __xwos_osal_sync_flg_h__
14#define __xwos_osal_sync_flg_h__
109#define XWOS_FLG_NILD ((xwos_flg_d){NULL, 0,})
139 return xwosdl_flg_init(&flg->
osflg, num, bmp, msk);
154 return xwosdl_flg_fini(&flg->
osflg);
173 return xwosdl_flg_grab(&flg->
osflg);
192 return xwosdl_flg_put(&flg->
osflg);
209 return xwosdl_flg_create((xwosdl_flg_d *)flgd, num);
224 return xwosdl_flg_delete(&flgd.
flg->
osflg, flgd.
tik);
241 return xwosdl_flg_acquire(&flgd.
flg->
osflg, flgd.
tik);
258 return xwosdl_flg_release(&flgd.
flg->
osflg, flgd.
tik);
271 return xwosdl_flg_get_tik(&flg->
osflg);
287 flgd.
tik = xwosdl_flg_get_tik(&flg->
osflg);
309 return xwosdl_flg_bind(&flg->
osflg, &sel->
ossel, pos);
326 return xwosdl_flg_unbind(&flg->
osflg, &sel->
ossel);
342 return xwosdl_flg_get_num(&flg->
osflg, numbuf);
364 return xwosdl_flg_s1m(&flg->
osflg, msk);
387 return xwosdl_flg_s1i(&flg->
osflg, pos);
409 return xwosdl_flg_c0m(&flg->
osflg, msk);
432 return xwosdl_flg_c0i(&flg->
osflg, pos);
454 return xwosdl_flg_x1m(&flg->
osflg, msk);
477 return xwosdl_flg_x1i(&flg->
osflg, pos);
493 return xwosdl_flg_read(&flg->
osflg, out);
538 return xwosdl_flg_wait(&flg->
osflg, trigger, consumption, origin, msk);
590 return xwosdl_flg_wait_to(&flg->
osflg, trigger, consumption, origin, msk, to);
633 return xwosdl_flg_trywait(&flg->
osflg, trigger, consumption, origin, msk);
678 return xwosdl_flg_wait_unintr(&flg->
osflg, trigger, consumption, origin, msk);
#define __xwos_inline_api
xws64_t xwtm_t
XWOS系统时间 (有符号)
static xwer_t xwos_flg_fini(struct xwos_flg *flg)
XWOS API:销毁静态方式初始化的事件标志对象
static xwer_t xwos_flg_release(xwos_flg_d flgd)
XWOS API:检查事件标志对象的标签并减少引用计数
static xwer_t xwos_flg_x1m(struct xwos_flg *flg, xwbmp_t msk[])
XWOS API:同时翻转多个事件标志位
static xwer_t xwos_flg_x1i(struct xwos_flg *flg, xwsq_t pos)
XWOS API:翻转单个事件标志位
static xwer_t xwos_flg_c0i(struct xwos_flg *flg, xwsq_t pos)
XWOS API:清除单个事件标志位
static xwer_t xwos_flg_s1m(struct xwos_flg *flg, xwbmp_t msk[])
XWOS API:同时设置多个事件标志位
static xwer_t xwos_flg_bind(struct xwos_flg *flg, struct xwos_sel *sel, xwsq_t pos)
XWOS API:绑定事件标志对象到信号选择器
static xwer_t xwos_flg_put(struct xwos_flg *flg)
XWOS API:减少事件标志对象的引用计数
static xwer_t xwos_flg_wait(struct xwos_flg *flg, enum xwos_flg_trigger_em trigger, bool consumption, xwbmp_t origin[], xwbmp_t msk[])
XWOS API:等待事件
static xwer_t xwos_flg_wait_to(struct xwos_flg *flg, enum xwos_flg_trigger_em trigger, bool consumption, xwbmp_t origin[], xwbmp_t msk[], xwtm_t to)
XWOS API:限时等待触发事件
static xwer_t xwos_flg_grab(struct xwos_flg *flg)
XWOS API:增加事件标志对象的引用计数
xwos_flg_trigger_em
事件标志触发条件枚举
static xwer_t xwos_flg_unbind(struct xwos_flg *flg, struct xwos_sel *sel)
XWOS API:从信号选择器上解绑事件标志对象
static xwos_flg_d xwos_flg_get_d(struct xwos_flg *flg)
XWOS API:获取事件标志对象描述符
static xwer_t xwos_flg_wait_unintr(struct xwos_flg *flg, enum xwos_flg_trigger_em trigger, bool consumption, xwbmp_t origin[], xwbmp_t msk[])
XWOS API:等待事件,且等待不可被中断
static xwer_t xwos_flg_s1i(struct xwos_flg *flg, xwsq_t pos)
XWOS API:设置单个事件标志位
static xwer_t xwos_flg_get_num(struct xwos_flg *flg, xwsz_t *numbuf)
XWOS API:获取事件标志中事件槽的数量
static xwer_t xwos_flg_trywait(struct xwos_flg *flg, enum xwos_flg_trigger_em trigger, bool consumption, xwbmp_t origin[], xwbmp_t msk[])
XWOS API:检查触发事件
static xwer_t xwos_flg_init(struct xwos_flg *flg, xwsz_t num, xwbmp_t *bmp, xwbmp_t *msk)
XWOS API:静态方式初始化事件标志对象
static xwer_t xwos_flg_acquire(xwos_flg_d flgd)
XWOS API:检查事件标志对象的标签并增加引用计数
static xwer_t xwos_flg_read(struct xwos_flg *flg, xwbmp_t out[])
XWOS API:读取事件标志位图的值
static xwsq_t xwos_flg_get_tik(struct xwos_flg *flg)
XWOS API:获取事件标志对象的标签
static xwer_t xwos_flg_c0m(struct xwos_flg *flg, xwbmp_t msk[])
XWOS API:同时清除多个事件标志位
static xwer_t xwos_flg_create(xwos_flg_d *flgd, xwsz_t num)
XWOS API:动态方式创建事件标志对象
static xwer_t xwos_flg_delete(xwos_flg_d flgd)
XWOS API:删除动态方式创建的事件标志对象
@ XWOS_FLG_TRIGGER_CLR_ANY
@ XWOS_FLG_TRIGGER_CLR_ALL
@ XWOS_FLG_TRIGGER_SET_ANY
@ XWOS_FLG_TRIGGER_TGL_ANY
@ XWOS_FLG_TRIGGER_TGL_ALL
@ XWOS_FLG_TRIGGER_SET_ALL