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).
This commit is contained in:
Till Straumann
2007-12-08 17:26:19 +00:00
parent 98ff623e62
commit a9e62c242f
11 changed files with 41 additions and 20 deletions

View File

@@ -1,3 +1,13 @@
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> 2007-12-08 Till Straumann <strauman@slac.stanford.edu>
*shared/irq/irq_supp.h: removed cpp test for *shared/irq/irq_supp.h: removed cpp test for

View File

@@ -452,7 +452,7 @@ unsigned BSP_spuriousIntr = 0;
/* /*
* High level IRQ handler called from shared_raw_irq_code_entry * 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 int irq;
register unsigned isaIntr; /* boolean */ 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 ); rtems_hdl_tbl[BSP_DECREMENTER].hdl( rtems_hdl_tbl[BSP_DECREMENTER].handle );
_CPU_MSR_SET(msr); _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) { if (irq == OPENPIC_VEC_SPURIOUS) {
++BSP_spuriousIntr; ++BSP_spuriousIntr;
return; return 0;
} }
isaIntr = (irq == BSP_PCI_ISA_BRIDGE_IRQ); 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 #endif
openpic_eoi(0); openpic_eoi(0);
} }
return 0;
} }

View File

@@ -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 * 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 irq;
register unsigned int msr; 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 */ /* call the module specific handler and pass the specific handler */
rtems_hdl_tbl[BSP_DECREMENTER].hdl(0); rtems_hdl_tbl[BSP_DECREMENTER].hdl(0);
return; return 0;
case ASM_60X_SYSMGMT_VECTOR: case ASM_60X_SYSMGMT_VECTOR:
@@ -966,6 +966,7 @@ void C_dispatch_irq_handler (CPU_Interrupt_frame *frame, unsigned int excNum)
break; break;
} /* end of switch(excNum) */ } /* end of switch(excNum) */
return 0;
} }

View File

@@ -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 * 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; 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); BSP_irq_handle_at_ipic(excNum);
break; break;
} }
return 0;
} }
void _ThreadProcessSignalsFromIrq (BSP_Exception_frame* ctx) void _ThreadProcessSignalsFromIrq (BSP_Exception_frame* ctx)

View File

@@ -402,7 +402,7 @@ volatile unsigned int maxLoop = 0;
/* /*
* High level IRQ handler called from shared_raw_irq_code_entry * 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 irq;
register unsigned cpmIntr; /* boolean */ 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); rtems_hdl_tbl[BSP_DECREMENTER].hdl(rtems_hdl_tbl[BSP_DECREMENTER].handle);
_CPU_MSR_SET(msr); _CPU_MSR_SET(msr);
return; return 0;
} }
/* /*
* Handle external interrupt generated by SIU on PPC core * 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; ++ loopCounter;
#endif #endif
} }
return 0;
} }
void _ThreadProcessSignalsFromIrq (BSP_Exception_frame* ctx) void _ThreadProcessSignalsFromIrq (BSP_Exception_frame* ctx)

View File

@@ -422,7 +422,7 @@ volatile unsigned int maxLoop = 0;
/* /*
* High level IRQ handler called from shared_raw_irq_code_entry * 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 irq;
#if 0 #if 0
@@ -448,7 +448,7 @@ void C_dispatch_irq_handler (CPU_Interrupt_frame *frame, unsigned int excNum)
_CPU_MSR_SET(msr); _CPU_MSR_SET(msr);
return; return 0;
} }
/* /*
@@ -503,6 +503,7 @@ void C_dispatch_irq_handler (CPU_Interrupt_frame *frame, unsigned int excNum)
++ loopCounter; ++ loopCounter;
#endif #endif
} }
return 0;
} }
void _ThreadProcessSignalsFromIrq (BSP_Exception_frame* ctx) void _ThreadProcessSignalsFromIrq (BSP_Exception_frame* ctx)

View File

@@ -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 * 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; register unsigned msr, new_msr;
unsigned long irqCause[3]={0, 0,0}; 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); rtems_hdl_tbl[BSP_DECREMENTER].hdl(rtems_hdl_tbl[BSP_DECREMENTER].handle);
_MSR_SET(msr); _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 *)0xf1000c6c, oldMask[1]);
out_le32((volatile unsigned *)0xf100f10c, oldMask[2]); out_le32((volatile unsigned *)0xf100f10c, oldMask[2]);
in_le32((volatile unsigned *)0xf100f10c); in_le32((volatile unsigned *)0xf100f10c);
return 0;
} }
void _ThreadProcessSignalsFromIrq (BSP_Exception_frame* ctx) void _ThreadProcessSignalsFromIrq (BSP_Exception_frame* ctx)

View File

@@ -27,7 +27,7 @@ static rtems_irq_connect_data dflt_entry;
/* /*
* High level IRQ handler called from shared_raw_irq_code_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, struct _BSP_Exception_frame *frame,
unsigned int excNum unsigned int excNum
) )
@@ -43,8 +43,9 @@ void C_dispatch_irq_handler(
bsp_irq_dispatch_list(rtems_hdl_tbl, BSP_DECREMENTER, dflt_entry.hdl); bsp_irq_dispatch_list(rtems_hdl_tbl, BSP_DECREMENTER, dflt_entry.hdl);
_ISR_Set_level(l_orig); _ISR_Set_level(l_orig);
return; return 0;
} }
return -1; /* unhandled interrupt */
} }
void void

View File

@@ -400,7 +400,7 @@ unsigned BSP_spuriousIntr = 0;
/* /*
* High level IRQ handler called from shared_raw_irq_code_entry * 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 irq;
register unsigned msr; 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); rtems_hdl_tbl[BSP_DECREMENTER].hdl(rtems_hdl_tbl[BSP_DECREMENTER].handle);
_CPU_MSR_SET(msr); _CPU_MSR_SET(msr);
return; return 0;
} }
irq = read_and_clear_irq(); 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); _CPU_MSR_SET(msr);
return 0;
} }
void _ThreadProcessSignalsFromIrq (BSP_Exception_frame* ctx) void _ThreadProcessSignalsFromIrq (BSP_Exception_frame* ctx)

View File

@@ -213,7 +213,7 @@ unsigned BSP_spuriousIntr = 0;
/* /*
* High level IRQ handler called from shared_raw_irq_code_entry * 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; register unsigned int irq;
#ifdef BSP_PCI_ISA_BRIDGE_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); bsp_irq_dispatch_list(rtems_hdl_tbl, BSP_DECREMENTER, default_rtems_entry.hdl);
return; return 0;
} }
irq = openpic_irq(0); irq = openpic_irq(0);
if (irq == OPENPIC_VEC_SPURIOUS) { if (irq == OPENPIC_VEC_SPURIOUS) {
++BSP_spuriousIntr; ++BSP_spuriousIntr;
return; return 0;
} }
/* some BSPs might want to use a different numbering... */ /* 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 #endif
openpic_eoi(0); openpic_eoi(0);
} }
return 0;
} }

View File

@@ -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 * 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; break;
#endif #endif
} }
return 0;
} }
void _ThreadProcessSignalsFromIrq (BSP_Exception_frame* ctx) void _ThreadProcessSignalsFromIrq (BSP_Exception_frame* ctx)