source: rtems/testsuites/sptests/sp08/task1.c @ 4b374f36

4.104.114.84.95
Last change on this file since 4b374f36 was ac7d5ef0, checked in by Joel Sherrill <joel.sherrill@…>, on 05/11/95 at 17:39:37

Initial revision

  • Property mode set to 100644
File size: 6.0 KB
Line 
1/*  Task_1
2 *
3 *  This routine serves as a test task.  It verifies all combinations of
4 *  task mode changes.
5 *
6 *  Input parameters:
7 *    argument - task argument
8 *
9 *  Output parameters:  NONE
10 *
11 *  COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
12 *  On-Line Applications Research Corporation (OAR).
13 *  All rights assigned to U.S. Government, 1994.
14 *
15 *  This material may be reproduced by or for the U.S. Government pursuant
16 *  to the copyright license under the clause at DFARS 252.227-7013.  This
17 *  notice must appear in all copies of this file and its derivatives.
18 *
19 *  $Id$
20 */
21
22#include "system.h"
23
24rtems_task Task_1(
25  rtems_task_argument argument
26)
27{
28  rtems_mode        previous_mode;
29  rtems_status_code status;
30
31/* BEGINNING OF RTEMS_ASR */
32
33  status = rtems_task_mode( RTEMS_ASR, RTEMS_ASR_MASK, &previous_mode );
34  directive_failed( status, "rtems_task_mode" );
35  put_mode(
36    "TA1 - rtems_task_mode - RTEMS_ASR                  - previous mode: ",
37    previous_mode
38  );
39
40  status = rtems_task_mode(
41    RTEMS_NO_ASR,
42    RTEMS_ASR_MASK,
43    &previous_mode
44  );
45  directive_failed( status, "rtems_task_mode" );
46  put_mode(
47    "TA1 - rtems_task_mode - RTEMS_NO_ASR               - previous mode: ",
48    previous_mode
49  );
50
51  status = rtems_task_mode(
52    RTEMS_NO_ASR,
53    RTEMS_ASR_MASK,
54    &previous_mode
55  );
56  directive_failed( status, "rtems_task_mode" );
57  put_mode(
58    "TA1 - rtems_task_mode - RTEMS_NO_ASR               - previous mode: ",
59    previous_mode
60  );
61
62  status = rtems_task_mode(
63    RTEMS_ASR,
64    RTEMS_ASR_MASK,
65    &previous_mode
66  );
67  directive_failed( status, "rtems_task_mode" );
68  put_mode(
69    "TA1 - rtems_task_mode - RTEMS_ASR                  - previous mode: ",
70    previous_mode
71  );
72
73/* END OF RTEMS_ASR */
74
75/* BEGINNING OF RTEMS_TIMESLICE */
76
77  status = rtems_task_mode(
78    RTEMS_NO_TIMESLICE,
79    RTEMS_TIMESLICE_MASK,
80    &previous_mode
81  );
82  directive_failed( status, "rtems_task_mode" );
83  put_mode(
84    "TA1 - rtems_task_mode - RTEMS_NO_TIMESLICE         - previous mode: ",
85    previous_mode
86  );
87
88  status = rtems_task_mode(
89    RTEMS_TIMESLICE,
90    RTEMS_TIMESLICE_MASK,
91    &previous_mode
92  );
93  directive_failed( status, "rtems_task_mode" );
94  put_mode(
95    "TA1 - rtems_task_mode - RTEMS_TIMESLICE            - previous mode: ",
96    previous_mode
97  );
98
99  status = rtems_task_mode(
100    RTEMS_TIMESLICE,
101    RTEMS_TIMESLICE_MASK,
102    &previous_mode
103  );
104  directive_failed( status, "rtems_task_mode" );
105  put_mode(
106    "TA1 - rtems_task_mode - RTEMS_TIMESLICE            - previous mode: ",
107    previous_mode
108  );
109
110  status = rtems_task_mode(
111    RTEMS_NO_TIMESLICE,
112    RTEMS_TIMESLICE_MASK,
113    &previous_mode
114  );
115  directive_failed( status, "rtems_task_mode" );
116  put_mode(
117    "TA1 - rtems_task_mode - RTEMS_NO_TIMESLICE         - previous mode: ",
118    previous_mode
119  );
120
121/* END OF RTEMS_TIMESLICE */
122
123/* BEGINNING OF RTEMS_PREEMPT */
124
125  status = rtems_task_mode(
126    RTEMS_PREEMPT,
127    RTEMS_PREEMPT_MASK,
128    &previous_mode
129  );
130  directive_failed( status, "rtems_task_mode" );
131  put_mode(
132    "TA1 - rtems_task_mode - RTEMS_PREEMPT              - previous mode: ",
133    previous_mode
134  );
135
136  status = rtems_task_mode(
137    RTEMS_NO_PREEMPT,
138    RTEMS_PREEMPT_MASK,
139    &previous_mode
140  );
141  directive_failed( status, "rtems_task_mode" );
142  put_mode(
143    "TA1 - rtems_task_mode - RTEMS_NO_PREEMPT           - previous mode: ",
144    previous_mode
145  );
146
147  status = rtems_task_mode(
148    RTEMS_NO_PREEMPT,
149    RTEMS_PREEMPT_MASK,
150    &previous_mode
151  );
152  directive_failed( status, "rtems_task_mode" );
153  put_mode(
154    "TA1 - rtems_task_mode - RTEMS_NO_PREEMPT           - previous mode: ",
155    previous_mode
156  );
157
158  status = rtems_task_mode(
159    RTEMS_PREEMPT,
160    RTEMS_PREEMPT_MASK,
161    &previous_mode
162  );
163  directive_failed( status, "rtems_task_mode" );
164  put_mode(
165    "TA1 - rtems_task_mode - RTEMS_PREEMPT              - previous mode: ",
166    previous_mode
167  );
168
169/* END OF RTEMS_PREEMPT */
170
171/* BEGINNING OF RTEMS_INTERRUPT_LEVEL */
172
173  status = rtems_task_mode(
174    RTEMS_INTERRUPT_LEVEL(3),
175    RTEMS_INTERRUPT_MASK,
176    &previous_mode
177  );
178  directive_failed( status, "rtems_task_mode" );
179  put_mode(
180    "TA1 - rtems_task_mode - RTEMS_INTERRUPT_LEVEL( 3 ) - previous mode: ",
181    previous_mode
182  );
183
184  status = rtems_task_mode(
185    RTEMS_INTERRUPT_LEVEL(5),
186    RTEMS_INTERRUPT_MASK,
187    &previous_mode
188  );
189  directive_failed( status, "rtems_task_mode" );
190  put_mode(
191    "TA1 - rtems_task_mode - RTEMS_INTERRUPT_LEVEL( 5 ) - previous mode: ",
192    previous_mode
193  );
194
195/* END OF RTEMS_INTERRUPT_LEVEL */
196
197/* BEGINNING OF COMBINATIONS */
198
199  status = rtems_task_mode(
200    RTEMS_INTERRUPT_LEVEL(3) | RTEMS_NO_ASR |
201      RTEMS_TIMESLICE | RTEMS_NO_PREEMPT,
202    RTEMS_INTERRUPT_MASK | RTEMS_ASR_MASK |
203      RTEMS_TIMESLICE_MASK | RTEMS_PREEMPT_MASK,
204    &previous_mode
205  );
206  directive_failed( status, "rtems_task_mode" );
207  put_mode(
208    "TA1 - rtems_task_mode - set all modes        - previous mode: ",
209    previous_mode
210  );
211
212  status = rtems_task_mode(
213    RTEMS_INTERRUPT_LEVEL(3) | RTEMS_NO_ASR |
214      RTEMS_TIMESLICE | RTEMS_NO_PREEMPT,
215    RTEMS_INTERRUPT_MASK | RTEMS_ASR_MASK |
216      RTEMS_TIMESLICE_MASK | RTEMS_PREEMPT_MASK,
217    &previous_mode
218  );
219  directive_failed( status, "rtems_task_mode" );
220  put_mode(
221    "TA1 - rtems_task_mode - set all modes        - previous mode: ",
222    previous_mode
223  );
224
225  status = rtems_task_mode(
226    RTEMS_INTERRUPT_LEVEL(0) | RTEMS_ASR | RTEMS_NO_TIMESLICE | RTEMS_PREEMPT,
227    RTEMS_INTERRUPT_MASK | RTEMS_ASR_MASK |
228    RTEMS_TIMESLICE_MASK | RTEMS_PREEMPT_MASK,
229    &previous_mode
230  );
231  directive_failed( status, "rtems_task_mode" );
232  put_mode(
233    "TA1 - rtems_task_mode - clear all modes      - previous mode: ",
234    previous_mode
235  );
236
237/* END OF COMBINATIONS */
238
239/* BEGINNING OF CURRENT MODE */
240
241  status = rtems_task_mode(
242    RTEMS_CURRENT_MODE,
243    RTEMS_CURRENT_MODE,
244    &previous_mode
245  );
246  directive_failed( status, "rtems_task_mode" );
247  put_mode(
248    "TA1 - rtems_task_mode - get current mode     - previous mode: ",
249    previous_mode
250  );
251
252/* END OF CURRENT MODE */
253
254  puts( "*** END OF TEST 8 ***" );
255  exit( 0 );
256}
Note: See TracBrowser for help on using the repository browser.