summaryrefslogtreecommitdiffstats
path: root/helpers.c
diff options
context:
space:
mode:
Diffstat (limited to 'helpers.c')
-rw-r--r--helpers.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/helpers.c b/helpers.c
index 2fcda65c6..a714908b7 100644
--- a/helpers.c
+++ b/helpers.c
@@ -66,6 +66,23 @@ void tolower_string(char *str)
*str = (char)tolower((unsigned char)*str);
}
+uint8_t reverse_byte(uint8_t x)
+{
+ x = ((x >> 1) & 0x55) | ((x << 1) & 0xaa);
+ x = ((x >> 2) & 0x33) | ((x << 2) & 0xcc);
+ x = ((x >> 4) & 0x0f) | ((x << 4) & 0xf0);
+
+ return x;
+}
+
+void reverse_bytes(uint8_t *dst, const uint8_t *src, size_t length)
+{
+ size_t i;
+
+ for (i = 0; i < length; i++)
+ dst[i] = reverse_byte(src[i]);
+}
+
/* FIXME: Find a better solution for MinGW. Maybe wrap strtok_s (C11) if it becomes available */
#ifdef __MINGW32__
char* strtok_r(char *str, const char *delim, char **nextp)