source: rtems/testsuites/sptests/sp08/init.c @ 3c8eda7

4.115
Last change on this file since 3c8eda7 was 3c8eda7, checked in by Joel Sherrill <joel.sherrill@…>, on 05/12/12 at 16:01:26

sptests - Eliminate missing prototype warnings

  • Property mode set to 100644
File size: 7.1 KB
Line 
1/*
2 *  COPYRIGHT (c) 1989-2012.
3 *  On-Line Applications Research Corporation (OAR).
4 *
5 *  The license and distribution terms for this file may be
6 *  found in the file LICENSE in this distribution or at
7 *  http://www.rtems.com/license/LICENSE.
8 */
9
10#ifdef HAVE_CONFIG_H
11#include "config.h"
12#endif
13
14#include <tmacros.h>
15
16/* forward declarations to avoid warnings */
17rtems_task Init(rtems_task_argument argument);
18
19#define PRIxModes_Control       PRIx32
20#define PRIxrtems_mode          PRIxModes_Control
21
22#define put_mode( _comment, _output_mode ) \
23   printf( "%s %08" PRIxrtems_mode "\n", _comment, _output_mode );
24
25rtems_task Init(
26  rtems_task_argument argument
27)
28{
29  rtems_mode        previous_mode;
30  rtems_status_code status;
31
32  puts( "\n\n*** TEST 8 ***" );
33
34/* BEGINNING OF RTEMS_ASR */
35
36  status = rtems_task_mode( RTEMS_ASR, RTEMS_ASR_MASK, &previous_mode );
37  directive_failed( status, "rtems_task_mode" );
38  put_mode(
39    "TA1 - rtems_task_mode - RTEMS_ASR                  - previous mode: ",
40    previous_mode
41  );
42
43  status = rtems_task_mode(
44    RTEMS_NO_ASR,
45    RTEMS_ASR_MASK,
46    &previous_mode
47  );
48  directive_failed( status, "rtems_task_mode" );
49  put_mode(
50    "TA1 - rtems_task_mode - RTEMS_NO_ASR               - previous mode: ",
51    previous_mode
52  );
53
54  status = rtems_task_mode(
55    RTEMS_NO_ASR,
56    RTEMS_ASR_MASK,
57    &previous_mode
58  );
59  directive_failed( status, "rtems_task_mode" );
60  put_mode(
61    "TA1 - rtems_task_mode - RTEMS_NO_ASR               - previous mode: ",
62    previous_mode
63  );
64
65  status = rtems_task_mode(
66    RTEMS_ASR,
67    RTEMS_ASR_MASK,
68    &previous_mode
69  );
70  directive_failed( status, "rtems_task_mode" );
71  put_mode(
72    "TA1 - rtems_task_mode - RTEMS_ASR                  - previous mode: ",
73    previous_mode
74  );
75
76/* END OF RTEMS_ASR */
77
78/* BEGINNING OF RTEMS_TIMESLICE */
79
80  status = rtems_task_mode(
81    RTEMS_NO_TIMESLICE,
82    RTEMS_TIMESLICE_MASK,
83    &previous_mode
84  );
85  directive_failed( status, "rtems_task_mode" );
86  put_mode(
87    "TA1 - rtems_task_mode - RTEMS_NO_TIMESLICE         - previous mode: ",
88    previous_mode
89  );
90
91  status = rtems_task_mode(
92    RTEMS_TIMESLICE,
93    RTEMS_TIMESLICE_MASK,
94    &previous_mode
95  );
96  directive_failed( status, "rtems_task_mode" );
97  put_mode(
98    "TA1 - rtems_task_mode - RTEMS_TIMESLICE            - previous mode: ",
99    previous_mode
100  );
101
102  status = rtems_task_mode(
103    RTEMS_TIMESLICE,
104    RTEMS_TIMESLICE_MASK,
105    &previous_mode
106  );
107  directive_failed( status, "rtems_task_mode" );
108  put_mode(
109    "TA1 - rtems_task_mode - RTEMS_TIMESLICE            - previous mode: ",
110    previous_mode
111  );
112
113  status = rtems_task_mode(
114    RTEMS_NO_TIMESLICE,
115    RTEMS_TIMESLICE_MASK,
116    &previous_mode
117  );
118  directive_failed( status, "rtems_task_mode" );
119  put_mode(
120    "TA1 - rtems_task_mode - RTEMS_NO_TIMESLICE         - previous mode: ",
121    previous_mode
122  );
123
124/* END OF RTEMS_TIMESLICE */
125
126/* BEGINNING OF RTEMS_PREEMPT */
127
128  status = rtems_task_mode(
129    RTEMS_PREEMPT,
130    RTEMS_PREEMPT_MASK,
131    &previous_mode
132  );
133  directive_failed( status, "rtems_task_mode" );
134  put_mode(
135    "TA1 - rtems_task_mode - RTEMS_PREEMPT              - previous mode: ",
136    previous_mode
137  );
138
139  status = rtems_task_mode(
140    RTEMS_NO_PREEMPT,
141    RTEMS_PREEMPT_MASK,
142    &previous_mode
143  );
144  directive_failed( status, "rtems_task_mode" );
145  put_mode(
146    "TA1 - rtems_task_mode - RTEMS_NO_PREEMPT           - previous mode: ",
147    previous_mode
148  );
149
150  status = rtems_task_mode(
151    RTEMS_NO_PREEMPT,
152    RTEMS_PREEMPT_MASK,
153    &previous_mode
154  );
155  directive_failed( status, "rtems_task_mode" );
156  put_mode(
157    "TA1 - rtems_task_mode - RTEMS_NO_PREEMPT           - previous mode: ",
158    previous_mode
159  );
160
161  status = rtems_task_mode(
162    RTEMS_PREEMPT,
163    RTEMS_PREEMPT_MASK,
164    &previous_mode
165  );
166  directive_failed( status, "rtems_task_mode" );
167  put_mode(
168    "TA1 - rtems_task_mode - RTEMS_PREEMPT              - previous mode: ",
169    previous_mode
170  );
171
172/* END OF RTEMS_PREEMPT */
173
174/* BEGINNING OF RTEMS_INTERRUPT_LEVEL */
175
176  status = rtems_task_mode(
177    RTEMS_INTERRUPT_LEVEL(3),
178    RTEMS_INTERRUPT_MASK,
179    &previous_mode
180  );
181  directive_failed( status, "rtems_task_mode" );
182  put_mode(
183    "TA1 - rtems_task_mode - RTEMS_INTERRUPT_LEVEL( 3 ) - previous mode: ",
184    previous_mode
185  );
186
187  status = rtems_task_mode(
188    RTEMS_INTERRUPT_LEVEL(5),
189    RTEMS_INTERRUPT_MASK,
190    &previous_mode
191  );
192  directive_failed( status, "rtems_task_mode" );
193  put_mode(
194    "TA1 - rtems_task_mode - RTEMS_INTERRUPT_LEVEL( 5 ) - previous mode: ",
195    previous_mode
196  );
197
198/* END OF RTEMS_INTERRUPT_LEVEL */
199
200/* BEGINNING OF COMBINATIONS */
201
202  status = rtems_task_mode(
203    RTEMS_INTERRUPT_LEVEL(3) | RTEMS_NO_ASR |
204      RTEMS_TIMESLICE | RTEMS_NO_PREEMPT,
205    RTEMS_INTERRUPT_MASK | RTEMS_ASR_MASK |
206      RTEMS_TIMESLICE_MASK | RTEMS_PREEMPT_MASK,
207    &previous_mode
208  );
209  directive_failed( status, "rtems_task_mode" );
210  put_mode(
211    "TA1 - rtems_task_mode - set all modes        - previous mode: ",
212    previous_mode
213  );
214
215  status = rtems_task_mode(
216    RTEMS_INTERRUPT_LEVEL(3) | RTEMS_NO_ASR |
217      RTEMS_TIMESLICE | RTEMS_NO_PREEMPT,
218    RTEMS_INTERRUPT_MASK | RTEMS_ASR_MASK |
219      RTEMS_TIMESLICE_MASK | RTEMS_PREEMPT_MASK,
220    &previous_mode
221  );
222  directive_failed( status, "rtems_task_mode" );
223  put_mode(
224    "TA1 - rtems_task_mode - set all modes        - previous mode: ",
225    previous_mode
226  );
227
228  status = rtems_task_mode(
229    RTEMS_INTERRUPT_LEVEL(0) | RTEMS_ASR | RTEMS_NO_TIMESLICE | RTEMS_PREEMPT,
230    RTEMS_INTERRUPT_MASK | RTEMS_ASR_MASK |
231    RTEMS_TIMESLICE_MASK | RTEMS_PREEMPT_MASK,
232    &previous_mode
233  );
234  directive_failed( status, "rtems_task_mode" );
235  put_mode(
236    "TA1 - rtems_task_mode - clear all modes      - previous mode: ",
237    previous_mode
238  );
239
240/* END OF COMBINATIONS */
241
242/* BEGINNING OF CURRENT MODE */
243
244  status = rtems_task_mode(
245    RTEMS_CURRENT_MODE,
246    RTEMS_CURRENT_MODE,
247    &previous_mode
248  );
249  directive_failed( status, "rtems_task_mode" );
250  put_mode(
251    "TA1 - rtems_task_mode - get current mode     - previous mode: ",
252    previous_mode
253  );
254
255/* END OF CURRENT MODE */
256
257/* TEST BEING IN A SYSTEM STATE OTHER THAN UP */
258  puts( "TA1 - FORCE system state to before multitasking" );
259  _System_state_Set( SYSTEM_STATE_BEFORE_MULTITASKING );
260
261  puts( "TA1 - enable preemption mode" );
262  status = rtems_task_mode(
263    RTEMS_PREEMPT,
264    RTEMS_PREEMPT_MASK,
265    &previous_mode
266  );
267  directive_failed( status, "rtems_task_mode" );
268  put_mode(
269    "TA1 - rtems_task_mode - RTEMS_PREEMPT              - previous mode: ",
270    previous_mode
271  );
272
273  puts( "TA1 - disable preemption mode" );
274  status = rtems_task_mode(
275    RTEMS_NO_PREEMPT,
276    RTEMS_PREEMPT_MASK,
277    &previous_mode
278  );
279  directive_failed( status, "rtems_task_mode" );
280
281  puts( "TA1 - Restore system state" );
282  _System_state_Set( SYSTEM_STATE_UP );
283
284/* END OF TEST BEING IN A SYSTEM STATE OTHER THAN UP */
285
286  puts( "*** END OF TEST 8 ***" );
287  rtems_test_exit( 0 );
288}
289
290/* configuration information */
291#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
292#define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
293
294#define CONFIGURE_MAXIMUM_TASKS             1
295#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
296
297#define CONFIGURE_INIT
298#include <rtems/confdefs.h>
299/* end of file */
Note: See TracBrowser for help on using the repository browser.