source: rtems/testsuites/sptests/sp25/task1.c @ d5ae827

4.104.115
Last change on this file since d5ae827 was e73850b, checked in by Joel Sherrill <joel.sherrill@…>, on 05/04/09 at 21:51:08

2009-05-04 Joel Sherrill <joel.sherrill@…>

  • sp25/init.c, sp25/system.h, sp25/task1.c: Reduce size of array from 64k to 20k. No impact on test behavior.
  • Property mode set to 100644
File size: 8.4 KB
Line 
1/*  Task_1
2 *
3 *  This routine serves as a test task.  It tests the region manager.
4 *
5 *  Input parameters:
6 *    argument - task argument
7 *
8 *  Output parameters:  NONE
9 *
10 *  COPYRIGHT (c) 1989-2009.
11 *  On-Line Applications Research Corporation (OAR).
12 *
13 *  The license and distribution terms for this file may be
14 *  found in the file LICENSE in this distribution or at
15 *  http://www.rtems.com/license/LICENSE.
16 *
17 *  $Id$
18 */
19
20#include "system.h"
21
22rtems_task Task_1(
23  rtems_task_argument argument
24)
25{
26  void                   *address_1;
27  void                   *address_2;
28  void                   *address_3;
29  void                   *address_4;
30  void                   *address_5;
31  void                   *address_6;
32  void                   *address_7;
33  void                   *address_8;
34  rtems_id                region_id;
35  Heap_Information_block  region_info;
36  intptr_t                segment_size;
37  rtems_status_code       status;
38
39  /* Obtain the region id */
40  status = rtems_region_ident(Region_name[ 1 ], &region_id);
41  printf( "TA1 - rtems_region_ident - 0x%08x\n", region_id );
42  directive_failed(status, "rtems_region_ident of RN01");
43
44  /* Get a 64 byte segment from the region */
45  puts(
46    "TA1 - rtems_region_get_segment - wait on 64 byte segment from region 1"
47  );
48  rtems_region_get_segment(
49    Region_id[ 1 ],
50    64,
51    RTEMS_DEFAULT_OPTIONS,
52    RTEMS_NO_TIMEOUT,
53    &address_1
54  );
55  directive_failed( status, "rtems_region_get_segment" );
56  puts_nocr( "TA1 - got segment from region 1 - " );
57  Put_address_from_area_1( address_1 );
58  new_line;
59
60  /* Get the size of segment_1 */
61  puts_nocr( "TA1 - rtems_region_get_segment_size from - " );
62  Put_address_from_area_1( address_1 );
63  new_line;
64  status = rtems_region_get_segment_size(region_id, address_1, &segment_size);
65  directive_failed(status, "rtems_region_get_segment_size of segment 1");
66  printf( "TA1 - got segment size of %d\n", segment_size );
67
68  /* Get a 128 byte segment from the region */
69  puts(
70    "TA1 - rtems_region_get_segment - wait on 128 byte segment from region 1"
71  );
72  rtems_region_get_segment(
73    Region_id[ 1 ],
74    128,
75    RTEMS_DEFAULT_OPTIONS,
76    RTEMS_NO_TIMEOUT,
77    &address_2
78  );
79  directive_failed( status, "rtems_region_get_segment" );
80  puts_nocr( "TA1 - got segment from region 1 - " );
81  Put_address_from_area_1( address_2 );
82  new_line;
83
84  /* Get a 256 byte segment from the region */
85  puts(
86    "TA1 - rtems_region_get_segment - wait on 256 byte segment from region 1"
87  );
88  rtems_region_get_segment(
89    Region_id[ 1 ],
90    256,
91    RTEMS_DEFAULT_OPTIONS,
92    RTEMS_NO_TIMEOUT,
93    &address_3
94  );
95  directive_failed( status, "rtems_region_get_segment" );
96  puts_nocr( "TA1 - got segment from region 1 - " );
97  Put_address_from_area_1( address_3 );
98  new_line;
99
100  /* Get a 512 byte segment from the region */
101  puts(
102    "TA1 - rtems_region_get_segment - wait on 512 byte segment from region 1"
103  );
104  rtems_region_get_segment(
105    Region_id[ 1 ],
106    512,
107    RTEMS_DEFAULT_OPTIONS,
108    RTEMS_NO_TIMEOUT,
109    &address_4
110  );
111  directive_failed( status, "rtems_region_get_segment" );
112  puts_nocr( "TA1 - got segment from region 1 - " );
113  Put_address_from_area_1( address_4 );
114  new_line;
115
116  /* Get a 1024 byte segment from the region */
117  puts(
118    "TA1 - rtems_region_get_segment - wait on 1024 byte segment from region 1"
119  );
120  rtems_region_get_segment(
121    Region_id[ 1 ],
122    1024,
123    RTEMS_DEFAULT_OPTIONS,
124    RTEMS_NO_TIMEOUT,
125    &address_5
126  );
127  directive_failed( status, "rtems_region_get_segment" );
128  puts_nocr( "TA1 - got segment from region 1 - " );
129  Put_address_from_area_1( address_5 );
130  new_line;
131
132  /* Get a 2048 byte segment from the region */
133  puts(
134    "TA1 - rtems_region_get_segment - wait on 2048 byte segment from region 1"
135  );
136  rtems_region_get_segment(
137    Region_id[ 1 ],
138    2048,
139    RTEMS_DEFAULT_OPTIONS,
140    RTEMS_NO_TIMEOUT,
141    &address_6
142  );
143  directive_failed( status, "rtems_region_get_segment" );
144  puts_nocr( "TA1 - got segment from region 1 - " );
145  Put_address_from_area_1( address_6 );
146  new_line;
147
148  /* Get a 4096 byte segment from the region */
149  puts(
150    "TA1 - rtems_region_get_segment - wait on 4096 byte segment from region 1"
151  );
152  rtems_region_get_segment(
153    Region_id[ 1 ],
154    4096,
155    RTEMS_DEFAULT_OPTIONS,
156    RTEMS_NO_TIMEOUT,
157    &address_7
158  );
159  directive_failed( status, "rtems_region_get_segment" );
160  puts_nocr( "TA1 - got segment from region 1 - " );
161  Put_address_from_area_1( address_7 );
162  new_line;
163
164  /* Get a 8192 byte segment from the region */
165  puts(
166    "TA1 - rtems_region_get_segment - wait on 8192 byte segment from region 1"
167  );
168  rtems_region_get_segment(
169    Region_id[ 1 ],
170    8192,
171    RTEMS_DEFAULT_OPTIONS,
172    RTEMS_NO_TIMEOUT,
173    &address_8
174  );
175  directive_failed( status, "rtems_region_get_segment" );
176  puts_nocr( "TA1 - got segment from region 1 - " );
177  Put_address_from_area_1( address_8 );
178  new_line;
179
180  /* Get the size of segment_8 */
181  puts_nocr( "TA1 - rtems_region_get_segment_size from - " );
182  Put_address_from_area_1( address_8 );
183  new_line;
184  status = rtems_region_get_segment_size(region_id, address_8, &segment_size);
185  directive_failed(status, "rtems_region_get_segment_size of segment 8");
186  printf( "TA1 - got segment size of %d\n", segment_size );
187
188  /* Get information about the region */
189  printf( "TA1 - rtems_region_get_information - 0x%08x\n", region_id );
190  status = rtems_region_get_information(region_id, &region_info);
191  directive_failed(status, "rtems_region_get_information of RN01");
192  printf(
193    "TA1 - got information - free = %d, used = %d\n",
194    region_info.Free.number,
195    region_info.Used.number
196  );
197
198  printf( "TA1 - rtems_region_get_free_information - 0x%08x\n", region_id );
199  status = rtems_region_get_free_information(region_id, &region_info);
200  directive_failed(status, "rtems_region_get_free_information of RN01");
201  printf(
202    "TA1 - got free information - free = %d, used = %d\n",
203    region_info.Free.number,
204    region_info.Used.number
205  );
206
207rtems_test_pause();
208
209  puts_nocr(
210    "TA1 - rtems_region_return_segment - return segment to region 1 - "
211  );
212  Put_address_from_area_1( address_3 );
213  status = rtems_region_return_segment( Region_id[ 1 ], address_3 );
214  directive_failed( status, "rtems_region_return_segment" );
215  new_line;
216  address_3 = 0;
217
218  puts_nocr(
219    "TA1 - rtems_region_return_segment - return segment to region 1 - "
220  );
221  Put_address_from_area_1( address_4 );
222  status = rtems_region_return_segment( Region_id[ 1 ], address_4 );
223  directive_failed( status, "rtems_region_return_segment" );
224  new_line;
225  address_4 = 0;
226
227  puts_nocr(
228    "TA1 - rtems_region_return_segment - return segment to region 1 - "
229  );
230  Put_address_from_area_1( address_1 );
231  status = rtems_region_return_segment( Region_id[ 1 ], address_1 );
232  directive_failed( status, "rtems_region_return_segment" );
233  new_line;
234  address_1 = 0;
235
236  puts_nocr(
237    "TA1 - rtems_region_return_segment - return segment to region 1 - "
238  );
239  Put_address_from_area_1( address_2 );
240  status = rtems_region_return_segment( Region_id[ 1 ], address_2 );
241  directive_failed( status, "rtems_region_return_segment" );
242  new_line;
243  address_2 = 0;
244
245  puts_nocr(
246    "TA1 - rtems_region_return_segment - return segment to region 1 - "
247  );
248  Put_address_from_area_1( address_7 );
249  status = rtems_region_return_segment( Region_id[ 1 ], address_7 );
250  directive_failed( status, "rtems_region_return_segment" );
251  new_line;
252  address_7 = 0;
253
254  puts_nocr(
255    "TA1 - rtems_region_return_segment - return segment to region 1 - "
256  );
257  Put_address_from_area_1( address_6 );
258  status = rtems_region_return_segment( Region_id[ 1 ], address_6 );
259  directive_failed( status, "rtems_region_return_segment" );
260  new_line;
261  address_6 = 0;
262
263  puts_nocr(
264    "TA1 - rtems_region_return_segment - return segment to region 1 - "
265  );
266  Put_address_from_area_1( address_8 );
267  status = rtems_region_return_segment( Region_id[ 1 ], address_8 );
268  directive_failed( status, "rtems_region_return_segment" );
269  new_line;
270  address_8 = 0;
271
272  puts_nocr(
273    "TA1 - rtems_region_return_segment - return segment to region 1 - "
274  );
275  Put_address_from_area_1( address_5 );
276  status = rtems_region_return_segment( Region_id[ 1 ], address_5 );
277  directive_failed( status, "rtems_region_return_segment" );
278  new_line;
279  address_5 = 0;
280
281  puts( "TA1 - rtems_region_delete - walks heap if debug enabled" );
282  rtems_region_delete(Region_id[ 1 ]);
283
284  puts( "*** END OF TEST 25 ***" );
285  rtems_test_exit( 0 );
286}
Note: See TracBrowser for help on using the repository browser.