blob: ee059e313f4d280775debdfc8c54dc40c7d2ee94 [file] [log] [blame]
#ifndef KVM__IRQ_H
#define KVM__IRQ_H
#include <linux/types.h>
#include <linux/rbtree.h>
#include <linux/list.h>
#include <linux/kvm.h>
#include "kvm/msi.h"
struct kvm;
extern struct kvm_irq_routing *irq_routing;
extern int next_gsi;
int irq__alloc_line(void);
int irq__get_nr_allocated_lines(void);
int irq__init(struct kvm *kvm);
int irq__exit(struct kvm *kvm);
int irq__allocate_routing_entry(void);
int irq__add_msix_route(struct kvm *kvm, struct msi_msg *msg, u32 device_id);
void irq__update_msix_route(struct kvm *kvm, u32 gsi, struct msi_msg *msg);
#endif