typedef enum v3_cpu_arch {V3_INVALID_CPU, V3_SVM_CPU, V3_SVM_REV3_CPU, V3_VMX_CPU} v3_cpu_arch_t;
+v3_cpu_mode_t v3_get_host_cpu_mode();
+
+
#endif //!__V3VEE__
void (*start_kernel_thread)(int (*fn)(void * arg), void * arg, char * thread_name);
void (*yield_cpu)(void);
+
+ void *(*mutex_alloc)(void);
+ void (*mutex_free)(void * mutex);
+ void (*mutex_lock)(void * mutex, int must_spin);
+ void (*mutex_unlock)(void * mutex);
};
int enable_profiling;
int enable_nested_paging;
- int use_ramdisk;
+ int enable_pci;
+
+ int use_ram_cd;
+ int use_ram_hd;
+ int use_net_cd;
+ int use_net_hd;
+
void * ramdisk;
int ramdisk_size;
};
struct v3_ctrl_ops {
struct guest_info *(*allocate_guest)(void);
- int (*config_guest)(struct guest_info * info, struct v3_vm_config * config_ptr);
- int (*init_guest)(struct guest_info * info);
+ int (*init_guest)(struct guest_info * info, struct v3_vm_config * config_ptr);
int (*start_guest)(struct guest_info * info);
// int (*stop_vm)(uint_t vm_id);
void Init_V3(struct v3_os_hooks * hooks, struct v3_ctrl_ops * vmm_ops);
int v3_deliver_irq(struct guest_info * vm, struct v3_interrupt * intr);
-int v3_deliver_keyboard_evt(struct guest_info * vm);
+
#endif