X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?p=palacios.git;a=blobdiff_plain;f=palacios%2Fsrc%2Fpalacios%2Fvmm_config.c;h=1e3e2f36755e678f78bb81f5fbb40eda9a3bf676;hp=8e80bfdd8f215a957b2470a2991d1ee02c027762;hb=bf0d677f3d92f5949c3a73dad30aaf330201da44;hpb=a5c5675571882a9b8a7594ef07fe303b195ef9ae diff --git a/palacios/src/palacios/vmm_config.c b/palacios/src/palacios/vmm_config.c index 8e80bfd..1e3e2f3 100644 --- a/palacios/src/palacios/vmm_config.c +++ b/palacios/src/palacios/vmm_config.c @@ -11,6 +11,23 @@ #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; + + + memcpy(dst, &foo, length); + + PrintDebug("Passthrough mem read returning: %d (length=%d)\n", foo + (guest_addr & 0xfff), length); + return length; +} + +static int passthrough_mem_write(addr_t guest_addr, void * src, uint_t length, void * priv_data) { + memcpy((void*)guest_addr, src, length); + return length; +} + + int config_guest(struct guest_info * info, void * config_ptr) { @@ -94,11 +111,18 @@ int config_guest(struct guest_info * info, void * config_ptr) { } - //add_shadow_region_passthrough(info, 0x100000, 0x2000000, (addr_t)Allocate_VMM_Pages(8192)); - add_shadow_region_passthrough(info, 0x100000, 0x1000000, (addr_t)V3_AllocPages(4096)); - - add_shadow_region_passthrough(info, 0x1000000, 0x8000000, (addr_t)V3_AllocPages(32768)); - + + // 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); + + 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 add_shadow_region_passthrough(info, 0xc0000000,0xffffffff,0xc0000000); @@ -138,7 +162,7 @@ int config_guest(struct guest_info * info, void * config_ptr) { #endif -#if 1 +#if 0 // Make the Serial ports invisible {0x3f8, 0x3f8+7, GENERIC_PRINT_AND_IGNORE}, // COM 1