summaryrefslogtreecommitdiffstats
path: root/bsps/include/bsp/irq-generic.h
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2021-06-28 08:44:49 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2021-07-26 07:54:25 +0200
commit9832652c53af44367cd3a9cf789bdb997a85043c (patch)
treee928e3ad1d27a4d559ff1869eed8f77f202f62a5 /bsps/include/bsp/irq-generic.h
parentbsps/irq: Add rtems_interrupt_vector_is_enabled() (diff)
downloadrtems-9832652c53af44367cd3a9cf789bdb997a85043c.tar.bz2
bsps/irq: Add rtems_interrupt_raise()
Add rtems_interrupt_raise_on() and rtems_interrupt_clear(). Add a default implementation which just returns RTEMS_UNSATISFIED for valid parameters. Update #3269.
Diffstat (limited to 'bsps/include/bsp/irq-generic.h')
-rw-r--r--bsps/include/bsp/irq-generic.h47
1 files changed, 47 insertions, 0 deletions
diff --git a/bsps/include/bsp/irq-generic.h b/bsps/include/bsp/irq-generic.h
index cc45e63fed..d2d5e1ed90 100644
--- a/bsps/include/bsp/irq-generic.h
+++ b/bsps/include/bsp/irq-generic.h
@@ -274,6 +274,53 @@ void bsp_interrupt_vector_enable(rtems_vector_number vector);
void bsp_interrupt_vector_disable(rtems_vector_number vector);
/**
+ * @brief Causes the interrupt vector.
+ *
+ * @param vector is the number of the interrupt vector to cause. It shall be
+ * valid.
+ *
+ * @retval ::RTEMS_SUCCESSFUL The requested operation was successful.
+ *
+ * @retval ::RTEMS_UNSATISFIED The request to cause the interrupt vector has
+ * not been satisfied.
+ */
+rtems_status_code bsp_interrupt_raise( rtems_vector_number vector );
+
+#if defined(RTEMS_SMP)
+/**
+ * @brief Causes the interrupt vector on the processor.
+ *
+ * @param vector is the number of the interrupt vector to cause. It shall be
+ * valid.
+ *
+ * @param cpu_index is the index of the target processor of the interrupt
+ * vector to cause. It shall be valid.
+ *
+ * @retval ::RTEMS_SUCCESSFUL The requested operation was successful.
+ *
+ * @retval ::RTEMS_UNSATISFIED The request to cause the interrupt vector has
+ * not been satisfied.
+ */
+rtems_status_code bsp_interrupt_raise_on(
+ rtems_vector_number vector,
+ uint32_t cpu_index
+);
+#endif
+
+/**
+ * @brief Clears the interrupt vector.
+ *
+ * @param vector is the number of the interrupt vector to clear. It shall be
+ * valid.
+ *
+ * @retval ::RTEMS_SUCCESSFUL The requested operation was successful.
+ *
+ * @retval ::RTEMS_UNSATISFIED The request to cause the interrupt vector has
+ * not been satisfied.
+ */
+rtems_status_code bsp_interrupt_clear( rtems_vector_number vector );
+
+/**
* @brief Sequentially calls all interrupt handlers installed at the vector.
*
* This function does not validate the vector number. If the vector number is