summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2021-07-01 08:26:47 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2021-07-12 15:09:25 +0200
commitd8d51bd286c00d7ec89530195ba196fbeacc2ff6 (patch)
treee182280042e660421e4fc7e1109c273d8ab4addf
parented2ca2119f861d3215798a59a2a9f40059b56d1f (diff)
bsp/leon3: Use interrupt entry directives
-rw-r--r--bsps/sparc/leon3/clock/ckinit.c14
-rw-r--r--bsps/sparc/leon3/include/tm27.h25
-rw-r--r--bsps/sparc/leon3/start/bspsmp.c13
3 files changed, 37 insertions, 15 deletions
diff --git a/bsps/sparc/leon3/clock/ckinit.c b/bsps/sparc/leon3/clock/ckinit.c
index 4d30e0fd64..69afb25f3c 100644
--- a/bsps/sparc/leon3/clock/ckinit.c
+++ b/bsps/sparc/leon3/clock/ckinit.c
@@ -133,16 +133,22 @@ static void leon3_tc_do_tick(void)
#define Clock_driver_support_install_isr(isr) \
bsp_clock_handler_install(isr)
+static rtems_interrupt_entry leon3_clock_interrupt_entry;
+
static void bsp_clock_handler_install(rtems_interrupt_handler isr)
{
rtems_status_code sc;
- sc = rtems_interrupt_handler_install(
+ rtems_interrupt_entry_initialize(
+ &leon3_clock_interrupt_entry,
+ isr,
+ NULL,
+ "Clock"
+ );
+ sc = rtems_interrupt_entry_install(
clkirq,
- "Clock",
RTEMS_INTERRUPT_UNIQUE,
- isr,
- NULL
+ &leon3_clock_interrupt_entry
);
if (sc != RTEMS_SUCCESSFUL) {
rtems_fatal(RTEMS_FATAL_SOURCE_BSP, LEON3_FATAL_CLOCK_INITIALIZATION);
diff --git a/bsps/sparc/leon3/include/tm27.h b/bsps/sparc/leon3/include/tm27.h
index 7b73bc4dbd..197e1a6119 100644
--- a/bsps/sparc/leon3/include/tm27.h
+++ b/bsps/sparc/leon3/include/tm27.h
@@ -64,19 +64,30 @@ static inline void Install_tm27_vector(
void ( *handler )( rtems_vector_number )
)
{
- (void) rtems_interrupt_handler_install(
+ static rtems_interrupt_entry entry_low;
+ static rtems_interrupt_entry entry_high;
+
+ rtems_interrupt_entry_initialize(
+ &entry_low,
+ (rtems_interrupt_handler) handler,
+ NULL,
+ "tm27 low"
+ );
+ (void) rtems_interrupt_entry_install(
TEST_INTERRUPT_SOURCE,
- "tm27 low",
RTEMS_INTERRUPT_SHARED,
+ &entry_low
+ );
+ rtems_interrupt_entry_initialize(
+ &entry_high,
(rtems_interrupt_handler) handler,
- NULL
+ NULL,
+ "tm27 high"
);
- (void) rtems_interrupt_handler_install(
+ (void) rtems_interrupt_entry_install(
TEST_INTERRUPT_SOURCE2,
- "tm27 high",
RTEMS_INTERRUPT_SHARED,
- (rtems_interrupt_handler) handler,
- NULL
+ &entry_high
);
}
diff --git a/bsps/sparc/leon3/start/bspsmp.c b/bsps/sparc/leon3/start/bspsmp.c
index 1c72027ebf..4e6e3a6e36 100644
--- a/bsps/sparc/leon3/start/bspsmp.c
+++ b/bsps/sparc/leon3/start/bspsmp.c
@@ -51,6 +51,13 @@ void bsp_start_on_secondary_processor(Per_CPU_Control *cpu_self)
_SMP_Start_multitasking_on_secondary_processor(cpu_self);
}
+static rtems_interrupt_entry leon3_inter_processor_interrupt_entry =
+ RTEMS_INTERRUPT_ENTRY_INITIALIZER(
+ bsp_inter_processor_interrupt,
+ NULL,
+ "IPI"
+ );
+
static void leon3_install_inter_processor_interrupt( void )
{
rtems_status_code sc;
@@ -60,12 +67,10 @@ static void leon3_install_inter_processor_interrupt( void )
bsp_interrupt_set_affinity( irq, _SMP_Get_online_processors() );
- sc = rtems_interrupt_handler_install(
+ sc = rtems_interrupt_entry_install(
irq,
- "IPI",
RTEMS_INTERRUPT_SHARED,
- bsp_inter_processor_interrupt,
- NULL
+ &leon3_inter_processor_interrupt_entry
);
_Assert_Unused_variable_equals( sc, RTEMS_SUCCESSFUL );
}