forked from Imagelibrary/rtems
Adding interrupt handling routine.
This commit is contained in:
@@ -65,14 +65,15 @@ rtems_isr external_exception_ISR (
|
|||||||
)
|
)
|
||||||
{
|
{
|
||||||
rtems_unsigned16 index;
|
rtems_unsigned16 index;
|
||||||
|
rtems_vector_number chained_vector;
|
||||||
Chain_Node *node;
|
Chain_Node *node;
|
||||||
EE_ISR_Type *ee_isr;
|
EE_ISR_Type *ee_isr;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Read vector.
|
* Read vector.
|
||||||
*/
|
*/
|
||||||
index = 0;
|
chained_vector = Get_interrupt();
|
||||||
|
index = chained_vector - DMV170_IRQ_FIRST
|
||||||
node = ISR_Array[ index ].first;
|
node = ISR_Array[ index ].first;
|
||||||
while ( !_Chain_Is_tail( &ISR_Array[ index ], node ) ) {
|
while ( !_Chain_Is_tail( &ISR_Array[ index ], node ) ) {
|
||||||
ee_isr = (EE_ISR_Type *) node;
|
ee_isr = (EE_ISR_Type *) node;
|
||||||
@@ -83,6 +84,8 @@ rtems_isr external_exception_ISR (
|
|||||||
/*
|
/*
|
||||||
* Clear the interrupt.
|
* Clear the interrupt.
|
||||||
*/
|
*/
|
||||||
|
Clear_interrupt( chained_vector );
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -179,9 +182,16 @@ rtems_isr_entry set_EE_vector(
|
|||||||
*/
|
*/
|
||||||
Chain_Append( &ISR_Array[vec_idx], &ISR_Nodes[index].Node );
|
Chain_Append( &ISR_Array[vec_idx], &ISR_Nodes[index].Node );
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Enable the interrupt.
|
||||||
|
*/
|
||||||
|
enable_card_interrupt( vector );
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* No interrupt service routine was removed so return 0
|
* No interrupt service routine was removed so return 0
|
||||||
*/
|
*/
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user