source: rtems/testsuites/sptests/sp30/task1.c

Last change on this file was d987a57, checked in by Joel Sherrill <joel@…>, on 03/31/22 at 21:32:45

testsuites/sptests/sp[2-3]*: Change license to BSD-2

Updates #3053.

  • Property mode set to 100644
File size: 2.9 KB
Line 
1/* SPDX-License-Identifier: BSD-2-Clause */
2
3/*  Task_1_through_3
4 *
5 *  This task is a cyclic version of test1 to asssure that the times
6 *  displayed are not skewed as in test1.  "TA1" is printed once every
7 *  5 seconds, "TA2" is printed once every 10 seconds, and "TA3" is
8 *  printed once every 15 seconds.  The times displayed should be
9 *  in multiples of 5, 10, and 15 for TA1, TA2, and TA3 respectively.
10 *  If the times are skewed from these values, then the calendar time
11 *  does not correspond correctly with the number of ticks.
12 *
13 *  COPYRIGHT (c) 1989-2009.
14 *  On-Line Applications Research Corporation (OAR).
15 *
16 * Redistribution and use in source and binary forms, with or without
17 * modification, are permitted provided that the following conditions
18 * are met:
19 * 1. Redistributions of source code must retain the above copyright
20 *    notice, this list of conditions and the following disclaimer.
21 * 2. Redistributions in binary form must reproduce the above copyright
22 *    notice, this list of conditions and the following disclaimer in the
23 *    documentation and/or other materials provided with the distribution.
24 *
25 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
26 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
28 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
29 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
30 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
31 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
32 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
33 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
34 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
35 * POSSIBILITY OF SUCH DAMAGE.
36 */
37
38#ifdef HAVE_CONFIG_H
39#include "config.h"
40#endif
41
42#include "system.h"
43
44rtems_task Task_1_through_3(
45  rtems_task_argument argument
46)
47{
48  rtems_id          tid;
49  rtems_time_of_day time;
50  rtems_status_code status;
51
52  status = rtems_task_ident( RTEMS_WHO_AM_I, RTEMS_SEARCH_ALL_NODES, &tid );
53  directive_failed( status, "rtems_task_ident of self" );
54
55  while ( FOREVER )  {
56    status = rtems_timer_server_fire_after(
57      Timer_id[ argument ],
58      (task_number( tid ) - 1) * 5 * rtems_clock_get_ticks_per_second(),
59      Resume_task,
60      (void *) &tid
61    );
62    directive_failed( status, "rtems_timer_server_fire_after failed" );
63
64    status = rtems_clock_get_tod( &time );
65    directive_failed( status, "rtems_clock_get_tod failed" );
66
67    if ( time.second >= 35 ) {
68      TEST_END();
69      rtems_test_exit( 0 );
70    }
71
72    put_name( Task_name[ task_number( tid ) - 1 ], FALSE );
73    print_time( " - rtems_clock_get_tod - ", &time, "\n" );
74
75    status = rtems_task_suspend( RTEMS_SELF );
76    directive_failed( status, "rtems_task_suspend" );
77  }
78}
Note: See TracBrowser for help on using the repository browser.