summaryrefslogtreecommitdiffstats
path: root/cpukit/sapi
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1996-05-28 13:13:34 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1996-05-28 13:13:34 +0000
commite6d4b1d0861d0bd37d7d57db696286de254ad7a2 (patch)
treece96d2e276eae56d55b7102091d975ca6504922b /cpukit/sapi
parentnew file (diff)
downloadrtems-e6d4b1d0861d0bd37d7d57db696286de254ad7a2.tar.bz2
added initial posix configuration support
Diffstat (limited to 'cpukit/sapi')
-rw-r--r--cpukit/sapi/include/confdefs.h23
-rw-r--r--cpukit/sapi/include/rtems/config.h26
-rw-r--r--cpukit/sapi/src/rtemsapi.c32
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 */