diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 2008-12-15 19:21:01 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 2008-12-15 19:21:01 +0000 |
commit | aac75d3b9bb7bf1b7ec10cfc3c20f58f1ab2240b (patch) | |
tree | abdcbbf04573f71bc24897dfb3ee5d14a8be9a1e /cpukit/sapi | |
parent | 2008-12-15 Joel Sherrill <joel.sherrill@oarcorp.com> (diff) | |
download | rtems-aac75d3b9bb7bf1b7ec10cfc3c20f58f1ab2240b.tar.bz2 |
2008-12-15 Joel Sherrill <joel.sherrill@oarcorp.com>
* itron/include/rtems/itron/itronapi.h, libmisc/capture/capture.c,
libmisc/monitor/mon-config.c, libmisc/monitor/mon-driver.c,
libmisc/monitor/mon-itask.c, libmisc/monitor/mon-mpci.c,
posix/include/rtems/posix/config.h,
posix/include/rtems/posix/posixapi.h,
rtems/include/rtems/rtems/config.h,
rtems/include/rtems/rtems/rtemsapi.h, rtems/src/taskinitusers.c,
sapi/include/confdefs.h, sapi/include/rtems/config.h,
sapi/include/rtems/init.h, sapi/src/exinit.c, sapi/src/itronapi.c,
sapi/src/posixapi.c, sapi/src/rtemsapi.c, score/src/isr.c,
score/src/thread.c, score/src/threadcreateidle.c,
score/src/threadstackallocate.c, score/src/threadstackfree.c,
score/src/wkspace.c: Eliminate pointers to API configuration tables
in the main configuration table. Reference the main configuration
table and the API configuration tables directly using the confdefs.h
version rather than obtaining a pointer to it. This eliminated some
variables, a potential fatal error, some unnecessary default
configuration structures. Overall, about a 4.5% reduction in the code
size for minimum and hello on the SPARC.
Diffstat (limited to 'cpukit/sapi')
-rw-r--r-- | cpukit/sapi/include/confdefs.h | 17 | ||||
-rw-r--r-- | cpukit/sapi/include/rtems/config.h | 55 | ||||
-rw-r--r-- | cpukit/sapi/include/rtems/init.h | 6 | ||||
-rw-r--r-- | cpukit/sapi/src/exinit.c | 149 | ||||
-rw-r--r-- | cpukit/sapi/src/itronapi.c | 64 | ||||
-rw-r--r-- | cpukit/sapi/src/posixapi.c | 68 | ||||
-rw-r--r-- | cpukit/sapi/src/rtemsapi.c | 34 |
7 files changed, 154 insertions, 239 deletions
diff --git a/cpukit/sapi/include/confdefs.h b/cpukit/sapi/include/confdefs.h index ac6fff9025..9c19ce9645 100644 --- a/cpukit/sapi/include/confdefs.h +++ b/cpukit/sapi/include/confdefs.h @@ -805,10 +805,6 @@ rtems_fs_init_functions_t rtems_fs_init_helper = #ifndef CONFIGURE_HAS_OWN_CONFIGURATION_TABLE - #ifndef CONFIGURE_EXECUTIVE_RAM_WORK_AREA - #define CONFIGURE_EXECUTIVE_RAM_WORK_AREA NULL - #endif - #ifndef CONFIGURE_MAXIMUM_TASKS #define CONFIGURE_MAXIMUM_TASKS 0 #endif @@ -1856,7 +1852,7 @@ rtems_fs_init_functions_t rtems_fs_init_helper = * This is the primary Configuration Table for this application. */ rtems_configuration_table Configuration = { - CONFIGURE_EXECUTIVE_RAM_WORK_AREA, + NULL, /* filled in by BSP */ CONFIGURE_EXECUTIVE_RAM_SIZE, /* required RTEMS workspace */ CONFIGURE_MAXIMUM_USER_EXTENSIONS, /* maximum dynamic extensions */ CONFIGURE_MICROSECONDS_PER_TICK, /* microseconds per clock tick */ @@ -1875,17 +1871,6 @@ rtems_fs_init_functions_t rtems_fs_init_helper = #if defined(RTEMS_MULTIPROCESSING) CONFIGURE_MULTIPROCESSING_TABLE, /* pointer to MP config table */ #endif - &Configuration_RTEMS_API, /* pointer to RTEMS API config */ - #ifdef RTEMS_POSIX_API - &Configuration_POSIX_API, /* pointer to POSIX API config */ - #else - NULL, /* pointer to POSIX API config */ - #endif - #ifdef RTEMS_ITRON_API - &Configuration_ITRON_API /* pointer to ITRON API config */ - #else - NULL /* pointer to ITRON API config */ - #endif }; #endif diff --git a/cpukit/sapi/include/rtems/config.h b/cpukit/sapi/include/rtems/config.h index d0af0172d9..ad3f923965 100644 --- a/cpukit/sapi/include/rtems/config.h +++ b/cpukit/sapi/include/rtems/config.h @@ -170,21 +170,20 @@ typedef struct { rtems_driver_address_table *Device_driver_table; uint32_t number_of_initial_extensions; rtems_extensions_table *User_extension_table; -#if defined(RTEMS_MULTIPROCESSING) - rtems_multiprocessing_table *User_multiprocessing_table; -#endif - rtems_api_configuration_table *RTEMS_api_configuration; - posix_api_configuration_table *POSIX_api_configuration; - itron_api_configuration_table *ITRON_api_configuration; + #if defined(RTEMS_MULTIPROCESSING) + rtems_multiprocessing_table *User_multiprocessing_table; + #endif } rtems_configuration_table; -/* - * The following are provided strictly for the convenience of - * the user. They are not used in RTEMS itself. +/** + * This is the configuration table generated by confdefs.h. */ +extern rtems_configuration_table Configuration; -SAPI_EXTERN rtems_configuration_table *_Configuration_Table; #if defined(RTEMS_MULTIPROCESSING) + /** + * This points to the multiprocessing configuration table. + */ SAPI_EXTERN rtems_multiprocessing_table *_Configuration_MP_table; #endif @@ -194,7 +193,7 @@ SAPI_EXTERN rtems_configuration_table *_Configuration_Table; */ #define rtems_configuration_get_table() \ - (&_Configuration_Table) + (&Configuration) #define rtems_configuration_get_work_space_start() \ (Configuration.work_space_start) @@ -203,21 +202,21 @@ SAPI_EXTERN rtems_configuration_table *_Configuration_Table; (Configuration.work_space_size) #define rtems_configuration_get_maximum_extensions() \ - (_Configuration_Table->maximum_extensions) + (Configuration.maximum_extensions) #define rtems_configuration_get_microseconds_per_tick() \ - (_Configuration_Table->microseconds_per_tick) + (Configuration.microseconds_per_tick) #define rtems_configuration_get_milliseconds_per_tick() \ - (_Configuration_Table->microseconds_per_tick / 1000) + (Configuration.microseconds_per_tick / 1000) #define rtems_configuration_get_ticks_per_timeslice() \ - (_Configuration_Table->ticks_per_timeslice) + (Configuration.ticks_per_timeslice) #define rtems_configuration_get_idle_task() \ - (_Configuration_Table->idle_task) + (Configuration.idle_task) #define rtems_configuration_get_idle_task_stack_size() \ - (_Configuration_Table->idle_task_stack_size) + (Configuration.idle_task_stack_size) /* XXX We need to get this from the generated table * since BSPs need it before the pointer is set. @@ -229,45 +228,45 @@ extern rtems_configuration_table Configuration; (Configuration.interrupt_stack_size) #define rtems_configuration_get_stack_allocate_hook() \ - (_Configuration_Table->stack_allocate_hook) + (Configuration.stack_allocate_hook) #define rtems_configuration_get_stack_free_hook() \ - (_Configuration_Table->stack_free_hook) + (Configuration.stack_free_hook) /** * This macro assists in accessing the field which indicates whether * RTEMS is responsible for zeroing the Executive Workspace. */ #define rtems_configuration_get_do_zero_of_workspace() \ - (_Configuration_Table->do_zero_of_workspace) + (Configuration.do_zero_of_workspace) #define rtems_configuration_get_number_of_device_drivers() \ - (_Configuration_Table->number_of_device_drivers) + (Configuration.number_of_device_drivers) #define rtems_configuration_get_device_driver_table() \ - (_Configuration_Table->device_driver_table) + (Configuration.device_driver_table) #define rtems_configuration_get_number_of_initial_extensions() \ - (_Configuration_Table->number_of_initial_extensions) + (Configuration.number_of_initial_extensions) #define rtems_configuration_get_user_extension_table() \ - (_Configuration_Table->user_extension_table) + (Configuration.user_extension_table) #if defined(RTEMS_MULTIPROCESSING) #define rtems_configuration_get_user_multiprocessing_table() \ - (_Configuration_Table->User_multiprocessing_table) + (Configuration.User_multiprocessing_table) #else #define rtems_configuration_get_user_multiprocessing_table() NULL #endif #define rtems_configuration_get_rtems_api_configuration() \ - (_Configuration_Table->RTEMS_api_configuration) + (&Configuration_RTEMS_API) #define rtems_configuration_get_posix_api_configuration() \ - (_Configuration_Table->POSIX_api_configuration) + (&Configuration_POSIX_API) #define rtems_configuration_get_itron_api_configuration() \ - (_Configuration_Table->ITRON_api_configuration) + (&Configuration_ITRON_API) #ifdef __cplusplus } diff --git a/cpukit/sapi/include/rtems/init.h b/cpukit/sapi/include/rtems/init.h index bf0fb7fa6a..77d3e0885a 100644 --- a/cpukit/sapi/include/rtems/init.h +++ b/cpukit/sapi/include/rtems/init.h @@ -15,7 +15,7 @@ */ /* - * COPYRIGHT (c) 1989-1999. + * COPYRIGHT (c) 1989-2008. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -52,9 +52,7 @@ extern const rtems_multiprocessing_table * that involves initializing data structures to a state that scheduling * can occur in a consistent manner. */ -void rtems_initialize_data_structures( - rtems_configuration_table *configuration_table -); +void rtems_initialize_data_structures(void); /** * @brief rtems_initialize_before_drivers diff --git a/cpukit/sapi/src/exinit.c b/cpukit/sapi/src/exinit.c index 1b41ed2bb4..4a86dfd240 100644 --- a/cpukit/sapi/src/exinit.c +++ b/cpukit/sapi/src/exinit.c @@ -53,19 +53,17 @@ #include <rtems/rtems/rtemsapi.h> #ifdef RTEMS_POSIX_API -#include <rtems/posix/posixapi.h> + #include <rtems/posix/posixapi.h> #endif #ifdef RTEMS_ITRON_API -#include <rtems/itron/itronapi.h> + #include <rtems/itron/itronapi.h> #endif Objects_Information *_Internal_Objects[ OBJECTS_INTERNAL_CLASSES_LAST + 1 ]; -void rtems_initialize_data_structures( - rtems_configuration_table *configuration_table -) +void rtems_initialize_data_structures(void) { - rtems_interrupt_level bsp_level; + rtems_interrupt_level bsp_level; /* * Dispatching and interrupts are disabled until the end of the @@ -75,46 +73,31 @@ void rtems_initialize_data_structures( _ISR_Disable( bsp_level ); /* - * Make sure the parameters were not NULL. - */ - if ( configuration_table == NULL ) - _Internal_error_Occurred( - INTERNAL_ERROR_CORE, - TRUE, - INTERNAL_ERROR_NO_CONFIGURATION_TABLE - ); - - /* - * Provide pointers just for later convenience. - */ - _Configuration_Table = configuration_table; - - /* * Initialize any target architecture specific support as early as possible */ _CPU_Initialize( _Thread_Dispatch ); -#if defined(RTEMS_MULTIPROCESSING) - /* - * Initialize the system state based on whether this is an MP system. - * In an MP configuration, internally we view single processor - * systems as a very restricted multiprocessor system. - */ - _Configuration_MP_table = configuration_table->User_multiprocessing_table; - - if ( _Configuration_MP_table == NULL ) { - _Configuration_MP_table = - (void *)&_Initialization_Default_multiprocessing_table; + #if defined(RTEMS_MULTIPROCESSING) + /* + * Initialize the system state based on whether this is an MP system. + * In an MP configuration, internally we view single processor + * systems as a very restricted multiprocessor system. + */ + _Configuration_MP_table = Configuration.User_multiprocessing_table; + + if ( _Configuration_MP_table == NULL ) { + _Configuration_MP_table = + (void *)&_Initialization_Default_multiprocessing_table; + _System_state_Handler_initialization( FALSE ); + } else { + _System_state_Handler_initialization( TRUE ); + } + #else _System_state_Handler_initialization( FALSE ); - } else { - _System_state_Handler_initialization( TRUE ); - } -#else - _System_state_Handler_initialization( FALSE ); -#endif + #endif /* - * Do this as early as possible to insure no debugging output + * Do this as early as possible to ensure no debugging output * is even attempted to be printed. */ @@ -129,23 +112,23 @@ void rtems_initialize_data_structures( * from the Workspace because it is not initialized. */ _Workspace_Handler_initialization( - (void *)configuration_table->work_space_start, - configuration_table->work_space_size + Configuration.work_space_start, + Configuration.work_space_size ); _User_extensions_Handler_initialization( - configuration_table->number_of_initial_extensions, - configuration_table->User_extension_table + Configuration.number_of_initial_extensions, + Configuration.User_extension_table ); _ISR_Handler_initialization(); _Objects_Handler_initialization( -#if defined(RTEMS_MULTIPROCESSING) - _Configuration_MP_table->node, - _Configuration_MP_table->maximum_nodes, - _Configuration_MP_table->maximum_global_objects -#endif + #if defined(RTEMS_MULTIPROCESSING) + _Configuration_MP_table->node, + _Configuration_MP_table->maximum_nodes, + _Configuration_MP_table->maximum_global_objects + #endif ); _Objects_Information_table[OBJECTS_INTERNAL_API] = _Internal_Objects; @@ -160,43 +143,43 @@ void rtems_initialize_data_structures( _Watchdog_Handler_initialization(); - _TOD_Handler_initialization( configuration_table->microseconds_per_tick ); + _TOD_Handler_initialization( Configuration.microseconds_per_tick ); _Thread_Handler_initialization( - configuration_table->ticks_per_timeslice, - configuration_table->maximum_extensions -#if defined(RTEMS_MULTIPROCESSING) - , - _Configuration_MP_table->maximum_proxies -#endif + Configuration.ticks_per_timeslice, + Configuration.maximum_extensions + #if defined(RTEMS_MULTIPROCESSING) + , + _Configuration_MP_table->maximum_proxies + #endif ); -#if defined(RTEMS_MULTIPROCESSING) - _MPCI_Handler_initialization( - _Configuration_MP_table->User_mpci_table, - RTEMS_TIMEOUT - ); -#endif + #if defined(RTEMS_MULTIPROCESSING) + _MPCI_Handler_initialization( + _Configuration_MP_table->User_mpci_table, + RTEMS_TIMEOUT + ); + #endif /* MANAGERS */ - _RTEMS_API_Initialize( configuration_table ); + _RTEMS_API_Initialize(); - _Extension_Manager_initialization( configuration_table->maximum_extensions ); + _Extension_Manager_initialization( Configuration.maximum_extensions ); _IO_Manager_initialization( - configuration_table->Device_driver_table, - configuration_table->number_of_device_drivers, - configuration_table->maximum_drivers + Configuration.Device_driver_table, + Configuration.number_of_device_drivers, + Configuration.maximum_drivers ); -#ifdef RTEMS_POSIX_API - _POSIX_API_Initialize( configuration_table ); -#endif + #ifdef RTEMS_POSIX_API + _POSIX_API_Initialize(); + #endif -#ifdef RTEMS_ITRON_API - _ITRON_API_Initialize( configuration_table ); -#endif + #ifdef RTEMS_ITRON_API + _ITRON_API_Initialize(); + #endif _System_state_Set( SYSTEM_STATE_BEFORE_MULTITASKING ); @@ -218,9 +201,9 @@ void rtems_initialize_data_structures( void rtems_initialize_before_drivers(void) { -#if defined(RTEMS_MULTIPROCESSING) - _MPCI_Create_server(); -#endif + #if defined(RTEMS_MULTIPROCESSING) + _MPCI_Create_server(); + #endif /* * Run the API and BSPs predriver hook. @@ -240,14 +223,14 @@ void rtems_initialize_device_drivers(void) _IO_Initialize_all_drivers(); -#if defined(RTEMS_MULTIPROCESSING) - if ( _System_state_Is_multiprocessing ) { - _MPCI_Initialization(); - _MPCI_Internal_packets_Send_process_packet( - MPCI_PACKETS_SYSTEM_VERIFY - ); - } -#endif + #if defined(RTEMS_MULTIPROCESSING) + if ( _System_state_Is_multiprocessing ) { + _MPCI_Initialization(); + _MPCI_Internal_packets_Send_process_packet( + MPCI_PACKETS_SYSTEM_VERIFY + ); + } + #endif /* * Run the APIs and BSPs postdriver hooks. diff --git a/cpukit/sapi/src/itronapi.c b/cpukit/sapi/src/itronapi.c index 0d44db6801..684ef7b95c 100644 --- a/cpukit/sapi/src/itronapi.c +++ b/cpukit/sapi/src/itronapi.c @@ -3,7 +3,7 @@ * * NOTE: * - * COPYRIGHT (c) 1989-1999. + * COPYRIGHT (c) 1989-2008. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -37,6 +37,7 @@ #include <rtems/itron/eventflags.h> #include <rtems/itron/fmempool.h> +#include <rtems/itron/itronapi.h> #include <rtems/itron/mbox.h> #include <rtems/itron/msgbuffer.h> #include <rtems/itron/port.h> @@ -51,72 +52,45 @@ * XXX */ -const itron_api_configuration_table _ITRON_Default_configuration = { - 0, /* maximum_tasks */ - 0, /* maximum_semaphores */ - 0, /* maximum_eventflags */ - 0, /* maximum_mailboxes */ - 0, /* maximum_message_buffers */ - 0, /* maximum_ports */ - 0, /* maximum_memory_pools */ - 0, /* maximum_fixed_memory_pools */ - 0, /* number_of_initialization_tasks */ - NULL /* User_initialization_tasks_table */ -}; - Objects_Information *_ITRON_Objects[ OBJECTS_ITRON_CLASSES_LAST + 1 ]; -void _ITRON_API_Initialize( - rtems_configuration_table *configuration_table -) +void _ITRON_API_Initialize(void) { - const itron_api_configuration_table *api_configuration; + const itron_api_configuration_table *api; /* XXX need to assert here based on size assumptions */ assert( sizeof(ID) == sizeof(Objects_Id) ); - api_configuration = configuration_table->ITRON_api_configuration; - if ( !api_configuration ) - api_configuration = &_ITRON_Default_configuration; + /* + * Install our API Object Management Table and initialize the + * various managers. + */ + api = &Configuration_ITRON_API; _Objects_Information_table[OBJECTS_ITRON_API] = _ITRON_Objects; _ITRON_Task_Manager_initialization( - api_configuration->maximum_tasks, - api_configuration->number_of_initialization_tasks, - api_configuration->User_initialization_tasks_table + api->maximum_tasks, + api->number_of_initialization_tasks, + api->User_initialization_tasks_table ); - _ITRON_Semaphore_Manager_initialization( - api_configuration->maximum_semaphores - ); + _ITRON_Semaphore_Manager_initialization( api->maximum_semaphores ); - _ITRON_Eventflags_Manager_initialization( - api_configuration->maximum_eventflags - ); + _ITRON_Eventflags_Manager_initialization( api->maximum_eventflags ); _ITRON_Fixed_memory_pool_Manager_initialization( - api_configuration->maximum_fixed_memory_pools + api->maximum_fixed_memory_pools ); - _ITRON_Mailbox_Manager_initialization( - api_configuration->maximum_mailboxes - ); + _ITRON_Mailbox_Manager_initialization( api->maximum_mailboxes ); - _ITRON_Message_buffer_Manager_initialization( - api_configuration->maximum_message_buffers - ); - - _ITRON_Port_Manager_initialization( - api_configuration->maximum_ports - ); - - _ITRON_Variable_memory_pool_Manager_initialization( - api_configuration->maximum_memory_pools - ); + _ITRON_Message_buffer_Manager_initialization( api->maximum_message_buffers ); + _ITRON_Port_Manager_initialization( api->maximum_ports ); + _ITRON_Variable_memory_pool_Manager_initialization(api->maximum_memory_pools); } #endif diff --git a/cpukit/sapi/src/posixapi.c b/cpukit/sapi/src/posixapi.c index 9ff55ab63e..227949b42e 100644 --- a/cpukit/sapi/src/posixapi.c +++ b/cpukit/sapi/src/posixapi.c @@ -3,7 +3,7 @@ * * NOTE: * - * COPYRIGHT (c) 1989-1999. + * COPYRIGHT (c) 1989-2008. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -39,6 +39,7 @@ #include <rtems/posix/key.h> #include <rtems/posix/mqueue.h> #include <rtems/posix/mutex.h> +#include <rtems/posix/posixapi.h> #include <rtems/posix/priority.h> #include <rtems/posix/psignal.h> #include <rtems/posix/pthread.h> @@ -55,76 +56,51 @@ * XXX */ -const posix_api_configuration_table _POSIX_Default_configuration = { - 0, /* maximum_threads */ - 0, /* maximum_mutexes */ - 0, /* maximum_condition_variables */ - 0, /* maximum_keys */ - 0, /* maximum_timers */ - 0, /* maximum_queued_signals */ - 0, /* number_of_initialization_threads */ - 0, /* maximum_message_queues */ - 0, /* maximum_semaphores */ - 0, /* maximum_barriers */ - 0, /* maximum_spinlocks */ - 0, /* maximum_rwlocks */ - NULL /* User_initialization_threads_table */ -}; - Objects_Information *_POSIX_Objects[ OBJECTS_POSIX_CLASSES_LAST + 1 ]; - -void _POSIX_API_Initialize( - rtems_configuration_table *configuration_table -) +void _POSIX_API_Initialize(void) { - const posix_api_configuration_table *api_configuration; + const posix_api_configuration_table *api; /* XXX need to assert here based on size assumptions */ assert( sizeof(pthread_t) == sizeof(Objects_Id) ); - api_configuration = configuration_table->POSIX_api_configuration; - if ( !api_configuration ) - api_configuration = &_POSIX_Default_configuration; + /* + * Install our API Object Management Table and initialize the + * various managers. + */ + api = &Configuration_POSIX_API; _Objects_Information_table[OBJECTS_POSIX_API] = _POSIX_Objects; - _POSIX_signals_Manager_Initialization( - api_configuration->maximum_queued_signals - ); + _POSIX_signals_Manager_Initialization( api->maximum_queued_signals ); _POSIX_Threads_Manager_initialization( - api_configuration->maximum_threads, - api_configuration->number_of_initialization_threads, - api_configuration->User_initialization_threads_table + api->maximum_threads, + api->number_of_initialization_threads, + api->User_initialization_threads_table ); _POSIX_Condition_variables_Manager_initialization( - api_configuration->maximum_condition_variables + api->maximum_condition_variables ); - _POSIX_Key_Manager_initialization( api_configuration->maximum_keys ); + _POSIX_Key_Manager_initialization( api->maximum_keys ); - _POSIX_Mutex_Manager_initialization( - api_configuration->maximum_mutexes - ); + _POSIX_Mutex_Manager_initialization( api->maximum_mutexes ); - _POSIX_Message_queue_Manager_initialization( - api_configuration->maximum_message_queues - ); + _POSIX_Message_queue_Manager_initialization( api->maximum_message_queues ); - _POSIX_Semaphore_Manager_initialization( - api_configuration->maximum_semaphores - ); + _POSIX_Semaphore_Manager_initialization( api->maximum_semaphores ); - _POSIX_Timer_Manager_initialization( api_configuration->maximum_timers ); + _POSIX_Timer_Manager_initialization( api->maximum_timers ); - _POSIX_Barrier_Manager_initialization( api_configuration->maximum_barriers ); + _POSIX_Barrier_Manager_initialization( api->maximum_barriers ); - _POSIX_RWLock_Manager_initialization( api_configuration->maximum_rwlocks ); + _POSIX_RWLock_Manager_initialization( api->maximum_rwlocks ); - _POSIX_Spinlock_Manager_initialization(api_configuration->maximum_spinlocks); + _POSIX_Spinlock_Manager_initialization(api->maximum_spinlocks); } #endif diff --git a/cpukit/sapi/src/rtemsapi.c b/cpukit/sapi/src/rtemsapi.c index 89d7411b5f..d9f107e316 100644 --- a/cpukit/sapi/src/rtemsapi.c +++ b/cpukit/sapi/src/rtemsapi.c @@ -3,7 +3,7 @@ * * NOTE: * - * COPYRIGHT (c) 1989-1999. + * COPYRIGHT (c) 1989-2008. * On-Line Applications Research Corporation (OAR). * * The license and distribution terms for this file may be @@ -54,13 +54,15 @@ Objects_Information *_RTEMS_Objects[ OBJECTS_RTEMS_CLASSES_LAST + 1 ]; * XXX */ -void _RTEMS_API_Initialize( - rtems_configuration_table *configuration_table -) +void _RTEMS_API_Initialize(void) { - rtems_api_configuration_table *api_configuration; + rtems_api_configuration_table *api; - api_configuration = configuration_table->RTEMS_api_configuration; + /* + * Install our API Object Management Table and initialize the + * various managers. + */ + api = &Configuration_RTEMS_API; _Objects_Information_table[OBJECTS_CLASSIC_API] = _RTEMS_Objects; @@ -72,29 +74,27 @@ void _RTEMS_API_Initialize( _Multiprocessing_Manager_initialization(); #endif - _RTEMS_tasks_Manager_initialization( api_configuration->maximum_tasks ); + _RTEMS_tasks_Manager_initialization( api->maximum_tasks ); - _Timer_Manager_initialization( api_configuration->maximum_timers ); + _Timer_Manager_initialization( api->maximum_timers ); _Signal_Manager_initialization(); _Event_Manager_initialization(); - _Message_queue_Manager_initialization( - api_configuration->maximum_message_queues - ); + _Message_queue_Manager_initialization( api->maximum_message_queues ); - _Semaphore_Manager_initialization( api_configuration->maximum_semaphores ); + _Semaphore_Manager_initialization( api->maximum_semaphores ); - _Partition_Manager_initialization( api_configuration->maximum_partitions ); + _Partition_Manager_initialization( api->maximum_partitions ); - _Region_Manager_initialization( api_configuration->maximum_regions ); + _Region_Manager_initialization( api->maximum_regions ); - _Dual_ported_memory_Manager_initialization( api_configuration->maximum_ports); + _Dual_ported_memory_Manager_initialization( api->maximum_ports); - _Rate_monotonic_Manager_initialization( api_configuration->maximum_periods ); + _Rate_monotonic_Manager_initialization( api->maximum_periods ); - _Barrier_Manager_initialization( api_configuration->maximum_barriers ); + _Barrier_Manager_initialization( api->maximum_barriers ); } /* end of file */ |