From 23f5cdb5bb3f224d8c8bd48c19806463c53436fe Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Sat, 13 Jun 1998 13:34:09 +0000 Subject: Adding interrupt handling routine. --- c/src/lib/libbsp/powerpc/dmv177/startup/genpvec.c | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) (limited to 'c/src') diff --git a/c/src/lib/libbsp/powerpc/dmv177/startup/genpvec.c b/c/src/lib/libbsp/powerpc/dmv177/startup/genpvec.c index 09918845b1..75745170b3 100644 --- a/c/src/lib/libbsp/powerpc/dmv177/startup/genpvec.c +++ b/c/src/lib/libbsp/powerpc/dmv177/startup/genpvec.c @@ -64,15 +64,16 @@ rtems_isr external_exception_ISR ( rtems_vector_number vector /* IN */ ) { - rtems_unsigned16 index; - Chain_Node *node; - EE_ISR_Type *ee_isr; + rtems_unsigned16 index; + rtems_vector_number chained_vector; + Chain_Node *node; + EE_ISR_Type *ee_isr; /* * Read vector. */ - index = 0; - + chained_vector = Get_interrupt(); + index = chained_vector - DMV170_IRQ_FIRST node = ISR_Array[ index ].first; while ( !_Chain_Is_tail( &ISR_Array[ index ], node ) ) { ee_isr = (EE_ISR_Type *) node; @@ -83,6 +84,8 @@ rtems_isr external_exception_ISR ( /* * 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 ); + /* + * Enable the interrupt. + */ + enable_card_interrupt( vector ); + /* * No interrupt service routine was removed so return 0 */ return 0; } + + -- cgit v1.2.3