summaryrefslogtreecommitdiffstats
path: root/cpukit/rtems/src/signal.c
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1995-08-28 15:30:29 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1995-08-28 15:30:29 +0000
commit7f6a24abdd1793e394e4d5d49de1f4ca0e00297a (patch)
treefbdb1ec31289dabb5bf41ed769d4b40ca8cf9a9a /cpukit/rtems/src/signal.c
parentMoved _Thread_Information -> _RTEMS_tasks_Information. (diff)
downloadrtems-7f6a24abdd1793e394e4d5d49de1f4ca0e00297a.tar.bz2
Added unused priority ceiling parameter to rtems_semaphore_create.
Rearranged code to created thread handler routines to initialize, start, restart, and "close/delete" a thread. Made internal threads their own object class. This now uses the thread support routines for starting and initializing a thread. Insured deleted tasks are freed to the Inactive pool associated with the correct Information block. Added an RTEMS API specific data area to the thread control block. Beginnings of removing the word "rtems" from the core.
Diffstat (limited to 'cpukit/rtems/src/signal.c')
-rw-r--r--cpukit/rtems/src/signal.c21
1 files changed, 12 insertions, 9 deletions
diff --git a/cpukit/rtems/src/signal.c b/cpukit/rtems/src/signal.c
index 411df5d86c..8a300d2969 100644
--- a/cpukit/rtems/src/signal.c
+++ b/cpukit/rtems/src/signal.c
@@ -37,22 +37,23 @@
*/
rtems_status_code rtems_signal_catch(
- rtems_asr_entry handler,
- rtems_mode mode_set
+ rtems_asr_entry asr_handler,
+ rtems_mode mode_set
)
{
Thread_Control *executing;
+/* XXX normalize mode */
executing = _Thread_Executing;
_Thread_Disable_dispatch(); /* cannot reschedule while */
/* the thread is inconsistent */
- if ( ! _ASR_Is_null_handler( handler ) ) {
- executing->Signal.mode_set = mode_set;
- executing->Signal.handler = handler;
+ if ( !_ASR_Is_null_handler( asr_handler ) ) {
+ executing->RTEMS_API->Signal.mode_set = mode_set;
+ executing->RTEMS_API->Signal.handler = asr_handler;
}
else
- _ASR_Initialize( &executing->Signal );
+ _ASR_Initialize( &executing->RTEMS_API->Signal );
_Thread_Enable_dispatch();
return( RTEMS_SUCCESSFUL );
}
@@ -91,11 +92,13 @@ rtems_status_code rtems_signal_send(
signal_set
);
case OBJECTS_LOCAL:
- if ( ! _ASR_Is_null_handler( the_thread->Signal.handler ) ) {
+ if ( ! _ASR_Is_null_handler( the_thread->RTEMS_API->Signal.handler ) ) {
if ( _Modes_Is_asr_disabled( the_thread->current_modes ) )
- _ASR_Post_signals( signal_set, &the_thread->Signal.signals_pending );
+ _ASR_Post_signals(
+ signal_set, &the_thread->RTEMS_API->Signal.signals_pending );
else {
- _ASR_Post_signals( signal_set, &the_thread->Signal.signals_posted );
+ _ASR_Post_signals(
+ signal_set, &the_thread->RTEMS_API->Signal.signals_posted );
if ( _ISR_Is_in_progress() && _Thread_Is_executing( the_thread ) )
_ISR_Signals_to_thread_executing = TRUE;
}