aboutsummaryrefslogtreecommitdiff
path: root/buffers.h
diff options
context:
space:
mode:
authorKarel Kočí <cynerd@email.cz>2016-03-08 16:10:33 +0100
committerKarel Kočí <cynerd@email.cz>2016-03-08 16:10:33 +0100
commit5d29fe79d30f430ae326d9dc57ccfaed6fe61328 (patch)
tree8341804d561c0060176cbebc3f9a57c7c07f7816 /buffers.h
parent4e773191d447ac434536262a6f204dd991d4ad77 (diff)
downloadavr-ioe-5d29fe79d30f430ae326d9dc57ccfaed6fe61328.tar.gz
avr-ioe-5d29fe79d30f430ae326d9dc57ccfaed6fe61328.tar.bz2
avr-ioe-5d29fe79d30f430ae326d9dc57ccfaed6fe61328.zip
Another full update of current work
Diffstat (limited to 'buffers.h')
-rw-r--r--buffers.h72
1 files changed, 0 insertions, 72 deletions
diff --git a/buffers.h b/buffers.h
deleted file mode 100644
index 497a21c..0000000
--- a/buffers.h
+++ /dev/null
@@ -1,72 +0,0 @@
-/* This defines common buffer code for whole library.
- * It is preprocessor generated code.
- * Preprocessor variables chose different implementations. But final
- * implementation is only few lines of code. This way it is included directly
- * to code.
- */
-#include "tasks.h"
-
-#ifndef _IOE_BUFFERS_H_
-#define _IOE_BUFFERS_H_
-
-// Define new buffer
-#define IOEBUFFER(name, size) struct { \
- uint8_t rindex, windex; \
- uint8_t data[size]; \
- } name;
-
-#define IOEBUFFER_INIT(name, size) { \
- name.windex = size - 1; \
- name.rindex = size - 1; \
- }
-
-#define IOEBUFFER_MODE_BLOCK 0
-#define IOEBUFFER_MODE_OVERWRITE 1
-#define IOEBUFFER_MODE_DROP 2
-// Add data to buffer. If buffer is full then behavior is defined by selected mode.
-#define IOEBUFFER_PUT(name, size, data, mode) \
- if (mode == IOEBUFFER_MODE_BLOCK) { \
- if (name.windex == 0) { \
- while (name.rindex == size - 1); \
- } else { \
- while (name.rindex == name.windex - 1); \
- } \
- } \
- name.data[name.windex] = data; \
- if (mode != IOEBUFFER_MODE_DROP || \
- (name.windex == 0 && name.rindex == size - 1) || \
- (name.rindex + 1 == name.windex)) { \
- if (name.windex == 0) \
- name.windex = size - 1; \
- else \
- name.windex--; \
- } \
- if (mode == IOEBUFFER_MODE_OVERWRITE && name.windex == name.rindex) { \
- if (name.windex == size - 1) \
- name.windex = 0; \
- else \
- name.windex++; \
- } else;
-
-// Get data from buffer and store it to variable
-#define IOEBUFFER_GET(name, size, variable) \
- if (name.rindex != name.windex) { \
- variable = name.data[name.rindex]; \
- if (name.rindex == 0) \
- name.rindex = size - 1; \
- else \
- name.rindex--; \
- } else { \
- variable = 0; \
- }
-
-// Set count of buffered data to variable
-#define IOEBUFFER_CNT(name, size, variable) \
- if (name.windex < name.rindex) \
- variable = name.rindex - name.windex; \
- else if (name.windex > name.rindex) \
- variable = size - name.windex + name.rindex; \
- else \
- variable = 0;
-
-#endif /* _IOE_BUFFERS_H_ */