summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2020-04-05 10:30:43 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2020-04-05 10:31:57 +0200
commit38e4125b133b097abc3922beaea9bab56d4f0c0e (patch)
treeda0464e180cf51057155f8e8b866d1c367824db4
parentd582d0e130a463842e27070a2e85ebc1acc7b71f (diff)
score: Add and use RTEMS_SYMBOL_NAME()
-rw-r--r--cpukit/include/rtems/score/basedefs.h21
1 files changed, 17 insertions, 4 deletions
diff --git a/cpukit/include/rtems/score/basedefs.h b/cpukit/include/rtems/score/basedefs.h
index 4589bea4aa..a2eb14a642 100644
--- a/cpukit/include/rtems/score/basedefs.h
+++ b/cpukit/include/rtems/score/basedefs.h
@@ -322,6 +322,19 @@
extern char _name[]
/**
+ * @brief Constructs a symbol name.
+ *
+ * @param _name The user defined name of the symbol. The name must be a valid
+ * designator. On the name a macro expansion is performed.
+ */
+#if defined(__USER_LABEL_PREFIX__)
+ #define RTEMS_SYMBOL_NAME( _name ) RTEMS_XCONCAT( __USER_LABEL_PREFIX__, _name )
+#else
+ #define _RTEMS_SYMBOL_NAME( _name ) _name
+ #define RTEMS_SYMBOL_NAME( _name ) _RTEMS_SYMBOL_NAME( _name )
+#endif
+
+/**
* @brief Defines a global symbol with the specified name and value.
*
* This macro must be placed at file scope.
@@ -335,8 +348,8 @@
#if defined(__GNUC__)
#define RTEMS_DEFINE_GLOBAL_SYMBOL( _name, _value ) \
__asm__( \
- "\t.globl " RTEMS_XSTRING( __USER_LABEL_PREFIX__ ) #_name \
- "\n\t.set " RTEMS_XSTRING( __USER_LABEL_PREFIX__ ) #_name \
+ "\t.globl " RTEMS_XSTRING( RTEMS_SYMBOL_NAME( _name ) ) \
+ "\n\t.set " RTEMS_XSTRING( RTEMS_SYMBOL_NAME( _name ) ) \
", " RTEMS_STRING( _value ) "\n" \
)
#else
@@ -355,8 +368,8 @@
__asm__( \
".pushsection \"" _section "\"\n" \
"\t.globl " \
- RTEMS_XSTRING( RTEMS_XCONCAT( __USER_LABEL_PREFIX__, _name ) ) "\n" \
- RTEMS_XSTRING( RTEMS_XCONCAT( __USER_LABEL_PREFIX__, _name ) ) ":\n" \
+ RTEMS_XSTRING( RTEMS_SYMBOL_NAME( _name ) ) "\n" \
+ RTEMS_XSTRING( RTEMS_SYMBOL_NAME( _name ) ) ":\n" \
"\t.popsection\n" \
)
#else