#include <palacios/vmm_debug.h>
#include <palacios/vmm_msr.h>
#include <palacios/vmm_decoder.h>
+#include <palacios/vmm_profiler.h>
+#include <palacios/vmm_mem.h>
+#include <palacios/vmm_hypercall.h>
+
#include <devices/serial.h>
#include <devices/keyboard.h>
#include <devices/ramdisk.h>
#include <devices/cdrom.h>
#include <devices/bochs_debug.h>
+#include <devices/os_debug.h>
+#include <devices/apic.h>
+#include <devices/io_apic.h>
+
#include <palacios/vmm_host_events.h>
v3_init_host_events(info);
v3_init_decoder(info);
-
+
v3_init_shadow_map(info);
+ v3_init_hypercall_map(info);
+
+
if (v3_cpu_type == V3_SVM_REV3_CPU) {
info->shdw_pg_mode = NESTED_PAGING;
} else {
setup_devices(info, config_ptr);
+
+ if (config_ptr->enable_profiling) {
+ info->enable_profiler = 1;
+ v3_init_profiler(info);
+ } else {
+ info->enable_profiler = 0;
+ }
+
//v3_hook_io_port(info, 1234, &IO_Read, NULL, info);
// Setup initial cpu register state
//
v3_add_shadow_mem(info, 0x0, 0x9ffff, (addr_t)V3_AllocPages(160));
- if (0) {
+ if (1) {
v3_add_shadow_mem(info, 0xa0000, 0xbffff, 0xa0000);
} else {
v3_hook_write_mem(info, 0xa0000, 0xbffff, 0xa0000, passthrough_mem_write, NULL);
v3_add_shadow_mem(info, 0x1000000, 0x8000000, (addr_t)V3_AllocPages(32768));
// test - give linux accesss to PCI space - PAD
- v3_add_shadow_mem(info, 0xc0000000,0xffffffff,0xc0000000);
+ //v3_add_shadow_mem(info, 0xc0000000,0xffffffff,0xc0000000);
print_shadow_map(info);
struct vm_device * keyboard = v3_create_keyboard();
struct vm_device * pit = v3_create_pit();
struct vm_device * bochs_debug = v3_create_bochs_debug();
+ struct vm_device * os_debug = v3_create_os_debug();
+ struct vm_device * apic = v3_create_apic();
+ struct vm_device * ioapic = v3_create_io_apic(apic);
//struct vm_device * serial = v3_create_serial();
struct vm_device * generic = NULL;
v3_attach_device(info, keyboard);
// v3_attach_device(info, serial);
v3_attach_device(info, bochs_debug);
+ v3_attach_device(info, os_debug);
+
+ v3_attach_device(info, apic);
+ v3_attach_device(info, ioapic);
if (use_ramdisk) {
v3_attach_device(info, ramdisk);