Merge request https://gitlab.rtems.org/rtems/rtos/rtems/-/merge_requests/489 
was reviewed by Sebastian Huber

--
  
Sebastian Huber started a new discussion on bsps/shared/irq/irq-record.c: 
https://gitlab.rtems.org/rtems/rtos/rtems/-/merge_requests/489#note_125665

 > -static rtems_interrupt_entry *
 > -_Record_Interrupt_dispatch_table[ BSP_INTERRUPT_DISPATCH_TABLE_SIZE ];
 > -

In general, this is the right way to fix the issue. I would still define 
\_Record_Interrupt_dispatch_table here, so that confdefs.h doesn't have to know 
anything about BSP_INTERRUPT_DISPATCH_TABLE_SIZE.

The \_Record_Interrupt_dispatch_table should be declared in 
cpukit/include/rtems/record.h:

```
#include <rtems/rtems/intr.h>
```

```c
extern rtems_interrupt_entry *_Record_Interrupt_dispatch_table[];
```

--
  
Sebastian Huber started a new discussion on bsps/shared/irq/irq-record.c: 
https://gitlab.rtems.org/rtems/rtos/rtems/-/merge_requests/489#note_125666

 >    entry = bsp_interrupt_entry_load_acquire(
 > -    &_Record_Interrupt_dispatch_table[ vector ]
 > +    bsp_interrupt_get_dispatch_table_slot( vector )

This just adds an overhead. I would revert this change.

--
  
Sebastian Huber started a new discussion on 
cpukit/include/rtems/confdefs/extensions.h: 
https://gitlab.rtems.org/rtems/rtos/rtems/-/merge_requests/489#note_125667

 > +    /* The regular interrupt entries are registered in this table */
 > +    rtems_interrupt_entry *
 > +    _Record_Interrupt_dispatch_table[ BSP_INTERRUPT_DISPATCH_TABLE_SIZE ];

The definition should stay in irq-record.c so that 
BSP_INTERRUPT_DISPATCH_TABLE_SIZE is not exposed to confdefs.h.

--
  
Sebastian Huber started a new discussion on 
cpukit/include/rtems/confdefs/extensions.h: 
https://gitlab.rtems.org/rtems/rtos/rtems/-/merge_requests/489#note_125668

 > +    _Record_Interrupt_dispatch_table[ BSP_INTERRUPT_DISPATCH_TABLE_SIZE ];
 > +
 > +    rtems_interrupt_entry **bsp_interrupt_get_dispatch_table_slot(

Here we use a BSP interface in confdefs.h. I don't know a better way to address 
this issue. To avoid warnings, we have to declare the function here also:

```c
rtems_interrupt_entry **bsp_interrupt_get_dispatch_table_slot(
  rtems_vector_number index
);

rtems_interrupt_entry **bsp_interrupt_get_dispatch_table_slot(
  rtems_vector_number index
)
{
  return &_Record_Interrupt_dispatch_table[ index ];
}
```


-- 
View it on GitLab: 
https://gitlab.rtems.org/rtems/rtos/rtems/-/merge_requests/489
You're receiving this email because of your account on gitlab.rtems.org.


_______________________________________________
bugs mailing list
bugs@rtems.org
http://lists.rtems.org/mailman/listinfo/bugs

Reply via email to