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=fe3bd1f4566d7c3881a2383b36ba79498f32466b;hpb=ebf600fd1dc3b43e8100be168452c6e03b8a2dda;p=palacios.git diff --git a/palacios/include/geekos/vm_guest.h b/palacios/include/geekos/vm_guest.h index fe3bd1f..f711b36 100644 --- a/palacios/include/geekos/vm_guest.h +++ b/palacios/include/geekos/vm_guest.h @@ -4,45 +4,63 @@ #include #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; }; -typedef enum {SHADOW_PAGING, NESTED_PAGING} vm_page_mode_t; +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; + shadow_map_t mem_map; vm_page_mode_t page_mode; - shadow_page_state_t shadow_page_state; + 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 * vmm_data; -} guest_info_t; - - +};