/* * 模块名称:Ring Buffer * 模块功能:线程安全的字节环形缓冲区(单生产者-单消费者模型) * 适用平台:通用嵌入式平台 * 作者:王建锋 * 创建日期:2026-07-19 * 修改记录: * v1.0 2026-07-19 王建锋 创建初始版本 */ #ifndef __RINGBUF_H #define __RINGBUF_H #ifdef __cplusplus extern "C" { #endif #include #include typedef struct { uint8_t *buf; size_t size; size_t head; size_t tail; } ringbuf_t; void ringbuf_init(ringbuf_t *rb, uint8_t *pool, size_t size); size_t ringbuf_put(ringbuf_t *rb, const uint8_t *data, size_t len); size_t ringbuf_get(ringbuf_t *rb, uint8_t *data, size_t len); size_t ringbuf_peek(const ringbuf_t *rb, uint8_t *data, size_t len); size_t ringbuf_avail(const ringbuf_t *rb); size_t ringbuf_space(const ringbuf_t *rb); int ringbuf_is_empty(const ringbuf_t *rb); int ringbuf_is_full(const ringbuf_t *rb); void ringbuf_reset(ringbuf_t *rb); #ifdef __cplusplus } #endif #endif /* __RINGBUF_H */