aboutsummaryrefslogtreecommitdiffstats
path: root/src/generic
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2016-06-05 14:52:17 -0400
committerKevin O'Connor <kevin@koconnor.net>2016-06-13 23:18:58 -0400
commit9971f999b382ef51a3a3d1db4a3385b7cc23a3a0 (patch)
tree4950714f34dfbdfb0a04cd51763e142c104c93e7 /src/generic
parentff789058dfe5d3e5f34482f8410aaf0358e582e9 (diff)
downloadkutter-9971f999b382ef51a3a3d1db4a3385b7cc23a3a0.tar.gz
kutter-9971f999b382ef51a3a3d1db4a3385b7cc23a3a0.tar.xz
kutter-9971f999b382ef51a3a3d1db4a3385b7cc23a3a0.zip
generic: Create generic board infrastructure and move misc.h to it
Instead of creating a misc.h file in each board directory, create a generic board directory and declare misc.h there. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'src/generic')
-rw-r--r--src/generic/alloc.c13
-rw-r--r--src/generic/crc16_ccitt.c22
-rw-r--r--src/generic/misc.h16
3 files changed, 51 insertions, 0 deletions
diff --git a/src/generic/alloc.c b/src/generic/alloc.c
new file mode 100644
index 00000000..826e4f9e
--- /dev/null
+++ b/src/generic/alloc.c
@@ -0,0 +1,13 @@
+// Dummy implementation for alloc commands
+//
+// Copyright (C) 2016 Kevin O'Connor <kevin@koconnor.net>
+//
+// This file may be distributed under the terms of the GNU GPLv3 license.
+
+#include "misc.h"
+
+// Return the maximum allocation size that can succeed up to 'reqsize'
+size_t alloc_maxsize(size_t reqsize)
+{
+ return reqsize;
+}
diff --git a/src/generic/crc16_ccitt.c b/src/generic/crc16_ccitt.c
new file mode 100644
index 00000000..8347bb83
--- /dev/null
+++ b/src/generic/crc16_ccitt.c
@@ -0,0 +1,22 @@
+// Code for crc16_ccitt
+//
+// Copyright (C) 2016 Kevin O'Connor <kevin@koconnor.net>
+//
+// This file may be distributed under the terms of the GNU GPLv3 license.
+
+#include "misc.h" // crc16_ccitt
+
+// Implement the standard crc "ccitt" algorithm on the given buffer
+uint16_t
+crc16_ccitt(char *buf, uint8_t len)
+{
+ uint16_t crc = 0xffff;
+ while (len--) {
+ uint8_t data = *buf++;
+ data ^= crc & 0xff;
+ data ^= data << 4;
+ crc = ((((uint16_t)data << 8) | (crc >> 8)) ^ (uint8_t)(data >> 4)
+ ^ ((uint16_t)data << 3));
+ }
+ return crc;
+}
diff --git a/src/generic/misc.h b/src/generic/misc.h
new file mode 100644
index 00000000..9b2986be
--- /dev/null
+++ b/src/generic/misc.h
@@ -0,0 +1,16 @@
+#ifndef __GENERIC_MISC_H
+#define __GENERIC_MISC_H
+
+#include <stddef.h> // size_t
+#include <stdint.h> // uint8_t
+
+char *console_get_input(uint8_t *plen);
+void console_pop_input(uint8_t len);
+char *console_get_output(uint8_t len);
+void console_push_output(uint8_t len);
+
+size_t alloc_maxsize(size_t reqsize);
+
+uint16_t crc16_ccitt(char *buf, uint8_t len);
+
+#endif // misc.h