source: rtems/testsuites/sptests/sp13/task2.c @ 99de42c

5
Last change on this file since 99de42c was c499856, checked in by Chris Johns <chrisj@…>, on 03/20/14 at 21:10:47

Change all references of rtems.com to rtems.org.

  • Property mode set to 100644
File size: 3.4 KB
Line 
1/*  Task_2
2 *
3 *  This routine serves as a test task.  Multiple tasks are required to
4 *  verify all message manager capabilities.
5 *
6 *  Input parameters:
7 *    argument - task argument
8 *
9 *  Output parameters:  NONE
10 *
11 *  COPYRIGHT (c) 1989-2009.
12 *  On-Line Applications Research Corporation (OAR).
13 *
14 *  The license and distribution terms for this file may be
15 *  found in the file LICENSE in this distribution or at
16 *  http://www.rtems.org/license/LICENSE.
17 */
18
19#ifdef HAVE_CONFIG_H
20#include "config.h"
21#endif
22
23#include "system.h"
24
25rtems_task Task_2(
26  rtems_task_argument argument
27)
28{
29  long                buffer[ 4 ];
30  size_t              size;
31  rtems_task_priority previous_priority;
32  rtems_status_code   status;
33
34  puts(
35    "TA2 - rtems_message_queue_receive - receive from queue 1 - RTEMS_NO_WAIT"
36  );
37  status = rtems_message_queue_receive(
38    Queue_id[ 1 ],
39    buffer,
40    &size,
41    RTEMS_NO_WAIT,
42    RTEMS_NO_TIMEOUT
43  );
44  directive_failed( status, "rtems_message_queue_receive" );
45  puts_nocr( "TA2 - buffer received: " );
46  Put_buffer( buffer );
47  new_line;
48
49  puts(
50    "TA2 - rtems_message_queue_receive - receive from queue 1 - "
51      "RTEMS_WAIT FOREVER"
52  );
53  status = rtems_message_queue_receive(
54    Queue_id[ 1 ],
55    buffer,
56    &size,
57    RTEMS_DEFAULT_OPTIONS,
58    RTEMS_NO_TIMEOUT
59  );
60  directive_failed( status, "rtems_message_queue_receive" );
61  puts_nocr( "TA2 - buffer received: " );
62  Put_buffer( buffer );
63  new_line;
64
65  puts(
66    "TA2 - rtems_message_queue_receive - receive from queue 1 - "
67      "RTEMS_WAIT FOREVER"
68 );
69  status = rtems_message_queue_receive(
70    Queue_id[ 1 ],
71    buffer,
72    &size,
73    RTEMS_DEFAULT_OPTIONS,
74    RTEMS_NO_TIMEOUT
75  );
76  directive_failed( status, "rtems_message_queue_receive" );
77  puts_nocr( "TA2 - buffer received: " );
78  Put_buffer( buffer );
79  new_line;
80
81  puts( "TA2 - rtems_task_set_priority - make self highest priority task" );
82  status = rtems_task_set_priority( RTEMS_SELF, 3, &previous_priority );
83  directive_failed( status, "rtems_task_set_priority" );
84
85  puts(
86    "TA2 - rtems_message_queue_receive - receive from queue 2 - "
87      "RTEMS_WAIT FOREVER"
88  );
89  status = rtems_message_queue_receive(
90    Queue_id[ 2 ],
91    buffer,
92    &size,
93    RTEMS_DEFAULT_OPTIONS,
94    RTEMS_NO_TIMEOUT
95  );
96  directive_failed( status, "rtems_message_queue_receive" );
97  puts_nocr( "TA2 - buffer received: " );
98  Put_buffer( buffer );
99  new_line;
100
101  Fill_buffer( "BUFFER 2 TO Q 2", (long *)buffer );
102  puts( "TA2 - rtems_message_queue_send - BUFFER 2 TO Q 2" );
103  status = rtems_message_queue_send( Queue_id[ 2 ], buffer, MESSAGE_SIZE );
104  directive_failed( status, "rtems_message_queue_send" );
105
106  puts(
107    "TA2 - rtems_message_queue_receive - receive from queue 1 - "
108      "10 second timeout"
109  );
110  status = rtems_message_queue_receive(
111    Queue_id[ 1 ],
112    buffer,
113    &size,
114    RTEMS_DEFAULT_OPTIONS,
115    10 * rtems_clock_get_ticks_per_second()
116  );
117  directive_failed( status, "rtems_message_queue_receive" );
118  puts_nocr( "TA2 - buffer received: " );
119  Put_buffer( buffer );
120  new_line;
121
122  puts(
123    "TA2 - rtems_message_queue_receive - receive from queue 3 - "
124      "RTEMS_WAIT FOREVER"
125  );
126  status = rtems_message_queue_receive(
127    Queue_id[ 3 ],
128    buffer,
129    &size,
130    RTEMS_DEFAULT_OPTIONS,
131    RTEMS_NO_TIMEOUT
132  );
133  directive_failed( status, "rtems_message_queue_receive" );
134  puts_nocr( "TA2 - buffer received: " );
135  Put_buffer( buffer );
136  new_line;
137
138}
Note: See TracBrowser for help on using the repository browser.