* This is free software. You are permitted to use,
* redistribute, and modify it as specified in the file "V3VEE_LICENSE".
*/
-
-
#include <palacios/vmm_util.h>
#include <palacios/vmm.h>
+#include <palacios/vmm_sprintf.h>
-extern struct vmm_os_hooks * os_hooks;
-
+void v3_dump_mem(uint8_t * start, int n) {
+ int i, j;
+ char buf[128];
+
-void PrintTraceHex(unsigned char x) {
- unsigned char z;
-
- z = (x >> 4) & 0xf;
- PrintTrace("%x", z);
- z = x & 0xf;
- PrintTrace("%x", z);
-}
-
-void PrintTraceLL(ullong_t num) {
- unsigned char * z = (unsigned char *)#
- int i;
-
- for (i = 7; i >= 0; i--) {
- PrintTraceHex(*(z + i));
- }
-}
-
-
-void PrintTraceMemDump(unsigned char *start, int n)
-{
- int i, j;
-
- for (i = 0; i < n; i += 16) {
- PrintTrace("%8x", (unsigned)(start + i));
- for (j = i; (j < (i + 16)) && (j < n); j += 2) {
- PrintTrace(" ");
- PrintTraceHex(*((unsigned char *)(start + j)));
- if ((j + 1) < n) {
- PrintTraceHex(*((unsigned char *)(start + j + 1)));
+ for (i = 0; i < n; i += 16) {
+ snprintf(buf, 128, "%p ", (void *)(start + i));
+ for (j = i; (j < (i + 16)) && (j < n); j++) {
+ snprintf(buf+strlen(buf),128-strlen(buf),"%02x ", *(uint8_t *)(start + j));
}
+ for (j = i; (j < (i + 16)) && (j < n); j++) {
+ snprintf(buf+strlen(buf),128-strlen(buf),"%c", ((start[j] >= 32) && (start[j] <= 126)) ? start[j] : '.');
+ }
+ snprintf(buf+strlen(buf),128-strlen(buf), "\n");
+ buf[strlen(buf)]=0;
+ V3_Print("%s",buf);
}
- PrintTrace(" ");
- for (j = i; (j < (i + 16)) && (j < n); j++) {
- PrintTrace("%c", ((start[j] >= 32) && (start[j] <= 126)) ? start[j] : '.');
- }
- PrintTrace("\n");
- }
+
}