From 350bba7a04c7dd0c9e5fa0cd0aee33be564283a5 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Thu, 5 Nov 2020 09:56:16 +0100 Subject: 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 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 /** -- cgit v1.2.3