X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Fsrc%2Fpalacios%2Fvmm.c;h=5811cba38e207afb6e35606d491e916287748671;hb=2fa62a8319b951b761c235bde156e1eeacce996a;hp=3f5fa6c8df1bacde2fd1a706f02518c83e2d3200;hpb=3e5e5a12e64630d7a37ed32b8d7e2d993c79f7e0;p=palacios.git diff --git a/palacios/src/palacios/vmm.c b/palacios/src/palacios/vmm.c index 3f5fa6c..5811cba 100644 --- a/palacios/src/palacios/vmm.c +++ b/palacios/src/palacios/vmm.c @@ -33,6 +33,10 @@ #include #endif +#ifdef CONFIG_VNET +#include +#endif + v3_cpu_arch_t v3_cpu_types[CONFIG_MAX_CPUS]; struct v3_os_hooks * os_hooks = NULL; @@ -80,10 +84,23 @@ void Init_V3(struct v3_os_hooks * hooks, int num_cpus) { // Register all the possible device types v3_init_devices(); -#ifdef INSTRUMENT_VMM + // Register all shadow paging handlers + V3_init_shdw_paging(); + + +#ifdef CONFIG_SYMMOD + V3_init_symmod(); +#endif + +#ifdef CONFIG_INSTRUMENT_VMM v3_init_instrumentation(); #endif + +#ifdef CONFIG_VNET + V3_init_vnet(); +#endif + if ((hooks) && (hooks->call_on_cpu)) { for (i = 0; i < num_cpus; i++) { @@ -234,11 +251,11 @@ void v3_print_cond(const char * fmt, ...) { -void v3_interrupt_cpu(struct v3_vm_info * vm, int logical_cpu) { +void v3_interrupt_cpu(struct v3_vm_info * vm, int logical_cpu, int vector) { extern struct v3_os_hooks * os_hooks; if ((os_hooks) && (os_hooks)->interrupt_cpu) { - (os_hooks)->interrupt_cpu(vm, logical_cpu); + (os_hooks)->interrupt_cpu(vm, logical_cpu, vector); } }