From 00339f089e475eee36ed0eaf6a3c60ac04b6def4 Mon Sep 17 00:00:00 2001 From: Travis Geiselbrecht Date: Sun, 17 Sep 2006 04:51:42 +0000 Subject: [PATCH] Add hexdump routine git-svn-id: svn+ssh://newos.org/var/svn/newos/newos@1198 c25cc9d1-44fa-0310-b259-ad778cb1d433 --- include/kernel/debug.h | 2 ++ kernel/debug.c | 21 +++++++++++++++++++++ 2 files changed, 23 insertions(+) diff --git a/include/kernel/debug.h b/include/kernel/debug.h index cdc1862..e7a9574 100644 --- a/include/kernel/debug.h +++ b/include/kernel/debug.h @@ -25,6 +25,8 @@ int panic(const char *fmt, ...) __PRINTFLIKE(1,2); void kernel_debugger(void); int dbg_add_command(void (*func)(int, char **), const char *cmd, const char *desc); +void hexdump(const void *ptr, size_t len); + /* arch provided */ extern void dbg_save_registers(int *); extern void dbg_make_register_file(unsigned int *file, const struct iframe *frame); diff --git a/kernel/debug.c b/kernel/debug.c index bbc8c9b..4db455a 100644 --- a/kernel/debug.c +++ b/kernel/debug.c @@ -408,3 +408,24 @@ bool dbg_get_serial_debug() return serial_debug_on; } +void hexdump(const void *_ptr, size_t len) +{ + const unsigned char *ptr = _ptr; + size_t i; + + dprintf("hexdump ptr %p, len %d\n", ptr, len); + + while (len > 0) { + dprintf("%08lx: ", (addr_t)ptr); + for (i=0; i < min(len, 16); i++) { + dprintf("%02x ", *ptr); + ptr++; + } + dprintf("\n"); + if (len < 16) + break; + len -= 16; + } +} + + -- 2.11.4.GIT