source:
rtems/testsuites/tmtests/tm24/task1.c
@
95a81ab
Last change on this file since 95a81ab was 95a81ab, checked in by Joel Sherrill <joel.sherrill@…>, on 09/04/03 at 18:53:55 | |
---|---|
|
|
File size: 2.7 KB |
Rev | Line | |
---|---|---|
[ac7d5ef0] | 1 | /* |
2 | * | |
[08311cc3] | 3 | * COPYRIGHT (c) 1989-1999. |
[ac7d5ef0] | 4 | * On-Line Applications Research Corporation (OAR). |
5 | * | |
[98e4ebf5] | 6 | * The license and distribution terms for this file may be |
7 | * found in the file LICENSE in this distribution or at | |
[95a81ab] | 8 | * http://www.rtems.com/license/LICENSE. |
[ac7d5ef0] | 9 | * |
10 | * $Id$ | |
11 | */ | |
12 | ||
[3a4ae6c] | 13 | #define TEST_INIT |
[ac7d5ef0] | 14 | #include "system.h" |
15 | ||
16 | rtems_unsigned32 Task_count; | |
17 | ||
18 | rtems_task Tasks( | |
19 | rtems_task_argument argument | |
20 | ); | |
21 | ||
22 | rtems_task High_task( | |
23 | rtems_task_argument argument | |
24 | ); | |
25 | ||
26 | rtems_task Init( | |
27 | rtems_task_argument argument | |
28 | ) | |
29 | { | |
30 | rtems_id id; | |
31 | rtems_unsigned32 index; | |
32 | rtems_status_code status; | |
33 | ||
[3a4ae6c] | 34 | Print_Warning(); |
35 | ||
[ac7d5ef0] | 36 | puts( "\n\n*** TIME TEST 24 ***" ); |
37 | ||
38 | status = rtems_task_create( | |
39 | rtems_build_name( 'H', 'I', 'G', 'H' ), | |
40 | 10, | |
[3652ad35] | 41 | RTEMS_MINIMUM_STACK_SIZE, |
[ac7d5ef0] | 42 | RTEMS_DEFAULT_MODES, |
43 | RTEMS_DEFAULT_ATTRIBUTES, | |
44 | &id | |
45 | ); | |
46 | directive_failed( status, "rtems_task_create HIGH" ); | |
47 | ||
48 | status = rtems_task_start( id, High_task, 0 ); | |
49 | directive_failed( status, "rtems_task_create HIGH" ); | |
50 | ||
51 | for ( index = 1 ; index <= OPERATION_COUNT ; index++ ) { | |
52 | status = rtems_task_create( | |
53 | rtems_build_name( 'R', 'E', 'S', 'T' ), | |
54 | 128, | |
[3652ad35] | 55 | RTEMS_MINIMUM_STACK_SIZE, |
[ac7d5ef0] | 56 | RTEMS_DEFAULT_MODES, |
57 | RTEMS_DEFAULT_ATTRIBUTES, | |
58 | &id | |
59 | ); | |
60 | directive_failed( status, "rtems_task_create LOOP" ); | |
61 | ||
62 | status = rtems_task_start( id, Tasks, 0 ); | |
63 | directive_failed( status, "rtems_task_start LOOP" ); | |
64 | } | |
65 | status = rtems_task_delete( RTEMS_SELF ); | |
66 | directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); | |
67 | } | |
68 | ||
69 | rtems_task High_task( | |
70 | rtems_task_argument argument | |
71 | ) | |
72 | { | |
73 | rtems_status_code status; | |
74 | rtems_unsigned32 index; | |
75 | ||
76 | Timer_initialize(); | |
77 | for ( index=1 ; index <= OPERATION_COUNT ; index++ ) | |
78 | (void) Empty_function(); | |
79 | overhead = Read_timer(); | |
80 | ||
81 | Timer_initialize(); | |
82 | for ( index=1 ; index <= OPERATION_COUNT ; index++ ) | |
83 | (void) rtems_task_wake_after( RTEMS_YIELD_PROCESSOR ); | |
84 | end_time = Read_timer(); | |
85 | ||
86 | put_time( | |
[5c491aef] | 87 | "rtems_task_wake_after: yield -- returns to caller", |
[ac7d5ef0] | 88 | end_time, |
89 | OPERATION_COUNT, | |
90 | overhead, | |
91 | CALLING_OVERHEAD_TASK_WAKE_AFTER | |
92 | ); | |
93 | ||
94 | Task_count = 0; | |
95 | ||
96 | status = rtems_task_delete( RTEMS_SELF ); | |
97 | directive_failed( status, "rtems_task_delete of RTEMS_SELF" ); | |
98 | } | |
99 | ||
100 | rtems_task Tasks( | |
101 | rtems_task_argument argument | |
102 | ) | |
103 | { | |
104 | Task_count++; | |
105 | ||
106 | if ( Task_count == 1 ) | |
107 | Timer_initialize(); | |
108 | else if ( Task_count == OPERATION_COUNT ) { | |
109 | end_time = Read_timer(); | |
110 | ||
111 | put_time( | |
[5c491aef] | 112 | "rtems_task_wake_after: yields -- preempts caller", |
[ac7d5ef0] | 113 | end_time, |
114 | OPERATION_COUNT, | |
115 | overhead, | |
116 | CALLING_OVERHEAD_TASK_WAKE_AFTER | |
117 | ); | |
118 | ||
[3a4ae6c] | 119 | puts( "*** END OF TEST 24 ***" ); |
[b454bc9] | 120 | rtems_test_exit( 0 ); |
[ac7d5ef0] | 121 | } |
122 | (void) rtems_task_wake_after( RTEMS_YIELD_PROCESSOR ); | |
123 | } |
Note: See TracBrowser
for help on using the repository browser.