RTEMS CPU Kit with SuperCore  4.11.3
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>
21 #include <rtems/score/isrlevel.h>
22 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 
42  Modes_Control mode_set,
43  Modes_Control masks
44 )
45 {
46  return ( mode_set & masks ) ? true : false;
47 }
48 
56  Modes_Control mode_set
57 )
58 {
59  return (mode_set & RTEMS_ASR_MASK) == RTEMS_NO_ASR;
60 }
61 
69  Modes_Control mode_set
70 )
71 {
72  return (mode_set & RTEMS_PREEMPT_MASK) == RTEMS_PREEMPT;
73 }
74 
82  Modes_Control mode_set
83 )
84 {
85  return (mode_set & RTEMS_TIMESLICE_MASK) == RTEMS_TIMESLICE;
86 }
87 
94  Modes_Control mode_set
95 )
96 {
97  return ( mode_set & RTEMS_INTERRUPT_MASK );
98 }
99 
107  Modes_Control mode_set
108 )
109 {
111 }
112 
123  Modes_Control old_mode_set,
124  Modes_Control new_mode_set,
125  Modes_Control mask,
126  Modes_Control *out_mode_set,
127  Modes_Control *changed
128 )
129 {
130  Modes_Control _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 */
#define RTEMS_ASR_MASK
This mode constant corresponds to the signal enable/disable bit.
Definition: modes.h:70
RTEMS_INLINE_ROUTINE bool _Modes_Is_preempt(Modes_Control mode_set)
Checks if mode_set indicates that preemption is enabled.
Definition: modesimpl.h:68
RTEMS_INLINE_ROUTINE ISR_Level _Modes_Get_interrupt_level(Modes_Control mode_set)
Gets the interrupt level portion of the mode_set.
Definition: modesimpl.h:93
#define RTEMS_INLINE_ROUTINE
The following (in conjunction with compiler arguments) are used to choose between the use of static i...
Definition: basedefs.h:135
RTEMS_INLINE_ROUTINE bool _Modes_Mask_changed(Modes_Control mode_set, Modes_Control masks)
Checks if any of the mode flags in mask are set in mode_set.
Definition: modesimpl.h:41
uint32_t Modes_Control
The following type defines the control block used to manage each a mode set.
Definition: modes.h:44
ISR Level Type.
RTEMS_INLINE_ROUTINE void _Modes_Change(Modes_Control old_mode_set, Modes_Control new_mode_set, Modes_Control mask, Modes_Control *out_mode_set, Modes_Control *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_NO_ASR
This mode constant is used to indicate signal processing is disabled.
Definition: modes.h:88
RTEMS_INLINE_ROUTINE bool _Modes_Is_timeslice(Modes_Control mode_set)
Checks if mode_set indicates that timeslicing is enabled.
Definition: modesimpl.h:81
uint32_t ISR_Level
The following type defines the control block used to manage the interrupt level portion of the status...
Definition: isrlevel.h:42
#define RTEMS_TIMESLICE_MASK
This mode constant corresponds to the timeslice enable/disable bit.
Definition: modes.h:64
RTEMS_INLINE_ROUTINE void _Modes_Set_interrupt_level(Modes_Control mode_set)
Sets the current interrupt level to that specified in the mode_set.
Definition: modesimpl.h:106
#define RTEMS_INTERRUPT_MASK
This mode constant corresponds to the interrupt enable/disable bits.
Definition: modes.h:73
#define _ISR_Set_level(_new_level)
Set current interrupt level.
Definition: isrlevel.h:132
#define RTEMS_PREEMPT_MASK
This mode constant corresponds to the preemption enable/disable bit.
Definition: modes.h:67
RTEMS_INLINE_ROUTINE bool _Modes_Is_asr_disabled(Modes_Control mode_set)
Checks if mode_set says that Asynchronous Signal Processing is disabled.
Definition: modesimpl.h:55
#define RTEMS_TIMESLICE
This mode constant is used to indicate timeslicing is enabled.
Definition: modes.h:83
#define RTEMS_PREEMPT
This mode constant is used to indicate preemption is enabled.
Definition: modes.h:76