ring.h 402 B

12345678910111213141516171819202122
  1. #pragma once
  2. #include <stdint.h>
  3. #include <string.h>
  4. typedef struct Ring Ring;
  5. Ring* ring_alloc(size_t size);
  6. void ring_free(Ring* ring);
  7. size_t ring_size(Ring* ring);
  8. size_t ring_read_space(Ring* ring);
  9. size_t ring_write_space(Ring* ring);
  10. size_t ring_push(Ring* ring, const uint8_t* data, size_t size);
  11. size_t ring_pull(Ring* ring, uint8_t* data, size_t size);
  12. void ring_clear(Ring* ring);