summaryrefslogtreecommitdiffstats
path: root/app/ring.c
diff options
context:
space:
mode:
Diffstat (limited to 'app/ring.c')
-rw-r--r--app/ring.c23
1 files changed, 12 insertions, 11 deletions
diff --git a/app/ring.c b/app/ring.c
index c4f3458..c1d1803 100644
--- a/app/ring.c
+++ b/app/ring.c
@@ -2,16 +2,18 @@
static inline size_t
-ring_next (ring_t * r, size_t p)
+ring_next (ring_t *r, size_t p)
{
p++;
+
if (p >= r->size)
p -= r->size;
+
return p;
}
void
-ring_init (ring_t * r, uint8_t * buf, size_t len)
+ring_init (ring_t *r, uint8_t *buf, size_t len)
{
r->data = buf;
r->size = len;
@@ -20,7 +22,7 @@ ring_init (ring_t * r, uint8_t * buf, size_t len)
}
int
-ring_write_byte (ring_t * r, uint8_t c)
+ring_write_byte (ring_t *r, uint8_t c)
{
size_t n = ring_next (r, r->write);
@@ -36,7 +38,7 @@ ring_write_byte (ring_t * r, uint8_t c)
int
-ring_read_byte (ring_t * r, uint8_t * c)
+ring_read_byte (ring_t *r, uint8_t *c)
{
size_t n = ring_next (r, r->read);
@@ -50,19 +52,18 @@ ring_read_byte (ring_t * r, uint8_t * c)
}
int
-ring_write (ring_t * r, uint8_t * buf, size_t len)
+ring_write (ring_t *r, uint8_t *buf, size_t len)
{
- while (len--)
- {
- if (ring_write_byte (r, *(buf++)))
- return -1;
- }
+ while (len--) {
+ if (ring_write_byte (r, * (buf++)))
+ return -1;
+ }
return 0;
}
int
-ring_empty (ring_t * r)
+ring_empty (ring_t *r)
{
return (r->read == r->write) ? 1 : 0;
}