source: rtems/testsuites/mptests/mp13/init.c @ 945f5901

4.104.114.84.95
Last change on this file since 945f5901 was d7a0857, checked in by Joel Sherrill <joel.sherrill@…>, on Sep 4, 2003 at 6:53:31 PM

2003-09-04 Joel Sherrill <joel@…>

  • mp01/init.c, mp01/system.h, mp01/task1.c, mp01/node1/mp01.doc, mp01/node2/mp01.doc, mp02/init.c, mp02/system.h, mp02/task1.c, mp02/node1/mp02.doc, mp02/node2/mp02.doc, mp03/delay.c, mp03/init.c, mp03/system.h, mp03/task1.c, mp03/node1/mp03.doc, mp03/node2/mp03.doc, mp04/init.c, mp04/system.h, mp04/task1.c, mp04/node1/mp04.doc, mp04/node2/mp04.doc, mp05/asr.c, mp05/init.c, mp05/system.h, mp05/task1.c, mp05/node1/mp05.doc, mp05/node2/mp05.doc, mp06/init.c, mp06/system.h, mp06/task1.c, mp06/node1/mp06.doc, mp06/node2/mp06.doc, mp07/init.c, mp07/system.h, mp07/task1.c, mp07/node1/mp07.doc, mp07/node2/mp07.doc, mp08/init.c, mp08/system.h, mp08/task1.c, mp08/node1/mp08.doc, mp08/node2/mp08.doc, mp09/init.c, mp09/recvmsg.c, mp09/sendmsg.c, mp09/system.h, mp09/task1.c, mp09/node1/mp09.doc, mp09/node2/mp09.doc, mp10/init.c, mp10/system.h, mp10/task1.c, mp10/task2.c, mp10/task3.c, mp10/node1/mp10.doc, mp10/node2/mp10.doc, mp11/init.c, mp11/system.h, mp11/node1/mp11.doc, mp11/node2/mp11.doc, mp12/init.c, mp12/system.h, mp12/node1/mp12.doc, mp12/node2/mp12.doc, mp13/init.c, mp13/system.h, mp13/task1.c, mp13/task2.c, mp13/node1/mp13.doc, mp13/node2/mp13.doc, mp14/delay.c, mp14/evtask1.c, mp14/evtmtask.c, mp14/exit.c, mp14/init.c, mp14/msgtask1.c, mp14/pttask1.c, mp14/smtask1.c, mp14/system.h, mp14/node1/mp14.doc, mp14/node2/mp14.doc: URL for license changed.
  • Property mode set to 100644
File size: 3.0 KB
Line 
1/*  Init
2 *
3 *  This routine is the initialization task for this test program.
4 *  It is a user initialization task and has the responsibility for creating
5 *  and starting the tasks that make up the test.  If the time of day
6 *  clock is required for the test, it should also be set to a known
7 *  value by this function.
8 *
9 *  Input parameters:
10 *    argument - task argument
11 *
12 *  Output parameters:  NONE
13 *
14 *  COPYRIGHT (c) 1989-1999.
15 *  On-Line Applications Research Corporation (OAR).
16 *
17 *  The license and distribution terms for this file may be
18 *  found in the file LICENSE in this distribution or at
19 *  http://www.rtems.com/license/LICENSE.
20 *
21 *  $Id$
22 */
23
24#define TEST_INIT
25#include "system.h"
26
27rtems_task Init(
28  rtems_task_argument argument
29)
30{
31  rtems_status_code status;
32
33  printf(
34    "\n\n*** TEST 13 -- NODE %d ***\n",
35    Multiprocessing_configuration.node
36  );
37
38  Task_name[ 1 ] = rtems_build_name( '1', '1', '1', ' ' );
39  Task_name[ 2 ] = rtems_build_name( '2', '2', '2', ' ' );
40
41  Queue_name[ 1 ] = rtems_build_name( 'M', 'S', 'G', ' ' );
42
43  Semaphore_name[ 1 ] = rtems_build_name( 'S', 'E', 'M', ' ' );
44
45  if ( Multiprocessing_configuration.node == 1 ) {
46    puts( "Creating Message Queue (Global)" );
47    status = rtems_message_queue_create(
48      Queue_name[ 1 ],
49      3,
50      16,
51      RTEMS_GLOBAL,
52      &Queue_id[ 1 ]
53    );
54    directive_failed( status, "rtems_message_queue_create" );
55
56    puts( "Creating Semaphore (Global)" );
57    status = rtems_semaphore_create(
58      Semaphore_name[ 1 ],
59      1,
60      RTEMS_GLOBAL | RTEMS_PRIORITY,
61      RTEMS_NO_PRIORITY,
62      &Semaphore_id[ 1 ]
63    );
64    directive_failed( status, "rtems_semaphore_create" );
65
66    status = rtems_semaphore_obtain(
67      Semaphore_id[ 1 ],
68      RTEMS_DEFAULT_OPTIONS,
69      RTEMS_NO_TIMEOUT
70    );
71    directive_failed( status, "rtems_semaphore_obtain" );
72  }
73
74  puts( "Creating Test_task 1 (local)" );
75  status = rtems_task_create(
76    Task_name[ 1 ],
77    1,
78    RTEMS_MINIMUM_STACK_SIZE,
79    RTEMS_TIMESLICE,
80    RTEMS_DEFAULT_ATTRIBUTES,
81    &Task_id[ 1 ]
82  );
83  directive_failed( status, "rtems_task_create" );
84
85  puts( "Starting Test_task 1 (local)" );
86  status = rtems_task_start( Task_id[ 1 ], Test_task1, 0 );
87  directive_failed( status, "rtems_task_start" );
88
89  puts( "Creating Test_task 2 (local)" );
90  status = rtems_task_create(
91    Task_name[ 2 ],
92    1,
93    RTEMS_MINIMUM_STACK_SIZE,
94    RTEMS_TIMESLICE,
95    RTEMS_DEFAULT_ATTRIBUTES,
96    &Task_id[ 2 ]
97  );
98  directive_failed( status, "rtems_task_create" );
99
100  puts( "Starting Test_task 2 (local)" );
101  status = rtems_task_start( Task_id[ 2 ], Test_task2, 0 );
102  directive_failed( status, "rtems_task_start" );
103
104  if ( Multiprocessing_configuration.node == 1 ) {
105    status = rtems_task_wake_after( 5 * TICKS_PER_SECOND );
106    directive_failed( status, "rtems_task_wake_after" );
107
108    puts( "*** END OF TEST 13 ***" );
109    rtems_test_exit( 0 );
110  }
111  puts( "Deleting initialization task" );
112  status = rtems_task_delete( RTEMS_SELF );
113  directive_failed( status, "rtems_task_delete of RTEMS_SELF" );
114}
Note: See TracBrowser for help on using the repository browser.