1 #ifndef KVM__IRQ_H 2 #define KVM__IRQ_H 3 4 #include <linux/types.h> 5 #include <linux/rbtree.h> 6 #include <linux/list.h> 7 #include <linux/kvm.h> 8 9 #include "kvm/msi.h" 10 11 struct kvm; 12 13 struct irq_line { 14 u8 line; 15 struct list_head node; 16 }; 17 18 struct pci_dev { 19 struct rb_node node; 20 u32 id; 21 u8 pin; 22 struct list_head lines; 23 }; 24 25 int irq__register_device(u32 dev, u8 *num, u8 *pin, u8 *line); 26 27 struct rb_node *irq__get_pci_tree(void); 28 29 int irq__init(struct kvm *kvm); 30 int irq__exit(struct kvm *kvm); 31 int irq__add_msix_route(struct kvm *kvm, struct msi_msg *msg); 32 33 #endif 34