diff options
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) |