diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 1995-05-11 17:39:37 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 1995-05-11 17:39:37 +0000 |
commit | ac7d5ef06a6d6e8d84abbd1f0b82162725f98326 (patch) | |
tree | 9304cf759a73f2a1c6fd3191948f00e870af3787 /cpukit/rtems/inline/rtems/rtems/modes.inl | |
download | rtems-ac7d5ef06a6d6e8d84abbd1f0b82162725f98326.tar.bz2 |
Initial revision
Diffstat (limited to 'cpukit/rtems/inline/rtems/rtems/modes.inl')
-rw-r--r-- | cpukit/rtems/inline/rtems/rtems/modes.inl | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/cpukit/rtems/inline/rtems/rtems/modes.inl b/cpukit/rtems/inline/rtems/rtems/modes.inl new file mode 100644 index 0000000000..6331a18a3a --- /dev/null +++ b/cpukit/rtems/inline/rtems/rtems/modes.inl @@ -0,0 +1,136 @@ +/* modes.inl + * + * This include file contains the static inline implementation of the + * inlined routines in the Mode Handler + * + * COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994. + * On-Line Applications Research Corporation (OAR). + * All rights assigned to U.S. Government, 1994. + * + * This material may be reproduced by or for the U.S. Government pursuant + * to the copyright license under the clause at DFARS 252.227-7013. This + * notice must appear in all copies of this file and its derivatives. + * + * $Id$ + */ + +#ifndef __MODES_inl +#define __MODES_inl + +/*PAGE + * + * RTEMS_INTERRUPT_LEVEL + */ + +STATIC INLINE unsigned32 RTEMS_INTERRUPT_LEVEL ( + rtems_mode mode_set +) +{ + return mode_set & RTEMS_INTERRUPT_MASK; +} + +/*PAGE + * + * _Modes_Mask_changed + * + */ + +STATIC INLINE boolean _Modes_Mask_changed ( + rtems_mode mode_set, + rtems_mode masks +) +{ + return ( mode_set & masks ); +} + +/*PAGE + * + * _Modes_Is_asr_disabled + * + */ + +STATIC INLINE boolean _Modes_Is_asr_disabled ( + rtems_mode mode_set +) +{ + return ( mode_set & RTEMS_ASR_MASK ); +} + +/*PAGE + * + * _Modes_Is_preempt + * + */ + +STATIC INLINE boolean _Modes_Is_preempt ( + rtems_mode mode_set +) +{ + return ( ( mode_set & RTEMS_PREEMPT_MASK ) == RTEMS_PREEMPT ); +} + +/*PAGE + * + * _Modes_Is_timeslice + * + */ + +STATIC INLINE boolean _Modes_Is_timeslice ( + rtems_mode mode_set +) +{ + return ((mode_set & (RTEMS_TIMESLICE_MASK|RTEMS_PREEMPT_MASK)) == + (RTEMS_TIMESLICE|RTEMS_PREEMPT) ); +} + +/*PAGE + * + * _Modes_Get_interrupt_level + * + */ + +STATIC INLINE ISR_Level _Modes_Get_interrupt_level ( + rtems_mode mode_set +) +{ + return ( mode_set & RTEMS_INTERRUPT_MASK ); +} + +/*PAGE + * + * _Modes_Set_interrupt_level + * + */ + +STATIC INLINE void _Modes_Set_interrupt_level ( + rtems_mode mode_set +) +{ + _ISR_Set_level( _Modes_Get_interrupt_level( mode_set ) ); +} + +/*PAGE + * + * _Modes_Change + * + */ + +STATIC INLINE void _Modes_Change ( + rtems_mode old_mode_set, + rtems_mode new_mode_set, + rtems_mode mask, + rtems_mode *out_mode_set, + rtems_mode *changed +) +{ + rtems_mode _out_mode; + + _out_mode = old_mode_set; + _out_mode &= ~mask; + _out_mode |= new_mode_set & mask; + *changed = _out_mode ^ old_mode_set; + *out_mode_set = _out_mode; +} + +#endif +/* end of include file */ |