summaryrefslogtreecommitdiffstats
path: root/cpukit/sapi
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2008-12-15 19:21:01 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2008-12-15 19:21:01 +0000
commitaac75d3b9bb7bf1b7ec10cfc3c20f58f1ab2240b (patch)
treeabdcbbf04573f71bc24897dfb3ee5d14a8be9a1e /cpukit/sapi
parent2008-12-15 Joel Sherrill <joel.sherrill@oarcorp.com> (diff)
downloadrtems-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.h17
-rw-r--r--cpukit/sapi/include/rtems/config.h55
-rw-r--r--cpukit/sapi/include/rtems/init.h6
-rw-r--r--cpukit/sapi/src/exinit.c149
-rw-r--r--cpukit/sapi/src/itronapi.c64
-rw-r--r--cpukit/sapi/src/posixapi.c68
-rw-r--r--cpukit/sapi/src/rtemsapi.c34
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 */