URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [rtos/] [rtems/] [c/] [src/] [exec/] [rtems/] [macros/] [rtems/] [rtems/] [asr.inl] - Rev 173
Compare with Previous | Blame | View Log
/* macros/asr.h
*
* 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.OARcorp.com/rtems/license.html.
*
* $Id: asr.inl,v 1.2 2001-09-27 11:59:19 chris Exp $
*/
#ifndef __INLINE_ASR_h
#define __INLINE_ASR_h
#include <rtems/score/isr.h>
/*PAGE
*
* _ASR_Initialize
*
*/
#define _ASR_Initialize( _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
*
*/
#define _ASR_Swap_signals( _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
*
*/
#define _ASR_Is_null_handler( _asr_handler ) \
( (_asr_handler) == NULL )
/*PAGE
*
* _ASR_Are_signals_pending
*
*/
#define _ASR_Are_signals_pending( _information ) \
( (_information)->signals_posted != 0 )
/*PAGE
*
* _ASR_Post_signals
*
*/
#define _ASR_Post_signals( _signals, _signal_set ) \
do { \
ISR_Level _level; \
\
_ISR_Disable( _level ); \
*(_signal_set) |= (_signals); \
_ISR_Enable( _level ); \
} while ( 0 )
#endif
/* end of include file */