#define GET_VMCB_SAVE_STATE_AREA(page) (page + VMCB_STATE_SAVE_AREA_OFFSET)
-#if __TINYC__
-#define PACKED
-#else
-#define PACKED __attribute__((packed))
-#endif
-
typedef void vmcb_t;
uint_t rsvd4 : 24; // Should be 0
} __attribute__((packed));
-#define SVM_INJECTION_EXTERNAL_INTR 0
-#define SVM_INJECTION_VIRTUAL_INTR 0
+#define SVM_INJECTION_IRQ 0
#define SVM_INJECTION_NMI 2
#define SVM_INJECTION_EXCEPTION 3
#define SVM_INJECTION_SOFT_INTR 4
struct vmcb_selector {
- ushort_t selector;
+ uint16_t selector;
/* These attributes are basically a direct map of the attribute fields of a segment desc.
* The segment limit in the middle is removed and the fields are fused together
} __attribute__((packed)) fields;
} __attribute__((packed)) attrib;
- uint_t limit;
- ullong_t base;
+ uint32_t limit;
+ uint64_t base;
} __attribute__((packed));
void PrintDebugVMCB(vmcb_t * vmcb);
-void set_vmcb_segments(vmcb_t * vmcb, struct v3_segments * segs);
-void get_vmcb_segments(vmcb_t * vmcb, struct v3_segments * segs);
+void v3_set_vmcb_segments(vmcb_t * vmcb, struct v3_segments * segs);
+void v3_get_vmcb_segments(vmcb_t * vmcb, struct v3_segments * segs);
#endif // ! __V3VEE__