map->exits = V3_Malloc(sizeof(struct v3_exit_hook) * V3_EXIT_INVALID);
if (map->exits == NULL) {
- PrintError("Error allocating exit map\n");
+ PrintError(vm, VCORE_NONE, "Error allocating exit map\n");
return -1;
}
if (hook->hooked) {
if (hook->enable(core, i) != 0) {
- PrintError("Error could not enable exit hook %d on core %d\n", i, core->vcpu_id);
+ PrintError(core->vm_info, core, "Error could not enable exit hook %d on core %d\n", i, core->vcpu_id);
return -1;
}
}
struct v3_exit_hook * hook = NULL;
if (exit_type >= V3_EXIT_INVALID) {
- PrintError("Error: Tried to dispatch invalid exit type (%d)\n", exit_type);
+ PrintError(core->vm_info, core, "Error: Tried to dispatch invalid exit type (%d)\n", exit_type);
return -1;
}
hook = &(map->exits[exit_type]);
if (hook->hooked == 0) {
- PrintError("Tried to dispatch an unhooked exit (%d)\n", exit_type);
+ PrintError(core->vm_info, core, "Tried to dispatch an unhooked exit (%d)\n", exit_type);
return -1;
}
struct v3_exit_hook * hook = NULL;
if (exit_type >= V3_EXIT_INVALID) {
- PrintError("Error: Tried to register invalid exit type (%d)\n", exit_type);
+ PrintError(vm, VCORE_NONE, "Error: Tried to register invalid exit type (%d)\n", exit_type);
return -1;
}
hook = &(map->exits[exit_type]);
if (hook->registered == 1) {
- PrintError("Tried to reregister an exit (%d)\n", exit_type);
+ PrintError(vm, VCORE_NONE, "Tried to reregister an exit (%d)\n", exit_type);
return -1;
}
if (exit_type >= V3_EXIT_INVALID) {
- PrintError("Error: Tried to hook invalid exit type (%d)\n", exit_type);
+ PrintError(vm, VCORE_NONE, "Error: Tried to hook invalid exit type (%d)\n", exit_type);
return -1;
}
hook = &(map->exits[exit_type]);
if (hook->registered == 0) {
- PrintError("Tried to hook unregistered exit (%d)\n", exit_type);
+ PrintError(vm, VCORE_NONE, "Tried to hook unregistered exit (%d)\n", exit_type);
return -1;
}
if (hook->hooked != 0) {
- PrintError("Tried to rehook exit (%d)\n", exit_type);
+ PrintError(vm, VCORE_NONE, "Tried to rehook exit (%d)\n", exit_type);
return -1;
}
hook->handler = handler;
hook->priv_data = priv_data;
- if ((vm->run_state == VM_RUNNING) ||
- (vm->run_state == VM_SIMULATING)) {
+ if (vm->run_state != VM_INVALID) {
int i = 0;
while (v3_raise_barrier(vm, current_core) == -1);
for (i = 0; i < vm->num_cores; i++) {
if (hook->enable(&(vm->cores[i]), exit_type) != 0) {
- PrintError("Error could not enable exit hook %d on core %d\n", exit_type, i);
+ PrintError(vm, VCORE_NONE, "Error could not enable exit hook %d on core %d\n", exit_type, i);
v3_lower_barrier(vm);
return -1;
}
if (exit_type >= V3_EXIT_INVALID) {
- PrintError("Error: Tried to unhook invalid exit type (%d)\n", exit_type);
+ PrintError(vm, VCORE_NONE, "Error: Tried to unhook invalid exit type (%d)\n", exit_type);
return -1;
}
hook = &(map->exits[exit_type]);
if (hook->registered == 0) {
- PrintError("Tried to unhook an unregistered exit (%d)\n", exit_type);
+ PrintError(vm, VCORE_NONE, "Tried to unhook an unregistered exit (%d)\n", exit_type);
return -1;
}
if (hook->hooked == 0) {
- PrintError("Tried to unhook and unhooked exit (%d)\n", exit_type);
+ PrintError(vm, VCORE_NONE, "Tried to unhook and unhooked exit (%d)\n", exit_type);
return -1;
}
hook->priv_data = NULL;
- if ((vm->run_state == VM_RUNNING) ||
- (vm->run_state == VM_SIMULATING)) {
+ if (vm->run_state != VM_INVALID) {
int i = 0;
while (v3_raise_barrier(vm, current_core) == -1);
for (i = 0; i < vm->num_cores; i++) {
if (hook->disable(&(vm->cores[i]), exit_type) != 0) {
- PrintError("Error could not enable exit hook %d on core %d\n", exit_type, i);
+ PrintError(vm, VCORE_NONE, "Error could not enable exit hook %d on core %d\n", exit_type, i);
v3_lower_barrier(vm);
return -1;
}