diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 1996-08-08 16:52:24 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 1996-08-08 16:52:24 +0000 |
commit | 66e519c1c19c183eb6bd428b55061154aa60a124 (patch) | |
tree | 1737ffdb890365823493e2b1fca4c00e1261130e /c/src | |
parent | added ss_high_priority field to support sporadic server. (diff) | |
download | rtems-66e519c1c19c183eb6bd428b55061154aa60a124.tar.bz2 |
ERC32_Force_interrupt implementation replaced per Jiri Gaisler's experience
on the real erc32 hardware.
Diffstat (limited to '')
-rw-r--r-- | c/src/exec/score/cpu/sparc/erc32.h | 5 | ||||
-rw-r--r-- | c/src/lib/libcpu/sparc/include/erc32.h | 5 |
2 files changed, 10 insertions, 0 deletions
diff --git a/c/src/exec/score/cpu/sparc/erc32.h b/c/src/exec/score/cpu/sparc/erc32.h index 8dd5162cea..12ec1d4230 100644 --- a/c/src/exec/score/cpu/sparc/erc32.h +++ b/c/src/exec/score/cpu/sparc/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) 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) |