#include <devices/generic.h>
+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) {
}
- //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);
#endif
-#if 1
+#if 0
// Make the Serial ports invisible
{0x3f8, 0x3f8+7, GENERIC_PRINT_AND_IGNORE}, // COM 1