source: rtems/testsuites/sptests/sp22/task1.c @ 08311cc3

4.104.114.84.95
Last change on this file since 08311cc3 was 08311cc3, checked in by Joel Sherrill <joel.sherrill@…>, on 11/17/99 at 17:51:34

Updated copyright notice.

  • Property mode set to 100644
File size: 4.3 KB
Line 
1/*  Task_1
2 *
3 *  This routine serves as a test task.  It verifies the basic task
4 *  switching capabilities of the executive.
5 *
6 *  Input parameters:
7 *    argument - task argument
8 *
9 *  Output parameters:  NONE
10 *
11 *  COPYRIGHT (c) 1989-1999.
12 *  On-Line Applications Research Corporation (OAR).
13 *
14 *  The license and distribution terms for this file may be
15 *  found in the file LICENSE in this distribution or at
16 *  http://www.OARcorp.com/rtems/license.html.
17 *
18 *  $Id$
19 */
20
21#include "system.h"
22
23rtems_task Task_1(
24  rtems_task_argument argument
25)
26{
27  rtems_id          tmid;
28  rtems_time_of_day time;
29  rtems_status_code status;
30
31/* Get id */
32
33  puts( "TA1 - rtems_timer_ident - identing timer 1" );
34  status = rtems_timer_ident( Timer_name[ 1 ], &tmid );
35  directive_failed( status, "rtems_timer_ident" );
36  printf( "TA1 - timer 1 has id (0x%x)\n", tmid );
37
38/* after which is allowed to fire */
39
40  Print_time();
41
42  puts( "TA1 - rtems_timer_fire_after - timer 1 in 3 seconds" );
43  status = rtems_timer_fire_after(
44    tmid,
45    3 * TICKS_PER_SECOND,
46    Delayed_resume,
47    NULL
48  );
49  directive_failed( status, "rtems_timer_fire_after" );
50
51  puts( "TA1 - rtems_task_suspend( RTEMS_SELF )" );
52  status = rtems_task_suspend( RTEMS_SELF );
53  directive_failed( status, "rtems_task_suspend" );
54
55  Print_time();
56
57/* after which is reset and allowed to fire */
58
59  puts( "TA1 - rtems_timer_fire_after - timer 1 in 3 seconds" );
60  status = rtems_timer_fire_after(
61    tmid,
62    3 * TICKS_PER_SECOND,
63    Delayed_resume,
64    NULL
65  );
66  directive_failed( status, "rtems_timer_fire_after" );
67
68  puts( "TA1 - rtems_task_wake_after - 1 second" );
69  status = rtems_task_wake_after( 1 * TICKS_PER_SECOND );
70  directive_failed( status, "rtems_task_wake_after" );
71
72  Print_time();
73
74  puts( "TA1 - rtems_timer_reset - timer 1" );
75  status = rtems_timer_reset( tmid );
76  directive_failed( status, "rtems_timer_reset" );
77
78  puts( "TA1 - rtems_task_suspend( RTEMS_SELF )" );
79  status = rtems_task_suspend( RTEMS_SELF );
80  directive_failed( status, "rtems_task_suspend" );
81
82  Print_time();
83
84  rtems_test_pause();
85
86  /*
87   *  Reset the time since we do not know how long the user waited
88   *  before pressing <cr> at the pause.  This insures that the
89   *  actual output matches the screen.
90   */
91
92  build_time( &time, 12, 31, 1988, 9, 0, 7, 0 );
93
94  status = rtems_clock_set( &time );
95  directive_failed( status, "rtems_clock_set" );
96
97/* after which is canceled */
98
99  puts( "TA1 - rtems_timer_fire_after - timer 1 in 3 seconds" );
100  status = rtems_timer_fire_after(
101    tmid,
102    3 * TICKS_PER_SECOND,
103    Delayed_resume,
104    NULL
105  );
106  directive_failed( status, "rtems_timer_fire_after" );
107
108  puts( "TA1 - rtems_timer_cancel - timer 1" );
109  status = rtems_timer_cancel( tmid );
110  directive_failed( status, "rtems_timer_cancel" );
111
112/* when which is allowed to fire */
113
114  Print_time();
115
116  status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time );
117  directive_failed( status, "rtems_clock_get" );
118
119  time.second += 3;
120
121  puts( "TA1 - rtems_timer_fire_when - timer 1 in 3 seconds" );
122  status = rtems_timer_fire_when( tmid, &time, Delayed_resume, NULL );
123  directive_failed( status, "rtems_timer_fire_when" );
124
125  puts( "TA1 - rtems_task_suspend( RTEMS_SELF )" );
126  status = rtems_task_suspend( RTEMS_SELF );
127  directive_failed( status, "rtems_task_suspend" );
128
129  Print_time();
130
131/* when which is canceled */
132
133  status = rtems_clock_get( RTEMS_CLOCK_GET_TOD, &time );
134  directive_failed( status, "rtems_clock_get" );
135
136  time.second += 3;
137
138  puts( "TA1 - rtems_timer_fire_when - timer 1 in 3 seconds" );
139  status = rtems_timer_fire_when( tmid, &time, Delayed_resume, NULL );
140  directive_failed( status, "rtems_timer_fire_when" );
141
142  puts( "TA1 - rtems_task_wake_after - 1 second" );
143  status = rtems_task_wake_after( 1 * TICKS_PER_SECOND );
144  directive_failed( status, "rtems_task_wake_after" );
145
146  Print_time();
147
148  puts( "TA1 - rtems_timer_cancel - timer 1" );
149  status = rtems_timer_cancel( tmid );
150  directive_failed( status, "rtems_timer_cancel" );
151
152/* delete */
153  puts( "TA1 - rtems_task_wake_after - YIELD (only task at priority)" );
154  status = rtems_task_wake_after( RTEMS_YIELD_PROCESSOR );
155  directive_failed( status, "rtems_task_wake_after" );
156
157  puts( "TA1 - timer_deleting - timer 1" );
158  status = rtems_timer_delete( tmid );
159  directive_failed( status, "rtems_timer_delete" );
160
161  puts( "*** END OF TEST 22 *** " );
162  exit( 0 );
163}
Note: See TracBrowser for help on using the repository browser.