fifo.c 491 B

12345678910111213141516171819202122232425262728
  1. #include "fifo.h"
  2. void fifo_init(fifo_t * f, uint8_t * buffer, const uint8_t size)
  3. {
  4. f->count = 0;
  5. f->pread = f->pwrite = buffer;
  6. f->read2end = f->write2end = f->size = size;
  7. }
  8. uint8_t fifo_put(fifo_t * f, const uint8_t data)
  9. {
  10. return _inline_fifo_put(f, data);
  11. }
  12. uint8_t fifo_get_wait(fifo_t * f)
  13. {
  14. while (!f->count);
  15. return _inline_fifo_get(f);
  16. }
  17. int fifo_get_nowait(fifo_t * f)
  18. {
  19. if (!f->count)
  20. return -1;
  21. return (int) _inline_fifo_get(f);
  22. }