From e6d4b1d0861d0bd37d7d57db696286de254ad7a2 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Tue, 28 May 1996 13:13:34 +0000 Subject: added initial posix configuration support --- cpukit/sapi/include/confdefs.h | 23 ++++++++++++++--------- cpukit/sapi/include/rtems/config.h | 26 ++++++++++++-------------- cpukit/sapi/src/rtemsapi.c | 32 ++++++++++++++------------------ 3 files changed, 40 insertions(+), 41 deletions(-) (limited to 'cpukit/sapi') diff --git a/cpukit/sapi/include/confdefs.h b/cpukit/sapi/include/confdefs.h index 83f6c3ccd1..8450e43c3c 100644 --- a/cpukit/sapi/include/confdefs.h +++ b/cpukit/sapi/include/confdefs.h @@ -22,7 +22,6 @@ extern "C" { #endif - extern rtems_initialization_tasks_table Initialization_tasks[]; extern rtems_driver_address_table Device_drivers[]; extern rtems_configuration_table Configuration; @@ -341,9 +340,8 @@ rtems_multiprocessing_table Multiprocessing_configuration = { #endif #ifdef CONFIGURE_INIT -rtems_configuration_table Configuration = { - CONFIGURE_EXECUTIVE_RAM_WORK_AREA, - CONFIGURE_EXECUTIVE_RAM_SIZE, + +rtems_api_configuration_table Configuration_RTEMS_API = { CONFIGURE_MAXIMUM_TASKS, CONFIGURE_MAXIMUM_TIMERS, CONFIGURE_MAXIMUM_SEMAPHORES, @@ -352,18 +350,25 @@ rtems_configuration_table Configuration = { CONFIGURE_MAXIMUM_REGIONS, CONFIGURE_MAXIMUM_PORTS, CONFIGURE_MAXIMUM_PERIODS, + sizeof (Initialization_tasks)/ + sizeof(rtems_initialization_tasks_table), /* number of init tasks */ + Initialization_tasks /* init task(s) table */ +}; + +rtems_configuration_table Configuration = { + CONFIGURE_EXECUTIVE_RAM_WORK_AREA, + CONFIGURE_EXECUTIVE_RAM_SIZE, CONFIGURE_MAXIMUM_USER_EXTENSIONS, CONFIGURE_MICROSECONDS_PER_TICK, CONFIGURE_TICKS_PER_TIMESLICE, - sizeof (Initialization_tasks)/ - sizeof(rtems_initialization_tasks_table), /* number of init tasks */ - Initialization_tasks, /* init task(s) table */ + CONFIGURE_MAXIMUM_DEVICES, sizeof (Device_drivers)/ sizeof(rtems_driver_address_table), /* number of device drivers */ - CONFIGURE_MAXIMUM_DEVICES, Device_drivers, /* pointer to driver table */ CONFIGURE_INITIAL_EXTENSIONS, /* pointer to initial extensions */ - CONFIGURE_MULTIPROCESSING_TABLE /* ptr to MP config table */ + CONFIGURE_MULTIPROCESSING_TABLE, /* pointer to MP config table */ + &Configuration_RTEMS_API, /* pointer to RTEMS API config */ + NULL /* pointer to RTEMS API config */ }; #endif diff --git a/cpukit/sapi/include/rtems/config.h b/cpukit/sapi/include/rtems/config.h index 29f6005f58..d43839e6d6 100644 --- a/cpukit/sapi/include/rtems/config.h +++ b/cpukit/sapi/include/rtems/config.h @@ -21,12 +21,18 @@ extern "C" { #endif +#include +#include + +/* XXX should cover these #include +#include +#include +*/ + #include #include #include -#include -#include /* * The following records define the Multiprocessor Configuration @@ -50,32 +56,24 @@ typedef struct { * table primarily defines the following: * * + location and size of the RTEMS Workspace - * + required number of each object type * + microseconds per clock tick * + clock ticks per task timeslice + * + required number of each object type for each API configured */ typedef struct { void *work_space_start; unsigned32 work_space_size; - unsigned32 maximum_tasks; - unsigned32 maximum_timers; - unsigned32 maximum_semaphores; - unsigned32 maximum_message_queues; - unsigned32 maximum_partitions; - unsigned32 maximum_regions; - unsigned32 maximum_ports; - unsigned32 maximum_periods; unsigned32 maximum_extensions; unsigned32 microseconds_per_tick; unsigned32 ticks_per_timeslice; - unsigned32 number_of_initialization_tasks; - rtems_initialization_tasks_table *User_initialization_tasks_table; - unsigned32 number_of_device_drivers; unsigned32 maximum_devices; + unsigned32 number_of_device_drivers; rtems_driver_address_table *Device_driver_table; rtems_extensions_table *User_extension_table; rtems_multiprocessing_table *User_multiprocessing_table; + rtems_api_configuration_table *RTEMS_api_configuration; + posix_api_configuration_table *Posix_api_configuration; } rtems_configuration_table; /* diff --git a/cpukit/sapi/src/rtemsapi.c b/cpukit/sapi/src/rtemsapi.c index b6ecb6c37c..d7ffb3e2fb 100644 --- a/cpukit/sapi/src/rtemsapi.c +++ b/cpukit/sapi/src/rtemsapi.c @@ -45,6 +45,10 @@ void _RTEMS_API_Initialize( rtems_configuration_table *configuration_table ) { + rtems_api_configuration_table *api_configuration; + + api_configuration = configuration_table->RTEMS_api_configuration; + _Attributes_Handler_initialization(); _Interrupt_Manager_initialization(); @@ -52,38 +56,30 @@ void _RTEMS_API_Initialize( _Multiprocessing_Manager_initialization(); _RTEMS_tasks_Manager_initialization( - configuration_table->maximum_tasks, - configuration_table->number_of_initialization_tasks, - configuration_table->User_initialization_tasks_table + api_configuration->maximum_tasks, + api_configuration->number_of_initialization_tasks, + api_configuration->User_initialization_tasks_table ); - _Timer_Manager_initialization( configuration_table->maximum_timers ); + _Timer_Manager_initialization( api_configuration->maximum_timers ); _Signal_Manager_initialization(); _Event_Manager_initialization(); _Message_queue_Manager_initialization( - configuration_table->maximum_message_queues + api_configuration->maximum_message_queues ); - _Semaphore_Manager_initialization( - configuration_table->maximum_semaphores - ); + _Semaphore_Manager_initialization( api_configuration->maximum_semaphores ); - _Partition_Manager_initialization( - configuration_table->maximum_partitions - ); + _Partition_Manager_initialization( api_configuration->maximum_partitions ); - _Region_Manager_initialization( configuration_table->maximum_regions ); + _Region_Manager_initialization( api_configuration->maximum_regions ); - _Dual_ported_memory_Manager_initialization( - configuration_table->maximum_ports - ); + _Dual_ported_memory_Manager_initialization( api_configuration->maximum_ports); - _Rate_monotonic_Manager_initialization( - configuration_table->maximum_periods - ); + _Rate_monotonic_Manager_initialization( api_configuration->maximum_periods ); } /* end of file */ -- cgit v1.2.3