summaryrefslogtreecommitdiffstats
path: root/cpukit/score
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2019-12-05 15:14:51 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2019-12-09 08:00:52 +0100
commit5ae6112559e6767c50d7669440ee0074587bf724 (patch)
tree0b6148445fd5c046e7aa5a78a8e111192a9bed41 /cpukit/score
parentbsp/xen: Use BSP options for all linkcmds vars (diff)
downloadrtems-5ae6112559e6767c50d7669440ee0074587bf724.tar.bz2
userext: Simplify configuration
Avoid the use of the workspace and use statically allocated switch controls for the initial extensions.
Diffstat (limited to 'cpukit/score')
-rw-r--r--cpukit/score/src/userext.c20
-rw-r--r--cpukit/score/src/userextiterate.c8
2 files changed, 10 insertions, 18 deletions
diff --git a/cpukit/score/src/userext.c b/cpukit/score/src/userext.c
index a2e70dc4d3..c724d1d0fa 100644
--- a/cpukit/score/src/userext.c
+++ b/cpukit/score/src/userext.c
@@ -19,24 +19,18 @@
#include "config.h"
#endif
-#include <rtems/config.h>
#include <rtems/score/userextimpl.h>
-#include <rtems/score/wkspace.h>
void _User_extensions_Handler_initialization(void)
{
- User_extensions_Switch_control *initial_extension_switch_controls;
const User_extensions_Table *initial_table;
- uint32_t n;
- uint32_t i;
+ User_extensions_Switch_control *initial_switch_controls;
+ size_t n;
+ size_t i;
- n = rtems_configuration_get_number_of_initial_extensions();
-
- initial_extension_switch_controls = _Workspace_Allocate_or_fatal_error(
- n * sizeof( *initial_extension_switch_controls )
- );
-
- initial_table = rtems_configuration_get_user_extension_table();
+ initial_table = _User_extensions_Initial_extensions;
+ initial_switch_controls = _User_extensions_Initial_switch_controls;
+ n = _User_extensions_Initial_count;
for ( i = 0 ; i < n ; ++i ) {
User_extensions_thread_switch_extension callout;
@@ -46,7 +40,7 @@ void _User_extensions_Handler_initialization(void)
if ( callout != NULL ) {
User_extensions_Switch_control *c;
- c = &initial_extension_switch_controls[ i ];
+ c = &initial_switch_controls[ i ];
c->thread_switch = callout;
_Chain_Initialize_node( &c->Node );
_Chain_Append_unprotected( &_User_extensions_Switches_list, &c->Node );
diff --git a/cpukit/score/src/userextiterate.c b/cpukit/score/src/userextiterate.c
index 0bd32262e9..ca010efa92 100644
--- a/cpukit/score/src/userextiterate.c
+++ b/cpukit/score/src/userextiterate.c
@@ -7,7 +7,7 @@
*/
/*
- * Copyright (c) 2012, 2017 embedded brains GmbH. All rights reserved.
+ * Copyright (c) 2012, 2019 embedded brains GmbH. All rights reserved.
*
* embedded brains GmbH
* Dornierstr. 4
@@ -24,7 +24,6 @@
#include "config.h"
#endif
-#include <rtems/config.h>
#include <rtems/score/userextimpl.h>
#include <pthread.h>
@@ -164,9 +163,8 @@ void _User_extensions_Iterate(
executing = _Thread_Get_executing();
- initial_begin = rtems_configuration_get_user_extension_table();
- initial_end =
- initial_begin + rtems_configuration_get_number_of_initial_extensions();
+ initial_begin = _User_extensions_Initial_extensions;
+ initial_end = initial_begin + _User_extensions_Initial_count;
if ( direction == CHAIN_ITERATOR_FORWARD ) {
initial_current = initial_begin;