summaryrefslogtreecommitdiff
path: root/prototype/fw/src/microcobs.c
diff options
context:
space:
mode:
Diffstat (limited to 'prototype/fw/src/microcobs.c')
-rw-r--r--prototype/fw/src/microcobs.c25
1 files changed, 13 insertions, 12 deletions
diff --git a/prototype/fw/src/microcobs.c b/prototype/fw/src/microcobs.c
index aea199e..5007344 100644
--- a/prototype/fw/src/microcobs.c
+++ b/prototype/fw/src/microcobs.c
@@ -7,15 +7,15 @@ ssize_t cobs_encode_sg(const struct sg_entry input[], uint8_t *output, size_t ou
{
size_t idx_pos = 0;
size_t out_pos = 1;
- size_t sg_idx = 0;
+ ssize_t sg_idx = 0;
const struct sg_entry *e = input;
- fprintf(stderr, "\nsg_entry %016x %zd\n", e->target, e->size);
+ /* fprintf(stderr, "\nsg_entry %016x %zd\n", e->target, e->size); */
while (e->size >= 0) {
if (sg_idx == e->size) {
sg_idx = 0;
e++;
- fprintf(stderr, "\nsg_entry %016x %zd\n", e->target, e->size);
+ /* fprintf(stderr, "\nsg_entry %016x %zd\n", e->target, e->size); */
continue;
}
@@ -23,7 +23,7 @@ ssize_t cobs_encode_sg(const struct sg_entry input[], uint8_t *output, size_t ou
return -1;
uint8_t inbyte = e->target[sg_idx];
- fprintf(stderr, "%02x ", inbyte);
+ /* fprintf(stderr, "%02x ", inbyte); */
sg_idx += 1;
if (out_pos - idx_pos >= 255) {
@@ -49,8 +49,8 @@ ssize_t cobs_encode_sg(const struct sg_entry input[], uint8_t *output, size_t ou
return -1;
output[idx_pos] = out_pos - idx_pos;
output[out_pos] = 0x00;
- fprintf(stderr, "\n");
- fprintf(stderr, "Finishing %d %d %d\n", idx_pos, out_pos, out_pos - idx_pos);
+ /* fprintf(stderr, "\n"); */
+ /* fprintf(stderr, "Finishing %d %d %d\n", idx_pos, out_pos, out_pos - idx_pos); */
return out_pos + 1;
}
@@ -66,7 +66,7 @@ ssize_t cobs_encode(const uint8_t *input, size_t input_len, uint8_t *output, siz
return -1;
uint8_t inbyte = input[in_pos];
- fprintf(stderr, "%02x ", inbyte);
+ /* fprintf(stderr, "%02x ", inbyte); */
in_pos += 1;
if (out_pos - idx_pos >= 255) {
@@ -92,12 +92,13 @@ ssize_t cobs_encode(const uint8_t *input, size_t input_len, uint8_t *output, siz
return -1;
output[idx_pos] = out_pos - idx_pos;
output[out_pos] = 0x00;
- fprintf(stderr, "\n");
- fprintf(stderr, "Finishing %d %d %d\n", idx_pos, out_pos, out_pos - idx_pos);
+ /* fprintf(stderr, "\n"); */
+ /* fprintf(stderr, "Finishing %d %d %d\n", idx_pos, out_pos, out_pos - idx_pos); */
return out_pos + 1;
}
+/* input and output may overlap. */
ssize_t cobs_decode(const uint8_t *input, size_t input_len, uint8_t *output, size_t output_len)
{
size_t out_pos = 0;
@@ -108,20 +109,20 @@ ssize_t cobs_decode(const uint8_t *input, size_t input_len, uint8_t *output, siz
while (in_pos < input_len) {
size_t len = input[in_pos];
- fprintf(stderr, "Length @%03d = %03d\n", in_pos, len);
+ /* fprintf(stderr, "Length @%03d = %03d\n", in_pos, len); */
in_pos += 1;
for (size_t i=0; i<len-1; i++) {
if (in_pos >= input_len)
break;
- fprintf(stderr, "Copy %03d -> %03d %02x\n", in_pos, out_pos, input[in_pos]);
+ /* fprintf(stderr, "Copy %03d -> %03d %02x\n", in_pos, out_pos, input[in_pos]); */
output[out_pos] = input[in_pos];
in_pos += 1;
out_pos += 1;
}
if (in_pos < input_len && len < 255) {
- fprintf(stderr, "Zero %03d %02x\n", out_pos);
+ /* fprintf(stderr, "Zero %03d %02x\n", out_pos); */
output[out_pos] = 0;
out_pos += 1;
}