From 9037b017d6519fed435eea20c3553d40d871d379 Mon Sep 17 00:00:00 2001 From: Oxore Date: Sat, 3 Sep 2022 14:54:34 +0300 Subject: Impl writing memory via GDB --- utils.hpp | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'utils.hpp') diff --git a/utils.hpp b/utils.hpp index 4a5e84d..4a83a8d 100644 --- a/utils.hpp +++ b/utils.hpp @@ -10,3 +10,25 @@ #else # define UNREACHABLE #endif + +#include + +namespace Utils { + +static inline uint8_t ParseByteFromHexChars(uint8_t first, uint8_t second) +{ + // Assume, that given bytes are valid hex digits in ASCII + first = ((first & 0x40) ? (first + 9) : first) & 0x0f; + second = ((second & 0x40) ? (second + 9) : second) & 0x0f; + return ((first << 4) | second) & 0xff; +} + +static inline void ConvertByteToHex(uint8_t byte, char* out) +{ + const uint8_t c1 = (byte >> 4) & 0x0f; + const uint8_t c2 = byte& 0x0f; + out[0] = static_cast(c1 < 0xa ? c1 + '0' : c1 + ('a' - 0xa)); + out[1] = static_cast(c2 < 0xa ? c2 + '0' : c2 + ('a' - 0xa)); +} + +} -- cgit v1.2.3