X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Fsrc%2Fgeekos%2Fmain.c;h=19933a5f938be0e5063d5fa353104e38da462618;hb=b85f79b8030114370851ed3422c078debe630570;hp=dce6c85b4c6c4cbc503422480827389056f05337;hpb=7acd54f8c3b30d118d56186a9c6506f21f85096d;p=palacios.git diff --git a/palacios/src/geekos/main.c b/palacios/src/geekos/main.c index dce6c85..19933a5 100644 --- a/palacios/src/geekos/main.c +++ b/palacios/src/geekos/main.c @@ -3,7 +3,7 @@ * Copyright (c) 2001,2003,2004 David H. Hovemeyer * Copyright (c) 2003, Jeffrey K. Hollingsworth * Copyright (c) 2004, Iulian Neamtiu - * $Revision: 1.24 $ + * $Revision: 1.28 $ * * This is free software. You are permitted to use, * redistribute, and modify it as specified in the file "COPYING". @@ -258,9 +258,9 @@ void Main(struct Boot_Info* bootInfo) -#if 0 +#if 1 SerialPrint("Dumping VM kernel Code (first 128 bytes @ 0x%x)\n", 0x100000); - SerialMemDump((unsigned char *)0xfe000, 4096); + SerialMemDump((unsigned char *)0x100000, 256); /* SerialPrint("Dumping kernel Code (first 512 bytes @ 0x%x)\n",KERNEL_START); SerialMemDump((unsigned char *)VM_KERNEL_START, 512); @@ -286,13 +286,13 @@ void Main(struct Boot_Info* bootInfo) { struct vmm_os_hooks os_hooks; struct vmm_ctrl_ops vmm_ops; - guest_info_t vm_info; + struct guest_info vm_info; addr_t rsp; addr_t rip; memset(&os_hooks, 0, sizeof(struct vmm_os_hooks)); memset(&vmm_ops, 0, sizeof(struct vmm_ctrl_ops)); - memset(&vm_info, 0, sizeof(guest_info_t)); + memset(&vm_info, 0, sizeof(struct guest_info)); os_hooks.print_debug = &PrintBoth; os_hooks.print_info = &Print; @@ -309,7 +309,7 @@ void Main(struct Boot_Info* bootInfo) Init_VMM(&os_hooks, &vmm_ops); init_shadow_map(&(vm_info.mem_map)); - init_shadow_page_state(&(vm_info.shadow_page_state)); + init_shadow_page_state(&(vm_info.shdw_pg_state)); vm_info.page_mode = SHADOW_PAGING; vm_info.cpu_mode = REAL; @@ -329,7 +329,7 @@ void Main(struct Boot_Info* bootInfo) vm_info.rip = rip; rsp = (addr_t)Alloc_Page(); - vm_info.rsp = (rsp +4092 );// - 0x2000; + vm_info.vm_regs.rsp = (rsp +4092 );// - 0x2000; } else { @@ -342,16 +342,20 @@ void Main(struct Boot_Info* bootInfo) add_shadow_region(&(vm_info.mem_map),ent); hook_io_port(&(vm_info.io_map), 0x61, &IO_Read, &IO_Write); + hook_io_port(&(vm_info.io_map), 0x05, &IO_Read, &IO_Write); + /* vm_info.cr0 = 0; vm_info.cs.base=0xf000; vm_info.cs.limit=0xffff; */ - vm_info.rip = 0xfff0; - vm_info.rsp = 0x0; + //vm_info.rip = 0xfff0; + + vm_info.rip = 0; + vm_info.vm_regs.rsp = 0x0; } - PrintBoth("Initializing Guest (eip=0x%.8x) (esp=0x%.8x)\n", (uint_t)vm_info.rip,(uint_t)vm_info.rsp); + PrintBoth("Initializing Guest (eip=0x%.8x) (esp=0x%.8x)\n", (uint_t)vm_info.rip,(uint_t)vm_info.vm_regs.rsp); (vmm_ops).init_guest(&vm_info); PrintBoth("Starting Guest\n"); (vmm_ops).start_guest(&vm_info);