diff options
Diffstat (limited to 'app/ring.c')
-rw-r--r-- | app/ring.c | 12 |
1 files changed, 4 insertions, 8 deletions
@@ -6,9 +6,8 @@ ring_next (ring_t *r, size_t p) { p++; - if (p >= r->size) { + if (p >= r->size) p -= r->size; - } return p; } @@ -27,9 +26,8 @@ ring_write_byte (ring_t *r, uint8_t c) { size_t n = ring_next (r, r->write); - if (n == r->read) { + if (n == r->read) return -1; - } r->data[r->write] = c; r->write = n; @@ -46,9 +44,8 @@ ring_read_byte (ring_t *r, uint8_t *c) { size_t n = ring_next (r, r->read); - if (r->read == r->write) { + if (r->read == r->write) return -1; - } *c = r->data[r->read]; r->read = n; @@ -59,9 +56,8 @@ int ring_write (ring_t *r, uint8_t *buf, size_t len) { while (len--) { - if (ring_write_byte (r, * (buf++))) { + if (ring_write_byte (r, * (buf++))) return -1; - } } return 0; |