xref: /kvmtool/include/kvm/irq.h (revision 21ff329de8997d20acba0da657ef17671eb861ab)
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 *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