summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libcpu/sparc/include
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1996-08-08 16:52:24 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1996-08-08 16:52:24 +0000
commit66e519c1c19c183eb6bd428b55061154aa60a124 (patch)
tree1737ffdb890365823493e2b1fca4c00e1261130e /c/src/lib/libcpu/sparc/include
parentadded ss_high_priority field to support sporadic server. (diff)
downloadrtems-66e519c1c19c183eb6bd428b55061154aa60a124.tar.bz2
ERC32_Force_interrupt implementation replaced per Jiri Gaisler's experience
on the real erc32 hardware.
Diffstat (limited to 'c/src/lib/libcpu/sparc/include')
-rw-r--r--c/src/lib/libcpu/sparc/include/erc32.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/c/src/lib/libcpu/sparc/include/erc32.h b/c/src/lib/libcpu/sparc/include/erc32.h
index 8dd5162cea..12ec1d4230 100644
--- a/c/src/lib/libcpu/sparc/include/erc32.h
+++ b/c/src/lib/libcpu/sparc/include/erc32.h
@@ -345,6 +345,11 @@ extern ERC32_Register_Map ERC32_MEC;
#define ERC32_Force_interrupt( _source ) \
do { \
+ unsigned32 _level; \
+ \
+ sparc_disable_interrupts( _level ); \
+ ERC32_MEC.Test_Control = ERC32_MEC.Test_Control | 0x80000; \
+ sparc_enable_interrupts( _level ); \
ERC32_MEC.Interrupt_Force = (1 << (_source)); \
} while (0)