From 352c9b2035e32e56f10f261d94955d97f4ab0f1c Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Tue, 9 Nov 1999 22:07:23 +0000 Subject: This patch adds the basic framework for the ITRON 3.0 API implementation for RTEMS. --- c/src/exec/sapi/src/itronapi.c | 117 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 c/src/exec/sapi/src/itronapi.c (limited to 'c/src/exec/sapi/src/itronapi.c') diff --git a/c/src/exec/sapi/src/itronapi.c b/c/src/exec/sapi/src/itronapi.c new file mode 100644 index 0000000000..0309967ecf --- /dev/null +++ b/c/src/exec/sapi/src/itronapi.c @@ -0,0 +1,117 @@ +/* + * ITRON API Initialization Support + * + * NOTE: + * + * COPYRIGHT (c) 1989-1998. + * On-Line Applications Research Corporation (OAR). + * Copyright assigned to U.S. Government, 1994. + * + * The license and distribution terms for this file may be + * found in the file LICENSE in this distribution or at + * http://www.OARcorp.com/rtems/license.html. + * + * $Id$ + */ + +#include + +/* + * ITRON_API_INIT is defined so all of the ITRON API + * data will be included in this object file. + */ + +#define ITRON_API_INIT + +#include /* include this before checking RTEMS_ITRON_API */ +#ifdef RTEMS_ITRON_API + +#include + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +/*PAGE + * + * _ITRON_API_Initialize + * + * XXX + */ + +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 */ +}; + + +void _ITRON_API_Initialize( + rtems_configuration_table *configuration_table +) +{ + itron_api_configuration_table *api_configuration; + + /* 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; + + _ITRON_Task_Manager_initialization( + api_configuration->maximum_tasks, + api_configuration->number_of_initialization_tasks, + api_configuration->User_initialization_tasks_table + ); + + _ITRON_Semaphore_Manager_initialization( + api_configuration->maximum_semaphores + ); + + _ITRON_Eventflags_Manager_initialization( + api_configuration->maximum_eventflags + ); + + _ITRON_Fixed_memory_pool_Manager_initialization( + api_configuration->maximum_fixed_memory_pools + ); + + _ITRON_Mailbox_Manager_initialization( + api_configuration->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 + ); + + +} + +#endif +/* end of file */ -- cgit v1.2.3