summaryrefslogtreecommitdiff
path: root/firmware/fifo.c
diff options
context:
space:
mode:
authorYves Fischer <yvesf-git@xapek.org>2011-10-11 21:50:49 +0200
committerYves Fischer <yvesf-git@xapek.org>2011-10-11 21:50:49 +0200
commit324c5ba9098c1010d0aa8c1e26b95509878ce9f2 (patch)
treef6ef2d537decaa2e1af6d4b9c4c31161b22333ec /firmware/fifo.c
downloadmini-octopus-324c5ba9098c1010d0aa8c1e26b95509878ce9f2.tar.gz
mini-octopus-324c5ba9098c1010d0aa8c1e26b95509878ce9f2.zip
Mini-Octopus build from r@171
Diffstat (limited to 'firmware/fifo.c')
-rw-r--r--firmware/fifo.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/firmware/fifo.c b/firmware/fifo.c
new file mode 100644
index 0000000..a1e0f87
--- /dev/null
+++ b/firmware/fifo.c
@@ -0,0 +1,27 @@
+#include "fifo.h"
+
+void fifo_init (fifo_t *f, uint8_t *buffer, const uint8_t size)
+{
+ f->count = 0;
+ f->pread = f->pwrite = buffer;
+ f->read2end = f->write2end = f->size = size;
+}
+
+uint8_t fifo_put (fifo_t *f, const uint8_t data)
+{
+ return _inline_fifo_put (f, data);
+}
+
+uint8_t fifo_get_wait (fifo_t *f)
+{
+ while (!f->count);
+
+ return _inline_fifo_get (f);
+}
+
+int fifo_get_nowait (fifo_t *f)
+{
+ if (!f->count) return -1;
+
+ return (int) _inline_fifo_get (f);
+}