--- cpukit/sapi/src/exinit.c | 19 +++++++++++++------ cpukit/sapi/src/posixapi.c | 8 -------- cpukit/sapi/src/rtemsapi.c | 8 -------- cpukit/score/include/rtems/score/objectimpl.h | 2 +- 4 files changed, 14 insertions(+), 23 deletions(-)
diff --git a/cpukit/sapi/src/exinit.c b/cpukit/sapi/src/exinit.c index 1eaf24f..7c1ffd6 100644 --- a/cpukit/sapi/src/exinit.c +++ b/cpukit/sapi/src/exinit.c @@ -61,7 +61,19 @@ #include <drvmgr/drvmgr.h> #endif -Objects_Information *_Internal_Objects[ OBJECTS_INTERNAL_CLASSES_LAST + 1 ]; +static Objects_Information * +_Internal_Objects[ OBJECTS_INTERNAL_CLASSES_LAST + 1 ]; + +static Objects_Information *_RTEMS_Objects[ OBJECTS_RTEMS_CLASSES_LAST + 1 ]; + +static Objects_Information *_POSIX_Objects[ OBJECTS_POSIX_CLASSES_LAST + 1 ]; + +Objects_Information **_Objects_Information_table[ OBJECTS_APIS_LAST + 1 ] = { + NULL, + &_Internal_Objects[ 0 ], + &_RTEMS_Objects[ 0 ], + &_POSIX_Objects[ 0 ] +}; static void rtems_initialize_data_structures(void) { @@ -104,11 +116,6 @@ static void rtems_initialize_data_structures(void) _User_extensions_Handler_initialization(); _ISR_Handler_initialization(); - /* - * Initialize the internal support API and allocator Mutex - */ - _Objects_Information_table[OBJECTS_INTERNAL_API] = _Internal_Objects; - _API_Mutex_Initialization( 2 ); _API_Mutex_Allocate( &_RTEMS_Allocator_Mutex ); _API_Mutex_Allocate( &_Once_Mutex ); diff --git a/cpukit/sapi/src/posixapi.c b/cpukit/sapi/src/posixapi.c index 4bdb694..60fa17e 100644 --- a/cpukit/sapi/src/posixapi.c +++ b/cpukit/sapi/src/posixapi.c @@ -52,8 +52,6 @@ void _POSIX_Fatal_error( POSIX_Fatal_domain domain, int eno ) _Terminate( INTERNAL_ERROR_POSIX_API, false, code ); } -Objects_Information *_POSIX_Objects[ OBJECTS_POSIX_CLASSES_LAST + 1 ]; - void _POSIX_API_Initialize(void) { /* @@ -63,12 +61,6 @@ void _POSIX_API_Initialize(void) * Currently, there are no none type size assumptions. */ - /* - * Install our API Object Management Table and initialize the - * various managers. - */ - _Objects_Information_table[OBJECTS_POSIX_API] = _POSIX_Objects; - _POSIX_Key_Manager_initialization(); #ifdef RTEMS_POSIX_API diff --git a/cpukit/sapi/src/rtemsapi.c b/cpukit/sapi/src/rtemsapi.c index 98fe277..93b9847 100644 --- a/cpukit/sapi/src/rtemsapi.c +++ b/cpukit/sapi/src/rtemsapi.c @@ -39,16 +39,8 @@ #include <rtems/rtems/signalimpl.h> #include <rtems/rtems/timerimpl.h> -Objects_Information *_RTEMS_Objects[ OBJECTS_RTEMS_CLASSES_LAST + 1 ]; - void _RTEMS_API_Initialize(void) { - /* - * Install our API Object Management Table and initialize the - * various managers. - */ - _Objects_Information_table[OBJECTS_CLASSIC_API] = _RTEMS_Objects; - _RTEMS_tasks_Manager_initialization(); _Timer_Manager_initialization(); _Signal_Manager_initialization(); diff --git a/cpukit/score/include/rtems/score/objectimpl.h b/cpukit/score/include/rtems/score/objectimpl.h index 80c50a5..4f49ef5 100644 --- a/cpukit/score/include/rtems/score/objectimpl.h +++ b/cpukit/score/include/rtems/score/objectimpl.h @@ -197,7 +197,7 @@ SCORE_EXTERN uint16_t _Objects_Maximum_nodes; * class. From the ID, we can go to one of these information blocks, * and obtain a pointer to the appropriate object control block. */ -SCORE_EXTERN Objects_Information +extern Objects_Information **_Objects_Information_table[OBJECTS_APIS_LAST + 1]; /** -- 1.8.4.5 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel