X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Fsrc%2Fpalacios%2Fvmm_config.c;h=7d060e7f42feaccabf469f9852c537c4e88df2da;hb=299678c78c20fdd711785ee89f125a3819580117;hp=1e3e2f36755e678f78bb81f5fbb40eda9a3bf676;hpb=bf0d677f3d92f5949c3a73dad30aaf330201da44;p=palacios.git diff --git a/palacios/src/palacios/vmm_config.c b/palacios/src/palacios/vmm_config.c index 1e3e2f3..7d060e7 100644 --- a/palacios/src/palacios/vmm_config.c +++ b/palacios/src/palacios/vmm_config.c @@ -11,15 +11,20 @@ #include -static int passthrough_mem_read(addr_t guest_addr, void * dst, uint_t length, void * priv_data) { - // memcpy(dst, (void*)guest_addr, length); - int foo = 20; + +/*static int mem_test_read(addr_t guest_addr, void * dst, uint_t length, void * priv_data) { + int foo = 20; memcpy(dst, &foo, length); PrintDebug("Passthrough mem read returning: %d (length=%d)\n", foo + (guest_addr & 0xfff), length); return length; + }*/ + +static int passthrough_mem_read(addr_t guest_addr, void * dst, uint_t length, void * priv_data) { + memcpy(dst, (void*)guest_addr, length); + return length; } static int passthrough_mem_write(addr_t guest_addr, void * src, uint_t length, void * priv_data) { @@ -93,8 +98,8 @@ int config_guest(struct guest_info * info, void * config_ptr) { // add_shadow_region_passthrough(info, 0x0, 0xa0000, (addr_t)V3_AllocPages(160)); - add_shadow_region_passthrough(info, 0xa0000, 0xc0000, 0xa0000); - //hook_guest_mem(info, 0xa0000, 0xc0000, passthrough_mem_read, passthrough_mem_write, NULL); + //add_shadow_region_passthrough(info, 0xa0000, 0xc0000, 0xa0000); + hook_guest_mem(info, 0xa0000, 0xc0000, passthrough_mem_read, passthrough_mem_write, NULL); // TEMP @@ -112,15 +117,17 @@ int config_guest(struct guest_info * info, void * config_ptr) { - // add_shadow_region_passthrough(info, 0x100000, 0x1000000, (addr_t)V3_AllocPages(4096)); - { - /* MEMORY HOOK TEST */ + add_shadow_region_passthrough(info, 0x100000, 0x1000000, (addr_t)V3_AllocPages(4096)); + /* MEMORY HOOK TEST */ + /* { + add_shadow_region_passthrough(info, 0x100000, 0xa00000, (addr_t)V3_AllocPages(2304)); - hook_guest_mem(info, 0xa00000, 0xa01000, passthrough_mem_read, passthrough_mem_write, NULL); + hook_guest_mem(info, 0xa00000, 0xa01000, mem_test_read, passthrough_mem_write, NULL); add_shadow_region_passthrough(info, 0xa01000, 0x1000000, (addr_t)V3_AllocPages(1791)); } +*/ add_shadow_region_passthrough(info, 0x1000000, 0x8000000, (addr_t)V3_AllocPages(32768)); // test - give linux accesss to PCI space - PAD @@ -162,7 +169,7 @@ int config_guest(struct guest_info * info, void * config_ptr) { #endif -#if 0 +#if 1 // Make the Serial ports invisible {0x3f8, 0x3f8+7, GENERIC_PRINT_AND_IGNORE}, // COM 1