summaryrefslogtreecommitdiff
path: root/hardware/fw/cobs.h
blob: 8c84ca47f42b6b349d7222d76cf939276b1c5b58 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#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_usart(int (*output)(char), char *src, size_t srclen);

void cobs_decode_incremental_initialize(struct cobs_decode_state *state);
int cobs_decode_incremental(struct cobs_decode_state *state, char *dst, size_t dstlen, char src);

#endif//__COBS_H__