diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2019-12-12 08:50:40 +0100 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2019-12-13 08:35:21 +0100 |
commit | 3fba9de2e6306946c7d79a571e787fb1d91faf38 (patch) | |
tree | be20fd3d9e509d44d53bccaf82d45ed54880f1b0 /cpukit/include | |
parent | config: Statically allocate MP thread proxies (diff) | |
download | rtems-3fba9de2e6306946c7d79a571e787fb1d91faf38.tar.bz2 |
config: Statically allocate MP object controls
Update #3735.
Diffstat (limited to 'cpukit/include')
-rw-r--r-- | cpukit/include/rtems/confdefs.h | 20 | ||||
-rw-r--r-- | cpukit/include/rtems/score/objectdata.h | 7 |
2 files changed, 11 insertions, 16 deletions
diff --git a/cpukit/include/rtems/confdefs.h b/cpukit/include/rtems/confdefs.h index 23fa5b4e9d..45559f24e9 100644 --- a/cpukit/include/rtems/confdefs.h +++ b/cpukit/include/rtems/confdefs.h @@ -1823,10 +1823,6 @@ extern rtems_initialization_tasks_table Initialization_tasks[]; #ifndef CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS #define CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS 32 #endif - #define _CONFIGURE_MEMORY_FOR_GLOBAL_OBJECTS(_global_objects) \ - _Configure_From_workspace( \ - (_global_objects) * sizeof(Objects_MP_Control) \ - ) #ifndef CONFIGURE_MP_MAXIMUM_PROXIES #define CONFIGURE_MP_MAXIMUM_PROXIES 32 @@ -1846,6 +1842,10 @@ extern rtems_initialization_tasks_table Initialization_tasks[]; #error "CONFIGURE_MP_NODE_NUMBER must be less than or equal to CONFIGURE_MP_MAXIMUM_NODES" #endif + Objects_MP_Control _Objects_MP_Controls[ + CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS + ]; + struct Thread_Configured_proxy_control { Thread_Proxy_control Control; Thread_queue_Configured_heads Heads; @@ -2393,17 +2393,6 @@ struct _reent *__getreent(void) (_Configure_Max_Objects(_number_FP_tasks) \ * _Configure_From_workspace(CONTEXT_FP_SIZE)) -/* - * This defines the amount of memory configured for the multiprocessing - * support required by this application. - */ -#ifdef CONFIGURE_MP_APPLICATION - #define _CONFIGURE_MEMORY_FOR_MP \ - _CONFIGURE_MEMORY_FOR_GLOBAL_OBJECTS(CONFIGURE_MP_MAXIMUM_GLOBAL_OBJECTS) -#else - #define _CONFIGURE_MEMORY_FOR_MP 0 -#endif - /** * The following macro is used to calculate the memory allocated by RTEMS * for the message buffers associated with a particular message queue. @@ -2482,7 +2471,6 @@ struct _reent *__getreent(void) _CONFIGURE_MEMORY_FOR_POSIX_SHMS( \ CONFIGURE_MAXIMUM_POSIX_SHMS) + \ _CONFIGURE_MEMORY_FOR_POSIX_QUEUED_SIGNALS + \ - _CONFIGURE_MEMORY_FOR_MP + \ CONFIGURE_MESSAGE_BUFFER_MEMORY + \ (CONFIGURE_MEMORY_OVERHEAD * 1024) + \ _CONFIGURE_HEAP_HANDLER_OVERHEAD \ diff --git a/cpukit/include/rtems/score/objectdata.h b/cpukit/include/rtems/score/objectdata.h index a33f9d497f..e44fb52d68 100644 --- a/cpukit/include/rtems/score/objectdata.h +++ b/cpukit/include/rtems/score/objectdata.h @@ -145,6 +145,13 @@ typedef struct { } Objects_MP_Control; /** + * @brief The MP object controls. + * + * Provided by the application via <rtems/confdefs.h>. + */ +extern Objects_MP_Control _Objects_MP_Controls[]; + +/** * The following type defines the callout used when a local task * is extracted from a remote thread queue (i.e. it's proxy must * extracted from the remote queue). |