X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Finclude%2Fpalacios%2Fvmm_io.h;h=df58367d951b788b7bb6c7086bf000fd2e8feb3c;hb=dc87c976e1423a304f7d4c8848c85874c58e05b5;hp=f13eee8b98b777ab7f21ad48893ef2f6fa1677d7;hpb=1ca13097c7c85318c400c3811ccbb54ac6c619f1;p=palacios.git diff --git a/palacios/include/palacios/vmm_io.h b/palacios/include/palacios/vmm_io.h index f13eee8..df58367 100644 --- a/palacios/include/palacios/vmm_io.h +++ b/palacios/include/palacios/vmm_io.h @@ -13,10 +13,12 @@ typedef struct vmm_io_hook { ushort_t port; // Reads data into the IO port (IN, INS) - int (*read)(ushort_t port, void * dst, uint_t length); + int (*read)(ushort_t port, void * dst, uint_t length, void * priv_data); // Writes data from the IO port (OUT, OUTS) - int (*write)(ushort_t port, void * src, uint_t length); + int (*write)(ushort_t port, void * src, uint_t length, void * priv_data); + + void * priv_data; struct vmm_io_hook * next; struct vmm_io_hook * prev; @@ -42,8 +44,9 @@ vmm_io_hook_t * get_io_hook(vmm_io_map_t * io_map, uint_t port); /* External API */ 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, void * priv_data), + int (*write)(ushort_t port, void * src, uint_t length, void * priv_data), + void * priv_data ); void init_vmm_io_map(vmm_io_map_t * io_map);