source: rtems/cpukit/rtems/inline/rtems/rtems/asr.inl @ f9293df

4.104.114.95
Last change on this file since f9293df was f9293df, checked in by Joel Sherrill <joel.sherrill@…>, on 04/18/08 at 20:08:08

2008-04-18 Joel Sherrill <joel.sherrill@…>

  • rtems/Doxyfile, rtems/include/rtems/rtems/asr.h, rtems/include/rtems/rtems/attr.h, rtems/include/rtems/rtems/barrier.h, rtems/include/rtems/rtems/barriermp.h, rtems/include/rtems/rtems/cache.h, rtems/include/rtems/rtems/config.h, rtems/include/rtems/rtems/dpmem.h, rtems/include/rtems/rtems/event.h, rtems/include/rtems/rtems/eventmp.h, rtems/include/rtems/rtems/eventset.h, rtems/include/rtems/rtems/intr.h, rtems/include/rtems/rtems/message.h, rtems/include/rtems/rtems/modes.h, rtems/include/rtems/rtems/mp.h, rtems/include/rtems/rtems/msgmp.h, rtems/include/rtems/rtems/options.h, rtems/include/rtems/rtems/part.h, rtems/include/rtems/rtems/partmp.h, rtems/include/rtems/rtems/ratemon.h, rtems/include/rtems/rtems/region.h, rtems/include/rtems/rtems/regionmp.h, rtems/include/rtems/rtems/rtemsapi.h, rtems/include/rtems/rtems/sem.h, rtems/include/rtems/rtems/semmp.h, rtems/include/rtems/rtems/signal.h, rtems/include/rtems/rtems/signalmp.h, rtems/include/rtems/rtems/status.h, rtems/include/rtems/rtems/support.h, rtems/include/rtems/rtems/taskmp.h, rtems/include/rtems/rtems/tasks.h, rtems/include/rtems/rtems/timer.h, rtems/include/rtems/rtems/types.h, rtems/inline/rtems/rtems/asr.inl, rtems/inline/rtems/rtems/attr.inl, rtems/inline/rtems/rtems/barrier.inl, rtems/inline/rtems/rtems/dpmem.inl, rtems/inline/rtems/rtems/event.inl, rtems/inline/rtems/rtems/message.inl, rtems/inline/rtems/rtems/modes.inl, rtems/inline/rtems/rtems/options.inl, rtems/inline/rtems/rtems/part.inl, rtems/inline/rtems/rtems/ratemon.inl, rtems/inline/rtems/rtems/region.inl, rtems/inline/rtems/rtems/sem.inl, rtems/inline/rtems/rtems/status.inl, rtems/inline/rtems/rtems/support.inl, rtems/inline/rtems/rtems/timer.inl: More Doxygen improvements.
  • Property mode set to 100644
File size: 2.6 KB
Line 
1/**
2 * @file rtems/rtems/asr.inl
3 *
4 *  This include file contains the implemenation of all routines
5 *  associated with the asynchronous signal handler which are inlined.
6 */
7
8/*  COPYRIGHT (c) 1989-2008.
9 *  On-Line Applications Research Corporation (OAR).
10 *
11 *  The license and distribution terms for this file may be
12 *  found in the file LICENSE in this distribution or at
13 *  http://www.rtems.com/license/LICENSE.
14 *
15 *  $Id$
16 */
17
18#ifndef _RTEMS_RTEMS_ASR_INL
19#define _RTEMS_RTEMS_ASR_INL
20
21#include <rtems/score/isr.h>
22
23/**
24 *  @addtogroup ClassicASR
25 *  @{
26 */
27
28/**
29 *  @brief ASR_Initialize
30 *
31 *  This routine initializes the given RTEMS_ASR information record.
32 */
33RTEMS_INLINE_ROUTINE void _ASR_Initialize (
34  ASR_Information *information
35)
36{
37  information->is_enabled      = TRUE;
38  information->handler         = NULL;
39  information->mode_set        = RTEMS_DEFAULT_MODES;
40  information->signals_posted  = 0;
41  information->signals_pending = 0;
42  information->nest_level      = 0;
43}
44
45/**
46 *  @brief ASR_Swap_signals
47 *
48 *  This routine atomically swaps the pending and posted signal
49 *  sets.  This is done when the thread alters its mode in such a
50 *  way that the RTEMS_ASR disable/enable flag changes.
51 */
52RTEMS_INLINE_ROUTINE void _ASR_Swap_signals (
53  ASR_Information *information
54)
55{
56  rtems_signal_set _signals;
57  ISR_Level        _level;
58
59  _ISR_Disable( _level );
60    _signals                     = information->signals_pending;
61    information->signals_pending = information->signals_posted;
62    information->signals_posted  = _signals;
63  _ISR_Enable( _level );
64}
65
66/**
67 *  @brief ASR_Is_null_handler
68 *
69 *  This function returns TRUE if the given asr_handler is NULL and
70 *  FALSE otherwise.
71 */
72RTEMS_INLINE_ROUTINE boolean _ASR_Is_null_handler (
73  rtems_asr_entry asr_handler
74)
75{
76  return asr_handler == NULL;
77}
78
79/**
80 *  @brief ASR_Are_signals_pending
81 *
82 *  This function returns TRUE if there are signals pending in the
83 *  given RTEMS_ASR information record and FALSE otherwise.
84 */
85RTEMS_INLINE_ROUTINE boolean _ASR_Are_signals_pending (
86  ASR_Information *information
87)
88{
89  return information->signals_posted != 0;
90}
91
92/**
93 *  @brief ASR_Post_signals
94 *
95 *  This routine posts the given signals into the signal_set
96 *  passed in.  The result is returned to the user in signal_set.
97 *
98 *  NOTE:  This must be implemented as a macro.
99 */
100RTEMS_INLINE_ROUTINE void _ASR_Post_signals(
101  rtems_signal_set  signals,
102  rtems_signal_set *signal_set
103)
104{
105  ISR_Level              _level;
106
107  _ISR_Disable( _level );
108    *signal_set |= signals;
109  _ISR_Enable( _level );
110}
111
112/**@}*/
113
114#endif
115/* end of include file */
Note: See TracBrowser for help on using the repository browser.