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
This commit is contained in:
Joel Sherrill
2025-06-11 13:11:27 -05:00
parent 4848d7ab73
commit 0f99dd5d25
3 changed files with 59 additions and 12 deletions

View File

@@ -26,13 +26,28 @@
#define MUST_WAIT_FOR_INTERRUPT 1 #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, static rtems_irq_connect_data clockIrqData = {BSP_DECREMENTER,
0, 0,
(rtems_irq_enable) nullFunc, 0,
(rtems_irq_disable) nullFunc, stub_rtems_irq_enable,
(rtems_irq_is_enabled) nullFunc}; stub_rtems_irq_disable,
stub_rtems_irq_is_enabled};
static inline void Install_tm27_vector( rtems_interrupt_handler handler ) static inline void Install_tm27_vector( rtems_interrupt_handler handler )
{ {

View File

@@ -25,12 +25,28 @@
#define MUST_WAIT_FOR_INTERRUPT 1 #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, static rtems_irq_connect_data clockIrqData = {BSP_DECREMENTER,
0, 0,
(rtems_irq_enable)nullFunc, 0,
(rtems_irq_disable)nullFunc, stub_rtems_irq_enable,
(rtems_irq_is_enabled) nullFunc}; stub_rtems_irq_disable,
stub_rtems_irq_is_enabled};
static inline void Install_tm27_vector( rtems_interrupt_handler handler ) static inline void Install_tm27_vector( rtems_interrupt_handler handler )
{ {

View File

@@ -25,12 +25,28 @@
#define MUST_WAIT_FOR_INTERRUPT 1 #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, static rtems_irq_connect_data clockIrqData = {BSP_DECREMENTER,
0, 0,
(rtems_irq_enable)nullFunc, 0,
(rtems_irq_disable)nullFunc, stub_rtems_irq_enable,
(rtems_irq_is_enabled) nullFunc}; stub_rtems_irq_disable,
stub_rtems_irq_is_enabled};
static inline void Install_tm27_vector( rtems_interrupt_handler handler ) static inline void Install_tm27_vector( rtems_interrupt_handler handler )
{ {