-static void ring_init(struct ring *ring, uint8_t *buf, int size)
-{
- ring->data = buf;
- ring->mask = (size-1) & 0xff;
- ring->begin = 0;
- ring->end = 0;
-}
-
-static int ring_write_ch(struct ring *ring, uint8_t ch)
-{
- uint_fast8_t ep = (ring->end + 1) & ring->mask;
-
- if ((ep) != ring->begin) {
- ring->data[ring->end] = ch;
- ring->end = ep;
- return 1;
- }
-
- return -1;
-}
-
-#if 0
-static int ring_write(struct ring *ring, uint8_t *data, int size)
-{
- int i;
-
- for (i = 0; i < size; i++) {
- if (ring_write_ch(ring, data[i]) < 0)
- return -i;
- }
-
- return i;
-}
-#endif
-
-static int ring_read_ch(struct ring *ring)
-{
- int ret = -1;
- uint_fast8_t i = ring->begin;
-
- if (i != ring->end) {
- ret = ring->data[i];
- ring->begin = (i +1) & ring->mask;
- }
-
- return ret;
-}
-
-
-static int_fast8_t ring_is_empty(struct ring *ring)
-{
- return ring->begin == ring->end;
-}
-