X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Finclude%2Fpalacios%2Fvmm_mem_hook.h;h=702ba441639d31d3813b38c87fd38a2bf1577be0;hb=b7093fd3602ef2c796a1f8a0daded9d6aad0b756;hp=cd875185a7c72a899e2dae34783c6be524813694;hpb=a3c0442bfd3777bb88dd60f6702ef7506b255330;p=palacios.git diff --git a/palacios/include/palacios/vmm_mem_hook.h b/palacios/include/palacios/vmm_mem_hook.h index cd87518..702ba44 100644 --- a/palacios/include/palacios/vmm_mem_hook.h +++ b/palacios/include/palacios/vmm_mem_hook.h @@ -24,12 +24,24 @@ #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; }; @@ -50,11 +62,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); -int v3_find_mem_hook(struct v3_vm_info *vm, uint16_t core_id, addr_t guest_addr, - int (**read)(struct guest_info * core, addr_t guest_addr, void * dst, uint_t length, void * priv_data), - void **read_priv_data, - int (**write)(struct guest_info * core, addr_t guest_addr, void * src, uint_t length, void * priv_data), - void **write_priv_data); +