2008-12-17 Joel Sherrill <joel.sherrill@oarcorp.com>

* itron/include/rtems/itron/config.h,
	itron/include/rtems/itron/eventflags.h,
	itron/include/rtems/itron/fmempool.h,
	itron/include/rtems/itron/mbox.h,
	itron/include/rtems/itron/msgbuffer.h,
	itron/include/rtems/itron/port.h,
	itron/include/rtems/itron/semaphore.h,
	itron/include/rtems/itron/task.h,
	itron/include/rtems/itron/vmempool.h, itron/src/eventflags.c,
	itron/src/fmempool.c, itron/src/itroninittasks.c,
	itron/src/itronsem.c, itron/src/mbox.c, itron/src/msgbuffer.c,
	itron/src/port.c, itron/src/task.c, itron/src/vmempool.c,
	sapi/src/itronapi.c: Convert ITRON manager initialization routines to
	directly pull parameters from configuration table.
This commit is contained in:
Joel Sherrill
2008-12-17 22:12:24 +00:00
parent 7252caf20a
commit e06ecec518
20 changed files with 101 additions and 142 deletions

View File

@@ -1,3 +1,20 @@
2008-12-17 Joel Sherrill <joel.sherrill@oarcorp.com>
* itron/include/rtems/itron/config.h,
itron/include/rtems/itron/eventflags.h,
itron/include/rtems/itron/fmempool.h,
itron/include/rtems/itron/mbox.h,
itron/include/rtems/itron/msgbuffer.h,
itron/include/rtems/itron/port.h,
itron/include/rtems/itron/semaphore.h,
itron/include/rtems/itron/task.h,
itron/include/rtems/itron/vmempool.h, itron/src/eventflags.c,
itron/src/fmempool.c, itron/src/itroninittasks.c,
itron/src/itronsem.c, itron/src/mbox.c, itron/src/msgbuffer.c,
itron/src/port.c, itron/src/task.c, itron/src/vmempool.c,
sapi/src/itronapi.c: Convert ITRON manager initialization routines to
directly pull parameters from configuration table.
2008-12-17 Joel Sherrill <joel.sherrill@oarcorp.com>
* posix/include/rtems/posix/config.h: Fix typo.

View File

@@ -7,7 +7,7 @@
* This include file contains the table of user defined configuration
* parameters specific for the ITRON API.
*
* COPYRIGHT (c) 1989-1999.
* COPYRIGHT (c) 1989-2008.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -58,6 +58,14 @@ typedef struct {
itron_initialization_tasks_table *User_initialization_tasks_table;
} itron_api_configuration_table;
/**
* @brief ITRON API Configuration Table
*
* This is the ITRON API Configuration Table expected to be generated
* by confdefs.h.
*/
extern itron_api_configuration_table Configuration_ITRON_API;
#ifdef __cplusplus
}
#endif

View File

@@ -3,7 +3,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
@@ -46,9 +46,7 @@ ITRON_EXTERN Objects_Information _ITRON_Eventflags_Information;
* This routine performs the initialization necessary for this manager.
*/
void _ITRON_Eventflags_Manager_initialization(
uint32_t maximum_eventflags
);
void _ITRON_Eventflags_Manager_initialization(void);
/*
* XXX insert private stuff here

View File

@@ -3,7 +3,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
@@ -47,9 +47,7 @@ ITRON_EXTERN Objects_Information _ITRON_Fixed_memory_pool_Information;
* This routine performs the initialization necessary for this manager.
*/
void _ITRON_Fixed_memory_pool_Manager_initialization(
uint32_t maximum_fixed_memory_pools
);
void _ITRON_Fixed_memory_pool_Manager_initialization(void);
/*
* XXX insert private stuff here

View File

@@ -3,7 +3,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
@@ -49,9 +49,7 @@ ITRON_EXTERN Objects_Information _ITRON_Mailbox_Information;
* This routine performs the initialization necessary for this manager.
*/
void _ITRON_Mailbox_Manager_initialization(
uint32_t maximum_mailboxes
);
void _ITRON_Mailbox_Manager_initialization(void);
/*
* _ITRON_Mailbox_Translate_core_message_queue_return_code

View File

@@ -3,7 +3,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
@@ -49,9 +49,7 @@ ITRON_EXTERN Objects_Information _ITRON_Message_buffer_Information;
* This routine performs the initialization necessary for this manager.
*/
void _ITRON_Message_buffer_Manager_initialization(
uint32_t maximum_message_buffers
);
void _ITRON_Message_buffer_Manager_initialization(void);
/*
* _ITRON_Message_buffer_Translate_core_message_buffer_return_code

View File

@@ -3,7 +3,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
@@ -46,9 +46,7 @@ ITRON_EXTERN Objects_Information _ITRON_Port_Information;
* This routine performs the initialization necessary for this manager.
*/
void _ITRON_Port_Manager_initialization(
uint32_t maximum_ports
);
void _ITRON_Port_Manager_initialization(void);
/*
* XXX insert private stuff here

View File

@@ -3,7 +3,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
@@ -48,9 +48,7 @@ ITRON_EXTERN Objects_Information _ITRON_Semaphore_Information;
* This routine performs the initialization necessary for this manager.
*/
void _ITRON_Semaphore_Manager_initialization(
uint32_t maximum_semaphores
);
void _ITRON_Semaphore_Manager_initialization(void);
#include <rtems/itron/semaphore.inl>

View File

@@ -56,14 +56,6 @@ typedef struct {
ITRON_EXTERN Objects_Information _ITRON_Task_Information;
/*
* These are used to manage the user initialization tasks.
*/
ITRON_EXTERN itron_initialization_tasks_table
*_ITRON_Task_User_initialization_tasks;
ITRON_EXTERN uint32_t _ITRON_Task_Number_of_initialization_tasks;
/**
* When the user configures a set of ITRON API initialization tasks,
* This variable will point to the method used to initialize them.
@@ -79,11 +71,7 @@ extern void (*_ITRON_Initialize_user_tasks_p)(void);
* This routine initializes the ITRON Task Manager.
*/
void _ITRON_Task_Manager_initialization(
uint32_t maximum_tasks,
uint32_t number_of_initialization_tasks,
itron_initialization_tasks_table *user_tasks
);
void _ITRON_Task_Manager_initialization(void);
/*
* Return a status code and enable dispatching

View File

@@ -3,7 +3,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
@@ -47,9 +47,7 @@ ITRON_EXTERN Objects_Information _ITRON_Variable_memory_pool_Information;
* This routine performs the initialization necessary for this manager.
*/
void _ITRON_Variable_memory_pool_Manager_initialization(
uint32_t maximum_variable_memory_pools
);
void _ITRON_Variable_memory_pool_Manager_initialization(void);
/*
* XXX insert private stuff here

View File

@@ -1,5 +1,5 @@
/*
* COPYRIGHT (c) 1989-2007.
* COPYRIGHT (c) 1989-2008.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -14,7 +14,7 @@
#endif
#include <rtems/itron.h>
#include <rtems/config.h>
#include <rtems/itron/eventflags.h>
/*
@@ -22,21 +22,19 @@
*
* This routine initializes all event flags manager related data structures.
*
* Input parameters:
* maximum_eventflags - maximum configured eventflags
* Input parameters: NONE
*
* Output parameters: NONE
*/
void _ITRON_Eventflags_Manager_initialization(
uint32_t maximum_eventflags
)
void _ITRON_Eventflags_Manager_initialization(void)
{
_Objects_Initialize_information(
&_ITRON_Eventflags_Information, /* object information table */
OBJECTS_ITRON_API, /* object API */
OBJECTS_ITRON_EVENTFLAGS, /* object class */
maximum_eventflags, /* maximum objects of this class */
Configuration_ITRON_API.maximum_eventflags,
/* maximum objects of this class */
sizeof( ITRON_Eventflags_Control ),
/* size of this object's control block */
FALSE, /* TRUE if names for this object are strings */

View File

@@ -1,5 +1,5 @@
/*
* COPYRIGHT (c) 1989-2007.
* COPYRIGHT (c) 1989-2008.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -14,7 +14,7 @@
#endif
#include <rtems/itron.h>
#include <rtems/config.h>
#include <rtems/itron/fmempool.h>
/*
@@ -23,21 +23,19 @@
* This routine initializes all fixed memory pool manager related
* data structures.
*
* Input parameters:
* maximum_fixed_memory_pools - maximum configured fixed memory pools
* Input parameters: NONE
*
* Output parameters: NONE
*/
void _ITRON_Fixed_memory_pool_Manager_initialization(
uint32_t maximum_fixed_memory_pools
)
void _ITRON_Fixed_memory_pool_Manager_initialization(void)
{
_Objects_Initialize_information(
&_ITRON_Fixed_memory_pool_Information, /* object information table */
OBJECTS_ITRON_API, /* object API */
OBJECTS_ITRON_FIXED_MEMORY_POOLS, /* object class */
maximum_fixed_memory_pools, /* maximum objects of this class */
Configuration_ITRON_API.maximum_fixed_memory_pools,
/* maximum objects of this class */
sizeof( ITRON_Fixed_memory_pool_Control ),
/* size of this object's control block */
FALSE, /* TRUE if names for this object are strings */

View File

@@ -1,5 +1,5 @@
/*
* 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,12 +37,8 @@ void _ITRON_Task_Initialize_user_tasks_body( void )
ER return_value;
itron_initialization_tasks_table *user_tasks;
/*
* NOTE: This is slightly different from the Ada implementation.
*/
user_tasks = _ITRON_Task_User_initialization_tasks;
maximum = _ITRON_Task_Number_of_initialization_tasks;
user_tasks = Configuration_ITRON_API.User_initialization_tasks_table;
maximum = Configuration_ITRON_API.number_of_initialization_tasks;
if ( !user_tasks || maximum == 0 )
return;

View File

@@ -1,5 +1,5 @@
/*
* COPYRIGHT (c) 1989-1999.
* COPYRIGHT (c) 1989-2008.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -14,7 +14,7 @@
#endif
#include <rtems/itron.h>
#include <rtems/config.h>
#include <rtems/itron/semaphore.h>
#include <rtems/itron/task.h>
#include <rtems/score/tod.h>
@@ -26,22 +26,20 @@
*
* This routine initializes all semaphore manager related data structures.
*
* Input parameters:
* maximum_semaphores - maximum configured semaphores
* Input parameters: NONE
*
* Output parameters: NONE
*/
void _ITRON_Semaphore_Manager_initialization(
uint32_t maximum_semaphores
)
void _ITRON_Semaphore_Manager_initialization(void)
{
_Objects_Initialize_information(
&_ITRON_Semaphore_Information, /* object information table */
OBJECTS_ITRON_API, /* object API */
OBJECTS_ITRON_SEMAPHORES, /* object class */
maximum_semaphores, /* maximum objects of this class */
sizeof( ITRON_Semaphore_Control ), /* size of this object's control block */
&_ITRON_Semaphore_Information, /* object information table */
OBJECTS_ITRON_API, /* object API */
OBJECTS_ITRON_SEMAPHORES, /* object class */
Configuration_ITRON_API.maximum_semaphores,
/* maximum objects of this class */
sizeof(ITRON_Semaphore_Control), /* size of this object's control block */
FALSE, /* TRUE if names for this object are strings */
ITRON_MAXIMUM_NAME_LENGTH /* maximum length of each object's name */
#if defined(RTEMS_MULTIPROCESSING)

View File

@@ -1,7 +1,7 @@
/*
* ITRON 3.0 Mailbox Manager
*
* COPYRIGHT (c) 1989-1999.
* COPYRIGHT (c) 1989-2008.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -16,7 +16,7 @@
#endif
#include <rtems/itron.h>
#include <rtems/config.h>
#include <rtems/itron/mbox.h>
#include <rtems/itron/task.h>
@@ -25,21 +25,19 @@
*
* This routine initializes all mailboxes manager related data structures.
*
* Input parameters:
* maximum_mailboxes - maximum configured mailboxes
* Input parameters: NONE
*
* Output parameters: NONE
*/
void _ITRON_Mailbox_Manager_initialization(
uint32_t maximum_mailboxes
)
void _ITRON_Mailbox_Manager_initialization(void)
{
_Objects_Initialize_information(
&_ITRON_Mailbox_Information, /* object information table */
OBJECTS_ITRON_API, /* object API */
OBJECTS_ITRON_MAILBOXES, /* object class */
maximum_mailboxes, /* maximum objects of this class */
Configuration_ITRON_API.maximum_mailboxes,
/* maximum objects of this class */
sizeof( ITRON_Mailbox_Control ), /* size of this object's control block */
FALSE, /* TRUE if names for this object are strings */
ITRON_MAXIMUM_NAME_LENGTH /* maximum length of each object's name */

View File

@@ -1,7 +1,7 @@
/*
* ITRON Message Buffer Manager
*
* COPYRIGHT (c) 1989-1999.
* COPYRIGHT (c) 1989-2008.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -16,7 +16,7 @@
#endif
#include <rtems/itron.h>
#include <rtems/config.h>
#include <rtems/itron/msgbuffer.h>
#include <rtems/itron/task.h>
@@ -26,21 +26,19 @@
* This routine initializes all message buffer manager related data
* structures.
*
* Input parameters:
* maximum_message_buffers - maximum configured message buffers
* Input parameters: NONE
*
* Output parameters: NONE
*/
void _ITRON_Message_buffer_Manager_initialization(
uint32_t maximum_message_buffers
)
void _ITRON_Message_buffer_Manager_initialization(void)
{
_Objects_Initialize_information(
&_ITRON_Message_buffer_Information, /* object information table */
OBJECTS_ITRON_API, /* object API */
OBJECTS_ITRON_MESSAGE_BUFFERS, /* object class */
maximum_message_buffers, /* maximum objects of this class */
Configuration_ITRON_API.maximum_message_buffers,
/* maximum objects of this class */
sizeof( ITRON_Message_buffer_Control ),
/* size of this object's control block */
FALSE, /* TRUE if names for this object are strings */

View File

@@ -1,5 +1,5 @@
/*
* COPYRIGHT (c) 1989-2007.
* COPYRIGHT (c) 1989-2008.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -14,7 +14,7 @@
#endif
#include <rtems/itron.h>
#include <rtems/config.h>
#include <rtems/itron/port.h>
/*
@@ -22,21 +22,19 @@
*
* This routine initializes all ports manager related data structures.
*
* Input parameters:
* maximum_ports - maximum configured ports
* Input parameters: NONE
*
* Output parameters: NONE
*/
void _ITRON_Port_Manager_initialization(
uint32_t maximum_ports
)
void _ITRON_Port_Manager_initialization(void)
{
_Objects_Initialize_information(
&_ITRON_Port_Information, /* object information table */
OBJECTS_ITRON_API, /* object API */
OBJECTS_ITRON_PORTS, /* object class */
maximum_ports, /* maximum objects of this class */
Configuration_ITRON_API.maximum_ports,
/* maximum objects of this class */
sizeof( ITRON_Port_Control ), /* size of this object's control block */
FALSE, /* TRUE if names for this object are strings */
ITRON_MAXIMUM_NAME_LENGTH /* maximum length of each object's name */

View File

@@ -14,7 +14,7 @@
#endif
#include <rtems/itron.h>
#include <rtems/config.h>
#include <rtems/score/thread.h>
#include <rtems/score/userext.h>
#include <rtems/score/wkspace.h>
@@ -148,21 +148,15 @@ User_extensions_Control _ITRON_Task_User_extensions = {
* Output parameters: NONE
*/
void _ITRON_Task_Manager_initialization(
uint32_t maximum_tasks,
uint32_t number_of_initialization_tasks,
itron_initialization_tasks_table *user_tasks
)
void _ITRON_Task_Manager_initialization(void)
{
_ITRON_Task_Number_of_initialization_tasks = number_of_initialization_tasks;
_ITRON_Task_User_initialization_tasks = user_tasks;
_Objects_Initialize_information(
&_ITRON_Task_Information, /* object information table */
OBJECTS_ITRON_API, /* object API */
OBJECTS_ITRON_TASKS, /* object class */
maximum_tasks, /* maximum objects of this class */
Configuration_ITRON_API.maximum_tasks,
/* maximum objects of this class */
sizeof( Thread_Control ), /* size of this object's control block */
FALSE, /* TRUE if names for this object are strings */
ITRON_MAXIMUM_NAME_LENGTH /* maximum length of each object's name */

View File

@@ -1,5 +1,5 @@
/*
* COPYRIGHT (c) 1989-2007.
* COPYRIGHT (c) 1989-2008.
* On-Line Applications Research Corporation (OAR).
*
* The license and distribution terms for this file may be
@@ -14,7 +14,7 @@
#endif
#include <rtems/itron.h>
#include <rtems/config.h>
#include <rtems/itron/vmempool.h>
/*
@@ -29,15 +29,14 @@
* Output parameters: NONE
*/
void _ITRON_Variable_memory_pool_Manager_initialization(
uint32_t maximum_variable_memory_pools
)
void _ITRON_Variable_memory_pool_Manager_initialization(void)
{
_Objects_Initialize_information(
&_ITRON_Variable_memory_pool_Information, /* object information table */
OBJECTS_ITRON_API, /* object API */
OBJECTS_ITRON_VARIABLE_MEMORY_POOLS, /* object class */
maximum_variable_memory_pools, /* maximum objects of this class */
Configuration_ITRON_API.maximum_memory_pools,
/* maximum objects of this class */
sizeof( ITRON_Variable_memory_pool_Control ),
/* size of this object's control block */
FALSE, /* TRUE if names for this object are strings */

View File

@@ -56,8 +56,6 @@ Objects_Information *_ITRON_Objects[ OBJECTS_ITRON_CLASSES_LAST + 1 ];
void _ITRON_API_Initialize(void)
{
const itron_api_configuration_table *api;
/* XXX need to assert here based on size assumptions */
assert( sizeof(ID) == sizeof(Objects_Id) );
@@ -66,31 +64,16 @@ void _ITRON_API_Initialize(void)
* 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->maximum_tasks,
api->number_of_initialization_tasks,
api->User_initialization_tasks_table
);
_ITRON_Semaphore_Manager_initialization( api->maximum_semaphores );
_ITRON_Eventflags_Manager_initialization( api->maximum_eventflags );
_ITRON_Fixed_memory_pool_Manager_initialization(
api->maximum_fixed_memory_pools
);
_ITRON_Mailbox_Manager_initialization( api->maximum_mailboxes );
_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);
_ITRON_Task_Manager_initialization();
_ITRON_Semaphore_Manager_initialization();
_ITRON_Eventflags_Manager_initialization();
_ITRON_Fixed_memory_pool_Manager_initialization();
_ITRON_Mailbox_Manager_initialization();
_ITRON_Message_buffer_Manager_initialization();
_ITRON_Port_Manager_initialization();
_ITRON_Variable_memory_pool_Manager_initialization();
}
#endif