OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [rtems/] [c/] [src/] [tests/] [mptests/] [mp04/] [task1.c] - Blame information for rev 30

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 30 unneback
/*  Test_task
2
 *
3
 *  This task tests the rtems_task_set_priority directive on a remote task.
4
 *
5
 *  Input parameters:
6
 *    argument - task argument
7
 *
8
 *  Output parameters:  NONE
9
 *
10
 *  COPYRIGHT (c) 1989-1999.
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.OARcorp.com/rtems/license.html.
16
 *
17
 *  $Id: task1.c,v 1.2 2001-09-27 12:02:18 chris Exp $
18
 */
19
 
20
#include "system.h"
21
 
22
extern rtems_multiprocessing_table Multiprocessing_configuration;
23
 
24
rtems_task Test_task(
25
  rtems_task_argument argument
26
)
27
{
28
  rtems_id            tid;
29
  rtems_status_code   status;
30
  rtems_unsigned32    remote_node;
31
  rtems_id            remote_tid;
32
  rtems_task_priority previous_priority;
33
  rtems_task_priority previous_priority_1;
34
 
35
  status = rtems_task_ident( RTEMS_SELF, RTEMS_SEARCH_ALL_NODES, &tid );
36
  directive_failed( status, "rtems_task_ident" );
37
 
38
  puts( "Getting TID of remote task" );
39
  remote_node = (Multiprocessing_configuration.node == 1) ? 2 : 1;
40
  puts_nocr( "Remote task's name is : " );
41
  put_name( Task_name[ remote_node ], TRUE );
42
 
43
  do {
44
      status = rtems_task_ident(
45
          Task_name[ remote_node ],
46
          RTEMS_SEARCH_ALL_NODES,
47
          &remote_tid
48
          );
49
  } while ( status != RTEMS_SUCCESSFUL );
50
 
51
  directive_failed( status, "rtems_task_ident" );
52
 
53
  status = rtems_task_set_priority(
54
    remote_tid,
55
    Multiprocessing_configuration.node,
56
    &previous_priority
57
  );
58
  directive_failed( status, "rtems_task_set_priority" );
59
 
60
  if ( previous_priority != remote_node ) {
61
    printf(
62
      "Remote priority (0x%x) does not match remote node (0x%x)!!!\n",
63
      previous_priority,
64
      remote_node
65
    );
66
    exit( 0xf0000 );
67
  }
68
 
69
  do {
70
    status = rtems_task_set_priority(
71
      RTEMS_SELF,
72
      RTEMS_CURRENT_PRIORITY,
73
      &previous_priority_1
74
    );
75
    directive_failed( status, "rtems_task_set_priority" );
76
  } while ( previous_priority_1 != remote_node );
77
 
78
  puts( "Local task priority has been set" );
79
 
80
  puts( "*** END OF TEST 4 ***" );
81
  exit( 0 );
82
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.