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 #include <linux/msi.h> 9 10 struct kvm; 11 12 struct irq_line { 13 u8 line; 14 struct list_head node; 15 }; 16 17 struct pci_dev { 18 struct rb_node node; 19 u32 id; 20 u8 pin; 21 struct list_head lines; 22 }; 23 24 int irq__register_device(u32 dev, u8 *num, u8 *pin, u8 *line); 25 26 struct rb_node *irq__get_pci_tree(void); 27 28 void irq__init(struct kvm *kvm); 29 int irq__add_msix_route(struct kvm *kvm, struct msi_msg *msg); 30 31 #endif 32