X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?p=palacios.git;a=blobdiff_plain;f=palacios%2Fsrc%2Fgeekos%2Fvmm_io.c;h=a45e2cae5ec2496287c904867c91e56be3ce3d18;hp=9508ad121f755a327308fb53e28e7dec56f41d43;hb=29dcf8d7134d5c8fe56ec1f3ffaaa37192ce6fb8;hpb=b85f79b8030114370851ed3422c078debe630570 diff --git a/palacios/src/geekos/vmm_io.c b/palacios/src/geekos/vmm_io.c index 9508ad1..a45e2ca 100644 --- a/palacios/src/geekos/vmm_io.c +++ b/palacios/src/geekos/vmm_io.c @@ -52,8 +52,8 @@ void add_io_hook(vmm_io_map_t * io_map, vmm_io_hook_t * io_hook) { } void hook_io_port(vmm_io_map_t * io_map, uint_t port, - int (*read)(ushort_t port, void * dst, uint_t length), - int (*write)(ushort_t port, void * src, uint_t length)) { + int (*read)(ushort_t port, void * dst, uint_t length, uint_t io_width), + int (*write)(ushort_t port, void * src, uint_t length, uint_t io_width)) { vmm_io_hook_t * io_hook = os_hooks->malloc(sizeof(vmm_io_hook_t)); io_hook->port = port; @@ -68,6 +68,18 @@ void hook_io_port(vmm_io_map_t * io_map, uint_t port, } +vmm_io_hook_t * get_io_hook(vmm_io_map_t * io_map, uint_t port) { + vmm_io_hook_t * tmp_hook; + FOREACH_IO_HOOK(*io_map, tmp_hook) { + if (tmp_hook->port == port) { + return tmp_hook; + } + } + return NULL; +} + + + void PrintDebugIOMap(vmm_io_map_t * io_map) { vmm_io_hook_t * iter = io_map->head;