/* Process_asr
|
/* Process_asr
|
*
|
*
|
* This is the asynchronous signal routine (asr) for task 1.
|
* This is the asynchronous signal routine (asr) for task 1.
|
* It demonstrates that ASRs can block execute and block.
|
* It demonstrates that ASRs can block execute and block.
|
*
|
*
|
* Input parameters:
|
* Input parameters:
|
* the_signal_set - signal set
|
* the_signal_set - signal set
|
*
|
*
|
* Output parameters: NONE
|
* Output parameters: NONE
|
*
|
*
|
* COPYRIGHT (c) 1989-1999.
|
* COPYRIGHT (c) 1989-1999.
|
* On-Line Applications Research Corporation (OAR).
|
* On-Line Applications Research Corporation (OAR).
|
*
|
*
|
* The license and distribution terms for this file may be
|
* The license and distribution terms for this file may be
|
* found in the file LICENSE in this distribution or at
|
* found in the file LICENSE in this distribution or at
|
* http://www.OARcorp.com/rtems/license.html.
|
* http://www.OARcorp.com/rtems/license.html.
|
*
|
*
|
* $Id: asr.c,v 1.2 2001-09-27 12:02:32 chris Exp $
|
* $Id: asr.c,v 1.2 2001-09-27 12:02:32 chris Exp $
|
*/
|
*/
|
|
|
#include "system.h"
|
#include "system.h"
|
|
|
rtems_asr Process_asr(
|
rtems_asr Process_asr(
|
rtems_signal_set the_signal_set
|
rtems_signal_set the_signal_set
|
)
|
)
|
{
|
{
|
rtems_status_code status;
|
rtems_status_code status;
|
|
|
printf( "ASR - ENTRY - signal => %08x\n", the_signal_set );
|
printf( "ASR - ENTRY - signal => %08x\n", the_signal_set );
|
switch( the_signal_set ) {
|
switch( the_signal_set ) {
|
case RTEMS_SIGNAL_16:
|
case RTEMS_SIGNAL_16:
|
case RTEMS_SIGNAL_17:
|
case RTEMS_SIGNAL_17:
|
case RTEMS_SIGNAL_18 | RTEMS_SIGNAL_19:
|
case RTEMS_SIGNAL_18 | RTEMS_SIGNAL_19:
|
break;
|
break;
|
case RTEMS_SIGNAL_0:
|
case RTEMS_SIGNAL_0:
|
case RTEMS_SIGNAL_1:
|
case RTEMS_SIGNAL_1:
|
puts( "ASR - rtems_task_wake_after - yield processor" );
|
puts( "ASR - rtems_task_wake_after - yield processor" );
|
status = rtems_task_wake_after( RTEMS_YIELD_PROCESSOR );
|
status = rtems_task_wake_after( RTEMS_YIELD_PROCESSOR );
|
directive_failed( status, "rtems_task_wake_after yield" );
|
directive_failed( status, "rtems_task_wake_after yield" );
|
break;
|
break;
|
case RTEMS_SIGNAL_3:
|
case RTEMS_SIGNAL_3:
|
Asr_fired = TRUE;
|
Asr_fired = TRUE;
|
break;
|
break;
|
}
|
}
|
printf( "ASR - EXIT - signal => %08x\n", the_signal_set );
|
printf( "ASR - EXIT - signal => %08x\n", the_signal_set );
|
}
|
}
|
|
|