summaryrefslogtreecommitdiffstats
path: root/kernel/include/linux/htirq.h
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/include/linux/htirq.h')
-rw-r--r--kernel/include/linux/htirq.h24
1 files changed, 24 insertions, 0 deletions
diff --git a/kernel/include/linux/htirq.h b/kernel/include/linux/htirq.h
new file mode 100644
index 000000000..70a1dbbf2
--- /dev/null
+++ b/kernel/include/linux/htirq.h
@@ -0,0 +1,24 @@
+#ifndef LINUX_HTIRQ_H
+#define LINUX_HTIRQ_H
+
+struct ht_irq_msg {
+ u32 address_lo; /* low 32 bits of the ht irq message */
+ u32 address_hi; /* high 32 bits of the it irq message */
+};
+
+/* Helper functions.. */
+void fetch_ht_irq_msg(unsigned int irq, struct ht_irq_msg *msg);
+void write_ht_irq_msg(unsigned int irq, struct ht_irq_msg *msg);
+struct irq_data;
+void mask_ht_irq(struct irq_data *data);
+void unmask_ht_irq(struct irq_data *data);
+
+/* The arch hook for getting things started */
+int arch_setup_ht_irq(unsigned int irq, struct pci_dev *dev);
+
+/* For drivers of buggy hardware */
+typedef void (ht_irq_update_t)(struct pci_dev *dev, int irq,
+ struct ht_irq_msg *msg);
+int __ht_create_irq(struct pci_dev *dev, int idx, ht_irq_update_t *update);
+
+#endif /* LINUX_HTIRQ_H */