source: rtems/c/src/ada-tests/sptests/sp23/sptest.adb @ 48bfd992

4.104.114.84.95
Last change on this file since 48bfd992 was bf9ae83, checked in by Joel Sherrill <joel.sherrill@…>, on Jun 2, 1997 at 8:32:11 PM

modified copyright notice to be the same as RTEMS 4.0.0.

changed the CVS ID string to be a "development" version.

  • Property mode set to 100644
File size: 5.2 KB
Line 
1--
2--  SPTEST / BODY
3--
4--  DESCRIPTION:
5--
6--  This package is the implementation of Test 23 of the RTEMS
7--  Single Processor Test Suite.
8--
9--  DEPENDENCIES:
10--
11-- 
12--
13--  COPYRIGHT (c) 1989-1997.
14--  On-Line Applications Research Corporation (OAR).
15--  Copyright assigned to U.S. Government, 1994.
16--
17--  The license and distribution terms for this file may in
18--  the file LICENSE in this distribution or at
19--  http://www.OARcorp.com/rtems/license.html.
20--
21--  $Id$
22--
23
24with ADDRESS_IO;
25with INTERFACES; use INTERFACES;
26with RTEMS;
27with TEST_SUPPORT;
28with TEXT_IO;
29with UNSIGNED32_IO;
30
31package body SPTEST is
32
33--PAGE
34--
35--  INIT
36--
37
38   procedure INIT (
39      ARGUMENT : in     RTEMS.TASK_ARGUMENT
40   ) is
41      INTERNAL_AREA : RTEMS.ADDRESS;
42      EXTERNAL_AREA : RTEMS.ADDRESS;
43      STATUS        : RTEMS.STATUS_CODES;
44   begin
45
46      TEXT_IO.NEW_LINE( 2 );
47      TEXT_IO.PUT_LINE( "*** TEST 23 ***" );
48
49      SPTEST.TASK_NAME( 1 ) := RTEMS.BUILD_NAME(  'T', 'A', '1', ' ' );
50
51      RTEMS.TASK_CREATE( 
52         SPTEST.TASK_NAME( 1 ), 
53         1, 
54         2048, 
55         RTEMS.DEFAULT_MODES,
56         RTEMS.DEFAULT_ATTRIBUTES,
57         SPTEST.TASK_ID( 1 ),
58         STATUS
59      );
60      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_CREATE OF TA1" );
61
62      RTEMS.TASK_START(
63         SPTEST.TASK_ID( 1 ),
64         SPTEST.TASK_1'ACCESS,
65         0,
66         STATUS
67      );
68      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_START OF TA1" );
69
70      SPTEST.PORT_NAME( 1 ) := RTEMS.BUILD_NAME(  'D', 'P', '1', ' ' );
71
72      INTERNAL_AREA := SPTEST.INTERNAL_PORT_AREA( 0 )'ADDRESS;
73      EXTERNAL_AREA := SPTEST.EXTERNAL_PORT_AREA( 0 )'ADDRESS;
74      RTEMS.PORT_CREATE(
75         SPTEST.PORT_NAME( 1 ), 
76         INTERNAL_AREA,
77         EXTERNAL_AREA,
78         SPTEST.INTERNAL_PORT_AREA'LENGTH,
79         SPTEST.PORT_ID( 1 ),
80         STATUS
81      );
82      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "PORT_CREATE OF DP1" );
83      TEXT_IO.PUT( "INIT - port_create - DP1 - internal = " );
84      ADDRESS_IO.PUT( INTERNAL_AREA, WIDTH => 8, BASE => 16 );
85      TEXT_IO.PUT( " external =  " );
86      ADDRESS_IO.PUT( EXTERNAL_AREA, WIDTH => 8, BASE => 16 );
87      TEXT_IO.NEW_LINE;
88   
89      RTEMS.TASK_DELETE( RTEMS.SELF, STATUS );
90      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "TASK_DELETE OF SELF" );
91
92   end INIT;
93
94--PAGE
95--
96--  TASK_1
97--
98
99   procedure TASK_1 (
100      ARGUMENT : in     RTEMS.TASK_ARGUMENT
101   ) is
102      DPID            : RTEMS.ID;
103      TO_BE_CONVERTED : RTEMS.ADDRESS; 
104      CONVERTED       : RTEMS.ADDRESS; 
105      STATUS          : RTEMS.STATUS_CODES;
106   begin
107
108      RTEMS.PORT_IDENT( SPTEST.PORT_NAME( 1 ), DPID, STATUS );
109      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "PORT_IDENT" );
110      TEXT_IO.PUT( "TA1 - port_ident - " );
111      UNSIGNED32_IO.PUT( DPID, WIDTH => 8, BASE => 16 );
112      TEXT_IO.NEW_LINE;
113
114      TO_BE_CONVERTED :=  SPTEST.EXTERNAL_PORT_AREA( 16#E# )'ADDRESS;
115      RTEMS.PORT_EXTERNAL_TO_INTERNAL(
116         SPTEST.PORT_ID( 1 ),
117         TO_BE_CONVERTED,
118         CONVERTED,
119         STATUS
120      );
121      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "PORT_EXTERNAL_TO_INTERNAL" );
122      TEXT_IO.PUT( "TA1 - port_external_to_internal - external: " );
123      ADDRESS_IO.PUT( TO_BE_CONVERTED, WIDTH => 8, BASE => 16 );
124      TEXT_IO.PUT( " => internal: " );
125      ADDRESS_IO.PUT( CONVERTED, WIDTH => 8, BASE => 16 );
126      TEXT_IO.NEW_LINE;
127   
128      TO_BE_CONVERTED :=  SPTEST.INTERNAL_PORT_AREA( 16#E# )'ADDRESS;
129      RTEMS.PORT_INTERNAL_TO_EXTERNAL(
130         SPTEST.PORT_ID( 1 ),
131         TO_BE_CONVERTED,
132         CONVERTED,
133         STATUS
134      );
135      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "PORT_INTERNAL_TO_EXTERNAL" );
136      TEXT_IO.PUT( "TA1 - port_internal_to_external - internal: " );
137      ADDRESS_IO.PUT( TO_BE_CONVERTED, WIDTH => 8, BASE => 16 );
138      TEXT_IO.PUT( " => external: " );
139      ADDRESS_IO.PUT( CONVERTED, WIDTH => 8, BASE => 16 );
140      TEXT_IO.NEW_LINE;
141   
142      TO_BE_CONVERTED :=  SPTEST.ABOVE_PORT_AREA( 16#E# )'ADDRESS;
143      RTEMS.PORT_EXTERNAL_TO_INTERNAL(
144         SPTEST.PORT_ID( 1 ),
145         TO_BE_CONVERTED,
146         CONVERTED,
147         STATUS
148      );
149      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "PORT_EXTERNAL_TO_INTERNAL" );
150      TEXT_IO.PUT( "TA1 - port_external_to_internal - external: " );
151      ADDRESS_IO.PUT( TO_BE_CONVERTED, WIDTH => 8, BASE => 16 );
152      TEXT_IO.PUT( " => internal: " );
153      ADDRESS_IO.PUT( CONVERTED, WIDTH => 8, BASE => 16 );
154      TEXT_IO.NEW_LINE;
155   
156      TO_BE_CONVERTED :=  SPTEST.BELOW_PORT_AREA( 16#E# )'ADDRESS;
157      RTEMS.PORT_INTERNAL_TO_EXTERNAL(
158         SPTEST.PORT_ID( 1 ),
159         TO_BE_CONVERTED,
160         CONVERTED,
161         STATUS
162      );
163      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "PORT_INTERNAL_TO_EXTERNAL" );
164      TEXT_IO.PUT( "TA1 - port_internal_to_external - internal: " );
165      ADDRESS_IO.PUT( TO_BE_CONVERTED, WIDTH => 8, BASE => 16 );
166      TEXT_IO.PUT( " => external: " );
167      ADDRESS_IO.PUT( CONVERTED, WIDTH => 8, BASE => 16 );
168      TEXT_IO.NEW_LINE;
169   
170      TEXT_IO.PUT_LINE( "TA1 - port_delete - DP1" );
171      RTEMS.PORT_DELETE( SPTEST.PORT_ID( 1 ), STATUS );
172      TEST_SUPPORT.DIRECTIVE_FAILED( STATUS, "PORT_DELETE" );
173
174      TEXT_IO.PUT_LINE( "*** END OF TEST 23 ***" );
175      RTEMS.SHUTDOWN_EXECUTIVE( 0 );
176
177   end TASK_1;
178
179end SPTEST;
Note: See TracBrowser for help on using the repository browser.