summaryrefslogtreecommitdiffstats
path: root/stm32/app/ring.c
diff options
context:
space:
mode:
authorfishsoupisgood <github@madingley.org>2020-09-09 11:53:37 +0100
committerfishsoupisgood <github@madingley.org>2020-09-09 11:53:37 +0100
commit9d87c925a9eaa4fc256be3173c14a20d1469472d (patch)
tree50d63f87a47a0eac3f5b8058850184bcd4e6ee95 /stm32/app/ring.c
parentdafd8cf2fdcdd637cc06f760d318cf8391b1a294 (diff)
downloadheating-9d87c925a9eaa4fc256be3173c14a20d1469472d.tar.gz
heating-9d87c925a9eaa4fc256be3173c14a20d1469472d.tar.bz2
heating-9d87c925a9eaa4fc256be3173c14a20d1469472d.zip
everything, mostly, working
Diffstat (limited to 'stm32/app/ring.c')
-rw-r--r--stm32/app/ring.c77
1 files changed, 0 insertions, 77 deletions
diff --git a/stm32/app/ring.c b/stm32/app/ring.c
deleted file mode 100644
index 973f345..0000000
--- a/stm32/app/ring.c
+++ /dev/null
@@ -1,77 +0,0 @@
-#include "project.h"
-
-
-static inline size_t
-ring_next (volatile ring_t *r, size_t p)
-{
- p++;
-
- if (p >= r->size)
- p -= r->size;
-
- return p;
-}
-
-void
-ring_init (volatile ring_t *r, uint8_t *buf, size_t len)
-{
- r->data = buf;
- r->size = len;
- r->write = 0;
- r->read = 0;
-}
-
-int
-ring_write_byte (volatile ring_t *r, uint8_t c)
-{
- size_t n = ring_next (r, r->write);
-
- if (n == r->read)
- return -EAGAIN;
-
- r->data[r->write] = c;
-
- r->write = n;
-
- return 0;
-}
-
-
-int
-ring_read_byte (volatile ring_t *r, uint8_t *c)
-{
- size_t n = ring_next (r, r->read);
-
- if (r->read == r->write)
- return -EAGAIN;
-
- *c = r->data[r->read];
- r->read = n;
-
- return 0;
-}
-
-int
-ring_write (volatile ring_t *r, uint8_t *buf, size_t len, int blocking)
-{
- while (len--) {
- if (blocking) {
- while (ring_write_byte (r, *buf));
-
- buf++;
- } else {
- if (ring_write_byte (r, * (buf++)))
- return -EAGAIN;
- }
- }
-
- return 0;
-}
-
-
-
-int
-ring_empty (volatile ring_t *r)
-{
- return (r->read == r->write) ? 1 : 0;
-}