#include <palacios/vmm_time.h>
#include <palacios/vmm_host_events.h>
#include <palacios/vmm_msr.h>
-#include <palacios/vmm_profiler.h>
#include <palacios/vmm_hypercall.h>
+#include <palacios/vmm_cpuid.h>
+#include <palacios/vmm_sym_iface.h>
+#ifdef CONFIG_TELEMETRY
+#include <palacios/vmm_telemetry.h>
+#endif
+
+#ifdef CONFIG_SYMBIOTIC_SWAP
+#include <palacios/vmm_sym_swap.h>
+#endif
struct v3_gprs {
struct shadow_page_state;
struct v3_intr_state;
-struct v3_profiler;
+#ifdef CONFIG_TELEMETRY
+struct v3_telemetry;
+#endif
+#ifdef CONFIG_SYMBIOTIC_SWAP
+struct v3_sym_swap_state;
+#endif
struct guest_info {
struct v3_msr_map msr_map;
+ struct v3_cpuid_map cpuid_map;
+
+ // Symbiotic state
+ struct v3_sym_state sym_state;
+
v3_hypercall_map_t hcall_map;
uint64_t yield_cycle_period;
uint64_t yield_start_cycle;
+ uint64_t num_exits;
+
+#ifdef CONFIG_TELEMETRY
+ uint_t enable_telemetry;
+ struct v3_telemetry_state telemetry;
+#endif
- uint_t enable_profiler;
- struct v3_profiler profiler;
+#ifdef CONFIG_SYMBIOTIC_SWAP
+ struct v3_sym_swap_state swap_state;
+#endif
void * decoder_state;
+
+ // the logical cpu this guest context is executing on
+ int cpu_id;
};
#endif // ! __V3VEE__
-
-
#endif