RTEMS 5.2
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
modesimpl.h
Go to the documentation of this file.
1
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_MODESIMPL_H
18#define _RTEMS_RTEMS_MODESIMPL_H
19
20#include <rtems/rtems/modes.h>
22
23#ifdef __cplusplus
24extern "C" {
25#endif
26
42 rtems_mode mode_set,
43 rtems_mode masks
44)
45{
46 return ( mode_set & masks ) ? true : false;
47}
48
56 rtems_mode mode_set
57)
58{
59 return (mode_set & RTEMS_ASR_MASK) == RTEMS_NO_ASR;
60}
61
69 rtems_mode mode_set
70)
71{
72 return (mode_set & RTEMS_PREEMPT_MASK) == RTEMS_PREEMPT;
73}
74
82 rtems_mode mode_set
83)
84{
85 return (mode_set & RTEMS_TIMESLICE_MASK) == RTEMS_TIMESLICE;
86}
87
94 rtems_mode mode_set
95)
96{
97 return ( mode_set & RTEMS_INTERRUPT_MASK );
98}
99
107 rtems_mode mode_set
108)
109{
111}
112
123 rtems_mode old_mode_set,
124 rtems_mode new_mode_set,
125 rtems_mode mask,
126 rtems_mode *out_mode_set,
127 rtems_mode *changed
128)
129{
130 rtems_mode _out_mode;
131
132 _out_mode = old_mode_set;
133 _out_mode &= ~mask;
134 _out_mode |= new_mode_set & mask;
135 *changed = _out_mode ^ old_mode_set;
136 *out_mode_set = _out_mode;
137}
138
139#ifdef __cplusplus
140}
141#endif
142
145#endif
146/* end of include file */
RTEMS_INLINE_ROUTINE bool _Modes_Mask_changed(rtems_mode mode_set, rtems_mode masks)
Checks if any of the mode flags in mask are set in mode_set.
Definition: modesimpl.h:41
RTEMS_INLINE_ROUTINE void _Modes_Set_interrupt_level(rtems_mode mode_set)
Sets the current interrupt level to that specified in the mode_set.
Definition: modesimpl.h:106
RTEMS_INLINE_ROUTINE bool _Modes_Is_asr_disabled(rtems_mode mode_set)
Checks if mode_set says that Asynchronous Signal Processing is disabled.
Definition: modesimpl.h:55
RTEMS_INLINE_ROUTINE bool _Modes_Is_timeslice(rtems_mode mode_set)
Checks if mode_set indicates that timeslicing is enabled.
Definition: modesimpl.h:81
RTEMS_INLINE_ROUTINE ISR_Level _Modes_Get_interrupt_level(rtems_mode mode_set)
Gets the interrupt level portion of the mode_set.
Definition: modesimpl.h:93
RTEMS_INLINE_ROUTINE bool _Modes_Is_preempt(rtems_mode mode_set)
Checks if mode_set indicates that preemption is enabled.
Definition: modesimpl.h:68
RTEMS_INLINE_ROUTINE void _Modes_Change(rtems_mode old_mode_set, rtems_mode new_mode_set, rtems_mode mask, rtems_mode *out_mode_set, rtems_mode *changed)
Changes the modes in old_mode_set indicated by mask to the requested values in new_mode_set.
Definition: modesimpl.h:122
#define RTEMS_TIMESLICE
Definition: modes.h:80
#define RTEMS_ASR_MASK
Definition: modes.h:67
uint32_t rtems_mode
Definition: modes.h:41
#define RTEMS_NO_ASR
Definition: modes.h:85
#define RTEMS_PREEMPT_MASK
Definition: modes.h:64
#define RTEMS_TIMESLICE_MASK
Definition: modes.h:61
#define RTEMS_INTERRUPT_MASK
Definition: modes.h:70
#define RTEMS_PREEMPT
Definition: modes.h:73
#define RTEMS_INLINE_ROUTINE
Definition: basedefs.h:66
uint32_t ISR_Level
Definition: isrlevel.h:41
#define _ISR_Set_level(_new_level)
Set current interrupt level.
Definition: isrlevel.h:140
ISR Level Type.