X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Finclude%2Fgeekos%2Fvm_guest.h;h=2595de13ac6bc26629dac0ef6c6777fc4c6b2326;hb=7acd54f8c3b30d118d56186a9c6506f21f85096d;hp=15b6cca335fdbc18f62990b30fac3c776a6fd360;hpb=2e05f3b8f738466246add183c55bcb17abf33ec9;p=palacios.git diff --git a/palacios/include/geekos/vm_guest.h b/palacios/include/geekos/vm_guest.h index 15b6cca..2595de1 100644 --- a/palacios/include/geekos/vm_guest.h +++ b/palacios/include/geekos/vm_guest.h @@ -1,24 +1,49 @@ #ifndef __VM_GUEST_H #define __VM_GUEST_H -#include -#include +#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 struct guest_state { - reg_ex_t rip; - reg_ex_t rsp; +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 { + ullong_t rip; + ullong_t rsp; + + shadow_map_t mem_map; - void * arch_data; -} guest_state_t; + vm_page_mode_t page_mode; + shadow_page_state_t shadow_page_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;