summaryrefslogtreecommitdiffstats
path: root/c/src/exec/score/macros/rtems/score/userext.inl
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--c/src/exec/score/macros/rtems/score/userext.inl16
1 files changed, 12 insertions, 4 deletions
diff --git a/c/src/exec/score/macros/rtems/score/userext.inl b/c/src/exec/score/macros/rtems/score/userext.inl
index 37b0bf8d2a..69fd0de4b1 100644
--- a/c/src/exec/score/macros/rtems/score/userext.inl
+++ b/c/src/exec/score/macros/rtems/score/userext.inl
@@ -23,14 +23,22 @@
*
*/
-#define _User_extensions_Handler_initialization( _initial_extensions ) \
+#define _User_extensions_Handler_initialization( \
+ number_of_extensions, _initial_extensions \
+) \
{ \
+ User_extensions_Control *extension; \
+ unsigned32 i; \
_Chain_Initialize_empty( &_User_extensions_List ); \
\
if ( (_initial_extensions) ) { \
- _User_extensions_Initial.Callouts = *(_initial_extensions); \
- _Chain_Append( \
- &_User_extensions_List, &_User_extensions_Initial.Node ); \
+ for (i=0 ; i<number_of_extensions ; i++ ) { \
+ extension = \
+ _Workspace_Allocate_or_fatal_error( sizeof(User_extensions_Control) ); \
+ \
+ extension->Callouts = _initial_extensions[i]; \
+ _Chain_Append( &_User_extensions_List, &extension->Node ); \
+ } \
} \
}