source: rtems/cpukit/rtems/include/rtems/rtems/taskmp.h @ 277cc95

4.104.114.84.95
Last change on this file since 277cc95 was 277cc95, checked in by Joel Sherrill <joel.sherrill@…>, on 09/04/03 at 18:54:32

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

  • include/rtems.h, include/rtems/rtems/asr.h, include/rtems/rtems/attr.h, include/rtems/rtems/cache.h, include/rtems/rtems/clock.h, include/rtems/rtems/config.h, include/rtems/rtems/dpmem.h, include/rtems/rtems/event.h, include/rtems/rtems/eventmp.h, include/rtems/rtems/eventset.h, include/rtems/rtems/intr.h, include/rtems/rtems/message.h, include/rtems/rtems/modes.h, include/rtems/rtems/mp.h, include/rtems/rtems/msgmp.h, include/rtems/rtems/options.h, include/rtems/rtems/part.h, include/rtems/rtems/partmp.h, include/rtems/rtems/ratemon.h, include/rtems/rtems/region.h, include/rtems/rtems/regionmp.h, include/rtems/rtems/rtemsapi.h, include/rtems/rtems/sem.h, include/rtems/rtems/semmp.h, include/rtems/rtems/signal.h, include/rtems/rtems/signalmp.h, include/rtems/rtems/status.h, include/rtems/rtems/support.h, include/rtems/rtems/taskmp.h, include/rtems/rtems/tasks.h, include/rtems/rtems/timer.h, include/rtems/rtems/types.h, inline/rtems/rtems/asr.inl, inline/rtems/rtems/attr.inl, inline/rtems/rtems/dpmem.inl, inline/rtems/rtems/event.inl, inline/rtems/rtems/eventset.inl, inline/rtems/rtems/message.inl, inline/rtems/rtems/modes.inl, inline/rtems/rtems/options.inl, inline/rtems/rtems/part.inl, inline/rtems/rtems/ratemon.inl, inline/rtems/rtems/region.inl, inline/rtems/rtems/sem.inl, inline/rtems/rtems/status.inl, inline/rtems/rtems/support.inl, inline/rtems/rtems/tasks.inl, inline/rtems/rtems/timer.inl, macros/rtems/rtems/asr.inl, macros/rtems/rtems/attr.inl, macros/rtems/rtems/dpmem.inl, macros/rtems/rtems/event.inl, macros/rtems/rtems/eventset.inl, macros/rtems/rtems/message.inl, macros/rtems/rtems/modes.inl, macros/rtems/rtems/options.inl, macros/rtems/rtems/part.inl, macros/rtems/rtems/ratemon.inl, macros/rtems/rtems/region.inl, macros/rtems/rtems/sem.inl, macros/rtems/rtems/status.inl, macros/rtems/rtems/support.inl, macros/rtems/rtems/tasks.inl, macros/rtems/rtems/timer.inl, src/attr.c, src/clockget.c, src/clockset.c, src/clocktick.c, src/dpmem.c, src/dpmemcreate.c, src/dpmemdelete.c, src/dpmemexternal2internal.c, src/dpmemident.c, src/dpmeminternal2external.c, src/event.c, src/eventmp.c, src/eventreceive.c, src/eventseize.c, src/eventsend.c, src/eventsurrender.c, src/eventtimeout.c, src/intr.c, src/intrbody.c, src/intrcatch.c, src/mp.c, src/msg.c, src/msgmp.c, src/msgqallocate.c, src/msgqbroadcast.c, src/msgqcreate.c, src/msgqdelete.c, src/msgqflush.c, src/msgqgetnumberpending.c, src/msgqident.c, src/msgqreceive.c, src/msgqsend.c, src/msgqsubmit.c, src/msgqtranslatereturncode.c, src/msgqurgent.c, src/part.c, src/partcreate.c, src/partdelete.c, src/partgetbuffer.c, src/partident.c, src/partmp.c, src/partreturnbuffer.c, src/ratemon.c, src/ratemoncancel.c, src/ratemoncreate.c, src/ratemondelete.c, src/ratemongetstatus.c, src/ratemonident.c, src/ratemonperiod.c, src/ratemontimeout.c, src/region.c, src/regioncreate.c, src/regiondelete.c, src/regionextend.c, src/regiongetinfo.c, src/regiongetsegment.c, src/regiongetsegmentsize.c, src/regionident.c, src/regionmp.c, src/regionreturnsegment.c, src/rtclock.c, src/rtemsidtoname.c, src/rtemstimer.c, src/sem.c, src/semcreate.c, src/semdelete.c, src/semflush.c, src/semident.c, src/semmp.c, src/semobtain.c, src/semrelease.c, src/semtranslatereturncode.c, src/signal.c, src/signalcatch.c, src/signalmp.c, src/signalsend.c, src/taskcreate.c, src/taskdelete.c, src/taskgetnote.c, src/taskident.c, src/taskinitusers.c, src/taskissuspended.c, src/taskmode.c, src/taskmp.c, src/taskrestart.c, src/taskresume.c, src/tasks.c, src/tasksetnote.c, src/tasksetpriority.c, src/taskstart.c, src/tasksuspend.c, src/taskvariableadd.c, src/taskvariabledelete.c, src/taskvariableget.c, src/taskwakeafter.c, src/taskwakewhen.c, src/timercancel.c, src/timercreate.c, src/timerdelete.c, src/timerfireafter.c, src/timerfirewhen.c, src/timergetinfo.c, src/timerident.c, src/timerreset.c, src/timerserver.c, src/timerserverfireafter.c, src/timerserverfirewhen.c: URL for license changed.
  • Property mode set to 100644
File size: 4.0 KB
Line 
1/*  taskmp.h
2 *
3 *  This include file contains all the constants and structures associated
4 *  with the multiprocessing support in the task manager.
5 *
6 *  COPYRIGHT (c) 1989-1999.
7 *  On-Line Applications Research Corporation (OAR).
8 *
9 *  The license and distribution terms for this file may be
10 *  found in the file LICENSE in this distribution or at
11 *  http://www.rtems.com/license/LICENSE.
12 *
13 *  $Id$
14 */
15
16#ifndef __RTEMS_RTEMS_TASKS_MP_h
17#define __RTEMS_RTEMS_TASKS_MP_h
18
19#ifdef __cplusplus
20extern "C" {
21#endif
22
23#include <rtems/score/mppkt.h>
24#include <rtems/score/object.h>
25#include <rtems/rtems/options.h>
26#include <rtems/score/priority.h>
27#include <rtems/rtems/tasks.h>
28#include <rtems/score/thread.h>
29
30/*
31 *  The following enumerated type defines the list of
32 *  remote task operations.
33 */
34
35typedef enum {
36  RTEMS_TASKS_MP_ANNOUNCE_CREATE       =  0,
37  RTEMS_TASKS_MP_ANNOUNCE_DELETE       =  1,
38  RTEMS_TASKS_MP_SUSPEND_REQUEST       =  2,
39  RTEMS_TASKS_MP_SUSPEND_RESPONSE      =  3,
40  RTEMS_TASKS_MP_RESUME_REQUEST        =  4,
41  RTEMS_TASKS_MP_RESUME_RESPONSE       =  5,
42  RTEMS_TASKS_MP_SET_PRIORITY_REQUEST  =  6,
43  RTEMS_TASKS_MP_SET_PRIORITY_RESPONSE =  7,
44  RTEMS_TASKS_MP_GET_NOTE_REQUEST      =  8,
45  RTEMS_TASKS_MP_GET_NOTE_RESPONSE     =  9,
46  RTEMS_TASKS_MP_SET_NOTE_REQUEST      = 10,
47  RTEMS_TASKS_MP_SET_NOTE_RESPONSE     = 11
48}   RTEMS_tasks_MP_Remote_operations;
49
50/*
51 *  The following data structure defines the packet used to perform
52 *  remote task operations.
53 */
54
55typedef struct {
56  rtems_packet_prefix               Prefix;
57  RTEMS_tasks_MP_Remote_operations  operation;
58  rtems_name                        name;
59  rtems_task_priority               the_priority;
60  unsigned32                        notepad;
61  unsigned32                        note;
62}   RTEMS_tasks_MP_Packet;
63
64/*
65 *  _RTEMS_tasks_MP_Send_process_packet
66 *
67 *  DESCRIPTION:
68 *
69 *  This routine performs a remote procedure call so that a
70 *  process operation can be performed on another node.
71 */
72
73void _RTEMS_tasks_MP_Send_process_packet (
74  RTEMS_tasks_MP_Remote_operations operation,
75  Objects_Id                       task_id,
76  rtems_name                       name
77);
78
79/*
80 *  _RTEMS_tasks_MP_Send_request_packet
81 *
82 *  DESCRIPTION:
83 *
84 *  This routine performs a remote procedure call so that a
85 *  directive operation can be initiated on another node.
86 */
87
88rtems_status_code _RTEMS_tasks_MP_Send_request_packet (
89  RTEMS_tasks_MP_Remote_operations operation,
90  Objects_Id                       task_id,
91  rtems_task_priority                 the_priority,
92  unsigned32                       notepad,
93  unsigned32                       note
94);
95
96/*
97 *  _RTEMS_tasks_MP_Send_response_packet
98 *
99 *  DESCRIPTION:
100 *
101 *  This routine performs a remote procedure call so that a
102 *  directive can be performed on another node.
103 */
104
105void _RTEMS_tasks_MP_Send_response_packet (
106  RTEMS_tasks_MP_Remote_operations  operation,
107  Thread_Control                   *the_thread
108);
109
110/*
111 *
112 *  _RTEMS_tasks_MP_Process_packet
113 *
114 *  DESCRIPTION:
115 *
116 *  This routine performs the actions specific to this package for
117 *  the request from another node.
118 */
119
120void _RTEMS_tasks_MP_Process_packet (
121  rtems_packet_prefix *the_packet_prefix
122);
123
124/*
125 *  _RTEMS_tasks_MP_Send_object_was_deleted
126 *
127 *  DESCRIPTION:
128 *
129 *  This routine is invoked indirectly by the thread queue
130 *  when a proxy has been removed from the thread queue and
131 *  the remote node must be informed of this.
132 *
133 *  This routine is not needed by RTEMS_tasks since a task
134 *  cannot be deleted when segments are in use.
135 */
136
137/*
138 *  _RTEMS_tasks_MP_Send_extract_proxy
139 *
140 *  DESCRIPTION:
141 *
142 *  This routine is invoked when a task is deleted and it
143 *  has a proxy which must be removed from a thread queue and
144 *  the remote node must be informed of this.
145 *
146 *  This routine is not needed since there are no objects
147 *  deleted by this manager.
148 *
149 */
150
151/*
152 *  _RTEMS_tasks_MP_Get_packet
153 *
154 *  DESCRIPTION:
155 *
156 *  This function is used to obtain a task mp packet.
157 */
158
159RTEMS_tasks_MP_Packet *_RTEMS_tasks_MP_Get_packet ( void );
160
161#ifdef __cplusplus
162}
163#endif
164
165#endif
166/* end of file */
Note: See TracBrowser for help on using the repository browser.