[rtems commit] sparc: Add SPARC_INTERRUPT_SOURCE_TO_TRAP()

Sebastian Huber sebh at rtems.org
Fri Nov 6 13:07:26 UTC 2020


Module:    rtems
Branch:    master
Commit:    350bba7a04c7dd0c9e5fa0cd0aee33be564283a5
Changeset: http://git.rtems.org/rtems/commit/?id=350bba7a04c7dd0c9e5fa0cd0aee33be564283a5

Author:    Sebastian Huber <sebastian.huber at embedded-brains.de>
Date:      Thu Nov  5 09:56:16 2020 +0100

sparc: Add SPARC_INTERRUPT_SOURCE_TO_TRAP()

Update #4171.

---

 bsps/sparc/erc32/include/erc32.h                   |  2 +-
 bsps/sparc/leon2/include/leon.h                    |  2 +-
 bsps/sparc/leon3/include/leon.h                    |  2 +-
 cpukit/score/cpu/sparc/include/rtems/score/sparc.h | 12 ++++++++++++
 4 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/bsps/sparc/erc32/include/erc32.h b/bsps/sparc/erc32/include/erc32.h
index 6d79772..a677b13 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 1d58aa7..fc90e1f 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 0e86dbe..7eed589 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 182281f..a65acb8 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
 
 /**



More information about the vc mailing list