summaryrefslogtreecommitdiffstats
path: root/cpukit/posix/include/rtems
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2014-03-14 11:58:12 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2014-03-31 08:29:43 +0200
commitfc521e2df6f4948da47ab26b90c4ce1ff56e3c19 (patch)
tree41727c47bd66803dcd9222c0bb835d0668447b4e /cpukit/posix/include/rtems
parentrtems: Use thread action for signals (diff)
downloadrtems-fc521e2df6f4948da47ab26b90c4ce1ff56e3c19.tar.bz2
posix: Use thread action for signals
Diffstat (limited to 'cpukit/posix/include/rtems')
-rw-r--r--cpukit/posix/include/rtems/posix/psignalimpl.h12
-rw-r--r--cpukit/posix/include/rtems/posix/threadsup.h5
2 files changed, 11 insertions, 6 deletions
diff --git a/cpukit/posix/include/rtems/posix/psignalimpl.h b/cpukit/posix/include/rtems/posix/psignalimpl.h
index 17ce19fd0e..81561e2539 100644
--- a/cpukit/posix/include/rtems/posix/psignalimpl.h
+++ b/cpukit/posix/include/rtems/posix/psignalimpl.h
@@ -69,8 +69,6 @@ extern Chain_Control _POSIX_signals_Inactive_siginfo;
extern Chain_Control _POSIX_signals_Siginfo[ SIG_ARRAY_MAX ];
-extern API_extensions_Post_switch_control _POSIX_signals_Post_switch;
-
/*
* Internal routines
*/
@@ -86,10 +84,12 @@ void _POSIX_signals_Manager_Initialization(void);
#define _POSIX_signals_Release( lock_context ) \
_ISR_lock_Release_and_ISR_enable( &_POSIX_signals_Lock, lock_context )
-static inline void _POSIX_signals_Add_post_switch_extension(void)
-{
- _API_extensions_Add_post_switch( &_POSIX_signals_Post_switch );
-}
+void _POSIX_signals_Action_handler(
+ Thread_Control *executing,
+ Thread_Action *action,
+ Per_CPU_Control *cpu,
+ ISR_Level level
+);
/**
* @brief Unlock POSIX signals thread.
diff --git a/cpukit/posix/include/rtems/posix/threadsup.h b/cpukit/posix/include/rtems/posix/threadsup.h
index e0b9ff55e9..46903fed98 100644
--- a/cpukit/posix/include/rtems/posix/threadsup.h
+++ b/cpukit/posix/include/rtems/posix/threadsup.h
@@ -68,6 +68,11 @@ typedef struct {
/** This is the set of signals which are currently pending. */
sigset_t signals_pending;
+ /**
+ * @brief Signal post-switch action in case signals are pending.
+ */
+ Thread_Action Signal_action;
+
/*******************************************************************/
/*******************************************************************/
/*************** POSIX Cancelability ***************/