summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2020-11-05 09:56:16 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2020-11-06 14:05:53 +0100
commit350bba7a04c7dd0c9e5fa0cd0aee33be564283a5 (patch)
tree96a9b279bc93856476a39f0fc80f7fb06ba9ad00
parentsparc: Add SPARC_INTERRUPT_TRAP_TO_SOURCE() (diff)
downloadrtems-350bba7a04c7dd0c9e5fa0cd0aee33be564283a5.tar.bz2
sparc: Add SPARC_INTERRUPT_SOURCE_TO_TRAP()
Update #4171.
-rw-r--r--bsps/sparc/erc32/include/erc32.h2
-rw-r--r--bsps/sparc/leon2/include/leon.h2
-rw-r--r--bsps/sparc/leon3/include/leon.h2
-rw-r--r--cpukit/score/cpu/sparc/include/rtems/score/sparc.h12
4 files changed, 15 insertions, 3 deletions
diff --git a/bsps/sparc/erc32/include/erc32.h b/bsps/sparc/erc32/include/erc32.h
index 6d79772cc7..a677b13d25 100644
--- a/bsps/sparc/erc32/include/erc32.h
+++ b/bsps/sparc/erc32/include/erc32.h
@@ -83,7 +83,7 @@ extern "C" {
* significant nibble of the trap type.
*/
-#define ERC32_TRAP_TYPE( _source ) SPARC_ASYNCHRONOUS_TRAP((_source) + 0x10)
+#define ERC32_TRAP_TYPE( _source ) SPARC_INTERRUPT_SOURCE_TO_TRAP( _source )
#define ERC32_TRAP_SOURCE( _trap ) SPARC_INTERRUPT_TRAP_TO_SOURCE( _trap )
diff --git a/bsps/sparc/leon2/include/leon.h b/bsps/sparc/leon2/include/leon.h
index 1d58aa7d39..fc90e1f7e6 100644
--- a/bsps/sparc/leon2/include/leon.h
+++ b/bsps/sparc/leon2/include/leon.h
@@ -80,7 +80,7 @@ extern "C" {
* significant nibble of the trap type.
*/
-#define LEON_TRAP_TYPE( _source ) SPARC_ASYNCHRONOUS_TRAP((_source) + 0x10)
+#define LEON_TRAP_TYPE( _source ) SPARC_INTERRUPT_SOURCE_TO_TRAP( _source )
#define LEON_TRAP_SOURCE( _trap ) SPARC_INTERRUPT_TRAP_TO_SOURCE( _trap )
diff --git a/bsps/sparc/leon3/include/leon.h b/bsps/sparc/leon3/include/leon.h
index 0e86dbefe1..7eed5894c6 100644
--- a/bsps/sparc/leon3/include/leon.h
+++ b/bsps/sparc/leon3/include/leon.h
@@ -42,7 +42,7 @@ extern "C" {
* significant nibble of the trap type.
*/
-#define LEON_TRAP_TYPE( _source ) SPARC_ASYNCHRONOUS_TRAP((_source) + 0x10)
+#define LEON_TRAP_TYPE( _source ) SPARC_INTERRUPT_SOURCE_TO_TRAP( _source )
#define LEON_TRAP_SOURCE( _trap ) SPARC_INTERRUPT_TRAP_TO_SOURCE( _trap )
diff --git a/cpukit/score/cpu/sparc/include/rtems/score/sparc.h b/cpukit/score/cpu/sparc/include/rtems/score/sparc.h
index 182281f394..a65acb89b1 100644
--- a/cpukit/score/cpu/sparc/include/rtems/score/sparc.h
+++ b/cpukit/score/cpu/sparc/include/rtems/score/sparc.h
@@ -240,6 +240,18 @@ extern "C" {
#define SPARC_INTERRUPT_TRAP_TO_SOURCE( _trap ) \
( SPARC_REAL_TRAP_NUMBER( _trap ) - 0x10 )
+/**
+ * @brief Maps the interrupt source number to the associated asynchronous trap
+ * number.
+ *
+ * @param _source is the interrupt source number to map.
+ *
+ * @return Returns the asynchronous trap number associated with the interrupt
+ * source number.
+ */
+#define SPARC_INTERRUPT_SOURCE_TO_TRAP( _source ) \
+ ( SPARC_ASYNCHRONOUS_TRAP( _source ) + 0x10 )
+
#ifndef ASM
/**