summaryrefslogtreecommitdiff
path: root/avr/ring.h
diff options
context:
space:
mode:
Diffstat (limited to 'avr/ring.h')
-rw-r--r--avr/ring.h74
1 files changed, 0 insertions, 74 deletions
diff --git a/avr/ring.h b/avr/ring.h
deleted file mode 100644
index d57f9aa..0000000
--- a/avr/ring.h
+++ /dev/null
@@ -1,74 +0,0 @@
-#ifndef RING_H
-#define RING_H
-
-struct ring {
- uint8_t *data;
- uint_fast8_t mask;
- volatile uint_fast8_t begin;
- volatile uint_fast8_t end;
-};
-
-
-static inline
-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 inline
-int ring_write_ch(struct ring *ring, uint8_t ch)
-{
- uint_fast8_t ep = ring->end;
-
- ring->data[ep] = ch;
- ep = (ep + 1) & ring->mask;
-
- if ((ep) != ring->begin) {
- ring->end = ep;
- return 1;
- }
-
- return -1;
-}
-
-#if 0
-static inline
-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 inline
-int ring_read_ch(struct ring *ring)
-{
- int ret = -1;
- uint_fast8_t bp = ring->begin;
-
- if (bp != ring->end) {
- ret = ring->data[bp];
- ring->begin = (bp + 1) & ring->mask;
- }
-
- return ret;
-}
-
-
-static inline
-int_fast8_t ring_is_empty(struct ring *ring)
-{
- return ring->begin == ring->end;
-}
-
-#endif /* RING_H */
-