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>
|
2008-01-25 Jennifer Averett <jennifer.averett@OARcorp.com>
|
||||||
|
|
||||||
* sapi/include/rtems/fatal.h, score/include/rtems/score/coremutex.h,
|
* 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
|
#define CONFIGURE_MP_MAXIMUM_PROXIES 32
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef CONFIGURE_EXTRA_MPCI_RECEIVE_SERVER_STACK
|
||||||
|
#define CONFIGURE_EXTRA_MPCI_RECEIVE_SERVER_STACK 0
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef CONFIGURE_MP_MPCI_TABLE_POINTER
|
#ifndef CONFIGURE_MP_MPCI_TABLE_POINTER
|
||||||
#include <mpci.h>
|
#include <mpci.h>
|
||||||
#define CONFIGURE_MP_MPCI_TABLE_POINTER &MPCI_table
|
#define CONFIGURE_MP_MPCI_TABLE_POINTER &MPCI_table
|
||||||
@@ -532,11 +536,12 @@ int rtems_bdbuf_configuration_size =( sizeof(rtems_bdbuf_configuration)
|
|||||||
|
|
||||||
#ifdef CONFIGURE_INIT
|
#ifdef CONFIGURE_INIT
|
||||||
rtems_multiprocessing_table Multiprocessing_configuration = {
|
rtems_multiprocessing_table Multiprocessing_configuration = {
|
||||||
CONFIGURE_MP_NODE_NUMBER, /* local node number */
|
CONFIGURE_MP_NODE_NUMBER, /* local node number */
|
||||||
CONFIGURE_MP_MAXIMUM_NODES, /* maximum # nodes in system */
|
CONFIGURE_MP_MAXIMUM_NODES, /* maximum # nodes in system */
|
||||||
CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS, /* maximum # global objects */
|
CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS, /* maximum # global objects */
|
||||||
CONFIGURE_MP_MAXIMUM_PROXIES, /* maximum # proxies */
|
CONFIGURE_MP_MAXIMUM_PROXIES, /* maximum # proxies */
|
||||||
CONFIGURE_MP_MPCI_TABLE_POINTER /* pointer to MPCI config table */
|
CONFIGURE_EXTRA_MPCI_RECEIVE_SERVER_STACK, /* MPCI task stack > minimum */
|
||||||
|
CONFIGURE_MP_MPCI_TABLE_POINTER /* pointer to MPCI config table */
|
||||||
};
|
};
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -1096,7 +1101,8 @@ itron_initialization_tasks_table ITRON_Initialization_tasks[] = {
|
|||||||
#define CONFIGURE_MEMORY_FOR_MP \
|
#define CONFIGURE_MEMORY_FOR_MP \
|
||||||
( CONFIGURE_MEMORY_FOR_PROXIES(CONFIGURE_MP_MAXIMUM_PROXIES) + \
|
( CONFIGURE_MEMORY_FOR_PROXIES(CONFIGURE_MP_MAXIMUM_PROXIES) + \
|
||||||
CONFIGURE_MEMORY_FOR_GLOBAL_OBJECTS(CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS) + \
|
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 */
|
#endif /* CONFIGURE_HAS_OWN_MULTIPROCESING_TABLE */
|
||||||
|
|||||||
@@ -95,10 +95,10 @@ void _MPCI_Handler_initialization(
|
|||||||
* This subprogram creates the MPCI receive server.
|
* This subprogram creates the MPCI receive server.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
char *_MPCI_Internal_name = "MPCI";
|
|
||||||
|
|
||||||
void _MPCI_Create_server( void )
|
void _MPCI_Create_server( void )
|
||||||
{
|
{
|
||||||
|
Objects_Name name;
|
||||||
|
|
||||||
|
|
||||||
if ( !_System_state_Is_multiprocessing )
|
if ( !_System_state_Is_multiprocessing )
|
||||||
return;
|
return;
|
||||||
@@ -109,6 +109,7 @@ void _MPCI_Create_server( void )
|
|||||||
|
|
||||||
_MPCI_Receive_server_tcb = _Thread_Internal_allocate();
|
_MPCI_Receive_server_tcb = _Thread_Internal_allocate();
|
||||||
|
|
||||||
|
name.name_u32 = _Objects_Build_name( 'M', 'P', 'C', 'I' );
|
||||||
_Thread_Initialize(
|
_Thread_Initialize(
|
||||||
&_Thread_Internal_information,
|
&_Thread_Internal_information,
|
||||||
_MPCI_Receive_server_tcb,
|
_MPCI_Receive_server_tcb,
|
||||||
@@ -122,7 +123,7 @@ void _MPCI_Create_server( void )
|
|||||||
THREAD_CPU_BUDGET_ALGORITHM_NONE,
|
THREAD_CPU_BUDGET_ALGORITHM_NONE,
|
||||||
NULL, /* no budget algorithm callout */
|
NULL, /* no budget algorithm callout */
|
||||||
0, /* all interrupts enabled */
|
0, /* all interrupts enabled */
|
||||||
_MPCI_Internal_name
|
name
|
||||||
);
|
);
|
||||||
|
|
||||||
_Thread_Start(
|
_Thread_Start(
|
||||||
|
|||||||
@@ -169,7 +169,7 @@ Objects_Name_or_id_lookup_errors _Objects_MP_Global_name_search (
|
|||||||
Objects_MP_Control *the_object;
|
Objects_MP_Control *the_object;
|
||||||
uint32_t name_to_use;
|
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 )
|
if ( nodes_to_search > _Objects_Maximum_nodes )
|
||||||
return OBJECTS_INVALID_NODE;
|
return OBJECTS_INVALID_NODE;
|
||||||
|
|||||||
@@ -58,6 +58,9 @@ Objects_Name_or_id_lookup_errors _Objects_Name_to_id_u32(
|
|||||||
Objects_Control *the_object;
|
Objects_Control *the_object;
|
||||||
uint32_t index;
|
uint32_t index;
|
||||||
uint32_t name_length;
|
uint32_t name_length;
|
||||||
|
#if defined(RTEMS_MULTIPROCESSING)
|
||||||
|
Objects_Name name_for_mp;
|
||||||
|
#endif
|
||||||
|
|
||||||
/* ASSERT: information->is_string == FALSE */
|
/* 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 )
|
if ( _Objects_Is_local_node( node ) || node == OBJECTS_SEARCH_LOCAL_NODE )
|
||||||
return OBJECTS_INVALID_NAME;
|
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
|
#else
|
||||||
return OBJECTS_INVALID_NAME;
|
return OBJECTS_INVALID_NAME;
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -60,6 +60,9 @@ Objects_Name_or_id_lookup_errors _Objects_Name_to_id_string(
|
|||||||
Objects_Control *the_object;
|
Objects_Control *the_object;
|
||||||
uint32_t index;
|
uint32_t index;
|
||||||
uint32_t name_length;
|
uint32_t name_length;
|
||||||
|
#if defined(RTEMS_MULTIPROCESSING)
|
||||||
|
Objects_Name name_for_mp;
|
||||||
|
#endif
|
||||||
|
|
||||||
/* ASSERT: information->is_string == TRUE */
|
/* 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 )
|
if ( _Objects_Is_local_node( node ) || node == OBJECTS_SEARCH_LOCAL_NODE )
|
||||||
return OBJECTS_INVALID_NAME;
|
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
|
#else
|
||||||
return OBJECTS_INVALID_NAME;
|
return OBJECTS_INVALID_NAME;
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
Reference in New Issue
Block a user