aboutsummaryrefslogtreecommitdiffstats
path: root/xen/include/asm-x86/msi.h
diff options
context:
space:
mode:
authorKeir Fraser <keir.fraser@citrix.com>2009-08-19 12:53:04 +0100
committerKeir Fraser <keir.fraser@citrix.com>2009-08-19 12:53:04 +0100
commitb07b22f961709fc4639b550450caa4681881977d (patch)
tree2ab1a8a5e98be4324a840e832a34705c4ef4b9e4 /xen/include/asm-x86/msi.h
parentd6e849eda168c604261f02c1cf4010cdd7afe2fe (diff)
downloadxen-b07b22f961709fc4639b550450caa4681881977d.tar.gz
xen-b07b22f961709fc4639b550450caa4681881977d.tar.bz2
xen-b07b22f961709fc4639b550450caa4681881977d.zip
x86: Change Xen hypervisor's interrupt infrastructure
from vector-based to IRQ-based. In per-cpu vector environment, vector space changes to multi-demension resource, so vector number is not appropriate to index irq_desc which stands for unique interrupt source. As Linux does, irq number is chosen to index irq_desc. This patch changes vector-based interrupt infrastructure to irq-based one. Mostly, it follows upstream linux's changes, and some parts are adapted for Xen. Signed-off-by: Xiantao Zhang <xiantao.zhang@intel.com>
Diffstat (limited to 'xen/include/asm-x86/msi.h')
-rw-r--r--xen/include/asm-x86/msi.h14
1 files changed, 7 insertions, 7 deletions
diff --git a/xen/include/asm-x86/msi.h b/xen/include/asm-x86/msi.h
index 56387c6004..dc9877b0a2 100644
--- a/xen/include/asm-x86/msi.h
+++ b/xen/include/asm-x86/msi.h
@@ -2,7 +2,6 @@
#define __ASM_MSI_H
#include <xen/cpumask.h>
-#include <asm/irq.h>
/*
* Constants for Intel APIC based MSI messages.
*/
@@ -57,7 +56,7 @@
struct msi_info {
int bus;
int devfn;
- int vector;
+ int irq;
int entry_nr;
uint64_t table_base;
};
@@ -70,14 +69,14 @@ struct msi_msg {
struct msi_desc;
/* Helper functions */
-extern void mask_msi_vector(unsigned int vector);
-extern void unmask_msi_vector(unsigned int vector);
+extern void mask_msi_irq(unsigned int irq);
+extern void unmask_msi_irq(unsigned int irq);
extern void set_msi_affinity(unsigned int vector, cpumask_t mask);
extern int pci_enable_msi(struct msi_info *msi, struct msi_desc **desc);
extern void pci_disable_msi(struct msi_desc *desc);
extern void pci_cleanup_msi(struct pci_dev *pdev);
-extern int setup_msi_irq(struct pci_dev *dev, struct msi_desc *desc);
-extern void teardown_msi_vector(int vector);
+extern int setup_msi_irq(struct pci_dev *dev, struct msi_desc *desc, int irq);
+extern void teardown_msi_irq(int irq);
extern int msi_free_vector(struct msi_desc *entry);
extern int pci_restore_msi_state(struct pci_dev *pdev);
@@ -97,7 +96,7 @@ struct msi_desc {
void __iomem *mask_base; /* va for the entry in mask table */
struct pci_dev *dev;
- int vector;
+ int irq;
struct msi_msg msg; /* Last set MSI message */
@@ -105,6 +104,7 @@ struct msi_desc {
};
int msi_maskable_irq(const struct msi_desc *);
+int msi_free_irq(struct msi_desc *entry);
/*
* Assume the maximum number of hot plug slots supported by the system is about