X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Finclude%2Fpalacios%2Fvmm_mem_hook.h;h=702ba441639d31d3813b38c87fd38a2bf1577be0;hb=94f67717b6461df514dc225ed84f03b44c44061b;hp=e30ecf7152a68a5c04733645570fbb42e6bbd73f;hpb=b93aeabee44c82139a9afd065dfcaca8ac6688ad;p=palacios.git diff --git a/palacios/include/palacios/vmm_mem_hook.h b/palacios/include/palacios/vmm_mem_hook.h index e30ecf7..702ba44 100644 --- a/palacios/include/palacios/vmm_mem_hook.h +++ b/palacios/include/palacios/vmm_mem_hook.h @@ -24,18 +24,29 @@ #ifdef __V3VEE__ +struct hashtable; + struct v3_mem_hooks { - void * hook_hvas; // this is an array of pages, equal to the number of cores + /* Scratch memory pages for full hooks (1 per core) */ + void * hook_hvas_1; + + /* A second set of scratch memory pages */ + /* The ONLY reason this exists is because of 'rep cmps'... */ + void * hook_hvas_2; + struct list_head hook_list; + /* We track memory hooks via a hash table */ + /* keyed to the memory region pointer */ + struct hashtable * reg_table; }; int v3_init_mem_hooks(struct v3_vm_info * vm); - +int v3_deinit_mem_hooks(struct v3_vm_info * vm); int v3_hook_full_mem(struct v3_vm_info * vm, uint16_t core_id, addr_t guest_addr_start, addr_t guest_addr_end, @@ -52,6 +63,7 @@ int v3_hook_write_mem(struct v3_vm_info * vm, uint16_t core_id, int v3_unhook_mem(struct v3_vm_info * vm, uint16_t core_id, addr_t guest_addr_start); + #endif /* ! __V3VEE__ */