X-Git-Url: https://review.openocd.org/gitweb?a=blobdiff_plain;f=src%2Fhelper%2Fbinarybuffer.c;h=b3e44916aa4d44de39f39750226d2bb9c5bb4462;hb=ca332fd532388ffb13c5f190379de8b2698389e7;hp=d98fa16212f04138f5c751d507112ed05c2f64fc;hpb=6d639b09f0e3ef0c1cc38606a851e6ae9a4f4e30;p=openocd.git diff --git a/src/helper/binarybuffer.c b/src/helper/binarybuffer.c index d98fa16212..b3e44916aa 100644 --- a/src/helper/binarybuffer.c +++ b/src/helper/binarybuffer.c @@ -370,3 +370,30 @@ void bit_copy_discard(struct bit_copy_queue *q) free(qe); } } + +int unhexify(char *bin, const char *hex, int count) +{ + int i, tmp; + + for (i = 0; i < count; i++) { + if (sscanf(hex + (2 * i), "%02x", &tmp) != 1) + return i; + bin[i] = tmp; + } + + return i; +} + +int hexify(char *hex, const char *bin, int count, int out_maxlen) +{ + int i, cmd_len = 0; + + /* May use a length, or a null-terminated string as input. */ + if (count == 0) + count = strlen(bin); + + for (i = 0; i < count; i++) + cmd_len += snprintf(hex + cmd_len, out_maxlen - cmd_len, "%02x", bin[i] & 0xff); + + return cmd_len; +}