X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Finclude%2Fgeekos%2Fvm_guest.h;h=f711b3679514f48b72331b6c3ce882b344bdf94a;hb=a31286a91d6a84a60b34ee088517ee5d0d2176b0;hp=6a6d86b69b98c1dd950f8bab578c6c8fa631b0f2;hpb=158640d601f6c710cfce7bc4a6bd8f7e7847b7a3;p=palacios.git diff --git a/palacios/include/geekos/vm_guest.h b/palacios/include/geekos/vm_guest.h index 6a6d86b..f711b36 100644 --- a/palacios/include/geekos/vm_guest.h +++ b/palacios/include/geekos/vm_guest.h @@ -4,38 +4,63 @@ #include #include #include +#include -struct guest_gprs { - ullong_t rbx; - ullong_t rcx; - ullong_t rdx; - ullong_t rsi; - ullong_t rdi; - ullong_t rbp; +typedef ullong_t gpr_t; + +/* + struct guest_gprs { + addr_t rax; + addr_t rbx; + addr_t rcx; + addr_t rdx; + addr_t rsi; + addr_t rdi; + addr_t rbp; + }; +*/ + +struct guest_gprs { + gpr_t rdi; + gpr_t rsi; + gpr_t rbp; + gpr_t rsp; + gpr_t rbx; + gpr_t rdx; + gpr_t rcx; + gpr_t rax; }; +struct shadow_page_state; + +typedef enum {SHADOW_PAGING, NESTED_PAGING} vm_page_mode_t; +typedef enum {REAL, PROTECTED, PROTECTED_PG, PROTECTED_PAE, PROTECTED_PAE_PG, LONG, LONG_PG} vm_cpu_mode_t; -typedef struct guest_info { +struct guest_info { ullong_t rip; - ullong_t rsp; - vmm_mem_list_t mem_list; - vmm_mem_layout_t mem_layout; + + shadow_map_t mem_map; + + + vm_page_mode_t page_mode; + struct shadow_page_state shdw_pg_state; + // nested_paging_t nested_page_state; + vmm_io_map_t io_map; // device_map + vm_cpu_mode_t cpu_mode; + struct guest_gprs vm_regs; - void * page_tables; void * vmm_data; -} guest_info_t; - - +};