From 0f99dd5d250df24c9feaf55bdf18b3756f132850 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Wed, 11 Jun 2025 13:11:27 -0500 Subject: [PATCH] bsps/powerpc/*/include/tm27.h: Correct IRQ installation structure The gen5200, mvme5500, and psim BSP families had an implementation of tm27.h which used stub functions with casts as null handlers to fill in the IRQ structure. The IRQ structure as also missing a field. The change was to use a set of appropriately signatured stub functions and correct the structure initialization. This code likely has produced warnings for a long time but with GCC 14, these warnings turned into errors. Closes #5266 --- bsps/powerpc/gen5200/include/tm27.h | 23 +++++++++++++++++++---- bsps/powerpc/mvme5500/include/tm27.h | 24 ++++++++++++++++++++---- bsps/powerpc/psim/include/tm27.h | 24 ++++++++++++++++++++---- 3 files changed, 59 insertions(+), 12 deletions(-) diff --git a/bsps/powerpc/gen5200/include/tm27.h b/bsps/powerpc/gen5200/include/tm27.h index d86e6c1d12..85af7973e8 100644 --- a/bsps/powerpc/gen5200/include/tm27.h +++ b/bsps/powerpc/gen5200/include/tm27.h @@ -26,13 +26,28 @@ #define MUST_WAIT_FOR_INTERRUPT 1 -static void nullFunc(void) {} +static void stub_rtems_irq_enable(const struct __rtems_irq_connect_data__*i) +{ + (void) i; +} + +static void stub_rtems_irq_disable(const struct __rtems_irq_connect_data__*i) +{ + (void) i; +} + +static int stub_rtems_irq_is_enabled(const struct __rtems_irq_connect_data__*i) +{ + (void) i; + return 0; +} static rtems_irq_connect_data clockIrqData = {BSP_DECREMENTER, 0, - (rtems_irq_enable) nullFunc, - (rtems_irq_disable) nullFunc, - (rtems_irq_is_enabled) nullFunc}; + 0, + stub_rtems_irq_enable, + stub_rtems_irq_disable, + stub_rtems_irq_is_enabled}; static inline void Install_tm27_vector( rtems_interrupt_handler handler ) { diff --git a/bsps/powerpc/mvme5500/include/tm27.h b/bsps/powerpc/mvme5500/include/tm27.h index ae687e319c..587af843f8 100644 --- a/bsps/powerpc/mvme5500/include/tm27.h +++ b/bsps/powerpc/mvme5500/include/tm27.h @@ -25,12 +25,28 @@ #define MUST_WAIT_FOR_INTERRUPT 1 -static void nullFunc(void) {} +static void stub_rtems_irq_enable(const struct __rtems_irq_connect_data__*i) +{ + (void) i; +} + +static void stub_rtems_irq_disable(const struct __rtems_irq_connect_data__*i) +{ + (void) i; +} + +static int stub_rtems_irq_is_enabled(const struct __rtems_irq_connect_data__*i) +{ + (void) i; + return 0; +} + static rtems_irq_connect_data clockIrqData = {BSP_DECREMENTER, 0, - (rtems_irq_enable)nullFunc, - (rtems_irq_disable)nullFunc, - (rtems_irq_is_enabled) nullFunc}; + 0, + stub_rtems_irq_enable, + stub_rtems_irq_disable, + stub_rtems_irq_is_enabled}; static inline void Install_tm27_vector( rtems_interrupt_handler handler ) { diff --git a/bsps/powerpc/psim/include/tm27.h b/bsps/powerpc/psim/include/tm27.h index af472d1621..b28f2e65c8 100644 --- a/bsps/powerpc/psim/include/tm27.h +++ b/bsps/powerpc/psim/include/tm27.h @@ -25,12 +25,28 @@ #define MUST_WAIT_FOR_INTERRUPT 1 -static void nullFunc(void) {} +static void stub_rtems_irq_enable(const struct __rtems_irq_connect_data__*i) +{ + (void) i; +} + +static void stub_rtems_irq_disable(const struct __rtems_irq_connect_data__*i) +{ + (void) i; +} + +static int stub_rtems_irq_is_enabled(const struct __rtems_irq_connect_data__*i) +{ + (void) i; + return 0; +} + static rtems_irq_connect_data clockIrqData = {BSP_DECREMENTER, 0, - (rtems_irq_enable)nullFunc, - (rtems_irq_disable)nullFunc, - (rtems_irq_is_enabled) nullFunc}; + 0, + stub_rtems_irq_enable, + stub_rtems_irq_disable, + stub_rtems_irq_is_enabled}; static inline void Install_tm27_vector( rtems_interrupt_handler handler ) {