summaryrefslogtreecommitdiffstats
path: root/cpukit/posix/src/psignal.c
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2019-04-06 14:26:00 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2019-04-10 09:50:07 +0200
commit1bf2f160e258b729c1fb5ac7abd486e4757a9149 (patch)
tree04564615088ead088a378e6a3c7dcdaa6f8c021f /cpukit/posix/src/psignal.c
parentposix: _Configuration_POSIX_Minimum_stack_size (diff)
downloadrtems-1bf2f160e258b729c1fb5ac7abd486e4757a9149.tar.bz2
posix: Avoid workspace for queued signals
Diffstat (limited to '')
-rw-r--r--cpukit/posix/src/psignal.c26
1 files changed, 9 insertions, 17 deletions
diff --git a/cpukit/posix/src/psignal.c b/cpukit/posix/src/psignal.c
index 3a1bd41cad..efc4bcc653 100644
--- a/cpukit/posix/src/psignal.c
+++ b/cpukit/posix/src/psignal.c
@@ -100,10 +100,7 @@ Chain_Control _POSIX_signals_Siginfo[ SIG_ARRAY_MAX ];
static void _POSIX_signals_Manager_Initialization(void)
{
- uint32_t signo;
- uint32_t maximum_queued_signals;
-
- maximum_queued_signals = _POSIX_signals_Maximum_queued_signals;
+ uint32_t signo;
memcpy(
_POSIX_signals_Vectors,
@@ -121,21 +118,16 @@ static void _POSIX_signals_Manager_Initialization(void)
/*
* Allocate the siginfo pools.
*/
- for ( signo=1 ; signo<= SIGRTMAX ; signo++ )
+ for ( signo=1 ; signo<= SIGRTMAX ; signo++ ) {
_Chain_Initialize_empty( &_POSIX_signals_Siginfo[ signo ] );
-
- if ( maximum_queued_signals ) {
- _Chain_Initialize(
- &_POSIX_signals_Inactive_siginfo,
- _Workspace_Allocate_or_fatal_error(
- maximum_queued_signals * sizeof( POSIX_signals_Siginfo_node )
- ),
- maximum_queued_signals,
- sizeof( POSIX_signals_Siginfo_node )
- );
- } else {
- _Chain_Initialize_empty( &_POSIX_signals_Inactive_siginfo );
}
+
+ _Chain_Initialize(
+ &_POSIX_signals_Inactive_siginfo,
+ &_POSIX_signals_Siginfo_nodes[ 0 ],
+ _POSIX_signals_Maximum_queued_signals,
+ sizeof( _POSIX_signals_Siginfo_nodes[ 0 ] )
+ );
}
RTEMS_SYSINIT_ITEM(