X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Finclude%2Fpalacios%2Fvm_dev.h;h=795a3d121d3e25bb20458ab7c34188dc91ca0807;hb=f4b074d9bf5c28dfd6e5fd616805ade2e9473b01;hp=192a2b50f4d12aed05593d3a002f16fd98451e50;hpb=570ad6257ed18fbbc840c17a600f12f2dc44b010;p=palacios.git diff --git a/palacios/include/palacios/vm_dev.h b/palacios/include/palacios/vm_dev.h index 192a2b5..795a3d1 100644 --- a/palacios/include/palacios/vm_dev.h +++ b/palacios/include/palacios/vm_dev.h @@ -1,6 +1,11 @@ +/* (c) 2008, Jack Lange */ +/* (c) 2008, The V3VEE Project */ + #ifndef __VM_DEV_H #define __VM_DEV_H +#ifdef __V3VEE__ + #include #include #include @@ -37,11 +42,16 @@ struct vm_device { struct guest_info * vm; - struct vm_device *next, *prev; + struct list_head dev_link; - struct dev_io_hook_list io_hooks; - struct dev_mem_hook_list mem_hooks; + uint_t num_io_hooks; + struct list_head io_hooks; + uint_t num_mem_hooks; + struct list_head mem_hooks; + uint_t num_irq_hooks; + struct list_head irq_hooks; + }; @@ -69,7 +79,13 @@ int dev_unhook_mem(struct vm_device * dev, void * end); +int dev_hook_irq(struct vm_device * dev, + uint_t irq, + int (*handler)(uint_t irq, struct vm_device * dev)); +int dev_unhook_irq(struct vm_device * dev, uint_t irq); + +#endif // ! __V3VEE__ #endif