diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 1998-04-15 00:02:10 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 1998-04-15 00:02:10 +0000 |
commit | 0451b44f3600f2e05859b931324b823b62a8251d (patch) | |
tree | 5a518a8684ff8a03493306def19baa477aa2846e /c/src/exec/score/inline/rtems | |
parent | changed version to ralf-980414 (diff) | |
download | rtems-0451b44f3600f2e05859b931324b823b62a8251d.tar.bz2 |
Per suggestion from Eric Norum, went from one initial extension set
to multiple. This lets the stack check extension be installed
at system initialization time and avoids the BSP having to
even know about its existence.
Diffstat (limited to 'c/src/exec/score/inline/rtems')
-rw-r--r-- | c/src/exec/score/inline/rtems/score/userext.inl | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/c/src/exec/score/inline/rtems/score/userext.inl b/c/src/exec/score/inline/rtems/score/userext.inl index 3ddb8459b8..29f7975aaa 100644 --- a/c/src/exec/score/inline/rtems/score/userext.inl +++ b/c/src/exec/score/inline/rtems/score/userext.inl @@ -17,6 +17,8 @@ #ifndef __USER_EXTENSIONS_inl #define __USER_EXTENSIONS_inl +#include <rtems/score/wkspace.h> + /*PAGE * * _User_extensions_Handler_initialization @@ -27,14 +29,23 @@ */ RTEMS_INLINE_ROUTINE void _User_extensions_Handler_initialization ( + unsigned32 number_of_extensions, User_extensions_Table *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 ); + } } } |