#include <palacios/vmm_types.h>
#include <palacios/vmm_mem.h>
+#include <palacios/vmm_mem_hook.h>
#include <palacios/vmm_io.h>
#include <palacios/vmm_shadow_paging.h>
#include <palacios/vmm_intr.h>
#include <palacios/vmm_msr.h>
#include <palacios/vmm_hypercall.h>
#include <palacios/vmm_cpuid.h>
-
+#include <palacios/vmm_regs.h>
#ifdef CONFIG_TELEMETRY
#include <palacios/vmm_telemetry.h>
#endif
-#ifdef CONFIG_SYMBIOTIC_SWAP
-#include <palacios/vmm_sym_swap.h>
-#endif
-
-
-
-
#ifdef CONFIG_SYMBIOTIC
#include <palacios/vmm_symbiotic.h>
#include <palacios/vmm_config.h>
-
struct v3_intr_state;
-#ifdef CONFIG_SYMBIOTIC_SWAP
-struct v3_sym_swap_state;
-#endif
-
-
+/* per-core state */
struct guest_info {
uint64_t rip;
-
+/* shared state across cores */
struct v3_vm_info {
v3_vm_class_t vm_class;
addr_t mem_size; // In bytes for now
struct v3_mem_map mem_map;
+ struct v3_mem_hooks mem_hooks;
struct v3_shdw_impl_state shdw_impl;
#ifdef CONFIG_SYMBIOTIC
// Symbiotic state
struct v3_sym_vm_state sym_vm_state;
-#ifdef CONFIG_SYMBIOTIC_SWAP
- struct v3_sym_swap_state swap_state;
-#endif
#endif