diff options
author | Till Straumann <strauman@slac.stanford.edu> | 2007-12-08 17:26:19 +0000 |
---|---|---|
committer | Till Straumann <strauman@slac.stanford.edu> | 2007-12-08 17:26:19 +0000 |
commit | a9e62c242f60eb462af461ff1b930f51a8f03961 (patch) | |
tree | 56759ea2b1e11d6d1b4483cdc7a6345b46857f26 /c/src/lib | |
parent | 2007-12-08 Till Straumann <strauman@slac.stanford.edu> (diff) | |
download | rtems-a9e62c242f60eb462af461ff1b930f51a8f03961.tar.bz2 |
2007-12-08 Till Straumann <strauman@slac.stanford.edu>
* ep1a/irq/irq.c, gen5200/irq/irq.c, gen83xx/irq/irq_init.c,
mbx8xx/irq/irq.c, mpc8260ads/irq/irq.c, mvme5500/irq/irq.c,
psim/irq/no_pic.c, score603e/irq/irq.c, shared/irq/irq_supp.h,
shared/irq/openpic_i8259_irq.c, virtex/irq/irq_init.c:
let C_dispatch_irq_handler() return zero to indicate to
low-level exception handling code that the exception
was handled (not used yet).
Diffstat (limited to 'c/src/lib')
-rw-r--r-- | c/src/lib/libbsp/powerpc/ChangeLog | 10 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/ep1a/irq/irq.c | 7 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/gen5200/irq/irq.c | 5 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/gen83xx/irq/irq_init.c | 3 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/mbx8xx/irq/irq.c | 5 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/mpc8260ads/irq/irq.c | 5 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/mvme5500/irq/irq.c | 6 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/psim/irq/no_pic.c | 5 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/score603e/irq/irq.c | 5 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/shared/irq/openpic_i8259_irq.c | 7 | ||||
-rw-r--r-- | c/src/lib/libbsp/powerpc/virtex/irq/irq_init.c | 3 |
11 files changed, 41 insertions, 20 deletions
diff --git a/c/src/lib/libbsp/powerpc/ChangeLog b/c/src/lib/libbsp/powerpc/ChangeLog index bfcc51c9fb..e4c77e2490 100644 --- a/c/src/lib/libbsp/powerpc/ChangeLog +++ b/c/src/lib/libbsp/powerpc/ChangeLog @@ -1,5 +1,15 @@ 2007-12-08 Till Straumann <strauman@slac.stanford.edu> + * ep1a/irq/irq.c, gen5200/irq/irq.c, gen83xx/irq/irq_init.c, + mbx8xx/irq/irq.c, mpc8260ads/irq/irq.c, mvme5500/irq/irq.c, + psim/irq/no_pic.c, score603e/irq/irq.c, shared/irq/irq_supp.h, + shared/irq/openpic_i8259_irq.c, virtex/irq/irq_init.c: + let C_dispatch_irq_handler() return zero to indicate to + low-level exception handling code that the exception + was handled (not used yet). + +2007-12-08 Till Straumann <strauman@slac.stanford.edu> + *shared/irq/irq_supp.h: removed cpp test for BSP_SHARED_HANDLER_SUPPORT; BSPs using irq_supp.h *must* implement shared handlers. diff --git a/c/src/lib/libbsp/powerpc/ep1a/irq/irq.c b/c/src/lib/libbsp/powerpc/ep1a/irq/irq.c index ae5c519059..91ce967bb4 100644 --- a/c/src/lib/libbsp/powerpc/ep1a/irq/irq.c +++ b/c/src/lib/libbsp/powerpc/ep1a/irq/irq.c @@ -452,7 +452,7 @@ unsigned BSP_spuriousIntr = 0; /* * High level IRQ handler called from shared_raw_irq_code_entry */ -void C_dispatch_irq_handler (struct _BSP_Exception_frame *frame, unsigned int excNum) +int C_dispatch_irq_handler (struct _BSP_Exception_frame *frame, unsigned int excNum) { register unsigned int irq; register unsigned isaIntr; /* boolean */ @@ -469,7 +469,7 @@ void C_dispatch_irq_handler (struct _BSP_Exception_frame *frame, unsigned int ex rtems_hdl_tbl[BSP_DECREMENTER].hdl( rtems_hdl_tbl[BSP_DECREMENTER].handle ); _CPU_MSR_SET(msr); - return; + return 0; } @@ -477,7 +477,7 @@ void C_dispatch_irq_handler (struct _BSP_Exception_frame *frame, unsigned int ex if (irq == OPENPIC_VEC_SPURIOUS) { ++BSP_spuriousIntr; - return; + return 0; } isaIntr = (irq == BSP_PCI_ISA_BRIDGE_IRQ); @@ -529,6 +529,7 @@ void C_dispatch_irq_handler (struct _BSP_Exception_frame *frame, unsigned int ex #endif openpic_eoi(0); } + return 0; } diff --git a/c/src/lib/libbsp/powerpc/gen5200/irq/irq.c b/c/src/lib/libbsp/powerpc/gen5200/irq/irq.c index 62fd0336e1..2914452f23 100644 --- a/c/src/lib/libbsp/powerpc/gen5200/irq/irq.c +++ b/c/src/lib/libbsp/powerpc/gen5200/irq/irq.c @@ -635,7 +635,7 @@ int BSP_rtems_irq_mngt_get(rtems_irq_global_settings** config) /* * High level IRQ handler called from shared_raw_irq_code_entry */ -void C_dispatch_irq_handler (CPU_Interrupt_frame *frame, unsigned int excNum) +int C_dispatch_irq_handler (CPU_Interrupt_frame *frame, unsigned int excNum) { register unsigned int irq; register unsigned int msr; @@ -652,7 +652,7 @@ void C_dispatch_irq_handler (CPU_Interrupt_frame *frame, unsigned int excNum) /* call the module specific handler and pass the specific handler */ rtems_hdl_tbl[BSP_DECREMENTER].hdl(0); - return; + return 0; case ASM_60X_SYSMGMT_VECTOR: @@ -966,6 +966,7 @@ void C_dispatch_irq_handler (CPU_Interrupt_frame *frame, unsigned int excNum) break; } /* end of switch(excNum) */ + return 0; } diff --git a/c/src/lib/libbsp/powerpc/gen83xx/irq/irq_init.c b/c/src/lib/libbsp/powerpc/gen83xx/irq/irq_init.c index 86ef3a0e20..15e9f55e9c 100644 --- a/c/src/lib/libbsp/powerpc/gen83xx/irq/irq_init.c +++ b/c/src/lib/libbsp/powerpc/gen83xx/irq/irq_init.c @@ -89,7 +89,7 @@ void BSP_irqexc_off_fnc(rtems_irq_connect_data *unused) /*********************************************************** * High level IRQ handler called from shared_raw_irq_code_entry */ -void C_dispatch_irq_handler (CPU_Interrupt_frame *frame, unsigned int excNum) +int C_dispatch_irq_handler (CPU_Interrupt_frame *frame, unsigned int excNum) { uint32_t msr_value,new_msr; @@ -116,6 +116,7 @@ void C_dispatch_irq_handler (CPU_Interrupt_frame *frame, unsigned int excNum) BSP_irq_handle_at_ipic(excNum); break; } + return 0; } void _ThreadProcessSignalsFromIrq (BSP_Exception_frame* ctx) diff --git a/c/src/lib/libbsp/powerpc/mbx8xx/irq/irq.c b/c/src/lib/libbsp/powerpc/mbx8xx/irq/irq.c index 60cc72e1a8..19fa082d1a 100644 --- a/c/src/lib/libbsp/powerpc/mbx8xx/irq/irq.c +++ b/c/src/lib/libbsp/powerpc/mbx8xx/irq/irq.c @@ -402,7 +402,7 @@ volatile unsigned int maxLoop = 0; /* * High level IRQ handler called from shared_raw_irq_code_entry */ -void C_dispatch_irq_handler (CPU_Interrupt_frame *frame, unsigned int excNum) +int C_dispatch_irq_handler (CPU_Interrupt_frame *frame, unsigned int excNum) { register unsigned int irq; register unsigned cpmIntr; /* boolean */ @@ -423,7 +423,7 @@ void C_dispatch_irq_handler (CPU_Interrupt_frame *frame, unsigned int excNum) rtems_hdl_tbl[BSP_DECREMENTER].hdl(rtems_hdl_tbl[BSP_DECREMENTER].handle); _CPU_MSR_SET(msr); - return; + return 0; } /* * Handle external interrupt generated by SIU on PPC core @@ -490,6 +490,7 @@ void C_dispatch_irq_handler (CPU_Interrupt_frame *frame, unsigned int excNum) ++ loopCounter; #endif } + return 0; } void _ThreadProcessSignalsFromIrq (BSP_Exception_frame* ctx) diff --git a/c/src/lib/libbsp/powerpc/mpc8260ads/irq/irq.c b/c/src/lib/libbsp/powerpc/mpc8260ads/irq/irq.c index 87c8477ee0..13e2d674df 100644 --- a/c/src/lib/libbsp/powerpc/mpc8260ads/irq/irq.c +++ b/c/src/lib/libbsp/powerpc/mpc8260ads/irq/irq.c @@ -422,7 +422,7 @@ volatile unsigned int maxLoop = 0; /* * High level IRQ handler called from shared_raw_irq_code_entry */ -void C_dispatch_irq_handler (CPU_Interrupt_frame *frame, unsigned int excNum) +int C_dispatch_irq_handler (CPU_Interrupt_frame *frame, unsigned int excNum) { register unsigned int irq; #if 0 @@ -448,7 +448,7 @@ void C_dispatch_irq_handler (CPU_Interrupt_frame *frame, unsigned int excNum) _CPU_MSR_SET(msr); - return; + return 0; } /* @@ -503,6 +503,7 @@ void C_dispatch_irq_handler (CPU_Interrupt_frame *frame, unsigned int excNum) ++ loopCounter; #endif } + return 0; } void _ThreadProcessSignalsFromIrq (BSP_Exception_frame* ctx) diff --git a/c/src/lib/libbsp/powerpc/mvme5500/irq/irq.c b/c/src/lib/libbsp/powerpc/mvme5500/irq/irq.c index 22ad2b1fb4..d2d1ff0bcb 100644 --- a/c/src/lib/libbsp/powerpc/mvme5500/irq/irq.c +++ b/c/src/lib/libbsp/powerpc/mvme5500/irq/irq.c @@ -586,7 +586,7 @@ int BSP_rtems_irq_mngt_get(rtems_irq_global_settings** config) * High level IRQ handler called from shared_raw_irq_code_entry */ -void C_dispatch_irq_handler (CPU_Interrupt_frame *frame, unsigned int excNum) +int C_dispatch_irq_handler (CPU_Interrupt_frame *frame, unsigned int excNum) { register unsigned msr, new_msr; unsigned long irqCause[3]={0, 0,0}; @@ -602,7 +602,7 @@ void C_dispatch_irq_handler (CPU_Interrupt_frame *frame, unsigned int excNum) rtems_hdl_tbl[BSP_DECREMENTER].hdl(rtems_hdl_tbl[BSP_DECREMENTER].handle); _MSR_SET(msr); - return; + return 0; } @@ -650,6 +650,8 @@ void C_dispatch_irq_handler (CPU_Interrupt_frame *frame, unsigned int excNum) out_le32((volatile unsigned *)0xf1000c6c, oldMask[1]); out_le32((volatile unsigned *)0xf100f10c, oldMask[2]); in_le32((volatile unsigned *)0xf100f10c); + + return 0; } void _ThreadProcessSignalsFromIrq (BSP_Exception_frame* ctx) diff --git a/c/src/lib/libbsp/powerpc/psim/irq/no_pic.c b/c/src/lib/libbsp/powerpc/psim/irq/no_pic.c index e31d2ed5c0..dd0c3dbe2a 100644 --- a/c/src/lib/libbsp/powerpc/psim/irq/no_pic.c +++ b/c/src/lib/libbsp/powerpc/psim/irq/no_pic.c @@ -27,7 +27,7 @@ static rtems_irq_connect_data dflt_entry; /* * High level IRQ handler called from shared_raw_irq_code_entry */ -void C_dispatch_irq_handler( +int C_dispatch_irq_handler( struct _BSP_Exception_frame *frame, unsigned int excNum ) @@ -43,8 +43,9 @@ void C_dispatch_irq_handler( bsp_irq_dispatch_list(rtems_hdl_tbl, BSP_DECREMENTER, dflt_entry.hdl); _ISR_Set_level(l_orig); - return; + return 0; } + return -1; /* unhandled interrupt */ } void diff --git a/c/src/lib/libbsp/powerpc/score603e/irq/irq.c b/c/src/lib/libbsp/powerpc/score603e/irq/irq.c index 1e4f0097de..2bfa4205a2 100644 --- a/c/src/lib/libbsp/powerpc/score603e/irq/irq.c +++ b/c/src/lib/libbsp/powerpc/score603e/irq/irq.c @@ -400,7 +400,7 @@ unsigned BSP_spuriousIntr = 0; /* * High level IRQ handler called from shared_raw_irq_code_entry */ -void C_dispatch_irq_handler (CPU_Interrupt_frame *frame, unsigned int excNum) +int C_dispatch_irq_handler (CPU_Interrupt_frame *frame, unsigned int excNum) { register unsigned int irq; register unsigned msr; @@ -414,7 +414,7 @@ void C_dispatch_irq_handler (CPU_Interrupt_frame *frame, unsigned int excNum) rtems_hdl_tbl[BSP_DECREMENTER].hdl(rtems_hdl_tbl[BSP_DECREMENTER].handle); _CPU_MSR_SET(msr); - return; + return 0; } irq = read_and_clear_irq(); @@ -435,6 +435,7 @@ void C_dispatch_irq_handler (CPU_Interrupt_frame *frame, unsigned int excNum) _CPU_MSR_SET(msr); + return 0; } void _ThreadProcessSignalsFromIrq (BSP_Exception_frame* ctx) diff --git a/c/src/lib/libbsp/powerpc/shared/irq/openpic_i8259_irq.c b/c/src/lib/libbsp/powerpc/shared/irq/openpic_i8259_irq.c index dcc3b645f5..e4d740d88b 100644 --- a/c/src/lib/libbsp/powerpc/shared/irq/openpic_i8259_irq.c +++ b/c/src/lib/libbsp/powerpc/shared/irq/openpic_i8259_irq.c @@ -213,7 +213,7 @@ unsigned BSP_spuriousIntr = 0; /* * High level IRQ handler called from shared_raw_irq_code_entry */ -void C_dispatch_irq_handler (BSP_Exception_frame *frame, unsigned int excNum) +int C_dispatch_irq_handler (BSP_Exception_frame *frame, unsigned int excNum) { register unsigned int irq; #ifdef BSP_PCI_ISA_BRIDGE_IRQ @@ -226,13 +226,13 @@ void C_dispatch_irq_handler (BSP_Exception_frame *frame, unsigned int excNum) bsp_irq_dispatch_list(rtems_hdl_tbl, BSP_DECREMENTER, default_rtems_entry.hdl); - return; + return 0; } irq = openpic_irq(0); if (irq == OPENPIC_VEC_SPURIOUS) { ++BSP_spuriousIntr; - return; + return 0; } /* some BSPs might want to use a different numbering... */ @@ -279,4 +279,5 @@ void C_dispatch_irq_handler (BSP_Exception_frame *frame, unsigned int excNum) #endif openpic_eoi(0); } + return 0; } diff --git a/c/src/lib/libbsp/powerpc/virtex/irq/irq_init.c b/c/src/lib/libbsp/powerpc/virtex/irq/irq_init.c index db6d411476..4c42cb1aff 100644 --- a/c/src/lib/libbsp/powerpc/virtex/irq/irq_init.c +++ b/c/src/lib/libbsp/powerpc/virtex/irq/irq_init.c @@ -88,7 +88,7 @@ void BSP_irqexc_off_fnc(rtems_irq_connect_data *unused) /*********************************************************** * High level IRQ handler called from shared_raw_irq_code_entry */ -void C_dispatch_irq_handler (CPU_Interrupt_frame *frame, unsigned int excNum) +int C_dispatch_irq_handler (CPU_Interrupt_frame *frame, unsigned int excNum) { @@ -121,6 +121,7 @@ void C_dispatch_irq_handler (CPU_Interrupt_frame *frame, unsigned int excNum) break; #endif } + return 0; } void _ThreadProcessSignalsFromIrq (BSP_Exception_frame* ctx) |