diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 1995-08-28 15:30:29 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 1995-08-28 15:30:29 +0000 |
commit | 7f6a24abdd1793e394e4d5d49de1f4ca0e00297a (patch) | |
tree | fbdb1ec31289dabb5bf41ed769d4b40ca8cf9a9a /cpukit/rtems/src/signal.c | |
parent | Moved _Thread_Information -> _RTEMS_tasks_Information. (diff) | |
download | rtems-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 '')
-rw-r--r-- | cpukit/rtems/src/signal.c | 21 |
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; } |