X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Fsrc%2Fgeekos%2Fvm.c;h=a6f5bb08c3bbd4343a88bc3dd76e057619060fac;hb=bc2c46a12649344d973e2201271c05390ce924bf;hp=661f5d18ef1f046cc660d4e7ead8597453dfa241;hpb=f7cc83b3bae64c853f5b7b63e2830b1ea92dfed9;p=palacios.git diff --git a/palacios/src/geekos/vm.c b/palacios/src/geekos/vm.c index 661f5d1..a6f5bb0 100644 --- a/palacios/src/geekos/vm.c +++ b/palacios/src/geekos/vm.c @@ -219,14 +219,13 @@ int RunVMM(struct Boot_Info * bootInfo) { os_hooks.free = &VMM_Free; os_hooks.vaddr_to_paddr = &Identity; os_hooks.paddr_to_vaddr = &Identity; - os_hooks.hook_interrupt = &hook_irq_stub; - os_hooks.hook_interrupt_new = &geekos_hook_interrupt_new; + os_hooks.hook_interrupt = &geekos_hook_interrupt_new; os_hooks.ack_irq = &ack_irq; os_hooks.get_cpu_khz = &get_cpu_khz; - Init_VMM(&os_hooks, &vmm_ops); + Init_V3(&os_hooks, &vmm_ops); //test decoder PrintBoth("testing decoder\n"); @@ -285,8 +284,8 @@ int RunVMM(struct Boot_Info * bootInfo) { add_shadow_region_passthrough(&vm_info, 0x0, 0x100000, 0x100000); - hook_io_port(&(vm_info.io_map), 0x61, &IO_Read, &IO_Write, NULL); - hook_io_port(&(vm_info.io_map), 0x05, &IO_Read, &IO_Write_to_Serial, NULL); + v3_hook_io_port(&(vm_info.io_map), 0x61, &IO_Read, &IO_Write, NULL); + v3_hook_io_port(&(vm_info.io_map), 0x05, &IO_Read, &IO_Write_to_Serial, NULL); /* vm_info.cr0 = 0; @@ -361,20 +360,22 @@ int RunVMM(struct Boot_Info * bootInfo) { //add_shadow_region_passthrough(&vm_info, 0x100000, 0x2000000, (addr_t)Allocate_VMM_Pages(8192)); add_shadow_region_passthrough(&vm_info, 0x100000, 0x1000000, (addr_t)Allocate_VMM_Pages(4096)); + add_shadow_region_passthrough(&vm_info, 0x1000000, 0x8000000, (addr_t)Allocate_VMM_Pages(32768)); + // test - give linux accesss to PCI space - PAD add_shadow_region_passthrough(&vm_info, 0xc0000000,0xffffffff,0xc0000000); print_shadow_map(&(vm_info.mem_map)); - hook_io_port(&(vm_info.io_map), 0x61, &IO_Read, &IO_Write, NULL); - //hook_io_port(&(vm_info.io_map), 0x05, &IO_Read, &IO_Write_to_Serial, NULL); + v3_hook_io_port(&(vm_info.io_map), 0x61, &IO_Read, &IO_Write, NULL); + //v3_hook_io_port(&(vm_info.io_map), 0x05, &IO_Read, &IO_Write_to_Serial, NULL); - hook_io_port(&(vm_info.io_map), 0x400, &IO_Read, &IO_Write_to_Serial, NULL); - hook_io_port(&(vm_info.io_map), 0x401, &IO_Read, &IO_Write_to_Serial, NULL); - hook_io_port(&(vm_info.io_map), 0x402, &IO_Read, &IO_BOCHS_info, NULL); - hook_io_port(&(vm_info.io_map), 0x403, &IO_Read, &IO_BOCHS_debug, NULL); + v3_hook_io_port(&(vm_info.io_map), 0x400, &IO_Read, &IO_Write_to_Serial, NULL); + v3_hook_io_port(&(vm_info.io_map), 0x401, &IO_Read, &IO_Write_to_Serial, NULL); + v3_hook_io_port(&(vm_info.io_map), 0x402, &IO_Read, &IO_BOCHS_info, NULL); + v3_hook_io_port(&(vm_info.io_map), 0x403, &IO_Read, &IO_BOCHS_debug, NULL); { @@ -440,17 +441,17 @@ int RunVMM(struct Boot_Info * bootInfo) { #endif - attach_device(&(vm_info), nvram); - //attach_device(&(vm_info), timer); - attach_device(&(vm_info), pic); - attach_device(&(vm_info), pit); - attach_device(&(vm_info), keyboard); - // attach_device(&(vm_info), serial); + v3_attach_device(&(vm_info), nvram); + //v3_attach_device(&(vm_info), timer); + v3_attach_device(&(vm_info), pic); + v3_attach_device(&(vm_info), pit); + v3_attach_device(&(vm_info), keyboard); + // v3_attach_device(&(vm_info), serial); #if GENERIC // Important that this be attached last! - attach_device(&(vm_info), generic); + v3_attach_device(&(vm_info), generic); #endif @@ -463,15 +464,15 @@ int RunVMM(struct Boot_Info * bootInfo) { #if 1 // give floppy controller to vm - hook_irq_for_guest_injection(&vm_info, 6); + v3_hook_irq_for_guest_injection(&vm_info, 6); #endif #if 1 //primary ide - hook_irq_for_guest_injection(&vm_info, 14); + v3_hook_irq_for_guest_injection(&vm_info, 14); // secondary ide - hook_irq_for_guest_injection(&vm_info, 15); + v3_hook_irq_for_guest_injection(&vm_info, 15); #endif