From: Jack Lange Date: Thu, 17 Jul 2008 00:10:15 +0000 (+0000) Subject: *** empty log message *** X-Git-Tag: boots-puppy-iso-to-command-prompt~18 X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?p=palacios.git;a=commitdiff_plain;h=fa7a42a55338e5fa49ec760b367225ca752df4fd *** empty log message *** --- diff --git a/palacios/build/c.img b/palacios/build/c.img index f30e9f2..b0009b3 100644 Binary files a/palacios/build/c.img and b/palacios/build/c.img differ diff --git a/palacios/include/palacios/vmm_intr.h b/palacios/include/palacios/vmm_intr.h index 30bb2b5..fb3f667 100644 --- a/palacios/include/palacios/vmm_intr.h +++ b/palacios/include/palacios/vmm_intr.h @@ -53,7 +53,7 @@ struct vm_intr { }; -int raise_irq(struct guest_info * info, int irq); +int v3_raise_irq(struct guest_info * info, int irq); int hook_irq(struct guest_info * info, int irq); struct intr_ctrl_ops { diff --git a/palacios/src/geekos/vm.c b/palacios/src/geekos/vm.c index 3477c28..358287e 100644 --- a/palacios/src/geekos/vm.c +++ b/palacios/src/geekos/vm.c @@ -415,7 +415,7 @@ IGNORE}, // DMA 2 channels 4,5,6,7 (address, counter) #if 0 // give floppy controller to vm hook_irq(&vm_info, 6); - +#endif //primary ide hook_irq(&vm_info, 14); @@ -423,7 +423,7 @@ IGNORE}, // DMA 2 channels 4,5,6,7 (address, counter) // secondary ide hook_irq(&vm_info, 15); -#endif + vm_info.rip = 0xfff0; vm_info.vm_regs.rsp = 0x0; diff --git a/palacios/src/palacios/svm_halt.c b/palacios/src/palacios/svm_halt.c index 3c3bc05..3c893d3 100644 --- a/palacios/src/palacios/svm_halt.c +++ b/palacios/src/palacios/svm_halt.c @@ -25,7 +25,7 @@ int handle_svm_halt(struct guest_info * info) //v3_update_time(info, yield_stop - yield_start); gap = yield_stop - yield_start; - raise_irq(info, 0); + v3_raise_irq(info, 0); PrintDebug("GeekOS Yield Done (%d cycles)\n", gap); diff --git a/palacios/src/palacios/svm_handler.c b/palacios/src/palacios/svm_handler.c index 9a994d2..e67a702 100644 --- a/palacios/src/palacios/svm_handler.c +++ b/palacios/src/palacios/svm_handler.c @@ -44,7 +44,7 @@ int handle_svm_exit(struct guest_info * info) { PrintDebug("SVM Returned: Exit Code: 0x%x \t\t(tsc=%ul)\n",exit_code, (uint_t)info->time_state.guest_tsc); - if (exit_code < 0x40) { + if (exit_code < 0x4f) { char instr[32]; int ret; // Dump out the instr stream @@ -65,11 +65,11 @@ int handle_svm_exit(struct guest_info * info) { if (ret != 32) { // I think we should inject a GPF into the guest PrintDebug("Could not read instruction (ret=%d)\n", ret); - return -1; - } + } else { - PrintDebug("Instr Stream:\n"); - PrintTraceMemDump(instr, 32); + PrintDebug("Instr Stream:\n"); + PrintTraceMemDump(instr, 32); + } } diff --git a/palacios/src/palacios/vmm_intr.c b/palacios/src/palacios/vmm_intr.c index 843a12a..ca42f01 100644 --- a/palacios/src/palacios/vmm_intr.c +++ b/palacios/src/palacios/vmm_intr.c @@ -9,7 +9,7 @@ void init_interrupt_state(struct guest_info * info) { info->intr_state.excp_num = 0; info->intr_state.excp_error_code = 0; - info->vm_ops.raise_irq = &raise_irq; + info->vm_ops.raise_irq = &v3_raise_irq; } void set_intr_controller(struct guest_info * info, struct intr_ctrl_ops * ops, void * state) { @@ -65,7 +65,7 @@ int raise_exception(struct guest_info * info, uint_t excp) { } -int raise_irq(struct guest_info * info, int irq) { +int v3_raise_irq(struct guest_info * info, int irq) { // Look up PIC and resend V3_ASSERT(info); V3_ASSERT(info->intr_state.controller);