|
XWOS API
4.0
XWOS C/C++ API参考手册
|

结构体 | |
| struct | xwos_flg |
| XWOS API:事件标志对象 更多... | |
| struct | xwos_flg_d |
| XWOS API:事件标志对象描述符 更多... | |
宏定义 | |
| #define | XWOS_FLG_NILD ((xwos_flg_d){NULL, 0,}) |
| XWOS API:空的事件标志对象描述符 | |
枚举 | |
| enum | xwos_flg_trigger_em { XWOS_FLG_TRIGGER_SET_ALL = XWMP_FLG_TRIGGER_SET_ALL , XWOS_FLG_TRIGGER_SET_ANY = XWMP_FLG_TRIGGER_SET_ANY , XWOS_FLG_TRIGGER_CLR_ALL = XWMP_FLG_TRIGGER_CLR_ALL , XWOS_FLG_TRIGGER_CLR_ANY = XWMP_FLG_TRIGGER_CLR_ANY , XWOS_FLG_TRIGGER_TGL_ALL = XWMP_FLG_TRIGGER_TGL_ALL , XWOS_FLG_TRIGGER_TGL_ANY = XWMP_FLG_TRIGGER_TGL_ANY } |
| 事件标志触发条件枚举 更多... | |
函数 | |
| 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_fini (struct xwos_flg *flg) |
| XWOS API:销毁静态方式初始化的事件标志对象 | |
| static xwer_t | xwos_flg_grab (struct xwos_flg *flg) |
| XWOS API:增加事件标志对象的引用计数 | |
| static xwer_t | xwos_flg_put (struct xwos_flg *flg) |
| 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:删除动态方式创建的事件标志对象 | |
| static xwer_t | xwos_flg_acquire (xwos_flg_d flgd) |
| XWOS API:检查事件标志对象的标签并增加引用计数 | |
| static xwer_t | xwos_flg_release (xwos_flg_d flgd) |
| XWOS API:检查事件标志对象的标签并减少引用计数 | |
| static xwsq_t | xwos_flg_get_tik (struct xwos_flg *flg) |
| XWOS API:获取事件标志对象的标签 | |
| static xwos_flg_d | xwos_flg_get_d (struct xwos_flg *flg) |
| 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_unbind (struct xwos_flg *flg, struct xwos_sel *sel) |
| XWOS API:从信号选择器上解绑事件标志对象 | |
| static xwer_t | xwos_flg_get_num (struct xwos_flg *flg, xwsz_t *numbuf) |
| XWOS API:获取事件标志中事件槽的数量 | |
| static xwer_t | xwos_flg_s1m (struct xwos_flg *flg, 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_c0m (struct xwos_flg *flg, xwbmp_t msk[]) |
| XWOS API:同时清除多个事件标志位 | |
| static xwer_t | xwos_flg_c0i (struct xwos_flg *flg, xwsq_t pos) |
| 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_read (struct xwos_flg *flg, xwbmp_t out[]) |
| 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_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_wait_unintr (struct xwos_flg *flg, enum xwos_flg_trigger_em trigger, bool consumption, xwbmp_t origin[], xwbmp_t msk[]) |
| XWOS API:等待事件,且等待不可被中断 | |
技术参考手册: 事件标志
xwos_flg_init() :静态初始化xwos_flg_fini() :销毁xwos_flg_create() :动态创建xwos_flg_delete() :删除xwos_flg_s1m() :同时设置多个事件标志位xwos_flg_s1i() :设置单个事件标志位xwos_flg_c0m() :同时清除多个事件标志位xwos_flg_c0i() :清除单个事件标志位xwos_flg_x1m() :同时翻转多个事件标志位xwos_flg_x1i() :翻转单个事件标志位xwos_flg_get_num() :获取事件标志中总共有多少个事件xwos_flg_read() :读取事件标志中位图值xwos_flg_wait() :等待事件xwos_flg_wait_to() :限时等待事件xwos_flg_trywait() :仅测试事件xwos_flg_wait_unintr() :等待事件,且等待不可被中断xwos_flg_bind() :将事件标志绑定到 信号选择器 上xwos_flg_unbind() :从 信号选择器 上解绑xwos_flg_grab() :增加引用计数xwos_flg_put() :减少引用计数xwos_flg_acquire() :增加引用计数xwos_flg_release() :减少引用计数已知事件标志对象的指针的情况下,可以通过 xwos_flg_get_d() 获取 xwos_flg_d , 或可以通过 xwos_flg_get_tik() 获取对象标签。
C++头文件: xwos/osal/sync/flg.hxx
| #define XWOS_FLG_NILD ((xwos_flg_d){NULL, 0,}) |
| enum xwos_flg_trigger_em |
事件标志触发条件枚举
| 枚举值 | |
|---|---|
| XWOS_FLG_TRIGGER_SET_ALL | |
| XWOS_FLG_TRIGGER_SET_ANY | |
| XWOS_FLG_TRIGGER_CLR_ALL | |
| XWOS_FLG_TRIGGER_CLR_ANY | |
| XWOS_FLG_TRIGGER_TGL_ALL | |
| XWOS_FLG_TRIGGER_TGL_ANY | |
|
inlinestatic |
XWOS API:静态方式初始化事件标志对象
| [in] | flg | 事件标志对象的指针 |
| [in] | num | 事件标志中的事件数量 |
| [in] | bmp | 事件标志用来记录事件状态的位图缓冲区 |
| [in] | msk | 事件标志用来记录事件掩码的位图缓冲区 |
| XWOK | 没有错误 |
| -EFAULT | 无效的指针或空指针 |

|
inlinestatic |
|
inlinestatic |
XWOS API:删除动态方式创建的事件标志对象
| [in] | flgd | 事件标志对象描述符 |
| XWOK | 没有错误 |
| -EFAULT | 无效的指针或空指针 |

|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
XWOS API:获取事件标志对象描述符
| [in] | flg | 事件标志对象的指针 |
|
inlinestatic |
XWOS API:绑定事件标志对象到信号选择器
| [in] | flg | 事件标志对象的指针 |
| [in] | sel | 信号选择器的指针 |
| [in] | pos | 事件标志对象映射到位图中的位置 |
| XWOK | 没有错误 |
| -EFAULT | 无效的指针或空指针 |
| -ECHRNG | 位置超出范围 |
| -EALREADY | 同步对象已经绑定到事件对象 |
| -EBUSY | 通道已经被其他同步对象独占 |

XWOS API:同时设置多个事件标志位
| [in] | flg | 事件标志对象指针 |
| [in] | msk | 事件标志对象的位图掩码 |
| XWOK | 没有错误 |
| -EFAULT | 无效的指针或空指针 |
msk 覆盖的位全部设置为 1 , 然后 广播 所有正在等待的线程。+ 缩写说明: s == set, m == mask 。

XWOS API:设置单个事件标志位
| [in] | flg | 事件标志对象指针 |
| [in] | pos | 事件的序号 |
| XWOK | 没有错误 |
| -EFAULT | 无效的指针或空指针 |
| -ECHRNG | 位置超出范围 |
pos 的单个位设置为 1 , 然后 广播 所有正在等待的线程。+ 缩写说明: s == set, i == index 。

XWOS API:同时清除多个事件标志位
| [in] | flg | 事件标志对象指针 |
| [in] | msk | 事件的位图掩码 |
| XWOK | 没有错误 |
| -EFAULT | 无效的指针或空指针 |
msk 覆盖的位全部清 0 , 然后 广播 所有正在等待的线程。+ 缩写说明: c == clear, m == mask 。

XWOS API:清除单个事件标志位
| [in] | flg | 事件标志对象指针 |
| [in] | pos | 事件的序号 |
| XWOK | 没有错误 |
| -EFAULT | 无效的指针或空指针 |
| -ECHRNG | 位置超出范围 |
pos 的单个位清 0 , 然后 广播 所有正在等待的线程。+ 缩写说明: c == clear, i == index 。

XWOS API:同时翻转多个事件标志位
| [in] | flg | 事件标志对象指针 |
| [in] | msk | 事件的位图掩码 |
| XWOK | 没有错误 |
| -EFAULT | 无效的指针或空指针 |
msk 覆盖的位全部翻转, 然后 广播 所有正在等待的线程。+ 缩写说明: x == exclusive OR, m == mask 。

XWOS API:翻转单个事件标志位
| [in] | flg | 事件标志对象指针 |
| [in] | pos | 事件的序号 |
| XWOK | 没有错误 |
| -EFAULT | 无效的指针或空指针 |
| -ECHRNG | 位置超出范围 |
pos 的单个位翻转, 然后 广播 所有正在等待的线程。+ 缩写说明: x == exclusive OR, i == index 。

|
inlinestatic |
XWOS API:等待事件
| [in] | flg | 事件标志对象指针 |
| [in] | trigger | 事件触发条件,取值:
|
| [in] | consumption | 事件触发后是否清除事件:
|
| [in,out] | origin | 指向缓冲区的指针:
|
| [in] | msk | 事件的位图掩码,表示只关注掩码部分的事件 |
| XWOK | 没有错误 |
| -EFAULT | 无效的指针或空指针 |
| -EINVAL | 参数无效 |
| -EINTR | 等待被中断 |
| -ENOTTHDCTX | 不在线程上下文中 |
XWOK 。-EINTR 。 
|
inlinestatic |
XWOS API:限时等待触发事件
| [in] | flg | 事件标志对象指针 |
| [in] | trigger | 事件触发条件,取值:
|
| [in] | consumption | 事件触发后是否清除事件:
|
| [in,out] | origin | 指向缓冲区的指针:
|
| [in] | msk | 事件的位图掩码,表示只关注掩码部分的事件 |
| [in] | to | 期望唤醒的时间点 |
| XWOK | 没有错误 |
| -EFAULT | 无效的指针或空指针 |
| -EINVAL | 参数无效 |
| -ETIMEDOUT | 超时 |
| -EINTR | 等待被中断 |
| -ENOTTHDCTX | 不在线程上下文中 |
XWOK 。to , to 表示等待超时的时间点:to 通常是未来的时间,即 当前系统时间 + delta , 可以使用 xwtm_ft(delta) 表示;to 是过去的时间点,将直接返回 -ETIMEDOUT 。-EINTR 。 
|
inlinestatic |
XWOS API:检查触发事件
| [in] | flg | 事件标志对象指针 |
| [in] | trigger | 事件触发条件,取值:
|
| [in] | consumption | 事件触发后是否清除事件:
|
| [in,out] | origin | 指向缓冲区的指针:
|
| [in] | msk | 事件的位图掩码,表示只关注掩码部分的事件 |
| XWOK | 没有错误 |
| -EFAULT | 无效的指针或空指针 |
| -EINVAL | 参数无效 |
| -ENODATA | 没有任何事件触发 |
XWOK 。-ENODATA 。 
|
inlinestatic |
XWOS API:等待事件,且等待不可被中断
| [in] | flg | 事件标志对象指针 |
| [in] | trigger | 事件触发条件,取值:
|
| [in] | consumption | 事件触发后是否清除事件:
|
| [in,out] | origin | 指向缓冲区的指针:
|
| [in] | msk | 事件的位图掩码,表示只关注掩码部分的事件 |
| XWOK | 没有错误 |
| -EFAULT | 无效的指针或空指针 |
| -EINVAL | 参数无效 |
| -EINTR | 等待被中断 |
| -ENOTTHDCTX | 不在线程上下文中 |
XWOK 。-EINTR 。 