aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>2017-04-07 16:01:17 +1000
committerMichael Neuling <mikey@neuling.org>2017-04-19 14:45:03 +1000
commit1d1a64a63a2be315f497d64e64467379863cbc4e (patch)
treee422807827f5134746c91897a0c3dd97b72517a3 /include
parent30adccf43dfb6b37c7d1635512b04366d95d5456 (diff)
downloadskiboot-1d1a64a63a2be315f497d64e64467379863cbc4e.zip
skiboot-1d1a64a63a2be315f497d64e64467379863cbc4e.tar.gz
skiboot-1d1a64a63a2be315f497d64e64467379863cbc4e.tar.bz2
interrupts: Add an "irq_for_each_source" iterator
This will be used by subsequent XIVE reset improvements Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: Michael Neuling <mikey@neuling.org>
Diffstat (limited to 'include')
-rw-r--r--include/interrupts.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/include/interrupts.h b/include/interrupts.h
index 7576610..0376e8f 100644
--- a/include/interrupts.h
+++ b/include/interrupts.h
@@ -301,6 +301,12 @@ extern void register_irq_source(const struct irq_source_ops *ops, void *data,
extern void unregister_irq_source(uint32_t start, uint32_t count);
extern struct irq_source *irq_find_source(uint32_t isn);
+/* Warning: callback is called with internal source lock held
+ * so don't call back into any of our irq_ APIs from it
+ */
+extern void irq_for_each_source(void (*cb)(struct irq_source *, void *),
+ void *data);
+
extern uint32_t get_psi_interrupt(uint32_t chip_id);
extern struct dt_node *add_ics_node(void);