summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/shared/include
diff options
context:
space:
mode:
Diffstat (limited to 'c/src/lib/libbsp/shared/include')
-rw-r--r--c/src/lib/libbsp/shared/include/irq-generic.h20
-rw-r--r--c/src/lib/libbsp/shared/include/irq-info.h51
2 files changed, 55 insertions, 16 deletions
diff --git a/c/src/lib/libbsp/shared/include/irq-generic.h b/c/src/lib/libbsp/shared/include/irq-generic.h
index 58d4f4639f..71ff88fe84 100644
--- a/c/src/lib/libbsp/shared/include/irq-generic.h
+++ b/c/src/lib/libbsp/shared/include/irq-generic.h
@@ -75,13 +75,6 @@ static inline rtems_vector_number bsp_interrupt_handler_index( rtems_vector_numb
#endif /* BSP_INTERRUPT_USE_INDEX_TABLE */
}
-void bsp_interrupt_handler_empty( rtems_vector_number vector, void *arg);
-
-static inline bool bsp_interrupt_is_empty_handler_entry( bsp_interrupt_handler_entry *e)
-{
- return e->handler == bsp_interrupt_handler_empty;
-}
-
/**
* @defgroup bsp_interrupt BSP Interrupt Support
*
@@ -217,17 +210,12 @@ rtems_status_code bsp_interrupt_vector_disable( rtems_vector_number vector);
static inline void bsp_interrupt_handler_dispatch( rtems_vector_number vector)
{
if (bsp_interrupt_is_valid_vector( vector)) {
- bsp_interrupt_handler_entry *head = &bsp_interrupt_handler_table [bsp_interrupt_handler_index( vector)];
- bsp_interrupt_handler_entry *current = head;
+ bsp_interrupt_handler_entry *e = &bsp_interrupt_handler_table [bsp_interrupt_handler_index( vector)];
do {
- current->handler( vector, current->arg);
- current = current->next;
- } while (current != NULL);
-
- if (bsp_interrupt_is_empty_handler_entry( head)) {
- bsp_interrupt_handler_default( vector);
- }
+ e->handler( vector, e->arg);
+ e = e->next;
+ } while (e != NULL);
} else {
bsp_interrupt_handler_default( vector);
}
diff --git a/c/src/lib/libbsp/shared/include/irq-info.h b/c/src/lib/libbsp/shared/include/irq-info.h
new file mode 100644
index 0000000000..f2dee7ed35
--- /dev/null
+++ b/c/src/lib/libbsp/shared/include/irq-info.h
@@ -0,0 +1,51 @@
+/**
+ * @file
+ *
+ * @ingroup bsp_interrupt
+ *
+ * @brief Header file for generic BSP interrupt information.
+ */
+
+/*
+ * Copyright (c) 2008
+ * Embedded Brains GmbH
+ * Obere Lagerstr. 30
+ * D-82178 Puchheim
+ * Germany
+ * rtems@embedded-brains.de
+ *
+ * The license and distribution terms for this file may be found in the file
+ * LICENSE in this distribution or at http://www.rtems.com/license/LICENSE.
+ */
+
+#ifndef LIBBSP_SHARED_IRQ_INFO_H
+#define LIBBSP_SHARED_IRQ_INFO_H
+
+#include <rtems/shell.h>
+#include <rtems/bspIo.h>
+
+#ifdef __cplusplus
+extern "C" {
+#endif /* __cplusplus */
+
+/**
+ * @defgroup bsp_interrupt BSP Interrupt Information
+ *
+ * @ingroup rtems_interrupt_extension
+ *
+ * @{
+ */
+
+void bsp_interrupt_report_with_plugin( void *context, rtems_printk_plugin_t print);
+
+void bsp_interrupt_report( void);
+
+extern struct rtems_shell_cmd_tt bsp_interrupt_shell_command;
+
+/** @} */
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* LIBBSP_SHARED_IRQ_INFO_H */