source: rtems/testsuites/itrontests/itrontask03/preempt.c @ ebbe119e

4.104.114.84.95
Last change on this file since ebbe119e was 2f564fee, checked in by Joel Sherrill <joel.sherrill@…>, on 09/04/03 at 18:53:25

2003-09-04 Joel Sherrill <joel@…>

  • itronhello/init.c, itronhello/itronhello.doc, itronhello/system.h, itronmbf01/init.c, itronmbf01/itronmbf01.doc, itronmbf01/system.h, itronmbox01/init.c, itronmbox01/system.h, itronsem01/init.c, itronsem01/itronsem01.doc, itronsem01/system.h, itrontask01/init.c, itrontask01/itrontask01.doc, itrontask01/system.h, itrontask01/task1.c, itrontask02/dormant.c, itrontask02/init.c, itrontask02/itrontask02.doc, itrontask02/system.h, itrontask03/init.c, itrontask03/itrontask03.doc, itrontask03/preempt.c, itrontask03/system.h, itrontask03/task1.c, itrontask03/task2.c, itrontask03/task3.c, itrontask04/init.c, itrontask04/itrontask04.doc, itrontask04/system.h, itrontask04/task1.c, itrontask04/task2.c, itrontask04/task3.c, itrontime01/init.c, itrontime01/system.h: URL for license changed.
  • Property mode set to 100644
File size: 1.4 KB
Line 
1/*  Preempt_task
2 *
3 *  This routine serves as a test task.  It verifies the task manager.
4 *
5 *  Input parameters:
6 *    argument - task argument
7 *
8 *  Output parameters:  NONE
9 *
10 *  COPYRIGHT (c) 1989-1999.
11 *  On-Line Applications Research Corporation (OAR).
12 *
13 *  The license and distribution terms for this file may be
14 *  found in the file LICENSE in this distribution or at
15 *  http://www.rtems.com/license/LICENSE.
16 *
17 *  $Id$
18 */
19
20#include <assert.h>
21#include "system.h"
22
23int Preempt_task_Count;
24
25void Preempt_task()
26{
27  ER       status;
28  T_RTSK   pk_rtsk;
29
30  puts( "PREEMPT - ref_tsk validation"  );
31  status = ref_tsk( &pk_rtsk, PREEMPT_TASK_ID );
32  fatal_directive_status( status, E_OK , "ref_tsk of PREEMPT");
33  assert( pk_rtsk.tskpri  == PREEMPT_PRIORITY );
34  assert( pk_rtsk.itskpri == PREEMPT_PRIORITY );
35  assert( pk_rtsk.task    == Preempt_task );
36  assert( pk_rtsk.stksz   >= RTEMS_MINIMUM_STACK_SIZE );
37  assert( pk_rtsk.tskstat == (TTS_RUN | TTS_RDY) );
38
39  if ( Preempt_task_Count == 0 ) {
40    Preempt_task_Count ++;
41    puts( "PREEMPT - chg_pri increment priority ");
42    status = chg_pri( PREEMPT_TASK_ID, (PREEMPT_PRIORITY+1) );
43    directive_failed( status, "chg_pri" );
44    puts( "PREEMPT - ext_tsk - going to DORMANT state" );
45    ext_tsk( );
46    assert( 0 );
47  } else {
48    Preempt_task_Count ++;
49    puts( "PREEMPT - exd_tsk - Exit and Delete task" );
50    exd_tsk(  );
51    assert( 0 );
52  }
53}
54
Note: See TracBrowser for help on using the repository browser.