forked from Imagelibrary/rtems
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:
@@ -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,
|
||||
|
||||
@@ -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 */
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user