X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Fsrc%2Fpalacios%2Fvmm_io.c;h=96ee1d75647f6e28ff99642f85129c956ba3e3ea;hb=774bac9fbb03ef8bf7c2ca2c79a8b87c9bc4c526;hp=0e099e5a5ebee2f638e83795394142baad2688fc;hpb=b3662a67b9b28e2b0724ebb2ea10edccba5d2a5b;p=palacios.git diff --git a/palacios/src/palacios/vmm_io.c b/palacios/src/palacios/vmm_io.c index 0e099e5..96ee1d7 100644 --- a/palacios/src/palacios/vmm_io.c +++ b/palacios/src/palacios/vmm_io.c @@ -24,7 +24,7 @@ -#ifndef CONFIG_DEBUG_IO +#ifndef V3_CONFIG_DEBUG_IO #undef PrintDebug #define PrintDebug(fmt, args...) #endif @@ -128,6 +128,12 @@ int v3_hook_io_port(struct v3_vm_info * vm, uint16_t port, void * priv_data) { struct v3_io_hook * io_hook = (struct v3_io_hook *)V3_Malloc(sizeof(struct v3_io_hook)); + if (!io_hook) { + PrintError(vm, VCORE_NONE, "Cannot allocate in hooking an I/O port\n"); + return -1; + } + + io_hook->port = port; if (!read) { @@ -145,7 +151,7 @@ int v3_hook_io_port(struct v3_vm_info * vm, uint16_t port, io_hook->priv_data = priv_data; if (insert_io_hook(vm, io_hook)) { - PrintError("Could not insert IO hook for port %u (0x%x)\n", port, port); + PrintError(vm, VCORE_NONE, "Could not insert IO hook for port %u (0x%x)\n", port, port); V3_Free(io_hook); return -1; } @@ -154,7 +160,7 @@ int v3_hook_io_port(struct v3_vm_info * vm, uint16_t port, if (vm->io_map.update_map(vm, port, ((read == NULL) ? 0 : 1), ((write == NULL) ? 0 : 1)) == -1) { - PrintError("Could not update IO map for port %u (0x%x)\n", port, port); + PrintError(vm, VCORE_NONE, "Could not update IO map for port %u (0x%x)\n", port, port); V3_Free(io_hook); return -1; } @@ -181,7 +187,7 @@ int v3_unhook_io_port(struct v3_vm_info * vm, uint16_t port) { struct v3_io_hook * hook = v3_get_io_hook(vm, port); if (hook == NULL) { - PrintError("Could not find port to unhook %u (0x%x)\n", port, port); + PrintError(vm, VCORE_NONE, "Could not find port to unhook %u (0x%x)\n", port, port); return -1; } @@ -201,7 +207,7 @@ void v3_refresh_io_map(struct v3_vm_info * vm) { struct v3_io_hook * tmp = NULL; if (io_map->update_map == NULL) { - PrintError("Trying to refresh an io map with no backend\n"); + PrintError(vm, VCORE_NONE, "Trying to refresh an io map with no backend\n"); return; } @@ -219,10 +225,10 @@ void v3_print_io_map(struct v3_vm_info * vm) { struct v3_io_map * io_map = &(vm->io_map); struct v3_io_hook * tmp_hook = NULL; - V3_Print("VMM IO Map\n"); + V3_Print(vm, VCORE_NONE, "VMM IO Map\n"); v3_rb_for_each_entry(tmp_hook, &(io_map->map), tree_node) { - V3_Print("IO Port: %hu (Read=%p) (Write=%p)\n", + V3_Print(vm, VCORE_NONE, "IO Port: %hu (Read=%p) (Write=%p)\n", tmp_hook->port, (void *)(tmp_hook->read), (void *)(tmp_hook->write)); }