summaryrefslogtreecommitdiff
path: root/fw/include/cobs.h
diff options
context:
space:
mode:
authorjaseg <git@jaseg.de>2021-03-02 19:27:52 +0100
committerjaseg <git@jaseg.de>2021-03-02 19:27:52 +0100
commitb328ef60595523e3922aae994d7bbe06c7c3fa56 (patch)
treebdbbd1a4a0528d6f479f903fbd1f1c04476ec5fe /fw/include/cobs.h
parent6eddc61626d470363ba464c57a5fc5ec7e8ce329 (diff)
parent5b94dee9cfb1eaaf28510b843c60355663b660ea (diff)
downloadsecure-hid-b328ef60595523e3922aae994d7bbe06c7c3fa56.tar.gz
secure-hid-b328ef60595523e3922aae994d7bbe06c7c3fa56.tar.bz2
secure-hid-b328ef60595523e3922aae994d7bbe06c7c3fa56.zip
Add 'fw/' from commit '5b94dee9cfb1eaaf28510b843c60355663b660ea'
git-subtree-dir: fw git-subtree-mainline: 6eddc61626d470363ba464c57a5fc5ec7e8ce329 git-subtree-split: 5b94dee9cfb1eaaf28510b843c60355663b660ea
Diffstat (limited to 'fw/include/cobs.h')
-rw-r--r--fw/include/cobs.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/fw/include/cobs.h b/fw/include/cobs.h
new file mode 100644
index 0000000..24e16fb
--- /dev/null
+++ b/fw/include/cobs.h
@@ -0,0 +1,27 @@
+#ifndef __COBS_H__
+#define __COBS_H__
+
+#include <stdint.h>
+#include <unistd.h>
+#include <string.h>
+
+
+struct cobs_decode_state {
+ size_t p;
+ size_t c;
+};
+
+
+ssize_t cobs_encode(char *dst, size_t dstlen, char *src, size_t srclen);
+ssize_t cobs_decode(char *dst, size_t dstlen, char *src, size_t srclen);
+
+int cobs_encode_incremental(void *f, int (*output)(void *f, unsigned char c), unsigned char *src, size_t srclen);
+
+/*@ requires \valid(state);
+ ensures state->p == 0 && state->c == 0;
+ assigns *state;
+ @*/
+void cobs_decode_incremental_initialize(struct cobs_decode_state *state);
+int cobs_decode_incremental(struct cobs_decode_state *state, unsigned char *dst, size_t dstlen, unsigned char src);
+
+#endif//__COBS_H__