[PATCH 13/13] score: Avoid SCORE_EXTERN

Sebastian Huber sebastian.huber at embedded-brains.de
Thu Feb 4 06:37:43 UTC 2016


Delete SCORE_INIT.  This finally removes the

some.h:
  #ifndef SOME_XYZ_EXTERN
  #define SOME_XYZ_EXTERN extern
  #endif
  SOME_XYZ_EXTERN type xyz;

some_xyz.c:
  #define SOME_XYZ_EXTERN
  #include <some.h>

pattern in favour of

some.h:
  extern type xyz;

some_xyz.c
  #include <some.h>
  type xyz;

Update #2559.
---
 cpukit/sapi/src/exinit.c                        | 15 ++++++++-------
 cpukit/score/include/rtems/score/apimutex.h     |  4 ++--
 cpukit/score/include/rtems/score/basedefs.h     | 14 --------------
 cpukit/score/include/rtems/score/copyrt.h       |  6 ------
 cpukit/score/include/rtems/score/mpciimpl.h     | 10 +++++-----
 cpukit/score/include/rtems/score/objectimpl.h   |  4 ++--
 cpukit/score/include/rtems/score/objectmp.h     |  4 ++--
 cpukit/score/include/rtems/score/smp.h          |  2 +-
 cpukit/score/include/rtems/score/sysstate.h     |  2 +-
 cpukit/score/include/rtems/score/threadimpl.h   |  6 +++---
 cpukit/score/include/rtems/score/threadmp.h     |  4 ++--
 cpukit/score/include/rtems/score/watchdogimpl.h |  4 ++--
 cpukit/score/include/rtems/score/wkspace.h      |  2 +-
 cpukit/score/src/mpci.c                         | 10 ++++++++++
 cpukit/score/src/objectmp.c                     |  8 ++++++++
 cpukit/score/src/smp.c                          |  2 ++
 cpukit/score/src/thread.c                       |  2 ++
 cpukit/score/src/threaddispatch.c               |  8 ++++++++
 cpukit/score/src/threadmp.c                     |  4 ++++
 cpukit/score/src/watchdog.c                     |  4 ++++
 cpukit/score/src/wkspace.c                      |  2 ++
 21 files changed, 69 insertions(+), 48 deletions(-)

diff --git a/cpukit/sapi/src/exinit.c b/cpukit/sapi/src/exinit.c
index 77633a2..7df2316 100644
--- a/cpukit/sapi/src/exinit.c
+++ b/cpukit/sapi/src/exinit.c
@@ -19,13 +19,6 @@
 #include "config.h"
 #endif
 
-/*
- *  SCORE_INIT is defined so all of the super core
- *  data will be included in this object file.
- */
-
-#define SCORE_INIT
-
 #include <rtems/system.h>
 #include <rtems/config.h>
 #include <rtems/extensionimpl.h>
@@ -48,6 +41,10 @@
 #include <rtems/score/watchdogimpl.h>
 #include <rtems/score/wkspace.h>
 
+const char _Copyright_Notice[] =
+"COPYRIGHT (c) 1989-2008.\n\
+On-Line Applications Research Corporation (OAR).\n";
+
 static Objects_Information *
 _Internal_Objects[ OBJECTS_INTERNAL_CLASSES_LAST + 1 ];
 
@@ -62,6 +59,10 @@ Objects_Information **_Objects_Information_table[ OBJECTS_APIS_LAST + 1 ] = {
   &_POSIX_Objects[ 0 ]
 };
 
+API_Mutex_Control *_RTEMS_Allocator_Mutex;
+
+API_Mutex_Control *_Once_Mutex;
+
 static void rtems_initialize_data_structures(void)
 {
   /*
diff --git a/cpukit/score/include/rtems/score/apimutex.h b/cpukit/score/include/rtems/score/apimutex.h
index 615f60b..86561aa 100644
--- a/cpukit/score/include/rtems/score/apimutex.h
+++ b/cpukit/score/include/rtems/score/apimutex.h
@@ -113,7 +113,7 @@ bool _API_Mutex_Is_owner( const API_Mutex_Control *mutex );
  *  This points to the API Mutex instance used to ensure that only
  *  one thread at a time is allocating or freeing memory.
  */
-SCORE_EXTERN API_Mutex_Control *_RTEMS_Allocator_Mutex;
+extern API_Mutex_Control *_RTEMS_Allocator_Mutex;
 
 static inline void _RTEMS_Lock_allocator( void )
 {
@@ -130,7 +130,7 @@ static inline bool _RTEMS_Allocator_is_owner( void )
   return _API_Mutex_Is_owner( _RTEMS_Allocator_Mutex );
 }
 
-SCORE_EXTERN API_Mutex_Control *_Once_Mutex;
+extern API_Mutex_Control *_Once_Mutex;
 
 static inline void _Once_Lock( void )
 {
diff --git a/cpukit/score/include/rtems/score/basedefs.h b/cpukit/score/include/rtems/score/basedefs.h
index ef36e29..facaed9 100644
--- a/cpukit/score/include/rtems/score/basedefs.h
+++ b/cpukit/score/include/rtems/score/basedefs.h
@@ -68,20 +68,6 @@
 #endif
 
 /**
- *  The following ensures that all data is declared in the space
- *  of the initialization routine for either the Initialization Manager
- *  or the initialization file for the appropriate API.  It is
- *  referenced as "external" in every other file.
- */
-#ifdef SCORE_INIT
-  #undef  SCORE_EXTERN
-  #define SCORE_EXTERN
-#else
-  #undef  SCORE_EXTERN
-  #define SCORE_EXTERN  extern
-#endif
-
-/**
  *  The following (in conjunction with compiler arguments) are used
  *  to choose between the use of static inline functions and macro
  *  functions.   The static inline implementation allows better
diff --git a/cpukit/score/include/rtems/score/copyrt.h b/cpukit/score/include/rtems/score/copyrt.h
index c3757bf..17c925a 100644
--- a/cpukit/score/include/rtems/score/copyrt.h
+++ b/cpukit/score/include/rtems/score/copyrt.h
@@ -33,13 +33,7 @@ extern "C" {
 /**
  *  This is the copyright string for RTEMS.
  */
-#ifdef SCORE_INIT
-const char _Copyright_Notice[] =
-"COPYRIGHT (c) 1989-2008.\n\
-On-Line Applications Research Corporation (OAR).\n";
-#else
 extern const char _Copyright_Notice[];
-#endif
 
 #ifdef __cplusplus
 }
diff --git a/cpukit/score/include/rtems/score/mpciimpl.h b/cpukit/score/include/rtems/score/mpciimpl.h
index 33cb656..8d19956 100644
--- a/cpukit/score/include/rtems/score/mpciimpl.h
+++ b/cpukit/score/include/rtems/score/mpciimpl.h
@@ -75,13 +75,13 @@ typedef struct {
  *  The following thread queue is used to maintain a list of tasks
  *  which currently have outstanding remote requests.
  */
-SCORE_EXTERN Thread_queue_Control _MPCI_Remote_blocked_threads;
+extern Thread_queue_Control _MPCI_Remote_blocked_threads;
 
 /**
  *  The following define the internal pointers to the user's
  *  configuration information.
  */
-SCORE_EXTERN MPCI_Control *_MPCI_table;
+extern MPCI_Control *_MPCI_table;
 
 /**
  *  @brief Pointer to MP thread control block.
@@ -90,14 +90,14 @@ SCORE_EXTERN MPCI_Control *_MPCI_table;
  *  thread is executing so that a proxy can be allocated instead of
  *  blocking the multiprocessing receive thread.
  */
-SCORE_EXTERN Thread_Control *_MPCI_Receive_server_tcb;
+extern Thread_Control *_MPCI_Receive_server_tcb;
 
 /**
  *  The following table contains the process packet routines provided
  *  by each object that supports MP operations.
  */
-SCORE_EXTERN MPCI_Packet_processor
-               _MPCI_Packet_processors[MP_PACKET_CLASSES_LAST+1];
+extern MPCI_Packet_processor
+_MPCI_Packet_processors[ MP_PACKET_CLASSES_LAST + 1 ];
 
 /**
  *  This routine registers the MPCI packet processor for the
diff --git a/cpukit/score/include/rtems/score/objectimpl.h b/cpukit/score/include/rtems/score/objectimpl.h
index 4f49ef5..f7bd69a 100644
--- a/cpukit/score/include/rtems/score/objectimpl.h
+++ b/cpukit/score/include/rtems/score/objectimpl.h
@@ -178,7 +178,7 @@ typedef struct {
  *  The following is referenced to the node number of the local node.
  */
 #if defined(RTEMS_MULTIPROCESSING)
-SCORE_EXTERN uint16_t       _Objects_Local_node;
+extern uint16_t _Objects_Local_node;
 #else
 #define _Objects_Local_node ((uint16_t)1)
 #endif
@@ -187,7 +187,7 @@ SCORE_EXTERN uint16_t       _Objects_Local_node;
  *  The following is referenced to the number of nodes in the system.
  */
 #if defined(RTEMS_MULTIPROCESSING)
-SCORE_EXTERN uint16_t    _Objects_Maximum_nodes;
+extern uint16_t _Objects_Maximum_nodes;
 #else
 #define _Objects_Maximum_nodes 1
 #endif
diff --git a/cpukit/score/include/rtems/score/objectmp.h b/cpukit/score/include/rtems/score/objectmp.h
index 934b398..a78ca82 100644
--- a/cpukit/score/include/rtems/score/objectmp.h
+++ b/cpukit/score/include/rtems/score/objectmp.h
@@ -173,13 +173,13 @@ void _Objects_MP_Is_remote (
 /**
  *  This is the maximum number of global objects configured.
  */
-SCORE_EXTERN uint32_t       _Objects_MP_Maximum_global_objects;
+extern uint32_t _Objects_MP_Maximum_global_objects;
 
 /**
  *  The following chain header is used to manage the set of
  *  inactive global object control blocks.
  */
-SCORE_EXTERN Chain_Control  _Objects_MP_Inactive_global_objects;
+extern Chain_Control _Objects_MP_Inactive_global_objects;
 
 /**
  * This function allocates a Global Object control block.
diff --git a/cpukit/score/include/rtems/score/smp.h b/cpukit/score/include/rtems/score/smp.h
index 8886a57..469025e 100644
--- a/cpukit/score/include/rtems/score/smp.h
+++ b/cpukit/score/include/rtems/score/smp.h
@@ -35,7 +35,7 @@ extern "C" {
  */
 
 #if defined( RTEMS_SMP )
-  SCORE_EXTERN uint32_t _SMP_Processor_count;
+  extern uint32_t _SMP_Processor_count;
 
   static inline uint32_t _SMP_Get_processor_count( void )
   {
diff --git a/cpukit/score/include/rtems/score/sysstate.h b/cpukit/score/include/rtems/score/sysstate.h
index 02ac995..0e01927 100644
--- a/cpukit/score/include/rtems/score/sysstate.h
+++ b/cpukit/score/include/rtems/score/sysstate.h
@@ -64,7 +64,7 @@ typedef enum {
 #define SYSTEM_STATE_CODES_LAST SYSTEM_STATE_TERMINATED
 
 #if defined(RTEMS_MULTIPROCESSING)
-SCORE_EXTERN bool _System_state_Is_multiprocessing;
+extern bool _System_state_Is_multiprocessing;
 #endif
 
 extern System_state_Codes _System_state_Current;
diff --git a/cpukit/score/include/rtems/score/threadimpl.h b/cpukit/score/include/rtems/score/threadimpl.h
index 4177a97..1377543 100644
--- a/cpukit/score/include/rtems/score/threadimpl.h
+++ b/cpukit/score/include/rtems/score/threadimpl.h
@@ -53,7 +53,7 @@ extern "C" {
 /**
  *  Self for the GNU Ada Run-Time
  */
-SCORE_EXTERN void *rtems_ada_self;
+extern void *rtems_ada_self;
 
 typedef struct {
   Objects_Information Objects;
@@ -65,14 +65,14 @@ typedef struct {
  *  The following defines the information control block used to
  *  manage this class of objects.
  */
-SCORE_EXTERN Thread_Information _Thread_Internal_information;
+extern Thread_Information _Thread_Internal_information;
 
 /**
  *  The following points to the thread whose floating point
  *  context is currently loaded.
  */
 #if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )
-SCORE_EXTERN Thread_Control *_Thread_Allocated_fp;
+extern Thread_Control *_Thread_Allocated_fp;
 #endif
 
 #define THREAD_CHAIN_NODE_TO_THREAD( node ) \
diff --git a/cpukit/score/include/rtems/score/threadmp.h b/cpukit/score/include/rtems/score/threadmp.h
index 27b6989..d287780 100644
--- a/cpukit/score/include/rtems/score/threadmp.h
+++ b/cpukit/score/include/rtems/score/threadmp.h
@@ -80,14 +80,14 @@ Thread_Control *_Thread_MP_Find_proxy (
  *
  * The following chain is used to manage the active set proxies.
  */
-SCORE_EXTERN Chain_Control _Thread_MP_Active_proxies;
+extern Chain_Control _Thread_MP_Active_proxies;
 
 /**
  *  @brief Manage the inactive set of MP proxies.
  *
  * The following chain is used to manage the inactive set of proxies.
  */
-SCORE_EXTERN Chain_Control _Thread_MP_Inactive_proxies;
+extern Chain_Control _Thread_MP_Inactive_proxies;
 
 /**
  * This function returns true if the thread in question is the
diff --git a/cpukit/score/include/rtems/score/watchdogimpl.h b/cpukit/score/include/rtems/score/watchdogimpl.h
index 0e04f64..8064c77 100644
--- a/cpukit/score/include/rtems/score/watchdogimpl.h
+++ b/cpukit/score/include/rtems/score/watchdogimpl.h
@@ -96,14 +96,14 @@ typedef struct {
  *
  *  This is the watchdog chain which is managed at ticks.
  */
-SCORE_EXTERN Watchdog_Header _Watchdog_Ticks_header;
+extern Watchdog_Header _Watchdog_Ticks_header;
 
 /**
  *  @brief Watchdog chain which is managed at second boundaries.
  *
  *  This is the watchdog chain which is managed at second boundaries.
  */
-SCORE_EXTERN Watchdog_Header _Watchdog_Seconds_header;
+extern Watchdog_Header _Watchdog_Seconds_header;
 
 RTEMS_INLINE_ROUTINE void _Watchdog_Acquire(
   Watchdog_Header  *header,
diff --git a/cpukit/score/include/rtems/score/wkspace.h b/cpukit/score/include/rtems/score/wkspace.h
index 18b01d3..3676ff2 100644
--- a/cpukit/score/include/rtems/score/wkspace.h
+++ b/cpukit/score/include/rtems/score/wkspace.h
@@ -43,7 +43,7 @@ extern "C" {
  *  This is the heap control structure used to manage the RTEMS Executive
  *  Workspace.
  */
-SCORE_EXTERN Heap_Control _Workspace_Area;
+extern Heap_Control _Workspace_Area;
 
 /**
  * @brief Initilize workspace handler.
diff --git a/cpukit/score/src/mpci.c b/cpukit/score/src/mpci.c
index 051366d..c191bbe 100644
--- a/cpukit/score/src/mpci.c
+++ b/cpukit/score/src/mpci.c
@@ -35,6 +35,8 @@ RTEMS_STATIC_ASSERT(
   MPCI_Internal_packet
 );
 
+bool _System_state_Is_multiprocessing;
+
 rtems_multiprocessing_table *_Configuration_MP_table;
 
 const rtems_multiprocessing_table
@@ -52,6 +54,14 @@ const rtems_multiprocessing_table
  */
 CORE_semaphore_Control _MPCI_Semaphore;
 
+Thread_queue_Control _MPCI_Remote_blocked_threads;
+
+MPCI_Control *_MPCI_table;
+
+Thread_Control *_MPCI_Receive_server_tcb;
+
+MPCI_Packet_processor _MPCI_Packet_processors[ MP_PACKET_CLASSES_LAST + 1 ];
+
 static void _MPCI_Handler_early_initialization( void )
 {
   /*
diff --git a/cpukit/score/src/objectmp.c b/cpukit/score/src/objectmp.c
index fca238b..d23e6ad 100644
--- a/cpukit/score/src/objectmp.c
+++ b/cpukit/score/src/objectmp.c
@@ -24,6 +24,14 @@
 #include <rtems/score/wkspace.h>
 #include <rtems/config.h>
 
+uint16_t _Objects_Local_node;
+
+uint16_t _Objects_Maximum_nodes;
+
+uint32_t _Objects_MP_Maximum_global_objects;
+
+Chain_Control _Objects_MP_Inactive_global_objects;
+
 void _Objects_MP_Handler_early_initialization(void)
 {
   uint32_t   node;
diff --git a/cpukit/score/src/smp.c b/cpukit/score/src/smp.c
index a64287e..a5562eb 100644
--- a/cpukit/score/src/smp.c
+++ b/cpukit/score/src/smp.c
@@ -29,6 +29,8 @@
   #error "deferred FP switch not implemented for SMP"
 #endif
 
+uint32_t _SMP_Processor_count;
+
 static void _SMP_Start_processors( uint32_t cpu_count )
 {
   uint32_t cpu_index_self = _SMP_Get_current_processor();
diff --git a/cpukit/score/src/thread.c b/cpukit/score/src/thread.c
index 1ad7a59..68a728c 100644
--- a/cpukit/score/src/thread.c
+++ b/cpukit/score/src/thread.c
@@ -42,6 +42,8 @@ THREAD_OFFSET_ASSERT( Timer );
 THREAD_OFFSET_ASSERT( receive_packet );
 #endif
 
+Thread_Information _Thread_Internal_information;
+
 void _Thread_Initialize_information(
   Thread_Information  *information,
   Objects_APIs         the_api,
diff --git a/cpukit/score/src/threaddispatch.c b/cpukit/score/src/threaddispatch.c
index dc3c796..1b36c93 100644
--- a/cpukit/score/src/threaddispatch.c
+++ b/cpukit/score/src/threaddispatch.c
@@ -29,6 +29,14 @@
 #include <rtems/score/wkspace.h>
 #include <rtems/config.h>
 
+#if __RTEMS_ADA__
+void *rtems_ada_self;
+#endif
+
+#if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE )
+Thread_Control *_Thread_Allocated_fp;
+#endif
+
 CHAIN_DEFINE_EMPTY( _User_extensions_Switches_list );
 
 static Thread_Action *_Thread_Get_post_switch_action(
diff --git a/cpukit/score/src/threadmp.c b/cpukit/score/src/threadmp.c
index 02f4f40..a084624 100644
--- a/cpukit/score/src/threadmp.c
+++ b/cpukit/score/src/threadmp.c
@@ -22,6 +22,10 @@
 #include <rtems/score/isrlevel.h>
 #include <rtems/score/wkspace.h>
 
+Chain_Control _Thread_MP_Active_proxies;
+
+Chain_Control _Thread_MP_Inactive_proxies;
+
 void _Thread_MP_Handler_initialization (
   uint32_t    maximum_proxies
 )
diff --git a/cpukit/score/src/watchdog.c b/cpukit/score/src/watchdog.c
index 11d3cf2..8d172fb 100644
--- a/cpukit/score/src/watchdog.c
+++ b/cpukit/score/src/watchdog.c
@@ -23,6 +23,10 @@
 
 #include <rtems/score/watchdogimpl.h>
 
+Watchdog_Header _Watchdog_Ticks_header;
+
+Watchdog_Header _Watchdog_Seconds_header;
+
 void _Watchdog_Handler_initialization( void )
 {
   _Watchdog_Ticks_since_boot = 0;
diff --git a/cpukit/score/src/wkspace.c b/cpukit/score/src/wkspace.c
index 94ce5cb..b53138d 100644
--- a/cpukit/score/src/wkspace.c
+++ b/cpukit/score/src/wkspace.c
@@ -32,6 +32,8 @@
   #include <rtems/bspIo.h>
 #endif
 
+Heap_Control _Workspace_Area;
+
 static uint32_t _Get_maximum_thread_count(void)
 {
   uint32_t thread_count = 0;
-- 
1.8.4.5



More information about the devel mailing list