summaryrefslogtreecommitdiffstats
path: root/cpukit/score/cpu/a29k
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1996-12-02 19:48:29 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1996-12-02 19:48:29 +0000
commit29d8227e6d16aa2e8c116b3835ef5c33495741c5 (patch)
tree0af3df93d81525ca551a5ab4f75aa6b84ca5658b /cpukit/score/cpu/a29k
parentUpdate from Chris Johns <cjohns@awa.com.au> to add better support for (diff)
downloadrtems-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.c23
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;
}