X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Finclude%2Fpalacios%2Fvmx_assist.h;h=b367cd38ecf868d9a69b9881987da4e626ed8f2b;hb=fd6d48d413ea965d2e0fca5a2480889f9460ec33;hp=31b9a37044ca40244678c02f47110c311e611c8d;hpb=61597ea2c5ccace036d8a65e429e32b8f8a7ed4a;p=palacios.git diff --git a/palacios/include/palacios/vmx_assist.h b/palacios/include/palacios/vmx_assist.h index 31b9a37..b367cd3 100644 --- a/palacios/include/palacios/vmx_assist.h +++ b/palacios/include/palacios/vmx_assist.h @@ -26,20 +26,21 @@ #ifndef _VMX_ASSIST_H_ #define _VMX_ASSIST_H_ +#ifdef __V3VEE__ + #include #define VMXASSIST_BASE 0xD0000 #define VMXASSIST_MAGIC 0x17101966 -#define VMXASSIST_MAGIC_OFFSET (VMXASSIST_BASE+8) -#define VMXASSIST_NEW_CONTEXT (VMXASSIST_BASE + 12) -#define VMXASSIST_OLD_CONTEXT (VMXASSIST_NEW_CONTEXT + 4) -#ifndef __ASSEMBLY__ +struct vmx_assist_header { + uint64_t rsvd; // 8 bytes of nothing + uint32_t magic; + uint32_t new_ctx_gpa; + uint32_t old_ctx_gpa; +} __attribute__((packed)); -#define NR_EXCEPTION_HANDLER 32 -#define NR_INTERRUPT_HANDLERS 16 -#define NR_TRAPS (NR_EXCEPTION_HANDLER+NR_INTERRUPT_HANDLERS) union vmcs_arbytes { struct arbyte_fields { @@ -107,11 +108,13 @@ struct vmx_assist_context { unsigned char rm_irqbase[2]; }; + typedef struct vmx_assist_context vmx_assist_context_t; int v3_vmxassist_ctx_switch(struct guest_info * info); -#endif /* __ASSEMBLY__ */ + +#endif #endif /* _VMX_ASSIST_H_ */