diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 1996-05-28 13:13:34 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 1996-05-28 13:13:34 +0000 |
commit | e6d4b1d0861d0bd37d7d57db696286de254ad7a2 (patch) | |
tree | ce96d2e276eae56d55b7102091d975ca6504922b /cpukit/sapi | |
parent | new file (diff) | |
download | rtems-e6d4b1d0861d0bd37d7d57db696286de254ad7a2.tar.bz2 |
added initial posix configuration support
Diffstat (limited to 'cpukit/sapi')
-rw-r--r-- | cpukit/sapi/include/confdefs.h | 23 | ||||
-rw-r--r-- | cpukit/sapi/include/rtems/config.h | 26 | ||||
-rw-r--r-- | cpukit/sapi/src/rtemsapi.c | 32 |
3 files changed, 40 insertions, 41 deletions
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 <rtems/posix/config.h> +#include <rtems/rtems/config.h> + +/* XXX <rtems/rtems/config.h> should cover these #include <rtems/rtems/status.h> +#include <rtems/rtems/types.h> +#include <rtems/rtems/tasks.h> +*/ + #include <rtems/extension.h> #include <rtems/io.h> #include <rtems/score/mpci.h> -#include <rtems/rtems/types.h> -#include <rtems/rtems/tasks.h> /* * 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 */ |