diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 1996-12-02 19:48:29 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 1996-12-02 19:48:29 +0000 |
commit | 29d8227e6d16aa2e8c116b3835ef5c33495741c5 (patch) | |
tree | 0af3df93d81525ca551a5ab4f75aa6b84ca5658b /cpukit/score/cpu/a29k | |
parent | Update from Chris Johns <cjohns@awa.com.au> to add better support for (diff) | |
download | rtems-29d8227e6d16aa2e8c116b3835ef5c33495741c5.tar.bz2 |
Updates from Derrick Ostertag <ostertag@transition.com> to fix bug in
interrupt handling.
Diffstat (limited to 'cpukit/score/cpu/a29k')
-rw-r--r-- | cpukit/score/cpu/a29k/cpu.c | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/cpukit/score/cpu/a29k/cpu.c b/cpukit/score/cpu/a29k/cpu.c index 4312e85035..d091b6074f 100644 --- a/cpukit/score/cpu/a29k/cpu.c +++ b/cpukit/score/cpu/a29k/cpu.c @@ -29,7 +29,7 @@ * $Id$ */ #ifndef lint -static char _sccsid[] = "@(#)cpu.c 21 Aug 1996 1.6\n"; +static char _sccsid[] = "@(#)cpu.c 10/21/96 1.8\n"; #endif #include <rtems/system.h> @@ -94,10 +94,16 @@ void _CPU_Initialize( unsigned32 _CPU_ISR_Get_level( void ) { + unsigned32 cps; + /* * This routine returns the current interrupt level. */ - return 0; + cps = a29k_getops(); + if (cps & (TD|DI)) + return 1; + else + return 0; } /*PAGE @@ -106,8 +112,8 @@ unsigned32 _CPU_ISR_Get_level( void ) */ extern void intr14( void ); -extern void intr3( void ); -extern void intr2( void ); +extern void intr18( void ); +extern void intr19( void ); void _CPU_ISR_install_raw_handler( unsigned32 vector, @@ -124,12 +130,13 @@ void _CPU_ISR_install_raw_handler( case 14: _settrap( vector, intr14 ); break; - case 3: - _settrap( vector, intr3 ); + case 18: + _settrap( vector, intr18 ); break; - case 2: - _settrap( vector, intr2 ); + case 19: + _settrap( vector, intr19 ); break; + default: break; } |