On Sat, Jun 19, 2021 at 8:05 AM Sebastian Huber <sebastian.hu...@embedded-brains.de> wrote: > > Use BSP_INTERRUPT_VECTOR_COUNT instead of BSP_INTERRUPT_VECTOR_MAX. > > Update #3269. > --- > bsps/arm/atsam/start/bspstart.c | 2 +- > bsps/arm/beagle/irq/irq.c | 2 +- > bsps/arm/lpc176x/irq/irq.c | 2 +- > bsps/arm/lpc24xx/irq/irq.c | 4 ++-- > bsps/arm/lpc32xx/include/bsp/irq.h | 2 +- > bsps/arm/shared/irq/irq-armv7m.c | 2 +- > bsps/arm/shared/start/start.S | 2 +- > bsps/arm/tms570/irq/irq.c | 2 +- > bsps/include/bsp/irq-generic.h | 8 ++++---- > bsps/m68k/genmcf548x/irq/irq.c | 4 ++-- > bsps/mips/shared/irq/irq.c | 2 +- > bsps/powerpc/qoriq/irq/irq.c | 6 +++--- > bsps/shared/irq/irq-info.c | 2 +- > bsps/shared/irq/irq-server.c | 2 +- > testsuites/smptests/smpcapture02/init.c | 2 +- > 15 files changed, 22 insertions(+), 22 deletions(-) > > diff --git a/bsps/arm/atsam/start/bspstart.c b/bsps/arm/atsam/start/bspstart.c > index b463bab696..3f49779797 100644 > --- a/bsps/arm/atsam/start/bspstart.c > +++ b/bsps/arm/atsam/start/bspstart.c > @@ -21,7 +21,7 @@ > #include <chip.h> > > RTEMS_STATIC_ASSERT( > - PERIPH_COUNT_IRQn <= BSP_INTERRUPT_VECTOR_MAX, > + PERIPH_COUNT_IRQn <= BSP_INTERRUPT_VECTOR_COUNT, > PERIPH_COUNT_IRQn > ); > > diff --git a/bsps/arm/beagle/irq/irq.c b/bsps/arm/beagle/irq/irq.c > index 721703b87b..8e9294cae9 100644 > --- a/bsps/arm/beagle/irq/irq.c > +++ b/bsps/arm/beagle/irq/irq.c > @@ -133,7 +133,7 @@ rtems_status_code bsp_interrupt_facility_initialize(void) > } > > /* Mask all interrupts */ > - for(i = 0; i <= BSP_INTERRUPT_VECTOR_MAX; i++) > + for(i = 0; i < BSP_INTERRUPT_VECTOR_COUNT; i++) > bsp_interrupt_vector_disable(i); > > /* Install generic interrupt handler */ > diff --git a/bsps/arm/lpc176x/irq/irq.c b/bsps/arm/lpc176x/irq/irq.c > index e05fd59e6c..a060401d0b 100644 > --- a/bsps/arm/lpc176x/irq/irq.c > +++ b/bsps/arm/lpc176x/irq/irq.c > @@ -38,7 +38,7 @@ > */ > static inline bool lpc176x_irq_is_valid( const rtems_vector_number vector ) > { > - return vector <= BSP_INTERRUPT_VECTOR_MAX; > + return vector < BSP_INTERRUPT_VECTOR_COUNT; > } > > void lpc176x_irq_set_priority( > diff --git a/bsps/arm/lpc24xx/irq/irq.c b/bsps/arm/lpc24xx/irq/irq.c > index 2fed80efda..ed07805a9a 100644 > --- a/bsps/arm/lpc24xx/irq/irq.c > +++ b/bsps/arm/lpc24xx/irq/irq.c > @@ -31,7 +31,7 @@ > > static inline bool lpc24xx_irq_is_valid(rtems_vector_number vector) > { > - return vector <= BSP_INTERRUPT_VECTOR_MAX; > + return vector < BSP_INTERRUPT_VECTOR_COUNT; > } > > void lpc24xx_irq_set_priority(rtems_vector_number vector, unsigned priority) > @@ -91,7 +91,7 @@ rtems_status_code bsp_interrupt_facility_initialize(void) > /* Use IRQ category */ > VICIntSelect = 0; > > - for (i = 0; i <= BSP_INTERRUPT_VECTOR_MAX; ++i) { > + for (i = 0; i < BSP_INTERRUPT_VECTOR_COUNT; ++i) { > /* Use the vector address register to store the vector number */ > addr [i] = i; > > diff --git a/bsps/arm/lpc32xx/include/bsp/irq.h > b/bsps/arm/lpc32xx/include/bsp/irq.h > index d6f7e3144e..02fce3258a 100644 > --- a/bsps/arm/lpc32xx/include/bsp/irq.h > +++ b/bsps/arm/lpc32xx/include/bsp/irq.h > @@ -142,7 +142,7 @@ extern "C" { > #define BSP_INTERRUPT_VECTOR_MAX LPC32XX_IRQ_SYSCLK > #define BSP_INTERRUPT_VECTOR_COUNT (LPC32XX_IRQ_SYSCLK + 1) > > -#define LPC32XX_IRQ_COUNT (BSP_INTERRUPT_VECTOR_MAX + 1) > +#define LPC32XX_IRQ_COUNT BSP_INTERRUPT_VECTOR_COUNT > > void lpc32xx_irq_set_priority(rtems_vector_number vector, unsigned priority); > > diff --git a/bsps/arm/shared/irq/irq-armv7m.c > b/bsps/arm/shared/irq/irq-armv7m.c > index 7c7c1ab114..2bf8c9df74 100644 > --- a/bsps/arm/shared/irq/irq-armv7m.c > +++ b/bsps/arm/shared/irq/irq-armv7m.c > @@ -67,7 +67,7 @@ rtems_status_code bsp_interrupt_facility_initialize(void) > > _ARMV7M_SCB->icsr = ARMV7M_SCB_ICSR_PENDSVCLR | ARMV7M_SCB_ICSR_PENDSTCLR; > > - for (i = 0; i <= BSP_INTERRUPT_VECTOR_MAX; ++i) { > + for (i = 0; i < BSP_INTERRUPT_VECTOR_COUNT; ++i) { > _ARMV7M_NVIC_Clear_enable(i); > _ARMV7M_NVIC_Clear_pending(i); > _ARMV7M_NVIC_Set_priority(i, BSP_ARMV7M_IRQ_PRIORITY_DEFAULT); > diff --git a/bsps/arm/shared/start/start.S b/bsps/arm/shared/start/start.S > index bd623178ed..698495d32e 100644 > --- a/bsps/arm/shared/start/start.S > +++ b/bsps/arm/shared/start/start.S > @@ -529,7 +529,7 @@ bsp_start_vector_table_begin: > .word _ARMV7M_Exception_default /* Reserved */ > .word _ARMV7M_Pendable_service_call /* PendSV */ > .word _ARMV7M_Clock_handler /* SysTick */ > - .rept BSP_INTERRUPT_VECTOR_MAX + 1 > + .rept BSP_INTERRUPT_VECTOR_COUNT > .word _ARMV7M_NVIC_Interrupt_dispatch /* IRQ */ > .endr > > diff --git a/bsps/arm/tms570/irq/irq.c b/bsps/arm/tms570/irq/irq.c > index 7129915c93..4abab8feb3 100644 > --- a/bsps/arm/tms570/irq/irq.c > +++ b/bsps/arm/tms570/irq/irq.c > @@ -28,7 +28,7 @@ > #include <bsp/irq.h> > #include <rtems/score/armv4.h> > > -unsigned int priorityTable[BSP_INTERRUPT_VECTOR_MAX+1]; > +unsigned int priorityTable[BSP_INTERRUPT_VECTOR_COUNT]; > > /** > * @brief Set priority of the interrupt vector. > diff --git a/bsps/include/bsp/irq-generic.h b/bsps/include/bsp/irq-generic.h > index 749dc78988..ad64c457d6 100644 > --- a/bsps/include/bsp/irq-generic.h > +++ b/bsps/include/bsp/irq-generic.h > @@ -132,8 +132,8 @@ static inline rtems_vector_number > bsp_interrupt_handler_index( > * @brief Generic BSP Interrupt Support > * > * The BSP interrupt support manages a sequence of interrupt vector numbers > - * ranging from zero to @ref BSP_INTERRUPT_VECTOR_MAX > - * including the end points. It provides methods to > + * greater than or equal to zero and less than @ref > BSP_INTERRUPT_VECTOR_COUNT > + * It provides methods to > * @ref bsp_interrupt_handler_install() "install", > * @ref bsp_interrupt_handler_remove() "remove" and > * @ref bsp_interrupt_handler_dispatch() "dispatch" interrupt handlers for > each > @@ -144,7 +144,7 @@ static inline rtems_vector_number > bsp_interrupt_handler_index( > * > * You have to configure the BSP interrupt support in the <bsp/irq.h> file > * for each BSP. For a minimum configuration you have to provide > - * @ref BSP_INTERRUPT_VECTOR_MAX. > + * @ref BSP_INTERRUPT_VECTOR_COUNT. > * > * For boards with small memory requirements you can define > * @ref BSP_INTERRUPT_USE_INDEX_TABLE. With an enabled index table the > handler > @@ -179,7 +179,7 @@ static inline rtems_vector_number > bsp_interrupt_handler_index( > */ > static inline bool bsp_interrupt_is_valid_vector(rtems_vector_number > vector) > { > - return vector <= (rtems_vector_number) BSP_INTERRUPT_VECTOR_MAX; > + return vector < (rtems_vector_number) BSP_INTERRUPT_VECTOR_COUNT; > } > #endif > > diff --git a/bsps/m68k/genmcf548x/irq/irq.c b/bsps/m68k/genmcf548x/irq/irq.c > index d010865152..547e851cdd 100644 > --- a/bsps/m68k/genmcf548x/irq/irq.c > +++ b/bsps/m68k/genmcf548x/irq/irq.c > @@ -19,7 +19,7 @@ > static inline bool is_valid_vector(rtems_vector_number vector) > { > return 1 <= vector > - && vector <= (rtems_vector_number) BSP_INTERRUPT_VECTOR_MAX; > + && vector < (rtems_vector_number) BSP_INTERRUPT_VECTOR_COUNT; > } > This one is weird. I don't know if there's an elegant solution though. The "BSP_INTERRUPT_VECTOR_COUNT" isn't actually the number of vectors in this BSP, since 0 is not a valid vector. However, I'm ok because BSP_INTERRUPT_VECTOR_COUNT is an upper bound on the number of vectors. Probably, this point needs to be documented carefully at least for this particular BSP.
> void asm_default_interrupt(void); > @@ -32,7 +32,7 @@ typedef struct { > const char *info; > } interrupt_control; > > -static interrupt_control interrupt_controls[BSP_INTERRUPT_VECTOR_MAX + 1]; > +static interrupt_control interrupt_controls[BSP_INTERRUPT_VECTOR_COUNT]; > > static uint32_t vector_to_reg(rtems_vector_number vector) > { > diff --git a/bsps/mips/shared/irq/irq.c b/bsps/mips/shared/irq/irq.c > index 1c2d3b8c5b..9fed3db489 100644 > --- a/bsps/mips/shared/irq/irq.c > +++ b/bsps/mips/shared/irq/irq.c > @@ -64,7 +64,7 @@ static const char *const cause_strings[32] = { > > static inline bool bsp_irq_is_valid(rtems_vector_number vector) > { > - return vector <= BSP_INTERRUPT_VECTOR_MAX; > + return vector < BSP_INTERRUPT_VECTOR_COUNT; > } > > void bsp_interrupt_vector_enable(rtems_vector_number vector) > diff --git a/bsps/powerpc/qoriq/irq/irq.c b/bsps/powerpc/qoriq/irq/irq.c > index 7f9680ea1c..ffbff25dc6 100644 > --- a/bsps/powerpc/qoriq/irq/irq.c > +++ b/bsps/powerpc/qoriq/irq/irq.c > @@ -128,7 +128,7 @@ rtems_status_code bsp_interrupt_facility_initialize(void) > { > unsigned int i; > > - for (i = 0; i <= BSP_INTERRUPT_VECTOR_MAX; ++i) { > + for (i = 0; i < BSP_INTERRUPT_VECTOR_COUNT; ++i) { > uint32_t config; > unsigned int priority; > uint32_t destination; > @@ -354,7 +354,7 @@ rtems_status_code bsp_interrupt_facility_initialize(void) > > pic_reset(); > > - for (i = 0; i <= BSP_INTERRUPT_VECTOR_MAX; ++i) { > + for (i = 0; i < BSP_INTERRUPT_VECTOR_COUNT; ++i) { > volatile qoriq_pic_src_cfg *src_cfg = get_src_cfg(i); > > src_cfg->vpr = VPR_MSK | VPR_P > @@ -375,7 +375,7 @@ rtems_status_code bsp_interrupt_facility_initialize(void) > > qoriq.pic.ctpr = 0; > > - for (i = 0; i <= BSP_INTERRUPT_VECTOR_MAX; ++i) { > + for (i = 0; i < BSP_INTERRUPT_VECTOR_COUNT; ++i) { > qoriq.pic.iack; > qoriq.pic.eoi = 0; > qoriq.pic.whoami; > diff --git a/bsps/shared/irq/irq-info.c b/bsps/shared/irq/irq-info.c > index 697976e525..a52465ef09 100644 > --- a/bsps/shared/irq/irq-info.c > +++ b/bsps/shared/irq/irq-info.c > @@ -87,7 +87,7 @@ void bsp_interrupt_report_with_plugin( > > "--------+----------------------------------+---------+------------+------------\n" > ); > > - for (v = 0; v <= BSP_INTERRUPT_VECTOR_MAX; ++v) { > + for (v = 0; v < BSP_INTERRUPT_VECTOR_COUNT; ++v) { > e.vector = v; > rtems_interrupt_handler_iterate( > v, > diff --git a/bsps/shared/irq/irq-server.c b/bsps/shared/irq/irq-server.c > index fa2153fcb0..8b9d82eb29 100644 > --- a/bsps/shared/irq/irq-server.c > +++ b/bsps/shared/irq/irq-server.c > @@ -42,7 +42,7 @@ > > #include <bsp/irq-generic.h> > > -#define BSP_INTERRUPT_SERVER_MANAGEMENT_VECTOR (BSP_INTERRUPT_VECTOR_MAX + 1) > +#define BSP_INTERRUPT_SERVER_MANAGEMENT_VECTOR BSP_INTERRUPT_VECTOR_COUNT > > static rtems_interrupt_server_control bsp_interrupt_server_default; > > diff --git a/testsuites/smptests/smpcapture02/init.c > b/testsuites/smptests/smpcapture02/init.c > index 329fd344e6..4b11e6bbd7 100644 > --- a/testsuites/smptests/smpcapture02/init.c > +++ b/testsuites/smptests/smpcapture02/init.c > @@ -316,7 +316,7 @@ static void Init(rtems_task_argument arg) > test(cpu_count); > > /* Try to find the clock interrupt handler */ > - for ( vec = 0; vec <= BSP_INTERRUPT_VECTOR_MAX; vec++ ) { > + for ( vec = 0; vec < BSP_INTERRUPT_VECTOR_COUNT; vec++ ) { > rtems_interrupt_handler_iterate(vec, locate_clock_interrupt_handler, > &cih); > if ( cih.found ) > break; > -- > 2.26.2 > > _______________________________________________ > devel mailing list > devel@rtems.org > http://lists.rtems.org/mailman/listinfo/devel _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel