source: rtems/cpukit/include/rtems/rtems/asrimpl.h @ 21275b58

5
Last change on this file since 21275b58 was 257cf74, checked in by Sebastian Huber <sebastian.huber@…>, on 11/08/18 at 08:03:47

rtems: Move internal structures to asrdata.h

Update #3598.

  • Property mode set to 100644
File size: 1.7 KB
Line 
1/**
2 * @file
3 *
4 * @ingroup ClassicASRImpl
5 *
6 * @brief Classic ASR Implementation
7 */
8
9/* COPYRIGHT (c) 1989-2008.
10 * On-Line Applications Research Corporation (OAR).
11 *
12 * The license and distribution terms for this file may be
13 * found in the file LICENSE in this distribution or at
14 * http://www.rtems.org/license/LICENSE.
15 */
16
17#ifndef _RTEMS_RTEMS_ASRIMPL_H
18#define _RTEMS_RTEMS_ASRIMPL_H
19
20#include <rtems/rtems/asrdata.h>
21
22#include <string.h>
23
24#ifdef __cplusplus
25extern "C" {
26#endif
27
28/**
29 * @defgroup ClassicASRImpl Classic ASR Implementation
30 *
31 * @ingroup ClassicASR
32 *
33 * @{
34 */
35
36/**
37 *  @brief ASR_Initialize
38 *
39 *  This routine initializes the given RTEMS_ASR information record.
40 */
41RTEMS_INLINE_ROUTINE void _ASR_Initialize (
42  ASR_Information *asr
43)
44{
45  memset(asr, 0, sizeof(*asr));
46}
47
48/**
49 *  @brief ASR_Is_null_handler
50 *
51 *  This function returns TRUE if the given asr_handler is NULL and
52 *  FALSE otherwise.
53 */
54RTEMS_INLINE_ROUTINE bool _ASR_Is_null_handler (
55  rtems_asr_entry asr_handler
56)
57{
58  return asr_handler == NULL;
59}
60
61RTEMS_INLINE_ROUTINE rtems_signal_set _ASR_Swap_signals( ASR_Information *asr )
62{
63  rtems_signal_set new_signals_posted;
64
65  new_signals_posted   = asr->signals_pending;
66  asr->signals_pending = asr->signals_posted;
67  asr->signals_posted  = new_signals_posted;
68
69  return new_signals_posted;
70}
71
72RTEMS_INLINE_ROUTINE void _ASR_Post_signals(
73  rtems_signal_set  signals,
74  rtems_signal_set *signal_set
75)
76{
77  *signal_set |= signals;
78}
79
80RTEMS_INLINE_ROUTINE rtems_signal_set _ASR_Get_posted_signals(
81  ASR_Information *asr
82)
83{
84  rtems_signal_set signal_set;
85
86  signal_set = asr->signals_posted;
87  asr->signals_posted = 0;
88
89  return signal_set;
90}
91
92/**@}*/
93
94#ifdef __cplusplus
95}
96#endif
97
98#endif
99/* end of include file */
Note: See TracBrowser for help on using the repository browser.