source: rtems/c/src/ada-tests/sptests/sp08/sptest.adb @ 110e1f1

4.104.115
Last change on this file since 110e1f1 was 110e1f1, checked in by Joel Sherrill <joel.sherrill@…>, on 12/14/09 at 21:17:59

2009-12-14 Joel Sherrill <joel.sherrill@…>

  • samples/base_sp/sptest.adb, samples/hello/sptest.adb, samples/nsecs/sptest.adb, samples/ticker/sptest.adb, sptests/sp01/sptest.adb, sptests/sp02/sptest.adb, sptests/sp03/sptest.adb, sptests/sp04/sptest.adb, sptests/sp05/sptest.adb, sptests/sp06/sptest.adb, sptests/sp07/sptest.adb, sptests/sp08/sptest.adb, sptests/sp09/sptest.adb, sptests/sp11/sptest.adb, sptests/sp12/sptest.adb, sptests/sp13/sptest.adb, sptests/sp14/sptest.adb, sptests/sp15/sptest.adb, sptests/sp16/sptest.adb, sptests/sp17/sptest.adb, sptests/sp19/sptest.adp, sptests/sp20/sptest.adb, sptests/sp22/sptest.adb, sptests/sp23/sptest.adb, sptests/sp24/sptest.adb, sptests/sp25/sptest.adb, sptests/spname01/spname01.adb, sptests/spname01/sptest.adb, sptests/spname01/sptest.ads, support/address_io.adb, support/init.c, support/test_support.adb, support/test_support.ads, support/time_test_support.adb, support/timer_driver.adb, tmtests/tm01/tmtest.adb, tmtests/tm01/tmtest.ads, tmtests/tm02/tmtest.adb, tmtests/tm02/tmtest.ads, tmtests/tm03/tmtest.adb, tmtests/tm03/tmtest.ads, tmtests/tm04/tmtest.adb, tmtests/tm04/tmtest.ads, tmtests/tm05/tmtest.adb, tmtests/tm05/tmtest.ads, tmtests/tm06/tmtest.adb, tmtests/tm06/tmtest.ads, tmtests/tm07/tmtest.adb, tmtests/tm07/tmtest.ads, tmtests/tm08/tmtest.adb, tmtests/tm08/tmtest.ads, tmtests/tm09/tmtest.adb, tmtests/tm09/tmtest.ads, tmtests/tm10/tmtest.adb, tmtests/tm10/tmtest.ads, tmtests/tm11/tmtest.adb, tmtests/tm11/tmtest.ads, tmtests/tm12/tmtest.adb, tmtests/tm12/tmtest.ads, tmtests/tm13/tmtest.adb, tmtests/tm13/tmtest.ads, tmtests/tm14/tmtest.adb, tmtests/tm14/tmtest.ads, tmtests/tm15/tmtest.adb, tmtests/tm15/tmtest.ads, tmtests/tm16/tmtest.adb, tmtests/tm16/tmtest.ads, tmtests/tm17/tmtest.adb, tmtests/tm17/tmtest.ads, tmtests/tm18/tmtest.adb, tmtests/tm18/tmtest.ads, tmtests/tm19/tmtest.adb, tmtests/tm19/tmtest.ads, tmtests/tm20/tmtest.adb, tmtests/tm20/tmtest.ads, tmtests/tm21/tmtest.adb, tmtests/tm21/tmtest.ads, tmtests/tm22/tmtest.adb, tmtests/tm22/tmtest.ads, tmtests/tm23/tmtest.adb, tmtests/tm23/tmtest.ads, tmtests/tm24/tmtest.adb, tmtests/tm24/tmtest.ads, tmtests/tm25/tmtest.adb, tmtests/tm25/tmtest.ads, tmtests/tm28/tmtest.adb, tmtests/tm28/tmtest.ads, tmtests/tm29/tmtest.adb, tmtests/tm29/tmtest.ads, tmtests/tmck/tmtest.adb, tmtests/tmck/tmtest.ads, tmtests/tmoverhd/dummy_rtems.adb, tmtests/tmoverhd/tmtest.adb, tmtests/tmoverhd/tmtest.ads: Remove many warnings.
  • Property mode set to 100644
File size: 8.4 KB
Line 
1--
2--  SPTEST / BODY
3--
4--  DESCRIPTION:
5--
6--  This package is the implementation of Test 8 of the RTEMS
7--  Single Processor Test Suite.
8--
9--  DEPENDENCIES:
10--
11-- 
12--
13--  COPYRIGHT (c) 1989-2009.
14--  On-Line Applications Research Corporation (OAR).
15--
16--  The license and distribution terms for this file may in
17--  the file LICENSE in this distribution or at
18--  http://www.rtems.com/license/LICENSE.
19--
20--  $Id$
21--
22
23with INTERFACES; use INTERFACES;
24with TEST_SUPPORT;
25with TEXT_IO;
26with UNSIGNED32_IO;
27
28package body SPTEST is
29
30--PAGE
31--
32--  INIT
33--
34
35   procedure INIT (
36      ARGUMENT : in     RTEMS.TASK_ARGUMENT
37   ) is
38      pragma Unreferenced(ARGUMENT);
39      STATUS : RTEMS.STATUS_CODES;
40   begin
41
42      TEXT_IO.NEW_LINE( 2 );
43      TEXT_IO.PUT_LINE( "*** TEST 8 ***" );
44
45      SPTEST.TASK_NAME( 1 ) := RTEMS.BUILD_NAME(  'T', 'A', '1', ' ' );
46
47      RTEMS.TASK_CREATE(
48         SPTEST.TASK_NAME( 1 ),
49         1,
50         2048,
51         RTEMS.DEFAULT_MODES,
52         RTEMS.DEFAULT_ATTRIBUTES,
53         SPTEST.TASK_ID( 1 ),
54         STATUS
55      );
56      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE OF TA1" );
57
58      RTEMS.TASK_START(
59         SPTEST.TASK_ID( 1 ),
60         SPTEST.TASK_1'ACCESS,
61         0,
62         STATUS
63      );
64      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START OF TA1" );
65
66      RTEMS.TASK_DELETE( RTEMS.SELF, STATUS );
67      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_DELETE OF SELF" );
68
69   end INIT;
70
71--PAGE
72--
73--  PUT_MODE
74--
75
76   procedure PUT_MODE(
77      COMMENT     : in    STRING;
78      OUTPUT_MODE : in    RTEMS.MODE
79   ) is
80   begin
81
82      TEXT_IO.PUT( COMMENT );
83      UNSIGNED32_IO.PUT( OUTPUT_MODE, BASE => 16, WIDTH => 8 );
84      TEXT_IO.NEW_LINE;
85
86   end PUT_MODE;
87
88--PAGE
89--
90--  TASK_1
91--
92
93   procedure TASK_1 (
94      ARGUMENT : in     RTEMS.TASK_ARGUMENT
95   ) is
96      pragma Unreferenced(ARGUMENT);
97      PREVIOUS_MODE : RTEMS.MODE;
98      STATUS : RTEMS.STATUS_CODES;
99   begin
100
101-- BEGINNING OF ASR
102
103      RTEMS.TASK_MODE(
104         RTEMS.ASR,
105         RTEMS.ASR_MASK,
106         PREVIOUS_MODE,
107         STATUS
108      );
109      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_MODE" );
110      SPTEST.PUT_MODE(
111         "TA1 - task_mode - ASR                  - previous mode: ",
112         PREVIOUS_MODE
113      );
114   
115      RTEMS.TASK_MODE(
116         RTEMS.NO_ASR,
117         RTEMS.ASR_MASK,
118         PREVIOUS_MODE,
119         STATUS
120      );
121      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_MODE" );
122      SPTEST.PUT_MODE(
123         "TA1 - task_mode - NO_ASR               - previous mode: ",
124         PREVIOUS_MODE
125      );
126   
127      RTEMS.TASK_MODE(
128         RTEMS.NO_ASR,
129         RTEMS.ASR_MASK,
130         PREVIOUS_MODE,
131         STATUS
132      );
133      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_MODE" );
134      SPTEST.PUT_MODE(
135         "TA1 - task_mode - NO_ASR               - previous mode: ",
136         PREVIOUS_MODE
137      );
138   
139      RTEMS.TASK_MODE(
140         RTEMS.ASR,
141         RTEMS.ASR_MASK,
142         PREVIOUS_MODE,
143         STATUS
144      );
145      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_MODE" );
146      SPTEST.PUT_MODE(
147         "TA1 - task_mode - ASR                  - previous mode: ",
148         PREVIOUS_MODE
149      );
150   
151-- END OF ASR
152
153-- BEGINNING OF TIMESLICE
154
155      RTEMS.TASK_MODE(
156         RTEMS.NO_TIMESLICE,
157         RTEMS.TIMESLICE_MASK,
158         PREVIOUS_MODE,
159         STATUS
160      );
161      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_MODE" );
162      SPTEST.PUT_MODE(
163         "TA1 - task_mode - NO_TIMESLICE         - previous mode: ",
164         PREVIOUS_MODE
165      );
166   
167      RTEMS.TASK_MODE(
168         RTEMS.TIMESLICE,
169         RTEMS.TIMESLICE_MASK,
170         PREVIOUS_MODE,
171         STATUS
172      );
173      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_MODE" );
174      SPTEST.PUT_MODE(
175         "TA1 - task_mode - TIMESLICE            - previous mode: ",
176         PREVIOUS_MODE
177      );
178   
179      RTEMS.TASK_MODE(
180         RTEMS.TIMESLICE,
181         RTEMS.TIMESLICE_MASK,
182         PREVIOUS_MODE,
183         STATUS
184      );
185      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_MODE" );
186      SPTEST.PUT_MODE(
187         "TA1 - task_mode - TIMESLICE            - previous mode: ",
188         PREVIOUS_MODE
189      );
190   
191      RTEMS.TASK_MODE(
192         RTEMS.NO_TIMESLICE,
193         RTEMS.TIMESLICE_MASK,
194         PREVIOUS_MODE,
195         STATUS
196      );
197      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_MODE" );
198      SPTEST.PUT_MODE(
199         "TA1 - task_mode - NO_TIMESLICE         - previous mode: ",
200         PREVIOUS_MODE
201      );
202   
203-- END OF TIMESLICE
204
205-- BEGINNING OF PREEMPT
206
207      RTEMS.TASK_MODE(
208         RTEMS.PREEMPT,
209         RTEMS.PREEMPT_MASK,
210         PREVIOUS_MODE,
211         STATUS
212      );
213      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_MODE" );
214      SPTEST.PUT_MODE(
215         "TA1 - task_mode - PREEMPT              - previous mode: ",
216         PREVIOUS_MODE
217      );
218   
219      RTEMS.TASK_MODE(
220         RTEMS.NO_PREEMPT,
221         RTEMS.PREEMPT_MASK,
222         PREVIOUS_MODE,
223         STATUS
224      );
225      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_MODE" );
226      SPTEST.PUT_MODE(
227         "TA1 - task_mode - NO_PREEMPT           - previous mode: ",
228         PREVIOUS_MODE
229      );
230   
231      RTEMS.TASK_MODE(
232         RTEMS.NO_PREEMPT,
233         RTEMS.PREEMPT_MASK,
234         PREVIOUS_MODE,
235         STATUS
236      );
237      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_MODE" );
238      SPTEST.PUT_MODE(
239         "TA1 - task_mode - NO_PREEMPT           - previous mode: ",
240         PREVIOUS_MODE
241      );
242   
243      RTEMS.TASK_MODE(
244         RTEMS.PREEMPT,
245         RTEMS.PREEMPT_MASK,
246         PREVIOUS_MODE,
247         STATUS
248      );
249      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_MODE" );
250      SPTEST.PUT_MODE(
251         "TA1 - task_mode - PREEMPT              - previous mode: ",
252         PREVIOUS_MODE
253      );
254   
255-- END OF PREEMPT
256
257-- BEGINNING OF INTERRUPT LEVEL
258
259      RTEMS.TASK_MODE(
260         RTEMS.INTERRUPT_LEVEL( 3 ),
261         RTEMS.INTERRUPT_MASK,
262         PREVIOUS_MODE,
263         STATUS
264      );
265      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_MODE" );
266      SPTEST.PUT_MODE(
267         "TA1 - task_mode - INTERRUPT_LEVEL( 3 ) - previous mode: ",
268         PREVIOUS_MODE
269      );
270   
271      RTEMS.TASK_MODE(
272         RTEMS.INTERRUPT_LEVEL( 5 ),
273         RTEMS.INTERRUPT_MASK,
274         PREVIOUS_MODE,
275         STATUS
276      );
277      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_MODE" );
278      SPTEST.PUT_MODE(
279         "TA1 - task_mode - INTERRUPT_LEVEL( 5 ) - previous mode: ",
280         PREVIOUS_MODE
281      );
282   
283-- END OF INTERRUPT LEVEL
284
285-- BEGINNING OF COMBINATIONS
286
287      RTEMS.TASK_MODE(
288         RTEMS.INTERRUPT_LEVEL( 3 ) + RTEMS.NO_ASR +
289            RTEMS.TIMESLICE + RTEMS.NO_PREEMPT,
290         RTEMS.INTERRUPT_MASK + RTEMS.ASR_MASK +
291            RTEMS.TIMESLICE_MASK + RTEMS.PREEMPT_MASK,
292         PREVIOUS_MODE,
293         STATUS
294      );
295      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_MODE" );
296      SPTEST.PUT_MODE(
297         "TA1 - task_mode - set all modes        - previous mode: ",
298         PREVIOUS_MODE
299      );
300   
301      RTEMS.TASK_MODE(
302         RTEMS.INTERRUPT_LEVEL( 3 ) + RTEMS.NO_ASR +
303            RTEMS.TIMESLICE + RTEMS.NO_PREEMPT,
304         RTEMS.INTERRUPT_MASK + RTEMS.ASR_MASK +
305            RTEMS.TIMESLICE_MASK + RTEMS.PREEMPT_MASK,
306         PREVIOUS_MODE,
307         STATUS
308      );
309      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_MODE" );
310      SPTEST.PUT_MODE(
311         "TA1 - task_mode - set all modes        - previous mode: ",
312         PREVIOUS_MODE
313      );
314   
315      RTEMS.TASK_MODE(
316         RTEMS.INTERRUPT_LEVEL( 0 ) + RTEMS.ASR +
317            RTEMS.NO_TIMESLICE + RTEMS.PREEMPT,
318         RTEMS.INTERRUPT_MASK + RTEMS.ASR_MASK +
319            RTEMS.TIMESLICE_MASK + RTEMS.PREEMPT_MASK,
320         PREVIOUS_MODE,
321         STATUS
322      );
323      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_MODE" );
324      SPTEST.PUT_MODE(
325         "TA1 - task_mode - clear all modes      - previous mode: ",
326         PREVIOUS_MODE
327      );
328   
329-- END OF COMBINATIONS
330
331-- BEGINNING OF CURRENT MODE
332
333      RTEMS.TASK_MODE(
334         RTEMS.CURRENT_MODE,
335         RTEMS.CURRENT_MODE,
336         PREVIOUS_MODE,
337         STATUS
338      );
339      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_MODE" );
340      SPTEST.PUT_MODE(
341         "TA1 - task_mode - get current mode     - previous mode: ",
342         PREVIOUS_MODE
343      );
344   
345-- END OF CURRENT MODE
346
347      TEXT_IO.PUT_LINE( "*** END OF TEST 8 ***" );
348      RTEMS.SHUTDOWN_EXECUTIVE( 0 );
349   end TASK_1;
350
351end SPTEST;
Note: See TracBrowser for help on using the repository browser.