summaryrefslogtreecommitdiff
path: root/utils.hpp
diff options
context:
space:
mode:
authorOxore <oxore@protonmail.com>2022-09-03 14:54:34 +0300
committerOxore <oxore@protonmail.com>2022-09-03 15:12:58 +0300
commit9037b017d6519fed435eea20c3553d40d871d379 (patch)
treeedd55ac4880c980f772f7a466f00edf5837fd38b /utils.hpp
parentf1573848a8ced69f45192b07bab9785e900d34a0 (diff)
Impl writing memory via GDB
Diffstat (limited to 'utils.hpp')
-rw-r--r--utils.hpp22
1 files changed, 22 insertions, 0 deletions
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 <stdint.h>
+
+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<char>(c1 < 0xa ? c1 + '0' : c1 + ('a' - 0xa));
+ out[1] = static_cast<char>(c2 < 0xa ? c2 + '0' : c2 + ('a' - 0xa));
+}
+
+}