X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Finclude%2Fgeekos%2Fvm_guest.h;h=aee6182e988da2b84717e0225f0637bf27aa04f7;hb=8cb3daaded0d8c80be801aa74493006b5a06999f;hp=e18f1f09efdc3a4a9d51b8337a4d9d92ab38d82b;hpb=271ad3fd89672d441db3c5ffa673ee649e4ce532;p=palacios.git diff --git a/palacios/include/geekos/vm_guest.h b/palacios/include/geekos/vm_guest.h index e18f1f0..aee6182 100644 --- a/palacios/include/geekos/vm_guest.h +++ b/palacios/include/geekos/vm_guest.h @@ -4,9 +4,15 @@ #include #include #include -#include +//#include + +struct guest_info; + + +#include + struct guest_gprs { ullong_t rbx; ullong_t rcx; @@ -18,27 +24,31 @@ struct guest_gprs { }; +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; - shadow_paging_state_t shadow_paging_state; + 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_mem_list_t mem_list; - // vmm_mem_layout_t mem_layout; 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; - - +};