summaryrefslogtreecommitdiffstats
path: root/bsps/shared/irq/irq-generic.c
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--bsps/shared/irq/irq-generic.c86
1 files changed, 4 insertions, 82 deletions
diff --git a/bsps/shared/irq/irq-generic.c b/bsps/shared/irq/irq-generic.c
index bea6612136..81da647228 100644
--- a/bsps/shared/irq/irq-generic.c
+++ b/bsps/shared/irq/irq-generic.c
@@ -50,14 +50,14 @@ bsp_interrupt_handler_entry bsp_interrupt_handler_table
[BSP_INTERRUPT_HANDLER_TABLE_SIZE];
/* The last entry indicates if everything is initialized */
-static uint8_t bsp_interrupt_handler_unique_table
- [(BSP_INTERRUPT_HANDLER_TABLE_SIZE + 7 + 1) / 8];
+uint8_t bsp_interrupt_handler_unique_table
+ [ ( BSP_INTERRUPT_HANDLER_TABLE_SIZE + 7 + 1 ) / 8 ];
-static void bsp_interrupt_handler_empty(void *arg)
+void bsp_interrupt_handler_empty( void *arg )
{
rtems_vector_number vector = (rtems_vector_number) (uintptr_t) arg;
- bsp_interrupt_handler_default(vector);
+ bsp_interrupt_handler_default( vector );
}
#ifdef RTEMS_SMP
@@ -67,13 +67,6 @@ static void bsp_interrupt_handler_empty(void *arg)
}
#endif
-static inline bool bsp_interrupt_is_handler_unique(rtems_vector_number index)
-{
- rtems_vector_number i = index / 8;
- rtems_vector_number s = index % 8;
- return (bsp_interrupt_handler_unique_table [i] >> s) & 0x1;
-}
-
static inline void bsp_interrupt_set_handler_unique(
rtems_vector_number index,
bool unique
@@ -88,23 +81,11 @@ static inline void bsp_interrupt_set_handler_unique(
}
}
-static inline bool bsp_interrupt_is_initialized(void)
-{
- return bsp_interrupt_is_handler_unique(BSP_INTERRUPT_HANDLER_TABLE_SIZE);
-}
-
static inline void bsp_interrupt_set_initialized(void)
{
bsp_interrupt_set_handler_unique(BSP_INTERRUPT_HANDLER_TABLE_SIZE, true);
}
-static inline bool bsp_interrupt_is_empty_handler_entry(
- const bsp_interrupt_handler_entry *e
-)
-{
- return e->handler == bsp_interrupt_handler_empty;
-}
-
static inline void bsp_interrupt_clear_handler_entry(
bsp_interrupt_handler_entry *e,
rtems_vector_number vector
@@ -450,56 +431,6 @@ static rtems_status_code bsp_interrupt_handler_remove(
return RTEMS_SUCCESSFUL;
}
-/**
- * @brief Iterates over all installed interrupt handler of a vector.
- *
- * @ingroup bsp_interrupt
- *
- * @return In addition to the standard status codes this function returns
- * RTEMS_INTERNAL_ERROR if the BSP interrupt support is not initialized.
- *
- * @see rtems_interrupt_handler_iterate().
- */
-static rtems_status_code bsp_interrupt_handler_iterate(
- rtems_vector_number vector,
- rtems_interrupt_per_handler_routine routine,
- void *arg
-)
-{
- bsp_interrupt_handler_entry *current = NULL;
- rtems_option options = 0;
- rtems_vector_number index = 0;
-
- /* Check parameters and system state */
- if (!bsp_interrupt_is_initialized()) {
- return RTEMS_INTERNAL_ERROR;
- } else if (!bsp_interrupt_is_valid_vector(vector)) {
- return RTEMS_INVALID_ID;
- } else if (rtems_interrupt_is_in_progress()) {
- return RTEMS_CALLED_FROM_ISR;
- }
-
- /* Lock */
- bsp_interrupt_lock();
-
- /* Interate */
- index = bsp_interrupt_handler_index(vector);
- current = &bsp_interrupt_handler_table [index];
- if (!bsp_interrupt_is_empty_handler_entry(current)) {
- do {
- options = bsp_interrupt_is_handler_unique(index) ?
- RTEMS_INTERRUPT_UNIQUE : RTEMS_INTERRUPT_SHARED;
- routine(arg, current->info, options, current->handler, current->arg);
- current = current->next;
- } while (current != NULL);
- }
-
- /* Unlock */
- bsp_interrupt_unlock();
-
- return RTEMS_SUCCESSFUL;
-}
-
rtems_status_code rtems_interrupt_handler_install(
rtems_vector_number vector,
const char *info,
@@ -520,15 +451,6 @@ rtems_status_code rtems_interrupt_handler_remove(
return bsp_interrupt_handler_remove(vector, handler, arg);
}
-rtems_status_code rtems_interrupt_handler_iterate(
- rtems_vector_number vector,
- rtems_interrupt_per_handler_routine routine,
- void *arg
-)
-{
- return bsp_interrupt_handler_iterate(vector, routine, arg);
-}
-
bool bsp_interrupt_handler_is_empty(rtems_vector_number vector)
{
rtems_vector_number index = 0;