XTOS / OPEN SOURCE REAL-TIME SYSTEMOPEN SOURCE · VERSION 0.9.0 · BUILD FROM SOURCE
libxtos-rtxtos_spsc_create

xtos_spsc_create

创建固定容量的单生产者、单消费者样本帧队列。

本页目录

声明

c
#include <xtos/spsc.h>

struct xtos_spsc_queue *xtos_spsc_create(size_t capacity, uint32_t channels);

参数

参数类型说明
capacitysize_t可存储的完整帧数,必须大于 0;不是字节数。
channelsuint32_t每帧通道数,必须大于 0;每槽为此数量分配 int32 样本。

返回值

成功返回不透明队列指针;失败返回 NULL,并设置 errno。队列由调用方销毁。

错误

errno条件
EINVALcapacity 或 channels 为 0。
ENOMEM队列、槽或槽内样本分配失败。

注意事项

  • 创建和销毁会分配或释放堆内存;运行中的 push/pop 不分配。capacity×槽大小和 channels×sizeof(int32_t) 的乘法由 calloc/后续复制承担,公开实现没有显式溢出上限检查;应用应使用可验证的合理容量和通道数。
  • 必须严格由一个生产者调用 push、一个消费者调用 pop;销毁前两个端点都必须停止。

示例

源码

本文按 OpenXTOS 提交 dd313955ad57542bcd2af8827157d1bbd0cf5e83 的头文件和实现编写。