xtos_ spsc_ create
创建固定容量的单生产者、单消费者样本帧队列。
本页目录
声明
#include <xtos/spsc.h>
struct xtos_spsc_queue *xtos_spsc_create(size_t capacity, uint32_t channels);参数
| 参数 | 类型 | 说明 |
|---|---|---|
| capacity | size_t | 可存储的完整帧数,必须大于 0;不是字节数。 |
| channels | uint32_t | 每帧通道数,必须大于 0;每槽为此数量分配 int32 样本。 |
返回值
成功返回不透明队列指针;失败返回 NULL,并设置 errno。队列由调用方销毁。
错误
| errno | 条件 |
|---|---|
| EINVAL | capacity 或 channels 为 0。 |
| ENOMEM | 队列、槽或槽内样本分配失败。 |
注意事项
- 创建和销毁会分配或释放堆内存;运行中的 push/pop 不分配。capacity×槽大小和 channels×sizeof(int32_t) 的乘法由 calloc/后续复制承担,公开实现没有显式溢出上限检查;应用应使用可验证的合理容量和通道数。
- 必须严格由一个生产者调用 push、一个消费者调用 pop;销毁前两个端点都必须停止。
示例
源码
本文按 OpenXTOS 提交 dd313955ad57542bcd2af8827157d1bbd0cf5e83 的头文件和实现编写。