summaryrefslogtreecommitdiffstats
path: root/cpukit/rtems
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2015-12-10 14:10:48 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2015-12-11 08:20:48 +0100
commitdf55d07f2e5c4b1c3d73c4f26a2cbb82f2af261c (patch)
tree7e1ef06ab4df2f97afdc676b7912886aba91d703 /cpukit/rtems
parentUse linker set for system initialization (diff)
downloadrtems-df55d07f2e5c4b1c3d73c4f26a2cbb82f2af261c.tar.bz2
score: Untangle thread actions
Remove the thread action handler parameter from _Thread_Action_initialize() and instead set it later in _Thread_Add_post_switch_action(). This avoids a dependency on the thread action handler via the thread initialization.
Diffstat (limited to '')
-rw-r--r--cpukit/rtems/src/signalsend.c3
-rw-r--r--cpukit/rtems/src/taskmode.c4
-rw-r--r--cpukit/rtems/src/tasks.c2
3 files changed, 6 insertions, 3 deletions
diff --git a/cpukit/rtems/src/signalsend.c b/cpukit/rtems/src/signalsend.c
index c86c399637..4153e407f4 100644
--- a/cpukit/rtems/src/signalsend.c
+++ b/cpukit/rtems/src/signalsend.c
@@ -49,7 +49,8 @@ rtems_status_code rtems_signal_send(
_ASR_Post_signals( asr, signal_set, &asr->signals_posted );
_Thread_Add_post_switch_action(
the_thread,
- &api->Signal_action
+ &api->Signal_action,
+ _Signal_Action_handler
);
} else {
_ASR_Post_signals( asr, signal_set, &asr->signals_pending );
diff --git a/cpukit/rtems/src/taskmode.c b/cpukit/rtems/src/taskmode.c
index de30806186..fadca68225 100644
--- a/cpukit/rtems/src/taskmode.c
+++ b/cpukit/rtems/src/taskmode.c
@@ -21,6 +21,7 @@
#include <rtems/rtems/tasks.h>
#include <rtems/rtems/asrimpl.h>
#include <rtems/rtems/modesimpl.h>
+#include <rtems/rtems/signalimpl.h>
#include <rtems/score/schedulerimpl.h>
#include <rtems/score/threadimpl.h>
#include <rtems/config.h>
@@ -103,7 +104,8 @@ rtems_status_code rtems_task_mode(
needs_asr_dispatching = true;
_Thread_Add_post_switch_action(
executing,
- &api->Signal_action
+ &api->Signal_action,
+ _Signal_Action_handler
);
}
}
diff --git a/cpukit/rtems/src/tasks.c b/cpukit/rtems/src/tasks.c
index e5a80ee5b8..c4eca04103 100644
--- a/cpukit/rtems/src/tasks.c
+++ b/cpukit/rtems/src/tasks.c
@@ -55,7 +55,7 @@ static bool _RTEMS_tasks_Create_extension(
api = created->API_Extensions[ THREAD_API_RTEMS ];
_ASR_Create( &api->Signal );
- _Thread_Action_initialize( &api->Signal_action, _Signal_Action_handler );
+ _Thread_Action_initialize( &api->Signal_action );
#if !defined(RTEMS_SMP)
created->task_variables = NULL;
#endif