diff options
author | Gedare Bloom <gedare@rtems.org> | 2012-04-15 22:52:07 -0400 |
---|---|---|
committer | Gedare Bloom <gedare@rtems.org> | 2012-04-15 22:52:07 -0400 |
commit | 7407a70c4c09fc0139f2484983e113d16011df9e (patch) | |
tree | e00fb7c585b887173239500b5ee90868c7fd1d7a | |
parent | 146a37f68c4a68384f3dcbbd7341a2f1a4fa121d (diff) |
bsps: add macros for set_vector RAW and RTEMS types
108 files changed, 208 insertions, 153 deletions
diff --git a/c/src/lib/libbsp/bfin/TLL6527M/include/tm27.h b/c/src/lib/libbsp/bfin/TLL6527M/include/tm27.h index 8e126bf1ba..d23fda0677 100644 --- a/c/src/lib/libbsp/bfin/TLL6527M/include/tm27.h +++ b/c/src/lib/libbsp/bfin/TLL6527M/include/tm27.h @@ -25,7 +25,7 @@ #define Install_tm27_vector(handler) \ { \ - set_vector( handler, 0x06, 1 ); \ + set_vector( handler, 0x06, BSP_SET_VECTOR_RTEMS ); \ } #define Cause_tm27_intr() asm volatile("raise 0x06;" : :); diff --git a/c/src/lib/libbsp/bfin/TLL6527M/startup/bspstart.c b/c/src/lib/libbsp/bfin/TLL6527M/startup/bspstart.c index 618bd83e8b..742900fe0c 100644 --- a/c/src/lib/libbsp/bfin/TLL6527M/startup/bspstart.c +++ b/c/src/lib/libbsp/bfin/TLL6527M/startup/bspstart.c @@ -119,7 +119,7 @@ void bsp_start( void ) */ int i=0; for (i=5;i<16;i++) { - set_vector((rtems_isr_entry)null_isr, i, 1); + set_vector((rtems_isr_entry)null_isr, i, BSP_SET_VECTOR_RTEMS); } } diff --git a/c/src/lib/libbsp/bfin/eZKit533/include/tm27.h b/c/src/lib/libbsp/bfin/eZKit533/include/tm27.h index c9029ed53a..ef8ab3117d 100644 --- a/c/src/lib/libbsp/bfin/eZKit533/include/tm27.h +++ b/c/src/lib/libbsp/bfin/eZKit533/include/tm27.h @@ -23,7 +23,7 @@ #define Install_tm27_vector(handler) \ { \ - set_vector( handler, 0x06, 1 ); \ + set_vector( handler, 0x06, BSP_SET_VECTOR_RTEMS ); \ } #define Cause_tm27_intr() __asm__ volatile("raise 0x06;" : :); diff --git a/c/src/lib/libbsp/bfin/eZKit533/startup/bspstart.c b/c/src/lib/libbsp/bfin/eZKit533/startup/bspstart.c index 62acf7fa7b..e9514be152 100644 --- a/c/src/lib/libbsp/bfin/eZKit533/startup/bspstart.c +++ b/c/src/lib/libbsp/bfin/eZKit533/startup/bspstart.c @@ -98,7 +98,7 @@ void bsp_start( void ) int i=0; for (i=5;i<16;i++) { - set_vector((rtems_isr_entry)null_isr, i, 1); + set_vector((rtems_isr_entry)null_isr, i, BSP_SET_VECTOR_RTEMS); } } diff --git a/c/src/lib/libbsp/lm32/lm32_evr/include/tm27.h b/c/src/lib/libbsp/lm32/lm32_evr/include/tm27.h index a10e11cab1..fd134590bb 100644 --- a/c/src/lib/libbsp/lm32/lm32_evr/include/tm27.h +++ b/c/src/lib/libbsp/lm32/lm32_evr/include/tm27.h @@ -21,7 +21,8 @@ #define MUST_WAIT_FOR_INTERRUPT 0 -#define Install_tm27_vector( handler ) set_vector( (handler), 0, 1 ) +#define Install_tm27_vector( handler ) \ + set_vector( (handler), 0, BSP_SET_VECTOR_RTEMS ) #define Cause_tm27_intr() /* empty */ diff --git a/c/src/lib/libbsp/lm32/shared/clock/ckinit.c b/c/src/lib/libbsp/lm32/shared/clock/ckinit.c index 22bd484706..2570856dd3 100644 --- a/c/src/lib/libbsp/lm32/shared/clock/ckinit.c +++ b/c/src/lib/libbsp/lm32/shared/clock/ckinit.c @@ -51,7 +51,7 @@ static inline void clockwrite(unsigned int reg, int value) #define Clock_driver_support_install_isr(_new, _old ) \ do { \ - _old = (rtems_isr_entry) set_vector( _new, CLOCK_VECTOR, 1 ); \ + _old = set_vector( _new, CLOCK_VECTOR, BSP_SET_VECTOR_RTEMS ); \ } while (0) void Clock_driver_support_initialize_hardware(void) diff --git a/c/src/lib/libbsp/lm32/shared/tsmac/tsmac.c b/c/src/lib/libbsp/lm32/shared/tsmac/tsmac.c index 2290678254..6410bffb4a 100644 --- a/c/src/lib/libbsp/lm32/shared/tsmac/tsmac.c +++ b/c/src/lib/libbsp/lm32/shared/tsmac/tsmac.c @@ -536,7 +536,7 @@ void tsmac_init(void *arg) set_vector( tsmac_interrupt_handler, TSMAC_VECTOR, - 1 + BSP_SET_VECTOR_RTEMS ); /* Interrupt line for TSMAC */ diff --git a/c/src/lib/libbsp/m68k/av5282/clock/clock.c b/c/src/lib/libbsp/m68k/av5282/clock/clock.c index d0afafefb6..ea400e8bb0 100644 --- a/c/src/lib/libbsp/m68k/av5282/clock/clock.c +++ b/c/src/lib/libbsp/m68k/av5282/clock/clock.c @@ -26,7 +26,7 @@ */ #define Clock_driver_support_install_isr( _new, _old ) \ do { \ - _old = (rtems_isr_entry)set_vector(_new, CLOCK_VECTOR, 1); \ + _old = set_vector(_new, CLOCK_VECTOR, BSP_SET_VECTOR_RTEMS); \ } while(0) /* diff --git a/c/src/lib/libbsp/m68k/av5282/include/tm27.h b/c/src/lib/libbsp/m68k/av5282/include/tm27.h index f8fe447335..7751425d0d 100644 --- a/c/src/lib/libbsp/m68k/av5282/include/tm27.h +++ b/c/src/lib/libbsp/m68k/av5282/include/tm27.h @@ -18,7 +18,8 @@ #define MUST_WAIT_FOR_INTERRUPT 0 -#define Install_tm27_vector( handler ) set_vector( (handler), 35, 1 ) +#define Install_tm27_vector( handler ) \ + set_vector( (handler), 35, BSP_SET_VECTOR_RTEMS ) #define Cause_tm27_intr() asm volatile ("trap #3"); diff --git a/c/src/lib/libbsp/m68k/csb360/include/tm27.h b/c/src/lib/libbsp/m68k/csb360/include/tm27.h index 44886acafc..fb4b1f5b8b 100644 --- a/c/src/lib/libbsp/m68k/csb360/include/tm27.h +++ b/c/src/lib/libbsp/m68k/csb360/include/tm27.h @@ -22,7 +22,8 @@ #define MUST_WAIT_FOR_INTERRUPT 0 -#define Install_tm27_vector( handler ) set_vector( (handler), 34, 1 ) +#define Install_tm27_vector( handler ) \ + set_vector( (handler), 34, BSP_SET_VECTOR_RTEMS ) #define Cause_tm27_intr() asm volatile ("trap #2"); diff --git a/c/src/lib/libbsp/m68k/csb360/network/network.c b/c/src/lib/libbsp/m68k/csb360/network/network.c index af0a3df207..b26173fad0 100644 --- a/c/src/lib/libbsp/m68k/csb360/network/network.c +++ b/c/src/lib/libbsp/m68k/csb360/network/network.c @@ -336,8 +336,8 @@ mcf5272_enet_initialize_hardware (struct mcf5272_enet_struct *sc) /* * Set up interrupts */ - set_vector(enet_rx_isr, BSP_INTVEC_ERX, 1); - set_vector(enet_tx_isr, BSP_INTVEC_ETX, 1); + set_vector(enet_rx_isr, BSP_INTVEC_ERX, BSP_SET_VECTOR_RTEMS); + set_vector(enet_tx_isr, BSP_INTVEC_ETX, BSP_SET_VECTOR_RTEMS); /* Configure ethernet interrupts */ icr = g_intctrl_regs->icr3; diff --git a/c/src/lib/libbsp/m68k/gen68302/clock/ckinit.c b/c/src/lib/libbsp/m68k/gen68302/clock/ckinit.c index 2115fd8f66..b360c84a6a 100644 --- a/c/src/lib/libbsp/m68k/gen68302/clock/ckinit.c +++ b/c/src/lib/libbsp/m68k/gen68302/clock/ckinit.c @@ -84,7 +84,7 @@ void Install_clock( Clock_driver_ticks = 0; Clock_isrs = rtems_configuration_get_microseconds_per_tick() / 1000; - set_vector( clock_isr, CLOCK_VECTOR, 1 ); + set_vector( clock_isr, CLOCK_VECTOR, BSP_SET_VECTOR_RTEMS ); m302.reg.trr1 = TRR1_VAL; /* set timer reference register */ m302.reg.tmr1 = TMR1_VAL; /* set timer mode register & enable */ diff --git a/c/src/lib/libbsp/m68k/gen68340/clock/ckinit.c b/c/src/lib/libbsp/m68k/gen68340/clock/ckinit.c index 2fb4afbad9..2bf23f2fdd 100644 --- a/c/src/lib/libbsp/m68k/gen68340/clock/ckinit.c +++ b/c/src/lib/libbsp/m68k/gen68340/clock/ckinit.c @@ -97,7 +97,7 @@ Install_clock (rtems_isr_entry clock_isr) Clock_driver_ticks = 0; - set_vector (clock_isr, CLOCK_VECTOR, 1); + set_vector (clock_isr, CLOCK_VECTOR, BSP_SET_VECTOR_RTEMS); /* sets the Periodic Interrupt Control Register PICR */ /* voir a quoi correspond exactement le Clock Vector */ diff --git a/c/src/lib/libbsp/m68k/gen68360/clock/clock.c b/c/src/lib/libbsp/m68k/gen68360/clock/clock.c index 566afa3c2e..f63e25bd99 100644 --- a/c/src/lib/libbsp/m68k/gen68360/clock/clock.c +++ b/c/src/lib/libbsp/m68k/gen68360/clock/clock.c @@ -55,7 +55,7 @@ static unsigned long nsec; */ #define Clock_driver_support_install_isr( _new, _old ) \ do { \ - _old = (rtems_isr_entry)set_vector(_new, CLOCK_VECTOR, 1); \ + _old = set_vector(_new, CLOCK_VECTOR, BSP_SET_VECTOR_RTEMS); \ } while(0) /* diff --git a/c/src/lib/libbsp/m68k/gen68360/include/tm27.h b/c/src/lib/libbsp/m68k/gen68360/include/tm27.h index 44886acafc..fb4b1f5b8b 100644 --- a/c/src/lib/libbsp/m68k/gen68360/include/tm27.h +++ b/c/src/lib/libbsp/m68k/gen68360/include/tm27.h @@ -22,7 +22,8 @@ #define MUST_WAIT_FOR_INTERRUPT 0 -#define Install_tm27_vector( handler ) set_vector( (handler), 34, 1 ) +#define Install_tm27_vector( handler ) \ + set_vector( (handler), 34, BSP_SET_VECTOR_RTEMS ) #define Cause_tm27_intr() asm volatile ("trap #2"); diff --git a/c/src/lib/libbsp/m68k/genmcf548x/clock/clock.c b/c/src/lib/libbsp/m68k/genmcf548x/clock/clock.c index a563169de7..4a6ee0d3c4 100644 --- a/c/src/lib/libbsp/m68k/genmcf548x/clock/clock.c +++ b/c/src/lib/libbsp/m68k/genmcf548x/clock/clock.c @@ -70,7 +70,7 @@ */ #define Clock_driver_support_install_isr( _new, _old ) \ do { \ - _old = (rtems_isr_entry)set_vector(_new, CLOCK_VECTOR, 1); \ + _old = set_vector(_new, CLOCK_VECTOR, BSP_SET_VECTOR_RTEMS); \ } while(0) /* diff --git a/c/src/lib/libbsp/m68k/genmcf548x/include/tm27.h b/c/src/lib/libbsp/m68k/genmcf548x/include/tm27.h index f8fe447335..7751425d0d 100644 --- a/c/src/lib/libbsp/m68k/genmcf548x/include/tm27.h +++ b/c/src/lib/libbsp/m68k/genmcf548x/include/tm27.h @@ -18,7 +18,8 @@ #define MUST_WAIT_FOR_INTERRUPT 0 -#define Install_tm27_vector( handler ) set_vector( (handler), 35, 1 ) +#define Install_tm27_vector( handler ) \ + set_vector( (handler), 35, BSP_SET_VECTOR_RTEMS ) #define Cause_tm27_intr() asm volatile ("trap #3"); diff --git a/c/src/lib/libbsp/m68k/idp/clock/ckinit.c b/c/src/lib/libbsp/m68k/idp/clock/ckinit.c index 9eec08b673..f5d000e4d1 100644 --- a/c/src/lib/libbsp/m68k/idp/clock/ckinit.c +++ b/c/src/lib/libbsp/m68k/idp/clock/ckinit.c @@ -95,7 +95,7 @@ void Install_clock( Clock_isrs = (int)(Configuration.microseconds_per_tick / 1000); /* led_putnum('c'); * for debugging purposes */ - Old_ticker = (rtems_isr_entry) set_vector( clock_isr, CLOCK_VECTOR, 1 ); + Old_ticker = set_vector(clock_isr, CLOCK_VECTOR, BSP_SET_VECTOR_RTEMS); /* Disable timer for initialization */ MC68230_WRITE (MC68230_TCR, 0x00); diff --git a/c/src/lib/libbsp/m68k/idp/console/duart.c b/c/src/lib/libbsp/m68k/idp/console/duart.c index 8e4304f880..39ed45da98 100644 --- a/c/src/lib/libbsp/m68k/idp/console/duart.c +++ b/c/src/lib/libbsp/m68k/idp/console/duart.c @@ -58,7 +58,11 @@ void init_pit() /* * install ISR for ports A and B */ - set_vector(C_Receive_ISR, (MC68230_VECT+MC68230_H3VECT), 1); + set_vector( + C_Receive_ISR, + (MC68230_VECT+MC68230_H3VECT), + BSP_SET_VECTOR_RTEMS + ); /* * initialize pit diff --git a/c/src/lib/libbsp/m68k/idp/timer/timer.c b/c/src/lib/libbsp/m68k/idp/timer/timer.c index 0e5786100a..b22700decd 100644 --- a/c/src/lib/libbsp/m68k/idp/timer/timer.c +++ b/c/src/lib/libbsp/m68k/idp/timer/timer.c @@ -25,7 +25,7 @@ rtems_isr_entry timerisr(rtems_vector_number); void benchmark_timer_initialize(void) { - (void) set_vector( timerisr, TIMER_VECTOR, 0 ); /* install ISR */ + (void) set_vector( timerisr, TIMER_VECTOR, BSP_SET_VECTOR_RAW ); Ttimer_val = 0; /* clear timer ISR count */ diff --git a/c/src/lib/libbsp/m68k/mcf5206elite/include/tm27.h b/c/src/lib/libbsp/m68k/mcf5206elite/include/tm27.h index 44886acafc..fb4b1f5b8b 100644 --- a/c/src/lib/libbsp/m68k/mcf5206elite/include/tm27.h +++ b/c/src/lib/libbsp/m68k/mcf5206elite/include/tm27.h @@ -22,7 +22,8 @@ #define MUST_WAIT_FOR_INTERRUPT 0 -#define Install_tm27_vector( handler ) set_vector( (handler), 34, 1 ) +#define Install_tm27_vector( handler ) \ + set_vector( (handler), 34, BSP_SET_VECTOR_RTEMS ) #define Cause_tm27_intr() asm volatile ("trap #2"); diff --git a/c/src/lib/libbsp/m68k/mcf52235/clock/clock.c b/c/src/lib/libbsp/m68k/mcf52235/clock/clock.c index 012cebf962..9b02872a5a 100644 --- a/c/src/lib/libbsp/m68k/mcf52235/clock/clock.c +++ b/c/src/lib/libbsp/m68k/mcf52235/clock/clock.c @@ -48,7 +48,7 @@ static uint32_t bsp_clock_nanoseconds_since_last_tick(void) */ #define Clock_driver_support_install_isr( _new, _old ) \ do { \ - _old = (rtems_isr_entry)set_vector(_new, CLOCK_VECTOR, 1); \ + _old = set_vector(_new, CLOCK_VECTOR, BSP_SET_VECTOR_RTEMS); \ } while(0) /* diff --git a/c/src/lib/libbsp/m68k/mcf52235/include/tm27.h b/c/src/lib/libbsp/m68k/mcf52235/include/tm27.h index f8fe447335..7751425d0d 100644 --- a/c/src/lib/libbsp/m68k/mcf52235/include/tm27.h +++ b/c/src/lib/libbsp/m68k/mcf52235/include/tm27.h @@ -18,7 +18,8 @@ #define MUST_WAIT_FOR_INTERRUPT 0 -#define Install_tm27_vector( handler ) set_vector( (handler), 35, 1 ) +#define Install_tm27_vector( handler ) \ + set_vector( (handler), 35, BSP_SET_VECTOR_RTEMS ) #define Cause_tm27_intr() asm volatile ("trap #3"); diff --git a/c/src/lib/libbsp/m68k/mcf5225x/clock/clock.c b/c/src/lib/libbsp/m68k/mcf5225x/clock/clock.c index a74853854f..f63a03d684 100644 --- a/c/src/lib/libbsp/m68k/mcf5225x/clock/clock.c +++ b/c/src/lib/libbsp/m68k/mcf5225x/clock/clock.c @@ -40,7 +40,7 @@ static uint32_t bsp_clock_nanoseconds_since_last_tick(void) */ #define Clock_driver_support_install_isr( _new, _old ) \ do { \ - _old = (rtems_isr_entry)set_vector(_new, CLOCK_VECTOR, 1); \ + _old = set_vector(_new, CLOCK_VECTOR, BSP_SET_VECTOR_RTEMS); \ } while(0) /* diff --git a/c/src/lib/libbsp/m68k/mcf5225x/include/tm27.h b/c/src/lib/libbsp/m68k/mcf5225x/include/tm27.h index 45e28ec1bf..b0d54d1196 100644 --- a/c/src/lib/libbsp/m68k/mcf5225x/include/tm27.h +++ b/c/src/lib/libbsp/m68k/mcf5225x/include/tm27.h @@ -20,7 +20,8 @@ #define MUST_WAIT_FOR_INTERRUPT 0 -#define Install_tm27_vector( handler ) set_vector( (handler), 35, 1 ) +#define Install_tm27_vector( handler ) \ + set_vector( (handler), 35, BSP_SET_VECTOR_RTEMS ) #define Cause_tm27_intr() asm volatile ("trap #3"); diff --git a/c/src/lib/libbsp/m68k/mcf5235/clock/clock.c b/c/src/lib/libbsp/m68k/mcf5235/clock/clock.c index 5c3b6eaffa..e74478829c 100644 --- a/c/src/lib/libbsp/m68k/mcf5235/clock/clock.c +++ b/c/src/lib/libbsp/m68k/mcf5235/clock/clock.c @@ -26,7 +26,7 @@ */ #define Clock_driver_support_install_isr( _new, _old ) \ do { \ - _old = (rtems_isr_entry)set_vector(_new, CLOCK_VECTOR, 1); \ + _old = set_vector(_new, CLOCK_VECTOR, BSP_SET_VECTOR_RTEMS); \ } while(0) /* diff --git a/c/src/lib/libbsp/m68k/mcf5235/include/tm27.h b/c/src/lib/libbsp/m68k/mcf5235/include/tm27.h index f8fe447335..7751425d0d 100644 --- a/c/src/lib/libbsp/m68k/mcf5235/include/tm27.h +++ b/c/src/lib/libbsp/m68k/mcf5235/include/tm27.h @@ -18,7 +18,8 @@ #define MUST_WAIT_FOR_INTERRUPT 0 -#define Install_tm27_vector( handler ) set_vector( (handler), 35, 1 ) +#define Install_tm27_vector( handler ) \ + set_vector( (handler), 35, BSP_SET_VECTOR_RTEMS ) #define Cause_tm27_intr() asm volatile ("trap #3"); diff --git a/c/src/lib/libbsp/m68k/mcf5329/clock/clock.c b/c/src/lib/libbsp/m68k/mcf5329/clock/clock.c index 8817e7314e..8bf6cfaf1e 100644 --- a/c/src/lib/libbsp/m68k/mcf5329/clock/clock.c +++ b/c/src/lib/libbsp/m68k/mcf5329/clock/clock.c @@ -48,7 +48,7 @@ static uint32_t bsp_clock_nanoseconds_since_last_tick(void) */ #define Clock_driver_support_install_isr( _new, _old ) \ do { \ - _old = (rtems_isr_entry)set_vector(_new, CLOCK_VECTOR, 1); \ + _old = set_vector(_new, CLOCK_VECTOR, BSP_SET_VECTOR_RTEMS); \ } while(0) /* diff --git a/c/src/lib/libbsp/m68k/mcf5329/include/tm27.h b/c/src/lib/libbsp/m68k/mcf5329/include/tm27.h index f8fe447335..7751425d0d 100644 --- a/c/src/lib/libbsp/m68k/mcf5329/include/tm27.h +++ b/c/src/lib/libbsp/m68k/mcf5329/include/tm27.h @@ -18,7 +18,8 @@ #define MUST_WAIT_FOR_INTERRUPT 0 -#define Install_tm27_vector( handler ) set_vector( (handler), 35, 1 ) +#define Install_tm27_vector( handler ) \ + set_vector( (handler), 35, BSP_SET_VECTOR_RTEMS ) #define Cause_tm27_intr() asm volatile ("trap #3"); diff --git a/c/src/lib/libbsp/m68k/mrm332/clock/ckinit.c b/c/src/lib/libbsp/m68k/mrm332/clock/ckinit.c index 59b2259820..ba3eaffeab 100644 --- a/c/src/lib/libbsp/m68k/mrm332/clock/ckinit.c +++ b/c/src/lib/libbsp/m68k/mrm332/clock/ckinit.c @@ -56,7 +56,7 @@ void Install_clock( Clock_driver_ticks = 0; Clock_isrs = rtems_configuration_get_microseconds_per_tick() / 1000; - Old_ticker = (rtems_isr_entry) set_vector( clock_isr, CLOCK_VECTOR, 1 ); + Old_ticker = set_vector( clock_isr, CLOCK_VECTOR, BSP_SET_VECTOR_RTEMS ); /* enable 1mS interrupts */ *PITR = (unsigned short int)( SAM(0x09,0,PITM) );/* load counter */ diff --git a/c/src/lib/libbsp/m68k/mrm332/spurious/spinit.c b/c/src/lib/libbsp/m68k/mrm332/spurious/spinit.c index 33178eb35c..a8a5249e78 100644 --- a/c/src/lib/libbsp/m68k/mrm332/spurious/spinit.c +++ b/c/src/lib/libbsp/m68k/mrm332/spurious/spinit.c @@ -99,7 +99,7 @@ void Spurious_Initialize(void) break; default: - (void) set_vector( Spurious_Isr, vector, 1 ); + (void) set_vector( Spurious_Isr, vector, BSP_SET_VECTOR_RTEMS ); break; } } diff --git a/c/src/lib/libbsp/m68k/mvme136/clock/ckinit.c b/c/src/lib/libbsp/m68k/mvme136/clock/ckinit.c index e305adeb57..88a72db572 100644 --- a/c/src/lib/libbsp/m68k/mvme136/clock/ckinit.c +++ b/c/src/lib/libbsp/m68k/mvme136/clock/ckinit.c @@ -80,7 +80,7 @@ void Install_clock( Clock_driver_ticks = 0; Clock_isrs = rtems_configuration_get_microseconds_per_tick() / 1000; - Old_ticker = (rtems_isr_entry) set_vector( clock_isr, CLOCK_VECTOR, 1 ); + Old_ticker = set_vector( clock_isr, CLOCK_VECTOR, BSP_SET_VECTOR_RTEMS ); timer = (struct z8036_map *) 0xfffb0000; timer->MASTER_INTR = MICRVAL; timer->CT1_MODE_SPEC = T1MSRVAL; diff --git a/c/src/lib/libbsp/m68k/mvme136/include/tm27.h b/c/src/lib/libbsp/m68k/mvme136/include/tm27.h index 53a8c1e485..afa868ccd0 100644 --- a/c/src/lib/libbsp/m68k/mvme136/include/tm27.h +++ b/c/src/lib/libbsp/m68k/mvme136/include/tm27.h @@ -23,7 +23,8 @@ #define MUST_WAIT_FOR_INTERRUPT 0 -#define Install_tm27_vector( handler ) set_vector( (handler), 75, 1 ) +#define Install_tm27_vector( handler ) \ + set_vector( (handler), 75, BSP_SET_VECTOR_RTEMS ) #define Cause_tm27_intr() (*(volatile uint8_t*)0xfffb006b) = 0x80 diff --git a/c/src/lib/libbsp/m68k/mvme136/shmsupp/mpisr.c b/c/src/lib/libbsp/m68k/mvme136/shmsupp/mpisr.c index eeb8f0c53c..37d46a20db 100644 --- a/c/src/lib/libbsp/m68k/mvme136/shmsupp/mpisr.c +++ b/c/src/lib/libbsp/m68k/mvme136/shmsupp/mpisr.c @@ -37,5 +37,5 @@ rtems_isr Shm_isr_mvme136() void Shm_setvec() { /* may need to disable intr */ - set_vector( Shm_isr_mvme136, 75, 1 ); + set_vector( Shm_isr_mvme136, 75, BSP_SET_VECTOR_RTEMS ); } diff --git a/c/src/lib/libbsp/m68k/mvme136/timer/timer.c b/c/src/lib/libbsp/m68k/mvme136/timer/timer.c index 0793b04cf5..f176cd8f42 100644 --- a/c/src/lib/libbsp/m68k/mvme136/timer/timer.c +++ b/c/src/lib/libbsp/m68k/mvme136/timer/timer.c @@ -22,7 +22,7 @@ rtems_isr timerisr(void); void benchmark_timer_initialize(void) { - (void) set_vector( timerisr, 66, 0 ); /* install ISR */ + (void) set_vector( timerisr, 66, BSP_SET_VECTOR_RAW ) Ttimer_val = 0; /* clear timer ISR count */ Z8x36_WRITE( TIMER, MASTER_INTR, 0x01 ); /* reset */ diff --git a/c/src/lib/libbsp/m68k/mvme147/clock/ckinit.c b/c/src/lib/libbsp/m68k/mvme147/clock/ckinit.c index cddf04d472..c7133bbec4 100644 --- a/c/src/lib/libbsp/m68k/mvme147/clock/ckinit.c +++ b/c/src/lib/libbsp/m68k/mvme147/clock/ckinit.c @@ -65,7 +65,7 @@ void Install_clock(rtems_isr_entry clock_isr ) Clock_driver_ticks = 0; Clock_isrs = rtems_configuration_get_microseconds_per_tick() / 1000; - Old_ticker = (rtems_isr_entry) set_vector( clock_isr, TIMER_2_VECTOR, 1 ); + Old_ticker = set_vector( clock_isr, TIMER_2_VECTOR, BSP_SET_VECTOR_RTEMS ); pcc->timer2_int_control = 0x00; /* Disable T2 Interr. */ pcc->timer2_preload = MS_COUNT; diff --git a/c/src/lib/libbsp/m68k/mvme147/include/tm27.h b/c/src/lib/libbsp/m68k/mvme147/include/tm27.h index 79f197bfd7..8520365cee 100644 --- a/c/src/lib/libbsp/m68k/mvme147/include/tm27.h +++ b/c/src/lib/libbsp/m68k/mvme147/include/tm27.h @@ -23,8 +23,8 @@ #define MUST_WAIT_FOR_INTERRUPT 0 -#define Install_tm27_vector( handler ) set_vector( (handler), \ - SOFT_1_VECTOR, 1 ) +#define Install_tm27_vector( handler ) \ + set_vector( (handler), SOFT_1_VECTOR, BSP_SET_VECTOR_RTEMS ) #define Cause_tm27_intr() pcc->software_int_1_control = 0x0c /* generate level 4 sotware int. */ diff --git a/c/src/lib/libbsp/m68k/mvme147/timer/timer.c b/c/src/lib/libbsp/m68k/mvme147/timer/timer.c index b0397eac35..7b515897c2 100644 --- a/c/src/lib/libbsp/m68k/mvme147/timer/timer.c +++ b/c/src/lib/libbsp/m68k/mvme147/timer/timer.c @@ -29,7 +29,7 @@ rtems_isr_entry timerisr(rtems_vector_number); void benchmark_timer_initialize(void) { - (void) set_vector(timerisr, TIMER_1_VECTOR, 0); /* install ISR */ + (void) set_vector(timerisr, TIMER_1_VECTOR, BSP_SET_VECTOR_RAW); Ttimer_val = 0; /* clear timer ISR count */ pcc->timer1_int_control = 0x00; /* Disable T1 Interr. */ diff --git a/c/src/lib/libbsp/m68k/mvme147s/include/tm27.h b/c/src/lib/libbsp/m68k/mvme147s/include/tm27.h index 79f197bfd7..8520365cee 100644 --- a/c/src/lib/libbsp/m68k/mvme147s/include/tm27.h +++ b/c/src/lib/libbsp/m68k/mvme147s/include/tm27.h @@ -23,8 +23,8 @@ #define MUST_WAIT_FOR_INTERRUPT 0 -#define Install_tm27_vector( handler ) set_vector( (handler), \ - SOFT_1_VECTOR, 1 ) +#define Install_tm27_vector( handler ) \ + set_vector( (handler), SOFT_1_VECTOR, BSP_SET_VECTOR_RTEMS ) #define Cause_tm27_intr() pcc->software_int_1_control = 0x0c /* generate level 4 sotware int. */ diff --git a/c/src/lib/libbsp/m68k/mvme147s/shmsupp/mpisr.c b/c/src/lib/libbsp/m68k/mvme147s/shmsupp/mpisr.c index e929e6903b..3a3ade574e 100644 --- a/c/src/lib/libbsp/m68k/mvme147s/shmsupp/mpisr.c +++ b/c/src/lib/libbsp/m68k/mvme147s/shmsupp/mpisr.c @@ -41,5 +41,5 @@ rtems_isr Shm_isr_mvme147() void Shm_setvec() { /* may need to disable intr */ - set_vector( Shm_isr_mvme147, VME_SIGLP_VECTOR, 1 ); + set_vector( Shm_isr_mvme147, VME_SIGLP_VECTOR, BSP_SET_VECTOR_RTEMS ); } diff --git a/c/src/lib/libbsp/m68k/mvme162/clock/ckinit.c b/c/src/lib/libbsp/m68k/mvme162/clock/ckinit.c index 6ebf28bcfa..bbd03a4f6c 100644 --- a/c/src/lib/libbsp/m68k/mvme162/clock/ckinit.c +++ b/c/src/lib/libbsp/m68k/mvme162/clock/ckinit.c @@ -69,7 +69,7 @@ void Install_clock(rtems_isr_entry clock_isr ) Clock_driver_ticks = 0; Clock_isrs = rtems_configuration_get_microseconds_per_tick() / 1000; - Old_ticker = (rtems_isr_entry) set_vector( clock_isr, CLOCK_VECTOR, 1 ); + Old_ticker = set_vector( clock_isr, CLOCK_VECTOR, BSP_SET_VECTOR_RTEMS ); lcsr->vector_base |= MASK_INT; /* unmask VMEchip2 interrupts */ lcsr->to_ctl = 0xE7; /* prescaler to 1 MHz (see Appendix A1) */ lcsr->timer_cmp_2 = MS_COUNT; diff --git a/c/src/lib/libbsp/m68k/mvme162/console/console.c b/c/src/lib/libbsp/m68k/mvme162/console/console.c index c5ce00ca7c..abe4f2532a 100644 --- a/c/src/lib/libbsp/m68k/mvme162/console/console.c +++ b/c/src/lib/libbsp/m68k/mvme162/console/console.c @@ -116,7 +116,8 @@ rtems_device_driver console_initialize( ZWRITE(i, 9, 8); /* master interrupt enable */ } - set_vector(C_Receive_ISR, SCC_VECTOR, 1); /* install ISR for ports A and B */ + /* install ISR for ports A and B */ + set_vector(C_Receive_ISR, SCC_VECTOR, BSP_SET_VECTOR_RTEMS); mcchip->vector_base = 0; mcchip->gen_control = 2; /* MIEN */ diff --git a/c/src/lib/libbsp/m68k/mvme162/include/tm27.h b/c/src/lib/libbsp/m68k/mvme162/include/tm27.h index 8a26f008fa..c8872e0f4a 100644 --- a/c/src/lib/libbsp/m68k/mvme162/include/tm27.h +++ b/c/src/lib/libbsp/m68k/mvme162/include/tm27.h @@ -24,7 +24,7 @@ #define MUST_WAIT_FOR_INTERRUPT 0 #define Install_tm27_vector( handler ) \ - set_vector( (handler), VBR1 * 0x10 + 0x8, 1 ); \ + set_vector( (handler), VBR1 * 0x10 + 0x8, BSP_SET_VECTOR_RTEMS ); \ lcsr->intr_level[2] |= 3; \ lcsr->intr_ena |= 0x100; diff --git a/c/src/lib/libbsp/m68k/mvme162/timer/timer.c b/c/src/lib/libbsp/m68k/mvme162/timer/timer.c index c7534bac4c..487fb9872e 100644 --- a/c/src/lib/libbsp/m68k/mvme162/timer/timer.c +++ b/c/src/lib/libbsp/m68k/mvme162/timer/timer.c @@ -33,7 +33,7 @@ rtems_isr timerisr(void); void benchmark_timer_initialize(void) { - (void) set_vector( timerisr, VBR0 * 0x10 + 0x8, 0 ); + (void) set_vector( timerisr, VBR0 * 0x10 + 0x8, BSP_SET_VECTOR_RAW ); Ttimer_val = 0; /* clear timer ISR count */ lcsr->vector_base |= MASK_INT; /* unmask VMEchip2 interrupts */ diff --git a/c/src/lib/libbsp/m68k/mvme167/clock/ckinit.c b/c/src/lib/libbsp/m68k/mvme167/clock/ckinit.c index 6efdabf124..40017f38eb 100644 --- a/c/src/lib/libbsp/m68k/mvme167/clock/ckinit.c +++ b/c/src/lib/libbsp/m68k/mvme167/clock/ckinit.c @@ -157,7 +157,7 @@ void VMEchip2_T2_initialize( void ) lcsr->timer_cmp_2 = MS_COUNT; /* Period in compare register */ lcsr->timer_cnt_2 = 0; /* Clear tick timer 2 counter */ Old_ticker = /* Install C ISR */ - (rtems_isr_entry) set_vector( VMEchip2_T2_isr, CLOCK_VECTOR, 1 ); + set_vector( VMEchip2_T2_isr, CLOCK_VECTOR, BSP_SET_VECTOR_RTEMS ); lcsr->board_ctl |= 0x700; /* Start tick timer 2, reset-on-compare, */ /* and clear tick timer 2 overflow counter */ lcsr->intr_ena |= 0x02000000; /* Enable tick timer 2 interrupt */ diff --git a/c/src/lib/libbsp/m68k/mvme167/console/console.c b/c/src/lib/libbsp/m68k/mvme167/console/console.c index a03eda8888..a1f4e45614 100644 --- a/c/src/lib/libbsp/m68k/mvme167/console/console.c +++ b/c/src/lib/libbsp/m68k/mvme167/console/console.c @@ -732,10 +732,10 @@ int cd2401_firstOpen( /* If the first of the four channels to open, set up the interrupts */ if ( !Init_count++ ) { /* Install the interrupt handlers */ - Prev_re_isr = (rtems_isr_entry) set_vector( cd2401_re_isr, 0x5C, 1 ); - Prev_modem_isr = (rtems_isr_entry) set_vector( cd2401_modem_isr, 0x5D, 1 ); - Prev_tx_isr = (rtems_isr_entry) set_vector( cd2401_tx_isr, 0x5E, 1 ); - Prev_rx_isr = (rtems_isr_entry) set_vector( cd2401_rx_isr, 0x5F, 1 ); + Prev_re_isr = set_vector(cd2401_re_isr, 0x5C, BSP_SET_VECTOR_RTEMS); + Prev_modem_isr = set_vector(cd2401_modem_isr,0x5D,BSP_SET_VECTOR_RTEMS); + Prev_tx_isr = set_vector(cd2401_tx_isr, 0x5E, BSP_SET_VECTOR_RTEMS); + Prev_rx_isr = set_vector(cd2401_rx_isr, 0x5F, BSP_SET_VECTOR_RTEMS); cd2401_interrupts_initialize( TRUE ); } @@ -776,10 +776,10 @@ int cd2401_lastClose( cd2401_interrupts_initialize( FALSE ); /* De-install the interrupt handlers */ - set_vector( Prev_re_isr, 0x5C, 1 ); - set_vector( Prev_modem_isr, 0x5D, 1 ); - set_vector( Prev_tx_isr, 0x5E, 1 ); - set_vector( Prev_rx_isr, 0x5F, 1 ); + set_vector( Prev_re_isr, 0x5C, BSP_SET_VECTOR_RTEMS ); + set_vector( Prev_modem_isr, 0x5D, BSP_SET_VECTOR_RTEMS ); + set_vector( Prev_tx_isr, 0x5E, BSP_SET_VECTOR_RTEMS ); + set_vector( Prev_rx_isr, 0x5F, BSP_SET_VECTOR_RTEMS ); } CD2401_RECORD_LAST_CLOSE_INFO(( minor, Init_count )); diff --git a/c/src/lib/libbsp/m68k/mvme167/include/tm27.h b/c/src/lib/libbsp/m68k/mvme167/include/tm27.h index 9351755b47..89d5af6c70 100644 --- a/c/src/lib/libbsp/m68k/mvme167/include/tm27.h +++ b/c/src/lib/libbsp/m68k/mvme167/include/tm27.h @@ -23,9 +23,9 @@ #define MUST_WAIT_FOR_INTERRUPT 0 #define Install_tm27_vector( handler ) \ - set_vector( (handler), VBR1 * 0x10 + 0x8, 1 ); \ - lcsr->intr_level[2] |= 3; \ - lcsr->intr_ena |= 0x100 + set_vector((handler), VBR1 * 0x10 + 0x8, BSP_SET_VECTOR_RTEMS); \ + lcsr->intr_level[2] |= 3; \ + lcsr->intr_ena |= 0x100 #define Cause_tm27_intr() lcsr->intr_soft_set |= 0x100 diff --git a/c/src/lib/libbsp/m68k/mvme167/network/network.c b/c/src/lib/libbsp/m68k/mvme167/network/network.c index 9810622aeb..5f238a74d6 100644 --- a/c/src/lib/libbsp/m68k/mvme167/network/network.c +++ b/c/src/lib/libbsp/m68k/mvme167/network/network.c @@ -1093,7 +1093,11 @@ void uti596_initialize_hardware( * Install the interrupt handler * calls rtems_interrupt_catch */ - dummy = (rtems_isr_entry) set_vector( uti596_DynamicInterruptHandler, 0x57, 1 ); + dummy = set_vector( + uti596_DynamicInterruptHandler, + 0x57, + BSP_SET_VECTOR_RTEMS + ); /* Initialize the 82596 memory */ uti596_initMem(sc); diff --git a/c/src/lib/libbsp/m68k/mvme167/timer/timer.c b/c/src/lib/libbsp/m68k/mvme167/timer/timer.c index 55f14b1e23..6321de2063 100644 --- a/c/src/lib/libbsp/m68k/mvme167/timer/timer.c +++ b/c/src/lib/libbsp/m68k/mvme167/timer/timer.c @@ -73,7 +73,7 @@ rtems_isr_entry timerisr(rtems_vector_number); */ void benchmark_timer_initialize(void) { - (void) set_vector( timerisr, TIMER_VECTOR, 0 ); + (void) set_vector( timerisr, TIMER_VECTOR, BSP_SET_VECTOR_RAW ); Ttimer_val = 0; /* clear timer ISR count */ lcsr->intr_ena &= 0xFEFFFFFF; /* disable tick timer 1 interrupt */ diff --git a/c/src/lib/libbsp/m68k/ods68302/clock/ckinit.c b/c/src/lib/libbsp/m68k/ods68302/clock/ckinit.c index 1f759ae7bc..b1d72785c8 100644 --- a/c/src/lib/libbsp/m68k/ods68302/clock/ckinit.c +++ b/c/src/lib/libbsp/m68k/ods68302/clock/ckinit.c @@ -85,7 +85,7 @@ void Install_clock( Clock_driver_ticks = 0; Clock_isrs = rtems_configuration_get_microseconds_per_tick() / 1000; - set_vector( clock_isr, CLOCK_VECTOR, 1 ); + set_vector( clock_isr, CLOCK_VECTOR, BSP_SET_VECTOR_RTEMS ); m302.reg.trr1 = TRR1_VAL; /* set timer reference register */ m302.reg.tmr1 = TMR1_VAL; /* set timer mode register & enable */ diff --git a/c/src/lib/libbsp/m68k/shared/bspspuriousinit.c b/c/src/lib/libbsp/m68k/shared/bspspuriousinit.c index 4531900467..5799ce810b 100644 --- a/c/src/lib/libbsp/m68k/shared/bspspuriousinit.c +++ b/c/src/lib/libbsp/m68k/shared/bspspuriousinit.c @@ -40,7 +40,7 @@ void bsp_spurious_initialize(void) * XXX */ - set_vector( bsp_spurious_handler, vector, 1 ); + set_vector( bsp_spurious_handler, vector, BSP_SET_VECTOR_RTEMS ); } } diff --git a/c/src/lib/libbsp/m68k/sim68000/clock/clockdrv.c b/c/src/lib/libbsp/m68k/sim68000/clock/clockdrv.c index 1c15550a85..7bc7d70fb3 100644 --- a/c/src/lib/libbsp/m68k/sim68000/clock/clockdrv.c +++ b/c/src/lib/libbsp/m68k/sim68000/clock/clockdrv.c @@ -9,7 +9,7 @@ #define CLOCK_VECTOR 84 #define Clock_driver_support_install_isr( _new, _old ) \ - do { _old = (rtems_isr_entry) set_vector( _new, CLOCK_VECTOR, 1 ); } while(0) + _old = set_vector( _new, CLOCK_VECTOR, BSP_SET_VECTOR_RTEMS ) typedef struct { volatile uint8_t cr; /* 0 - 0 : Timer Control Register */ diff --git a/c/src/lib/libbsp/m68k/uC5282/clock/clock.c b/c/src/lib/libbsp/m68k/uC5282/clock/clock.c index b8037d5372..35659646e6 100644 --- a/c/src/lib/libbsp/m68k/uC5282/clock/clock.c +++ b/c/src/lib/libbsp/m68k/uC5282/clock/clock.c @@ -61,7 +61,7 @@ uint32_t bsp_clock_nanoseconds_since_last_tick(void) */ #define Clock_driver_support_install_isr( _new, _old ) \ do { \ - _old = (rtems_isr_entry)set_vector(_new, CLOCK_VECTOR, 1); \ + _old = set_vector(_new, CLOCK_VECTOR, BSP_SET_VECTOR_RTEMS); \ } while(0) /* diff --git a/c/src/lib/libbsp/m68k/uC5282/include/tm27.h b/c/src/lib/libbsp/m68k/uC5282/include/tm27.h index 5fffd8ccd5..c8de18db8c 100644 --- a/c/src/lib/libbsp/m68k/uC5282/include/tm27.h +++ b/c/src/lib/libbsp/m68k/uC5282/include/tm27.h @@ -23,7 +23,8 @@ #define MUST_WAIT_FOR_INTERRUPT 0 -#define Install_tm27_vector( handler ) set_vector( (handler), 35, 1 ) +#define Install_tm27_vector( handler ) \ + set_vector( (handler), 35, BSP_SET_VECTOR_RTEMS ) #define Cause_tm27_intr() asm volatile ("trap #3"); diff --git a/c/src/lib/libbsp/mips/csb350/include/tm27.h b/c/src/lib/libbsp/mips/csb350/include/tm27.h index b08801155f..05702564e6 100644 --- a/c/src/lib/libbsp/mips/csb350/include/tm27.h +++ b/c/src/lib/libbsp/mips/csb350/include/tm27.h @@ -25,7 +25,7 @@ int negate_sw_irw(uint32_t irqnum); #define MUST_WAIT_FOR_INTERRUPT 0 #define Install_tm27_vector( handler ) \ - (void) set_vector(handler, AU1X00_IRQ_SW0, 1); + (void) set_vector(handler, AU1X00_IRQ_SW0, BSP_SET_VECTOR_RTEMS); #define Cause_tm27_intr() \ do { \ diff --git a/c/src/lib/libbsp/mips/csb350/network/network.c b/c/src/lib/libbsp/mips/csb350/network/network.c index 6183aebe61..b0795c601d 100644 --- a/c/src/lib/libbsp/mips/csb350/network/network.c +++ b/c/src/lib/libbsp/mips/csb350/network/network.c @@ -337,9 +337,17 @@ void au1x00_emac_init(void *arg) /* install the interrupt handler */ if (sc->unitnumber == 0) { - set_vector(au1x00_emac_isr, AU1X00_IRQ_MAC0, 1); + set_vector( + au1x00_emac_isr, + AU1X00_IRQ_MAC0, + BSP_SET_VECTOR_RTEMS + ); } else { - set_vector(au1x00_emac_isr, AU1X00_IRQ_MAC1, 1); + set_vector( + au1x00_emac_isr, + AU1X00_IRQ_MAC1, + BSP_SET_VECTOR_RTEMS + ); } AU1X00_IC_MASKCLR(sc->int_ctrlr) = sc->int_mask; au_sync(); diff --git a/c/src/lib/libbsp/mips/genmongoosev/include/tm27.h b/c/src/lib/libbsp/mips/genmongoosev/include/tm27.h index 52f7fafdfc..c44f1d60aa 100644 --- a/c/src/lib/libbsp/mips/genmongoosev/include/tm27.h +++ b/c/src/lib/libbsp/mips/genmongoosev/include/tm27.h @@ -24,7 +24,7 @@ #if 1 #define Install_tm27_vector( handler ) \ - (void) set_vector( handler, MONGOOSEV_IRQ_SOFTWARE_1, 1 ); + (void)set_vector(handler, MONGOOSEV_IRQ_SOFTWARE_1, BSP_SET_VECTOR_RTEMS); #define Cause_tm27_intr() assertSoftwareInterrupt(0); @@ -34,7 +34,7 @@ #else #define Install_tm27_vector( handler ) \ - (void) set_vector( handler, MONGOOSEV_IRQ_TIMER1, 1 ); + (void)set_vector(handler, MONGOOSEV_IRQ_TIMER1, BSP_SET_VECTOR_RTEMS); #define Cause_tm27_intr() \ do { \ diff --git a/c/src/lib/libbsp/mips/jmr3904/include/tm27.h b/c/src/lib/libbsp/mips/jmr3904/include/tm27.h index baf0baac22..5c22339d5b 100644 --- a/c/src/lib/libbsp/mips/jmr3904/include/tm27.h +++ b/c/src/lib/libbsp/mips/jmr3904/include/tm27.h @@ -35,7 +35,7 @@ #define Lower_tm27_intr() /* empty */ #else #define Install_tm27_vector( handler ) \ - (void) set_vector( handler, TX3904_IRQ_TMR0, 1 ); \ + (void) set_vector( handler, TX3904_IRQ_TMR0, BSP_SET_VECTOR_RTEMS ); \ #define Cause_tm27_intr() \ do { \ diff --git a/c/src/lib/libbsp/nios2/nios2_iss/clock/clock.c b/c/src/lib/libbsp/nios2/nios2_iss/clock/clock.c index 4b450d2b6d..1c97d3df2f 100644 --- a/c/src/lib/libbsp/nios2/nios2_iss/clock/clock.c +++ b/c/src/lib/libbsp/nios2/nios2_iss/clock/clock.c @@ -21,7 +21,7 @@ * Attach clock interrupt handler */ #define Clock_driver_support_install_isr(_new, _old) \ - do { _old = (rtems_isr_entry)set_vector(_new, CLOCK_VECTOR, 1); } while(0) + _old = set_vector(_new, CLOCK_VECTOR, BSP_SET_VECTOR_RTEMS) /* diff --git a/c/src/lib/libbsp/nios2/nios2_iss/startup/setvec.c b/c/src/lib/libbsp/nios2/nios2_iss/startup/setvec.c index c6750794a3..278ca6f0dc 100644 --- a/c/src/lib/libbsp/nios2/nios2_iss/startup/setvec.c +++ b/c/src/lib/libbsp/nios2/nios2_iss/startup/setvec.c @@ -27,6 +27,7 @@ #include <rtems.h> #include <bsp.h> +/* FIXME: replace with generic version */ rtems_isr_entry set_vector( /* returns old vector */ rtems_isr_entry handler, /* isr routine */ rtems_vector_number vector, /* vector number */ @@ -35,7 +36,7 @@ rtems_isr_entry set_vector( /* returns old vector */ { rtems_isr_entry previous_isr; - if ( type ) + if ( type == BSP_SET_VECTOR_RTEMS ) rtems_interrupt_catch( handler, vector, (rtems_isr_entry *) &previous_isr ); else { /* XXX: install non-RTEMS ISR as "raw" interupt */ diff --git a/c/src/lib/libbsp/nios2/nios2_iss/timer/timer.c b/c/src/lib/libbsp/nios2/nios2_iss/timer/timer.c index b9e6cfb3aa..f66af70f50 100644 --- a/c/src/lib/libbsp/nios2/nios2_iss/timer/timer.c +++ b/c/src/lib/libbsp/nios2/nios2_iss/timer/timer.c @@ -44,7 +44,7 @@ void benchmark_timer_initialize( void ) TIMER_REGS->control = ALTERA_AVALON_TIMER_CONTROL_STOP_MSK; - set_vector((nios2_isr_entry *)timerisr, TIMER_VECTOR, 1); + set_vector((nios2_isr_entry *)timerisr, TIMER_VECTOR, BSP_SET_VECTOR_RTEMS); /* Enable interrupt processing */ diff --git a/c/src/lib/libbsp/no_cpu/no_bsp/clock/ckinit.c b/c/src/lib/libbsp/no_cpu/no_bsp/clock/ckinit.c index d7bfcb4af6..20d02d3e9c 100644 --- a/c/src/lib/libbsp/no_cpu/no_bsp/clock/ckinit.c +++ b/c/src/lib/libbsp/no_cpu/no_bsp/clock/ckinit.c @@ -95,7 +95,7 @@ void Install_clock( Clock_driver_ticks = 0; Clock_isrs = rtems_configuration_get_microseconds_per_tick() / 1000; - Old_ticker = (rtems_isr_entry) set_vector( clock_isr, CLOCK_VECTOR, 1 ); + Old_ticker = set_vector( clock_isr, CLOCK_VECTOR, BSP_SET_VECTOR_RTEMS ); /* * Hardware specific initialize goes here */ diff --git a/c/src/lib/libbsp/powerpc/score603e/console/console.c b/c/src/lib/libbsp/powerpc/score603e/console/console.c index 392aa4a608..c46d11f1ca 100644 --- a/c/src/lib/libbsp/powerpc/score603e/console/console.c +++ b/c/src/lib/libbsp/powerpc/score603e/console/console.c @@ -153,7 +153,7 @@ void console_initialize_interrupts( void ) * Connect each vector to the interupt service routine. */ for (i=0; i < NUM_Z85C30_CHIPS; i++) - set_vector( console_isr, Chips_85C30[i].vector, 1 ); + set_vector( console_isr, Chips_85C30[i].vector, BSP_SET_VECTOR_RTEMS ); #warning "Install interrupts using proper method for PIC vectors." atexit( console_exit ); diff --git a/c/src/lib/libbsp/powerpc/virtex4/clock/clock.c b/c/src/lib/libbsp/powerpc/virtex4/clock/clock.c index 050824ad1a..7c32090efe 100644 --- a/c/src/lib/libbsp/powerpc/virtex4/clock/clock.c +++ b/c/src/lib/libbsp/powerpc/virtex4/clock/clock.c @@ -39,6 +39,7 @@ #include <rtems.h> #include <rtems/clockdrv.h> +#include <bsp/setvec.h> #include <rtems/libio.h> #include <stdlib.h> /* for atexit() */ #include <rtems/bspIo.h> @@ -59,12 +60,6 @@ static bool auto_restart; void Clock_exit( void ); -rtems_isr_entry set_vector( /* returns old vector */ - rtems_isr_entry handler, /* isr routine */ - rtems_vector_number vector, /* vector number */ - int type /* RTEMS or RAW intr */ -); - /* * These are set by clock driver during its init */ diff --git a/c/src/lib/libbsp/sh/shared/setvec.c b/c/src/lib/libbsp/sh/shared/setvec.c index c658ae7fba..814641731e 100644 --- a/c/src/lib/libbsp/sh/shared/setvec.c +++ b/c/src/lib/libbsp/sh/shared/setvec.c @@ -39,6 +39,7 @@ #include <rtems.h> #include <bsp.h> +/* FIXME: replace with generic version */ sh_isr_entry set_vector( /* returns old vector */ rtems_isr_entry handler, /* isr routine */ rtems_vector_number vector, /* vector number */ @@ -47,7 +48,7 @@ sh_isr_entry set_vector( /* returns old vector */ { sh_isr_entry previous_isr; - if ( type ) + if ( type == BSP_SET_VECTOR_RTEMS ) rtems_interrupt_catch( handler, vector, (rtems_isr_entry *) &previous_isr ); else { _CPU_ISR_install_raw_handler( vector, handler, (proc_ptr*) &previous_isr ); diff --git a/c/src/lib/libbsp/shared/setvec.c b/c/src/lib/libbsp/shared/setvec.c index 4d895961cc..1e72869846 100644 --- a/c/src/lib/libbsp/shared/setvec.c +++ b/c/src/lib/libbsp/shared/setvec.c @@ -8,8 +8,8 @@ * INPUT PARAMETERS: * handler - interrupt handler entry point * vector - vector number - * type - 0 indicates raw hardware connect - * 1 indicates RTEMS interrupt connect + * type - BSP_SET_VECTOR_RAW indicates raw hardware connect + * BSP_SET_VECTOR_RTEMS indicates RTEMS interrupt connect * * OUTPUT PARAMETERS: NONE * @@ -35,7 +35,7 @@ rtems_isr_entry set_vector( { rtems_isr_entry previous_isr; - if ( type ) + if ( type == BSP_SET_VECTOR_RTEMS ) rtems_interrupt_catch( handler, vector, &previous_isr ); else _CPU_ISR_install_raw_handler( vector, handler, (void *)&previous_isr ); diff --git a/c/src/lib/libbsp/sparc/erc32/clock/ckinit.c b/c/src/lib/libbsp/sparc/erc32/clock/ckinit.c index 9987de285b..93ed503d0b 100644 --- a/c/src/lib/libbsp/sparc/erc32/clock/ckinit.c +++ b/c/src/lib/libbsp/sparc/erc32/clock/ckinit.c @@ -41,7 +41,7 @@ #define Clock_driver_support_install_isr( _new, _old ) \ do { \ - _old = set_vector( _new, CLOCK_VECTOR, 1 ); \ + _old = set_vector( _new, CLOCK_VECTOR, BSP_SET_VECTOR_RTEMS ); \ } while(0) extern int CLOCK_SPEED; diff --git a/c/src/lib/libbsp/sparc/erc32/console/erc32_console.c b/c/src/lib/libbsp/sparc/erc32/console/erc32_console.c index 2d93f539a0..279ae21691 100644 --- a/c/src/lib/libbsp/sparc/erc32/console/erc32_console.c +++ b/c/src/lib/libbsp/sparc/erc32/console/erc32_console.c @@ -304,7 +304,15 @@ static void erc32_console_initialize( * Initialize Hardware */ #if (CONSOLE_USE_INTERRUPTS) - set_vector(erc32_console_isr_a, CONSOLE_UART_A_TRAP, 1); - set_vector(erc32_console_isr_b, CONSOLE_UART_B_TRAP, 1); + set_vector( + erc32_console_isr_a, + CONSOLE_UART_A_TRAP, + BSP_SET_VECTOR_RTEMS + ); + set_vector( + erc32_console_isr_b, + CONSOLE_UART_B_TRAP, + BSP_SET_VECTOR_RTEMS + ); #endif } diff --git a/c/src/lib/libbsp/sparc/erc32/include/tm27.h b/c/src/lib/libbsp/sparc/erc32/include/tm27.h index d59af6bcd8..d94865780b 100644 --- a/c/src/lib/libbsp/sparc/erc32/include/tm27.h +++ b/c/src/lib/libbsp/sparc/erc32/include/tm27.h @@ -36,7 +36,7 @@ #define MUST_WAIT_FOR_INTERRUPT 1 #define Install_tm27_vector( handler ) \ - set_vector( (handler), TEST_VECTOR, 1 ); + set_vector( (handler), TEST_VECTOR, BSP_SET_VECTOR_RTEMS ); #define Cause_tm27_intr() \ __asm__ volatile( "ta 0x10; nop " ); @@ -59,8 +59,8 @@ #define MUST_WAIT_FOR_INTERRUPT 1 #define Install_tm27_vector( handler ) \ - set_vector( (handler), TEST_VECTOR, 1 ); \ - set_vector( (handler), TEST_VECTOR2, 1 ); + set_vector( (handler), TEST_VECTOR, BSP_SET_VECTOR_RTEMS ); \ + set_vector( (handler), TEST_VECTOR2, BSP_SET_VECTOR_RTEMS ); #define Cause_tm27_intr() \ do { \ diff --git a/c/src/lib/libbsp/sparc/erc32/startup/setvec.c b/c/src/lib/libbsp/sparc/erc32/startup/setvec.c index 3a7601d012..cf22897093 100644 --- a/c/src/lib/libbsp/sparc/erc32/startup/setvec.c +++ b/c/src/lib/libbsp/sparc/erc32/startup/setvec.c @@ -42,7 +42,7 @@ rtems_isr_entry set_vector( /* returns old vector */ uint32_t real_trap; uint32_t source; - if ( type ) + if ( type == BSP_SET_VECTOR_RTEMS ) rtems_interrupt_catch( handler, vector, &previous_isr ); else _CPU_ISR_install_raw_handler( vector, handler, (void *)&previous_isr ); diff --git a/c/src/lib/libbsp/sparc/erc32/startup/spurious.c b/c/src/lib/libbsp/sparc/erc32/startup/spurious.c index 7563a9fb61..f3f966e17f 100644 --- a/c/src/lib/libbsp/sparc/erc32/startup/spurious.c +++ b/c/src/lib/libbsp/sparc/erc32/startup/spurious.c @@ -163,7 +163,7 @@ void bsp_spurious_initialize() continue; set_vector( (rtems_isr_entry) bsp_spurious_handler, - SPARC_SYNCHRONOUS_TRAP( trap ), 1 ); + SPARC_SYNCHRONOUS_TRAP( trap ), BSP_SET_VECTOR_RTEMS ); } ERC32_MEC.Interrupt_Mask = mask; diff --git a/c/src/lib/libbsp/sparc/leon2/cchip/cchip.c b/c/src/lib/libbsp/sparc/leon2/cchip/cchip.c index 59c17dd9ff..3f09e862dc 100644 --- a/c/src/lib/libbsp/sparc/leon2/cchip/cchip.c +++ b/c/src/lib/libbsp/sparc/leon2/cchip/cchip.c @@ -312,7 +312,11 @@ void cchip1_irq_init(void){ cchip1_spurious_cnt = 0; /* Register interrupt handler */ - set_vector(cchip1_interrupt_dispatcher,LEON_TRAP_TYPE(CCHIP_IRQ),1); + set_vector( + cchip1_interrupt_dispatcher, + LEON_TRAP_TYPE(CCHIP_IRQ), + BSP_SET_VECTOR_RTEMS + ); } void cchip1_set_isr(void *handler, int irqno, void *arg){ diff --git a/c/src/lib/libbsp/sparc/leon2/clock/ckinit.c b/c/src/lib/libbsp/sparc/leon2/clock/ckinit.c index 6bd7918aaa..0e0e15302a 100644 --- a/c/src/lib/libbsp/sparc/leon2/clock/ckinit.c +++ b/c/src/lib/libbsp/sparc/leon2/clock/ckinit.c @@ -37,7 +37,7 @@ #define Clock_driver_support_install_isr( _new, _old ) \ do { \ - _old = set_vector( _new, CLOCK_VECTOR, 1 ); \ + _old = set_vector( _new, CLOCK_VECTOR, BSP_SET_VECTOR_RTEMS ); \ } while(0) extern int CLOCK_SPEED; diff --git a/c/src/lib/libbsp/sparc/leon2/console/console.c b/c/src/lib/libbsp/sparc/leon2/console/console.c index 91a1daa739..d90168a771 100644 --- a/c/src/lib/libbsp/sparc/leon2/console/console.c +++ b/c/src/lib/libbsp/sparc/leon2/console/console.c @@ -241,11 +241,11 @@ void console_initialize_interrupts( void ) LEON_REG.UART_Control_1 |= LEON_REG_UART_CTRL_RI | LEON_REG_UART_CTRL_TI; LEON_REG.UART_Control_2 |= LEON_REG_UART_CTRL_RI | LEON_REG_UART_CTRL_TI; - set_vector( console_isr_a, CONSOLE_UART_1_TRAP, 1 ); + set_vector( console_isr_a, CONSOLE_UART_1_TRAP, BSP_SET_VECTOR_RTEMS ); #ifdef RDB_BREAK_IN if (trap_table[0x150/4] == 0x91d02000) #endif - set_vector( console_isr_b, CONSOLE_UART_2_TRAP, 1 ); + set_vector( console_isr_b, CONSOLE_UART_2_TRAP, BSP_SET_VECTOR_RTEMS ); } /* diff --git a/c/src/lib/libbsp/sparc/leon2/include/tm27.h b/c/src/lib/libbsp/sparc/leon2/include/tm27.h index dd47db72bb..e0acbafd1a 100644 --- a/c/src/lib/libbsp/sparc/leon2/include/tm27.h +++ b/c/src/lib/libbsp/sparc/leon2/include/tm27.h @@ -36,7 +36,7 @@ #define MUST_WAIT_FOR_INTERRUPT 1 #define Install_tm27_vector( handler ) \ - set_vector( (handler), TEST_VECTOR, 1 ); + set_vector( (handler), TEST_VECTOR, BSP_SET_VECTOR_RTEMS ); #define Cause_tm27_intr() \ __asm__ volatile( "ta 0x10; nop " ); @@ -58,8 +58,8 @@ #define MUST_WAIT_FOR_INTERRUPT 1 #define Install_tm27_vector( handler ) \ - set_vector( (handler), TEST_VECTOR, 1 ); \ - set_vector( (handler), TEST_VECTOR2, 1 ); + set_vector( (handler), TEST_VECTOR, BSP_SET_VECTOR_RTEMS ); \ + set_vector( (handler), TEST_VECTOR2, BSP_SET_VECTOR_RTEMS ); #define Cause_tm27_intr() \ do { \ diff --git a/c/src/lib/libbsp/sparc/leon2/rasta/rasta.c b/c/src/lib/libbsp/sparc/leon2/rasta/rasta.c index 7b66b07246..167a8dbeae 100644 --- a/c/src/lib/libbsp/sparc/leon2/rasta/rasta.c +++ b/c/src/lib/libbsp/sparc/leon2/rasta/rasta.c @@ -306,11 +306,11 @@ int rasta_register(void) pci_master_enable(bus, dev, fun); /* install PCI interrupt vector */ - /* set_vector(pci_interrupt_handler,14+0x10, 1); */ + /* set_vector(pci_interrupt_handler,14+0x10, BSP_SET_VECTOR_RTEMS); */ /* install interrupt vector */ - set_vector(rasta_interrupt_handler, RASTA_IRQ+0x10, 1); + set_vector(rasta_interrupt_handler, RASTA_IRQ+0x10, BSP_SET_VECTOR_RTEMS); /* Scan AMBA Plug&Play */ diff --git a/c/src/lib/libbsp/sparc/leon2/startup/setvec.c b/c/src/lib/libbsp/sparc/leon2/startup/setvec.c index c7b8af6616..d87f84351a 100644 --- a/c/src/lib/libbsp/sparc/leon2/startup/setvec.c +++ b/c/src/lib/libbsp/sparc/leon2/startup/setvec.c @@ -42,7 +42,7 @@ rtems_isr_entry set_vector( /* returns old vector */ uint32_t real_trap; uint32_t source; - if ( type ) + if ( type == BSP_SET_VECTOR_RTEMS ) rtems_interrupt_catch( handler, vector, &previous_isr ); else _CPU_ISR_install_raw_handler( vector, handler, (void *)&previous_isr ); diff --git a/c/src/lib/libbsp/sparc/leon2/startup/spurious.c b/c/src/lib/libbsp/sparc/leon2/startup/spurious.c index d745aab0f7..6ffa19e017 100644 --- a/c/src/lib/libbsp/sparc/leon2/startup/spurious.c +++ b/c/src/lib/libbsp/sparc/leon2/startup/spurious.c @@ -146,7 +146,7 @@ void bsp_spurious_initialize() set_vector( (rtems_isr_entry) bsp_spurious_handler, SPARC_SYNCHRONOUS_TRAP( trap ), - 1 + BSP_SET_VECTOR_RTEMS ); } diff --git a/c/src/lib/libbsp/sparc/leon3/clock/ckinit.c b/c/src/lib/libbsp/sparc/leon3/clock/ckinit.c index 3cdbb20a66..ca21b708c9 100644 --- a/c/src/lib/libbsp/sparc/leon3/clock/ckinit.c +++ b/c/src/lib/libbsp/sparc/leon3/clock/ckinit.c @@ -75,7 +75,7 @@ static int clkirq; #define Clock_driver_support_install_isr( _new, _old ) \ do { \ - _old = set_vector( _new, CLOCK_VECTOR, 1 ); \ + _old = set_vector( _new, CLOCK_VECTOR, BSP_SET_VECTOR_RTEMS ); \ } while(0) #define Clock_driver_support_initialize_hardware() \ diff --git a/c/src/lib/libbsp/sparc/leon3/include/tm27.h b/c/src/lib/libbsp/sparc/leon3/include/tm27.h index dd47db72bb..e0acbafd1a 100644 --- a/c/src/lib/libbsp/sparc/leon3/include/tm27.h +++ b/c/src/lib/libbsp/sparc/leon3/include/tm27.h @@ -36,7 +36,7 @@ #define MUST_WAIT_FOR_INTERRUPT 1 #define Install_tm27_vector( handler ) \ - set_vector( (handler), TEST_VECTOR, 1 ); + set_vector( (handler), TEST_VECTOR, BSP_SET_VECTOR_RTEMS ); #define Cause_tm27_intr() \ __asm__ volatile( "ta 0x10; nop " ); @@ -58,8 +58,8 @@ #define MUST_WAIT_FOR_INTERRUPT 1 #define Install_tm27_vector( handler ) \ - set_vector( (handler), TEST_VECTOR, 1 ); \ - set_vector( (handler), TEST_VECTOR2, 1 ); + set_vector( (handler), TEST_VECTOR, BSP_SET_VECTOR_RTEMS ); \ + set_vector( (handler), TEST_VECTOR2, BSP_SET_VECTOR_RTEMS ); #define Cause_tm27_intr() \ do { \ diff --git a/c/src/lib/libbsp/sparc/leon3/shmsupp/mpisr.c b/c/src/lib/libbsp/sparc/leon3/shmsupp/mpisr.c index a414b8b884..3f97fb6288 100644 --- a/c/src/lib/libbsp/sparc/leon3/shmsupp/mpisr.c +++ b/c/src/lib/libbsp/sparc/leon3/shmsupp/mpisr.c @@ -44,5 +44,5 @@ rtems_isr Shm_isr_nobsp( void ) void Shm_setvec( void ) { LEON_Unmask_interrupt(LEON3_MP_IRQ); - set_vector(Shm_isr, LEON_TRAP_TYPE(LEON3_MP_IRQ), 1); + set_vector(Shm_isr, LEON_TRAP_TYPE(LEON3_MP_IRQ), BSP_SET_VECTOR_RTEMS); } diff --git a/c/src/lib/libbsp/sparc/leon3/smp/smp_leon3.c b/c/src/lib/libbsp/sparc/leon3/smp/smp_leon3.c index 702f77b96f..ee9d67a2f4 100644 --- a/c/src/lib/libbsp/sparc/leon3/smp/smp_leon3.c +++ b/c/src/lib/libbsp/sparc/leon3/smp/smp_leon3.c @@ -109,7 +109,11 @@ int bsp_smp_initialize( if ( found_cpus > 1 ) { LEON_Unmask_interrupt(LEON3_MP_IRQ); - set_vector(bsp_ap_ipi_isr, LEON_TRAP_TYPE(LEON3_MP_IRQ), 1); + set_vector( + bsp_ap_ipi_isr, + LEON_TRAP_TYPE(LEON3_MP_IRQ), + BSP_SET_VECTOR_RTEMS + ); } return found_cpus; } diff --git a/c/src/lib/libbsp/sparc/leon3/startup/setvec.c b/c/src/lib/libbsp/sparc/leon3/startup/setvec.c index c7b8af6616..d87f84351a 100644 --- a/c/src/lib/libbsp/sparc/leon3/startup/setvec.c +++ b/c/src/lib/libbsp/sparc/leon3/startup/setvec.c @@ -42,7 +42,7 @@ rtems_isr_entry set_vector( /* returns old vector */ uint32_t real_trap; uint32_t source; - if ( type ) + if ( type == BSP_SET_VECTOR_RTEMS ) rtems_interrupt_catch( handler, vector, &previous_isr ); else _CPU_ISR_install_raw_handler( vector, handler, (void *)&previous_isr ); diff --git a/c/src/lib/libbsp/sparc/leon3/startup/spurious.c b/c/src/lib/libbsp/sparc/leon3/startup/spurious.c index a0e11c4003..aec20e74c3 100644 --- a/c/src/lib/libbsp/sparc/leon3/startup/spurious.c +++ b/c/src/lib/libbsp/sparc/leon3/startup/spurious.c @@ -157,7 +157,7 @@ void bsp_spurious_initialize() set_vector( (rtems_isr_entry) bsp_spurious_handler, SPARC_SYNCHRONOUS_TRAP( trap ), - 1 + BSP_SET_VECTOR_RTEMS ); } diff --git a/c/src/lib/libbsp/sparc/shared/1553/b1553brm.c b/c/src/lib/libbsp/sparc/shared/1553/b1553brm.c index e447df26d5..ee9d778a2f 100644 --- a/c/src/lib/libbsp/sparc/shared/1553/b1553brm.c +++ b/c/src/lib/libbsp/sparc/shared/1553/b1553brm.c @@ -38,7 +38,8 @@ #endif #ifndef B1553BRM_REG_INT - #define B1553BRM_REG_INT(handler,irqno,arg) set_vector(handler,(irqno)+0x10,1) + #define B1553BRM_REG_INT(handler,irqno,arg) \ + set_vector(handler, (irqno)+0x10, BSP_SET_VECTOR_RTEMS) #undef B1553BRM_DEFINE_INTHANDLER #define B1553BRM_DEFINE_INTHANDLER #endif diff --git a/c/src/lib/libbsp/sparc/shared/can/grcan.c b/c/src/lib/libbsp/sparc/shared/can/grcan.c index fb48550365..e4ae49a5ed 100644 --- a/c/src/lib/libbsp/sparc/shared/can/grcan.c +++ b/c/src/lib/libbsp/sparc/shared/can/grcan.c @@ -83,7 +83,8 @@ #endif #ifndef GRCAN_REG_INT - #define GRCAN_REG_INT(handler,irqno,arg) set_vector(handler,irqno+0x10,1) + #define GRCAN_REG_INT(handler,irqno,arg) \ + set_vector(handler, irqno+0x10, BSP_SET_VECTOR_RTEMS) #undef GRCAN_DEFINE_INTHANDLER #define GRCAN_DEFINE_INTHANDLER #endif diff --git a/c/src/lib/libbsp/sparc/shared/can/occan.c b/c/src/lib/libbsp/sparc/shared/can/occan.c index 78c901a1e7..e48b496bfe 100644 --- a/c/src/lib/libbsp/sparc/shared/can/occan.c +++ b/c/src/lib/libbsp/sparc/shared/can/occan.c @@ -64,7 +64,8 @@ rtems_assoc_t errno_assoc[] = { #endif #ifndef OCCAN_REG_INT - #define OCCAN_REG_INT(handler,irq,arg) set_vector(handler,irq+0x10,1) + #define OCCAN_REG_INT(handler,irq,arg) \ + set_vector(handler, irq+0x10, BSP_SET_VECTOR_RTEMS) #undef OCCAN_DEFINE_INTHANDLER #define OCCAN_DEFINE_INTHANDLER #endif diff --git a/c/src/lib/libbsp/sparc/shared/gnatcommon.c b/c/src/lib/libbsp/sparc/shared/gnatcommon.c index c44eacba2f..f078674173 100644 --- a/c/src/lib/libbsp/sparc/shared/gnatcommon.c +++ b/c/src/lib/libbsp/sparc/shared/gnatcommon.c @@ -113,6 +113,10 @@ __gnat_install_handler_common (int t1, int t2) rtems_interrupt_catch (__gnat_interrupt_handler, trap, &previous_isr); } else if ((trap != 5 && trap != 6) && ((trap < 0x70) || (trap > 0x83))) - set_vector (__gnat_exception_handler, SPARC_SYNCHRONOUS_TRAP (trap), 1); + set_vector ( + __gnat_exception_handler, + SPARC_SYNCHRONOUS_TRAP (trap), + BSP_SET_VECTOR_RTEMS + ); } } diff --git a/c/src/lib/libbsp/sparc/shared/spw/grspw.c b/c/src/lib/libbsp/sparc/shared/spw/grspw.c index 6a9da79dfa..ad32e8346b 100644 --- a/c/src/lib/libbsp/sparc/shared/spw/grspw.c +++ b/c/src/lib/libbsp/sparc/shared/spw/grspw.c @@ -69,7 +69,8 @@ #endif #ifndef GRSPW_REG_INT - #define GRSPW_REG_INT(handler,irqno,arg) set_vector(handler,irqno+0x10,1) + #define GRSPW_REG_INT(handler,irqno,arg) \ + set_vector(handler, irqno+0x10, BSP_SET_VECTOR_RTEMS) #undef GRSPW_DEFINE_INTHANDLER #define GRSPW_DEFINE_INTHANDLER #endif diff --git a/c/src/lib/libbsp/sparc/shared/uart/apbuart.c b/c/src/lib/libbsp/sparc/shared/uart/apbuart.c index b3f4bbdd9a..8ed3273332 100644 --- a/c/src/lib/libbsp/sparc/shared/uart/apbuart.c +++ b/c/src/lib/libbsp/sparc/shared/uart/apbuart.c @@ -43,7 +43,8 @@ #endif #ifndef APBUART_REG_INT - #define APBUART_REG_INT(handler,irq,arg) set_vector(handler,irq+0x10,1) + #define APBUART_REG_INT(handler,irq,arg) \ + set_vector(handler, irq+0x10, BSP_SET_VECTOR_RTEMS) #undef APBUART_DEFINE_INTHANDLER #define APBUART_DEFINE_INTHANDLER #endif diff --git a/c/src/lib/libbsp/sparc64/shared/clock/ckinit.c b/c/src/lib/libbsp/sparc64/shared/clock/ckinit.c index 18eb66a172..9adfd83630 100644 --- a/c/src/lib/libbsp/sparc64/shared/clock/ckinit.c +++ b/c/src/lib/libbsp/sparc64/shared/clock/ckinit.c @@ -82,7 +82,7 @@ void Clock_driver_support_at_tick(void) #define Clock_driver_support_install_isr(_new, _old) \ do { \ - _old = set_vector( _new, CLOCK_VECTOR, 1 ); \ + _old = set_vector( _new, CLOCK_VECTOR, BSP_SET_VECTOR_RTEMS ); \ } while ( 0 ) void Clock_driver_support_initialize_hardware(void) diff --git a/c/src/lib/libbsp/sparc64/shared/startup/setvec.c b/c/src/lib/libbsp/sparc64/shared/startup/setvec.c index 7c2c9709ad..afbf8c1c6f 100644 --- a/c/src/lib/libbsp/sparc64/shared/startup/setvec.c +++ b/c/src/lib/libbsp/sparc64/shared/startup/setvec.c @@ -36,7 +36,7 @@ rtems_isr_entry set_vector( /* returns old vector */ uint32_t source; int bit_mask; - if ( type ) + if ( type == BSP_SET_VECTOR_RTEMS ) rtems_interrupt_catch( handler, vector, &previous_isr ); else _CPU_ISR_install_raw_handler( vector, handler, (void *)&previous_isr ); diff --git a/c/src/lib/libcpu/bfin/bf52x/interrupt/interrupt.c b/c/src/lib/libcpu/bfin/bf52x/interrupt/interrupt.c index 32f9b2401e..96934d937d 100644 --- a/c/src/lib/libcpu/bfin/bf52x/interrupt/interrupt.c +++ b/c/src/lib/libcpu/bfin/bf52x/interrupt/interrupt.c @@ -376,7 +376,11 @@ void bfin_interrupt_init(void) { if (vector >= 0 && vector < CEC_INTERRUPT_COUNT) { /* install our local handler */ if (vectors[vector].mask0 == 0 && vectors[vector].mask1 == 0){ - set_vector(interruptHandler, vector + CEC_INTERRUPT_BASE_VECTOR, 1); + set_vector( + interruptHandler, + vector + CEC_INTERRUPT_BASE_VECTOR, + BSP_SET_VECTOR_RTEMS + ); } if ( SIC_ISR0_MAX > source ) { vectors[vector].mask0 |= (1 << source); @@ -468,7 +472,11 @@ void bfin_interrupt_init(void) { if (vector >= 0 && vector < CEC_INTERRUPT_COUNT) { /* install our local handler */ if (vectors[vector].mask0 == 0 && vectors[vector].mask1 == 0){ - set_vector(interruptHandler, vector + CEC_INTERRUPT_BASE_VECTOR, 1); + set_vector( + interruptHandler, + vector + CEC_INTERRUPT_BASE_VECTOR, + BSP_SET_VECTOR_RTEMS + ); } if ( SIC_ISR0_MAX > source ) { vectors[vector].mask0 |= (1 << source); diff --git a/c/src/lib/libcpu/bfin/clock/clock.c b/c/src/lib/libcpu/bfin/clock/clock.c index 17df3246b1..c32a36c94d 100644 --- a/c/src/lib/libcpu/bfin/clock/clock.c +++ b/c/src/lib/libcpu/bfin/clock/clock.c @@ -90,7 +90,7 @@ rtems_device_driver Clock_initialize(rtems_device_major_number major, Clock_driver_ticks = 0; - set_vector(clockISR, CEC_CORE_TIMER_VECTOR, 1); + set_vector(clockISR, CEC_CORE_TIMER_VECTOR, BSP_SET_VECTOR_RTEMS); *(uint32_t volatile *) TCNTL = TCNTL_TMPWR | TCNTL_TAUTORLD; *(uint32_t volatile *) TSCALE = 0; diff --git a/c/src/lib/libcpu/bfin/interrupt/interrupt.c b/c/src/lib/libcpu/bfin/interrupt/interrupt.c index b8e353b048..c9c54246a3 100644 --- a/c/src/lib/libcpu/bfin/interrupt/interrupt.c +++ b/c/src/lib/libcpu/bfin/interrupt/interrupt.c @@ -67,7 +67,11 @@ void bfin_interrupt_init(void) { if (vector >= 0 && vector < CEC_INTERRUPT_COUNT) { if (vectors[vector].mask == 0) /* install our local handler */ - set_vector(interruptHandler, vector + CEC_INTERRUPT_BASE_VECTOR, 1); + set_vector( + interruptHandler, + vector + CEC_INTERRUPT_BASE_VECTOR, + BSP_SET_VECTOR_RTEMS + ); vectors[vector].mask |= (1 << source); } r >>= 4; diff --git a/c/src/lib/libcpu/m68k/mcf5206/clock/ckinit.c b/c/src/lib/libcpu/m68k/mcf5206/clock/ckinit.c index d0739d66a9..9f1f9229ab 100644 --- a/c/src/lib/libcpu/m68k/mcf5206/clock/ckinit.c +++ b/c/src/lib/libcpu/m68k/mcf5206/clock/ckinit.c @@ -116,7 +116,7 @@ Install_clock(rtems_isr_entry clock_isr) ((BSP_INTPRIO_TIMER1 << MCF5206E_ICR_IP_S) & MCF5206E_ICR_IP); /* Register the interrupt handler */ - set_vector(clock_isr, BSP_INTVEC_TIMER1, 1); + set_vector(clock_isr, BSP_INTVEC_TIMER1, BSP_SET_VECTOR_RTEMS); /* Reset timer 1 */ *MCF5206E_TMR(MBAR, 1) = MCF5206E_TMR_RST; diff --git a/c/src/lib/libcpu/m68k/mcf5206/timer/timer.c b/c/src/lib/libcpu/m68k/mcf5206/timer/timer.c index 8dbb9d8613..ba26539b55 100644 --- a/c/src/lib/libcpu/m68k/mcf5206/timer/timer.c +++ b/c/src/lib/libcpu/m68k/mcf5206/timer/timer.c @@ -49,7 +49,7 @@ void benchmark_timer_initialize(void) { /* Catch timer2 interrupts */ - set_vector(timerisr, BSP_INTVEC_TIMER2, 0); + set_vector(timerisr, BSP_INTVEC_TIMER2, BSP_SET_VECTOR_RAW); /* Initialize interrupts for timer2 */ *MCF5206E_ICR(MBAR, MCF5206E_INTR_TIMER_2) = diff --git a/c/src/lib/libcpu/m68k/mcf5272/clock/ckinit.c b/c/src/lib/libcpu/m68k/mcf5272/clock/ckinit.c index 1fd2853452..8716d6ed08 100644 --- a/c/src/lib/libcpu/m68k/mcf5272/clock/ckinit.c +++ b/c/src/lib/libcpu/m68k/mcf5272/clock/ckinit.c @@ -119,7 +119,7 @@ Install_clock(rtems_isr_entry clock_isr) if (rtems_configuration_get_ticks_per_timeslice()) { /* Register the interrupt handler */ - set_vector(clock_isr, BSP_INTVEC_TMR1, 1); + set_vector(clock_isr, BSP_INTVEC_TMR1, BSP_SET_VECTOR_RTEMS); /* Reset timer 1 */ g_timer_regs->tmr1 = MCF5272_TMR_RST; diff --git a/c/src/lib/libcpu/m68k/mcf5272/timer/timer.c b/c/src/lib/libcpu/m68k/mcf5272/timer/timer.c index 02f6e17f59..bc17cf3a10 100644 --- a/c/src/lib/libcpu/m68k/mcf5272/timer/timer.c +++ b/c/src/lib/libcpu/m68k/mcf5272/timer/timer.c @@ -50,7 +50,7 @@ benchmark_timer_initialize(void) { uint32_t icr; /* Catch timer2 interrupts */ - set_vector(timerisr, BSP_INTVEC_TMR2, 0); + set_vector(timerisr, BSP_INTVEC_TMR2, BSP_SET_VECTOR_RAW); /* Reset Timer */ g_timer_regs->tmr2 = MCF5272_TMR_RST; diff --git a/c/src/lib/libcpu/mips/clock/ckinit.c b/c/src/lib/libcpu/mips/clock/ckinit.c index 54ab69d1e0..e318ce8c9d 100644 --- a/c/src/lib/libcpu/mips/clock/ckinit.c +++ b/c/src/lib/libcpu/mips/clock/ckinit.c @@ -42,6 +42,7 @@ #include <rtems.h> #include <rtems/libio.h> +#include <bsp/setvec.h> #define EXT_INT5 0x8000 /* external interrupt 5 */ @@ -49,13 +50,9 @@ extern uint32_t bsp_clicks_per_microsecond; -/* to avoid including the bsp */ -mips_isr_entry set_vector( rtems_isr_entry, rtems_vector_number, int ); - void Clock_exit( void ); rtems_isr Clock_isr( rtems_vector_number vector ); - /* * The interrupt vector number associated with the clock tick device * driver. @@ -155,7 +152,7 @@ void Install_clock( Clock_driver_ticks = 0; Clock_isrs = rtems_configuration_get_milliseconds_per_tick(); - Old_ticker = (rtems_isr_entry) set_vector( clock_isr, CLOCK_VECTOR, 1 ); + Old_ticker = set_vector( clock_isr, CLOCK_VECTOR, BSP_SET_VECTOR_RTEMS ); /* * Hardware specific initialize goes here */ diff --git a/c/src/lib/libcpu/powerpc/mpc505/ictrl/ictrl.c b/c/src/lib/libcpu/powerpc/mpc505/ictrl/ictrl.c index 51db6a62c1..2320710ddd 100644 --- a/c/src/lib/libcpu/powerpc/mpc505/ictrl/ictrl.c +++ b/c/src/lib/libcpu/powerpc/mpc505/ictrl/ictrl.c @@ -64,5 +64,5 @@ void extIsrInit( void ) extIrqDisable(IMASK_ALL); for( i = 0; i < NUM_IRQS; i++) extIrqHandlers[i] = nullHandler; - set_vector(extIsr_,PPC_IRQ_EXTERNAL,1); + set_vector(extIsr_, PPC_IRQ_EXTERNAL, BSP_SET_VECTOR_RTEMS); } diff --git a/c/src/lib/libcpu/powerpc/mpc5xx/ictrl/ictrl.c b/c/src/lib/libcpu/powerpc/mpc5xx/ictrl/ictrl.c index 51db6a62c1..2320710ddd 100644 --- a/c/src/lib/libcpu/powerpc/mpc5xx/ictrl/ictrl.c +++ b/c/src/lib/libcpu/powerpc/mpc5xx/ictrl/ictrl.c @@ -64,5 +64,5 @@ void extIsrInit( void ) extIrqDisable(IMASK_ALL); for( i = 0; i < NUM_IRQS; i++) extIrqHandlers[i] = nullHandler; - set_vector(extIsr_,PPC_IRQ_EXTERNAL,1); + set_vector(extIsr_, PPC_IRQ_EXTERNAL, BSP_SET_VECTOR_RTEMS); } diff --git a/c/src/lib/libcpu/powerpc/ppc403/clock/clock_4xx.c b/c/src/lib/libcpu/powerpc/ppc403/clock/clock_4xx.c index 4b887d18ce..70b0eaab21 100644 --- a/c/src/lib/libcpu/powerpc/ppc403/clock/clock_4xx.c +++ b/c/src/lib/libcpu/powerpc/ppc403/clock/clock_4xx.c @@ -47,6 +47,7 @@ #include <ppc405common.h> #include <libcpu/cpuIdent.h> #include <bsp/irq.h> +#include <bsp/setvec.h> @@ -63,12 +64,6 @@ static uint32_t pit_value, tick_time; void Clock_exit( void ); -rtems_isr_entry set_vector( /* returns old vector */ - rtems_isr_entry handler, /* isr routine */ - rtems_vector_number vector, /* vector number */ - int type /* RTEMS or RAW intr */ -); - /* Defined in bspstart.c */ extern uint32_t bsp_clicks_per_usec; diff --git a/c/src/libchip/network/open_eth.c b/c/src/libchip/network/open_eth.c index 739cd0dff4..b7f39ac8f9 100644 --- a/c/src/libchip/network/open_eth.c +++ b/c/src/libchip/network/open_eth.c @@ -322,7 +322,7 @@ open_eth_initialize_hardware (struct open_eth_softc *sc) set_vector( open_eth_interrupt_handler, sc->vector, - 1 + BSP_SET_VECTOR_RTEMS ); /* clear all pending interrupts */ diff --git a/c/src/libchip/network/sonic.c b/c/src/libchip/network/sonic.c index 074e077895..0767021ba2 100644 --- a/c/src/libchip/network/sonic.c +++ b/c/src/libchip/network/sonic.c @@ -1404,7 +1404,7 @@ SONIC_STATIC void sonic_initialize_hardware(struct sonic_softc *sc) (void) set_vector( sonic_interrupt_handler, sc->vector, - 1 + BSP_SET_VECTOR_RTEMS ); /* diff --git a/c/src/libchip/serial/mc68681.c b/c/src/libchip/serial/mc68681.c index a8f6df703c..adacfdbf5c 100644 --- a/c/src/libchip/serial/mc68681.c +++ b/c/src/libchip/serial/mc68681.c @@ -434,7 +434,7 @@ MC68681_STATIC void mc68681_initialize_interrupts(int minor) set_vector( mc68681_isr, Console_Port_Tbl[minor]->ulIntVector, - 1 + BSP_SET_VECTOR_RTEMS ); mc68681_enable_interrupts(minor,MC68681_IMR_ENABLE_ALL_EXCEPT_TX); diff --git a/c/src/libchip/serial/z85c30.c b/c/src/libchip/serial/z85c30.c index d0114aa383..e89982d90a 100644 --- a/c/src/libchip/serial/z85c30.c +++ b/c/src/libchip/serial/z85c30.c @@ -724,7 +724,7 @@ Z85C30_STATIC void z85c30_initialize_interrupts( set_vector( z85c30_isr, Console_Port_Tbl[minor]->ulIntVector, - 1 + BSP_SET_VECTOR_RTEMS ); z85c30_enable_interrupts(minor, SCC_ENABLE_ALL_INTR_EXCEPT_TX); diff --git a/doc/bsp_howto/support.t b/doc/bsp_howto/support.t index 13cfb4550d..371c0aff22 100644 --- a/doc/bsp_howto/support.t +++ b/doc/bsp_howto/support.t @@ -253,7 +253,7 @@ routines necessary to install an interrupt handler as either a "raw" or an RTEMS interrupt handler. Raw handlers bypass the RTEMS interrupt structure and are responsible for saving and restoring all their own registers. Raw handlers are useful for handling traps, debug vectors, -etc.. +or fast interrupt handling. The @code{set_vector} routine is a central place to perform interrupt controller manipulation and encapsulate that information. It is usually @@ -261,16 +261,16 @@ implemented as follows: @example @group -rtems_isr_entry set_vector( /* returns old vector */ +rtems_isr_entry set_vector( /* returns old vector */ rtems_isr_entry handler, /* isr routine */ rtems_vector_number vector, /* vector number */ int type /* RTEMS or RAW intr */ ) @{ - if the type is RAW - install the raw vector - else + if the type is BSP_SET_VECTOR_RTEMS use rtems_interrupt_catch to install the vector + else + install the raw vector perform any interrupt controller necessary to unmask the interrupt source @@ -281,7 +281,7 @@ rtems_isr_entry set_vector( /* returns old vector */ @end example @b{NOTE:} The i386, PowerPC and ARM ports use a Programmable -Interrupt Controller model which does not require the BSP to implement +Interrupt Controller (PIC) model that does not require the BSP to implement @code{set_vector}. BSPs for these architectures must provide a different set of support routines. |