X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?a=blobdiff_plain;f=palacios%2Finclude%2Fpalacios%2Fvm_dev.h;h=7cbebd487a20f4747a20d6cec06009716b77b856;hb=101b1bdfedbf377765d7c74641e9bcf356ebed18;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..7cbebd4 100644 --- a/palacios/include/palacios/vm_dev.h +++ b/palacios/include/palacios/vm_dev.h @@ -1,6 +1,27 @@ +/* + * This file is part of the Palacios Virtual Machine Monitor developed + * by the V3VEE Project with funding from the United States National + * Science Foundation and the Department of Energy. + * + * The V3VEE Project is a joint project between Northwestern University + * and the University of New Mexico. You can find out more at + * http://www.v3vee.org + * + * Copyright (c) 2008, Jack Lange + * Copyright (c) 2008, The V3VEE Project + * All rights reserved. + * + * Author: Jack Lange + * + * This is free software. You are permitted to use, + * redistribute, and modify it as specified in the file "V3VEE_LICENSE". + */ + #ifndef __VM_DEV_H #define __VM_DEV_H +#ifdef __V3VEE__ + #include #include #include @@ -37,11 +58,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 +95,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