修复多连接的问题
This commit is contained in:
42
App/util/ringbuf.h
Normal file
42
App/util/ringbuf.h
Normal file
@@ -0,0 +1,42 @@
|
||||
/*
|
||||
* 模块名称:Ring Buffer
|
||||
* 模块功能:线程安全的字节环形缓冲区(单生产者-单消费者模型)
|
||||
* 适用平台:通用嵌入式平台
|
||||
* 作者:王建锋
|
||||
* 创建日期:2026-07-19
|
||||
* 修改记录:
|
||||
* v1.0 2026-07-19 王建锋 创建初始版本
|
||||
*/
|
||||
|
||||
#ifndef __RINGBUF_H
|
||||
#define __RINGBUF_H
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stddef.h>
|
||||
|
||||
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 */
|
||||
Reference in New Issue
Block a user