utils_ring_buffer.h 813 B

123456789101112131415161718192021
  1. #ifndef _UTILS_RING_BUFFER_H
  2. #define _UTILS_RING_BUFFER_H
  3. typedef struct{
  4. uint8_t *buf;
  5. uint32_t buf_read; //read位置
  6. uint32_t buf_write; //write位置
  7. uint32_t data_len; //可使用的数据长度
  8. uint32_t total_len; //ringbuf数据长度
  9. } ring_buffer_t;
  10. void utils_ring_buffer_init(ring_buffer_t *ring_buf, uint8_t *buffer, uint32_t size);
  11. void utils_ring_buffer_clear(ring_buffer_t *ring_buf);
  12. uint32_t utils_ring_buffer_write(ring_buffer_t *ring_buf, uint8_t *buffer, uint32_t size);
  13. uint32_t utils_ring_buffer_read(ring_buffer_t *ring_buf, uint8_t *buffer, uint32_t size);
  14. uint32_t utils_ring_buffer_data_len_get(ring_buffer_t *ring_buf);
  15. uint8_t* utils_ring_buffer_get(ring_buffer_t *ring_buf, uint32_t size);
  16. #endif // _UTILS_RING_BUFFER_H