xtos_ bci_ get_ stats
通过 ioctl 读取设备统计并复制到调用方结构。
本页目录
声明
#include <xtos/bci.h>
int xtos_bci_get_stats(xtos_bci_session_t *session,
struct xtos_bci_statistics *stats);参数
| 参数 | 类型 | 说明 |
|---|---|---|
| session | xtos_bci_session_t * | 非 NULL 会话句柄。 |
| stats | struct xtos_bci_statistics * | 非 NULL 输出结构,由调用方提供。 |
输出字段
| 字段 | 类型 | 含义 |
|---|---|---|
| samples_read | uint64_t | 设备统计的已读取样本数量;公开 Cyton 路径按写入缓冲的通道值计数,不等于应用消费帧数。 |
| samples_dropped | uint64_t | 设备统计的丢弃样本数量;具体计数语义由驱动定义。 |
| errors | uint64_t | 设备统计的错误数量。 |
| overruns | uint64_t | 环形缓冲区溢出数量。 |
返回值
成功返回 0 并写入 samples_read、samples_dropped、errors、overruns;失败返回 -1。
错误
| errno | 条件 |
|---|---|
| EINVAL | session 或 stats 为 NULL。 |
| ENOTTY/EOPNOTSUPP | 设备不支持统计 ioctl。 |
| system errno | ioctl 失败时返回驱动或系统 errno。 |
注意事项
- 统计语义由驱动决定;公开 Cyton 的 samples_read 统计写入缓冲的通道值,不等于应用消费的帧数。
- stats 由调用方拥有;并发 reset 或生产者更新时不保证跨字段一致快照。
示例
源码
本文按 OpenXTOS 提交 dd313955ad57542bcd2af8827157d1bbd0cf5e83 的头文件和实现编写。