if (msr == SYMSPY_GLOBAL_MSR) {
struct v3_symspy_global_state * global_state = &(core->vm_info->sym_vm_state.symspy_state);
- PrintDebug("Symbiotic Glbal MSR write for page %p\n", (void *)(addr_t)src.value);
+ PrintDebug(core->vm_info, core, "Symbiotic Glbal MSR write for page %p\n", (void *)(addr_t)src.value);
if (global_state->active == 1) {
// unmap page
(addr_t)global_state->global_guest_pa);
if (old_reg == NULL) {
- PrintError("Could not find previously active symbiotic page (%p)\n",
+ PrintError(core->vm_info, core, "Could not find previously active symbiotic page (%p)\n",
(void *)(addr_t)global_state->global_guest_pa);
return -1;
}
} else if (msr == SYMSPY_LOCAL_MSR) {
struct v3_symspy_local_state * local_state = &(core->sym_core_state.symspy_state);
- PrintDebug("Symbiotic Local MSR write for page %p\n", (void *)(addr_t)src.value);
+ PrintDebug(core->vm_info, core, "Symbiotic Local MSR write for page %p\n", (void *)(addr_t)src.value);
if (local_state->active == 1) {
// unmap page
(addr_t)local_state->local_guest_pa);
if (old_reg == NULL) {
- PrintError("Could not find previously active symbiotic page (%p)\n",
+ PrintError(core->vm_info, core, "Could not find previously active symbiotic page (%p)\n",
(void *)(addr_t)local_state->local_guest_pa);
return -1;
}
(addr_t)(local_state->local_guest_pa + PAGE_SIZE_4KB - 1),
local_state->local_page_pa);
} else {
- PrintError("Invalid Symbiotic MSR write (0x%x)\n", msr);
+ PrintError(core->vm_info, core, "Invalid Symbiotic MSR write (0x%x)\n", msr);
return -1;
}
int v3_init_symspy_vm(struct v3_vm_info * vm, struct v3_symspy_global_state * state) {
state->global_page_pa = (addr_t)V3_AllocPages(1);
+ if (!state->global_page_pa) {
+ PrintError(vm, VCORE_NONE, "Cannot allocate page\n");
+ return -1;
+ }
+
state->sym_page = (struct v3_symspy_global_page *)V3_VAddr((void *)state->global_page_pa);
memset(state->sym_page, 0, PAGE_SIZE_4KB);
int v3_init_symspy_core(struct guest_info * core, struct v3_symspy_local_state * state) {
state->local_page_pa = (addr_t)V3_AllocPages(1);
+
+ if (!state->local_page_pa) {
+ PrintError(core->vm_info, core, "Cannot allocate page\n");
+ return -1;
+ }
state->local_page = (struct v3_symspy_local_page *)V3_VAddr((void *)state->local_page_pa);
memset(state->local_page, 0, PAGE_SIZE_4KB);
uint_t minor = dev_index % 8;
if (bus > 3) {
- PrintError("Invalid PCI bus %d\n", bus);
+ PrintError(vm, VCORE_NONE, "Invalid PCI bus %d\n", bus);
return -1;
}
- PrintDebug("Setting passthrough pci map for index=%d\n", dev_index);
+ PrintDebug(vm, VCORE_NONE, "Setting passthrough pci map for index=%d\n", dev_index);
global_state->sym_page->pci_pt_map[major] |= 0x1 << minor;
- PrintDebug("pt_map entry=%x\n", global_state->sym_page->pci_pt_map[major]);
+ PrintDebug(vm, VCORE_NONE, "pt_map entry=%x\n", global_state->sym_page->pci_pt_map[major]);
- PrintDebug("pt map vmm addr=%p\n", global_state->sym_page->pci_pt_map);
+ PrintDebug(vm, VCORE_NONE, "pt map vmm addr=%p\n", global_state->sym_page->pci_pt_map);
return 0;
}
uint_t minor = dev_index % 8;
if (bus > 3) {
- PrintError("Invalid PCI bus %d\n", bus);
+ PrintError(vm, VCORE_NONE, "Invalid PCI bus %d\n", bus);
return -1;
}