source: rtems/c/src/exec/rtems/inline/asr.inl @ eb5a7e07

4.104.114.84.95
Last change on this file since eb5a7e07 was 5e9b32b, checked in by Joel Sherrill <joel.sherrill@…>, on 09/26/95 at 19:27:15

posix support initially added

  • Property mode set to 100644
File size: 2.0 KB
Line 
1/*  inline/asr.inl
2 *
3 *  This include file contains the implemenation of all routines
4 *  associated with the asynchronous signal handler which are inlined.
5 *
6 *  COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
7 *  On-Line Applications Research Corporation (OAR).
8 *  All rights assigned to U.S. Government, 1994.
9 *
10 *  This material may be reproduced by or for the U.S. Government pursuant
11 *  to the copyright license under the clause at DFARS 252.227-7013.  This
12 *  notice must appear in all copies of this file and its derivatives.
13 *
14 *  $Id$
15 */
16
17#ifndef __INLINE_ASR_inl
18#define __INLINE_ASR_inl
19
20#include <rtems/score/isr.h>
21
22/*PAGE
23 *
24 *  _ASR_Initialize
25 *
26 */
27
28STATIC INLINE void _ASR_Initialize (
29  ASR_Information *information
30)
31{
32  information->is_enabled      = TRUE;
33  information->handler         = NULL;
34  information->mode_set        = RTEMS_DEFAULT_MODES;
35  information->signals_posted  = 0;
36  information->signals_pending = 0;
37  information->nest_level      = 0;
38}
39
40/*PAGE
41 *
42 *  _ASR_Swap_signals
43 *
44 */
45
46STATIC INLINE void _ASR_Swap_signals (
47  ASR_Information *information
48)
49{
50  rtems_signal_set _signals;
51  ISR_Level        _level;
52
53  _ISR_Disable( _level );
54    _signals                     = information->signals_pending;
55    information->signals_pending = information->signals_posted;
56    information->signals_posted  = _signals;
57  _ISR_Enable( _level );
58}
59
60/*PAGE
61 *
62 *  _ASR_Is_null_handler
63 *
64 */
65
66STATIC INLINE boolean _ASR_Is_null_handler (
67  rtems_asr_entry asr_handler
68)
69{
70  return asr_handler == NULL;
71}
72
73/*PAGE
74 *
75 *  _ASR_Are_signals_pending
76 *
77 */
78
79STATIC INLINE boolean _ASR_Are_signals_pending (
80  ASR_Information *information
81)
82{
83  return information->signals_posted != 0;
84}
85
86/*PAGE
87 *
88 *  _ASR_Post_signals
89 *
90 */
91
92STATIC INLINE void _ASR_Post_signals(
93  rtems_signal_set  signals,
94  rtems_signal_set *signal_set
95)
96{
97  ISR_Level              _level;
98
99  _ISR_Disable( _level );
100    *signal_set |= signals;
101  _ISR_Enable( _level );
102}
103
104
105#endif
106/* end of include file */
Note: See TracBrowser for help on using the repository browser.