X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Finclude%2Fpalacios%2Fvm_guest.h;h=56245efd1fd4bcec08d6576297beefd6a9b5201f;hb=2b1f4ef19d766727f873476861c64339c8836a40;hp=977356d330c7acb142ecc8aa1463f7ae67c393c0;hpb=fc90c3287f85c66e1f6616685b66a8339145c3ee;p=palacios.git diff --git a/palacios/include/palacios/vm_guest.h b/palacios/include/palacios/vm_guest.h index 977356d..56245ef 100644 --- a/palacios/include/palacios/vm_guest.h +++ b/palacios/include/palacios/vm_guest.h @@ -1,11 +1,17 @@ #ifndef __VM_GUEST_H #define __VM_GUEST_H + + + #include #include #include #include #include +#include +#include + typedef ullong_t gpr_t; @@ -36,6 +42,15 @@ struct guest_gprs { struct shadow_page_state; struct shadow_map; + +struct vm_ctrl_ops { + int (*raise_irq)(struct guest_info * info, int irq, int error_code); +}; + + + + + 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; @@ -54,18 +69,25 @@ struct guest_info { // This structure is how we get interrupts for the guest struct vm_intr intr_state; + + // struct vmm_irq_map irq_map; vmm_io_map_t io_map; // device_map + struct vmm_dev_mgr dev_mgr; + vm_cpu_mode_t cpu_mode; struct guest_gprs vm_regs; + struct vm_ctrl_ops vm_ops; + void * vmm_data; }; + #endif