2008-01-28 Joel Sherrill <joel.sherrill@OARcorp.com>

* sapi/include/confdefs.h, score/src/mpci.c, score/src/objectmp.c,
	score/src/objectnametoid.c, score/src/objectnametoidstring.c:
	Multiprocessing compiles again and survives initialization. The
	recent object name and confdefs.h changes had broken it.
This commit is contained in:
Joel Sherrill
2008-01-28 17:19:01 +00:00
parent 81f595760d
commit def9eef5f7
6 changed files with 34 additions and 12 deletions

View File

@@ -1,3 +1,10 @@
2008-01-28 Joel Sherrill <joel.sherrill@OARcorp.com>
* sapi/include/confdefs.h, score/src/mpci.c, score/src/objectmp.c,
score/src/objectnametoid.c, score/src/objectnametoidstring.c:
Multiprocessing compiles again and survives initialization. The
recent object name and confdefs.h changes had broken it.
2008-01-25 Jennifer Averett <jennifer.averett@OARcorp.com>
* sapi/include/rtems/fatal.h, score/include/rtems/score/coremutex.h,

View File

@@ -525,6 +525,10 @@ int rtems_bdbuf_configuration_size =( sizeof(rtems_bdbuf_configuration)
#define CONFIGURE_MP_MAXIMUM_PROXIES 32
#endif
#ifndef CONFIGURE_EXTRA_MPCI_RECEIVE_SERVER_STACK
#define CONFIGURE_EXTRA_MPCI_RECEIVE_SERVER_STACK 0
#endif
#ifndef CONFIGURE_MP_MPCI_TABLE_POINTER
#include <mpci.h>
#define CONFIGURE_MP_MPCI_TABLE_POINTER &MPCI_table
@@ -536,6 +540,7 @@ rtems_multiprocessing_table Multiprocessing_configuration = {
CONFIGURE_MP_MAXIMUM_NODES, /* maximum # nodes in system */
CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS, /* maximum # global objects */
CONFIGURE_MP_MAXIMUM_PROXIES, /* maximum # proxies */
CONFIGURE_EXTRA_MPCI_RECEIVE_SERVER_STACK, /* MPCI task stack > minimum */
CONFIGURE_MP_MPCI_TABLE_POINTER /* pointer to MPCI config table */
};
#endif
@@ -1096,7 +1101,8 @@ itron_initialization_tasks_table ITRON_Initialization_tasks[] = {
#define CONFIGURE_MEMORY_FOR_MP \
( CONFIGURE_MEMORY_FOR_PROXIES(CONFIGURE_MP_MAXIMUM_PROXIES) + \
CONFIGURE_MEMORY_FOR_GLOBAL_OBJECTS(CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS) + \
CONFIGURE_MEMORY_FOR_TASKS(1) \
CONFIGURE_MEMORY_FOR_TASKS(1) + \
CONFIGURE_EXTRA_MPCI_RECEIVE_SERVER_STACK \
)
#endif /* CONFIGURE_HAS_OWN_MULTIPROCESING_TABLE */

View File

@@ -95,10 +95,10 @@ void _MPCI_Handler_initialization(
* This subprogram creates the MPCI receive server.
*/
char *_MPCI_Internal_name = "MPCI";
void _MPCI_Create_server( void )
{
Objects_Name name;
if ( !_System_state_Is_multiprocessing )
return;
@@ -109,6 +109,7 @@ void _MPCI_Create_server( void )
_MPCI_Receive_server_tcb = _Thread_Internal_allocate();
name.name_u32 = _Objects_Build_name( 'M', 'P', 'C', 'I' );
_Thread_Initialize(
&_Thread_Internal_information,
_MPCI_Receive_server_tcb,
@@ -122,7 +123,7 @@ void _MPCI_Create_server( void )
THREAD_CPU_BUDGET_ALGORITHM_NONE,
NULL, /* no budget algorithm callout */
0, /* all interrupts enabled */
_MPCI_Internal_name
name
);
_Thread_Start(

View File

@@ -169,7 +169,7 @@ Objects_Name_or_id_lookup_errors _Objects_MP_Global_name_search (
Objects_MP_Control *the_object;
uint32_t name_to_use;
name_to_use = (uint32_t)the_name; /* XXX only fixed length names */
name_to_use = the_name.name_u32; /* XXX only fixed length names */
if ( nodes_to_search > _Objects_Maximum_nodes )
return OBJECTS_INVALID_NODE;

View File

@@ -58,6 +58,9 @@ Objects_Name_or_id_lookup_errors _Objects_Name_to_id_u32(
Objects_Control *the_object;
uint32_t index;
uint32_t name_length;
#if defined(RTEMS_MULTIPROCESSING)
Objects_Name name_for_mp;
#endif
/* ASSERT: information->is_string == FALSE */
@@ -95,7 +98,8 @@ Objects_Name_or_id_lookup_errors _Objects_Name_to_id_u32(
if ( _Objects_Is_local_node( node ) || node == OBJECTS_SEARCH_LOCAL_NODE )
return OBJECTS_INVALID_NAME;
return ( _Objects_MP_Global_name_search( information, name, node, id ) );
name_for_mp.name_u32 = name;
return _Objects_MP_Global_name_search( information, name_for_mp, node, id );
#else
return OBJECTS_INVALID_NAME;
#endif

View File

@@ -60,6 +60,9 @@ Objects_Name_or_id_lookup_errors _Objects_Name_to_id_string(
Objects_Control *the_object;
uint32_t index;
uint32_t name_length;
#if defined(RTEMS_MULTIPROCESSING)
Objects_Name name_for_mp;
#endif
/* ASSERT: information->is_string == TRUE */
@@ -100,7 +103,8 @@ Objects_Name_or_id_lookup_errors _Objects_Name_to_id_string(
if ( _Objects_Is_local_node( node ) || node == OBJECTS_SEARCH_LOCAL_NODE )
return OBJECTS_INVALID_NAME;
return ( _Objects_MP_Global_name_search( information, name, node, id ) );
name_for_mp.name_p = name;
return _Objects_MP_Global_name_search( information, name_for_mp, node, id );
#else
return OBJECTS_INVALID_NAME;
#endif