13#ifndef __xwos_osal_sync_flg_h__
14#define __xwos_osal_sync_flg_h__
108#define XWOS_FLG_NILD ((xwos_flg_d){NULL, 0,})
118#define XWOS_FLG_TRIGGER_SET_ALL XWOSDL_FLG_TRIGGER_SET_ALL
122#define XWOS_FLG_TRIGGER_SET_ANY XWOSDL_FLG_TRIGGER_SET_ANY
126#define XWOS_FLG_TRIGGER_CLR_ALL XWOSDL_FLG_TRIGGER_CLR_ALL
130#define XWOS_FLG_TRIGGER_CLR_ANY XWOSDL_FLG_TRIGGER_CLR_ANY
136#define XWOS_FLG_TRIGGER_TGL_ALL XWOSDL_FLG_TRIGGER_TGL_ALL
141#define XWOS_FLG_TRIGGER_TGL_ANY XWOSDL_FLG_TRIGGER_TGL_ANY
153#define XWOS_FLG_ACTION_NONE XWOSDL_FLG_ACTION_NONE
164#define XWOS_FLG_ACTION_CONSUMPTION XWOSDL_FLG_ACTION_CONSUMPTION
185 return xwosdl_flg_init(&flg->
osflg, num, bmp, msk);
200 return xwosdl_flg_fini(&flg->
osflg);
219 return xwosdl_flg_grab(&flg->
osflg);
238 return xwosdl_flg_put(&flg->
osflg);
255 return xwosdl_flg_create((xwosdl_flg_d *)flgd, num);
270 return xwosdl_flg_delete(&flgd.
flg->
osflg, flgd.
tik);
287 return xwosdl_flg_acquire(&flgd.
flg->
osflg, flgd.
tik);
304 return xwosdl_flg_release(&flgd.
flg->
osflg, flgd.
tik);
317 return xwosdl_flg_get_tik(&flg->
osflg);
333 flgd.
tik = xwosdl_flg_get_tik(&flg->
osflg);
355 return xwosdl_flg_bind(&flg->
osflg, &sel->
ossel, pos);
372 return xwosdl_flg_unbind(&flg->
osflg, &sel->
ossel);
388 return xwosdl_flg_get_num(&flg->
osflg, numbuf);
410 return xwosdl_flg_s1m(&flg->
osflg, msk);
433 return xwosdl_flg_s1i(&flg->
osflg, pos);
455 return xwosdl_flg_c0m(&flg->
osflg, msk);
478 return xwosdl_flg_c0i(&flg->
osflg, pos);
500 return xwosdl_flg_x1m(&flg->
osflg, msk);
523 return xwosdl_flg_x1i(&flg->
osflg, pos);
539 return xwosdl_flg_read(&flg->
osflg, out);
583 return xwosdl_flg_wait(&flg->
osflg, trigger, action, origin, msk);
634 return xwosdl_flg_wait_to(&flg->
osflg, trigger, action, origin, msk, to);
676 return xwosdl_flg_trywait(&flg->
osflg, trigger, action, 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_trywait(struct xwos_flg *flg, xwsq_t trigger, xwsq_t action, xwbmp_t origin[], xwbmp_t msk[])
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_wait_to(struct xwos_flg *flg, xwsq_t trigger, xwsq_t action, xwbmp_t origin[], xwbmp_t msk[], xwtm_t to)
XWOS API:限时等待触发事件
static xwer_t xwos_flg_put(struct xwos_flg *flg)
XWOS API:减少事件标志对象的引用计数
static xwer_t xwos_flg_grab(struct xwos_flg *flg)
XWOS API:增加事件标志对象的引用计数
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_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_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_wait(struct xwos_flg *flg, xwsq_t trigger, xwsq_t action, xwbmp_t origin[], xwbmp_t msk[])
XWOS API:等待事件
static xwer_t xwos_flg_delete(xwos_flg_d flgd)
XWOS API:删除动态方式创建的事件标志对象