/* per-core state */
struct guest_info {
+ char exec_name[256];
+
uint64_t rip;
uint_t cpl;
/* shared state across cores */
struct v3_vm_info {
+ char name[128];
+
v3_vm_class_t vm_class;
addr_t mem_size; /* In bytes for now */
uint64_t yield_cycle_period;
- int num_cores;
- struct guest_info cores[0];
-
void * host_priv_data;
+ int num_cores;
+
+ // JRL: This MUST be the last entry...
+ struct guest_info cores[0];
};
int v3_init_vm(struct v3_vm_info * vm);
int v3_init_core(struct guest_info * core);
+int v3_free_vm_internal(struct v3_vm_info * vm);
+int v3_free_core(struct guest_info * core);
+
uint_t v3_get_addr_width(struct guest_info * info);
v3_cpu_mode_t v3_get_vm_cpu_mode(struct guest_info * info);