⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 asr.inl

📁 RTEMS (Real-Time Executive for Multiprocessor Systems) is a free open source real-time operating sys
💻 INL
字号:
/*  inline/asr.inl * *  This include file contains the implemenation of all routines *  associated with the asynchronous signal handler which are inlined. * *  COPYRIGHT (c) 1989-1999. *  On-Line Applications Research Corporation (OAR). * *  The license and distribution terms for this file may be *  found in the file LICENSE in this distribution or at *  http://www.rtems.com/license/LICENSE. * *  $Id: asr.inl,v 1.10.6.1 2003/09/04 18:47:17 joel Exp $ */#ifndef __INLINE_ASR_inl#define __INLINE_ASR_inl#include <rtems/score/isr.h>/*PAGE * *  _ASR_Initialize * *  DESCRIPTION: * *  This routine initializes the given RTEMS_ASR information record. */RTEMS_INLINE_ROUTINE void _ASR_Initialize (  ASR_Information *information){  information->is_enabled      = TRUE;  information->handler         = NULL;  information->mode_set        = RTEMS_DEFAULT_MODES;  information->signals_posted  = 0;  information->signals_pending = 0;  information->nest_level      = 0;}/*PAGE * *  _ASR_Swap_signals * *  DESCRIPTION: * *  This routine atomically swaps the pending and posted signal *  sets.  This is done when the thread alters its mode in such a *  way that the RTEMS_ASR disable/enable flag changes. */RTEMS_INLINE_ROUTINE void _ASR_Swap_signals (  ASR_Information *information){  rtems_signal_set _signals;  ISR_Level        _level;  _ISR_Disable( _level );    _signals                     = information->signals_pending;    information->signals_pending = information->signals_posted;    information->signals_posted  = _signals;  _ISR_Enable( _level );}/*PAGE * *  _ASR_Is_null_handler * *  DESCRIPTION: * *  This function returns TRUE if the given asr_handler is NULL and *  FALSE otherwise. */RTEMS_INLINE_ROUTINE boolean _ASR_Is_null_handler (  rtems_asr_entry asr_handler){  return asr_handler == NULL;}/*PAGE * *  _ASR_Are_signals_pending * *  DESCRIPTION: * *  This function returns TRUE if there are signals pending in the *  given RTEMS_ASR information record and FALSE otherwise. */RTEMS_INLINE_ROUTINE boolean _ASR_Are_signals_pending (  ASR_Information *information){  return information->signals_posted != 0;}/*PAGE * *  _ASR_Post_signals * *  DESCRIPTION: * *  This routine posts the given signals into the signal_set *  passed in.  The result is returned to the user in signal_set. * *  NOTE:  This must be implemented as a macro. */RTEMS_INLINE_ROUTINE void _ASR_Post_signals(  rtems_signal_set  signals,  rtems_signal_set *signal_set){  ISR_Level              _level;  _ISR_Disable( _level );    *signal_set |= signals;  _ISR_Enable( _level );}#endif/* end of include file */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -