source: rtems/cpukit/rtems/include/rtems/rtems/regionmp.h @ 4b487363

4.104.114.84.95
Last change on this file since 4b487363 was 4b487363, checked in by Ralf Corsepius <ralf.corsepius@…>, on 11/02/04 at 09:39:02

2004-10-02 Ralf Corsepius <ralf_corsepiu@…>

  • rtems/include/rtems.h, rtems/include/rtems/rtems/asr.h, rtems/include/rtems/rtems/attr.h, rtems/include/rtems/rtems/cache.h, rtems/include/rtems/rtems/clock.h, rtems/include/rtems/rtems/config.h, rtems/include/rtems/rtems/dpmem.h, rtems/include/rtems/rtems/event.h, rtems/include/rtems/rtems/eventmp.h, rtems/include/rtems/rtems/eventset.h, rtems/include/rtems/rtems/intr.h, rtems/include/rtems/rtems/message.h, rtems/include/rtems/rtems/modes.h, rtems/include/rtems/rtems/mp.h, rtems/include/rtems/rtems/msgmp.h, rtems/include/rtems/rtems/options.h, rtems/include/rtems/rtems/part.h, rtems/include/rtems/rtems/partmp.h, rtems/include/rtems/rtems/ratemon.h, rtems/include/rtems/rtems/region.h, rtems/include/rtems/rtems/regionmp.h, rtems/include/rtems/rtems/rtemsapi.h, rtems/include/rtems/rtems/sem.h, rtems/include/rtems/rtems/semmp.h, rtems/include/rtems/rtems/signal.h, rtems/include/rtems/rtems/signalmp.h, rtems/include/rtems/rtems/status.h, rtems/include/rtems/rtems/support.h, rtems/include/rtems/rtems/taskmp.h, rtems/include/rtems/rtems/tasks.h, rtems/include/rtems/rtems/timer.h, rtems/include/rtems/rtems/types.h: Add doxygen preamble.
  • Property mode set to 100644
File size: 3.8 KB
Line 
1/**
2 * @file rtems/rtems/regionmp.h
3 */
4
5/*
6 *  This include file contains all the constants and structures associated
7 *  with the Multiprocessing Support in the Region Manager.
8 *
9 *  COPYRIGHT (c) 1989-1999.
10 *  On-Line Applications Research Corporation (OAR).
11 *
12 *  The license and distribution terms for this file may be
13 *  found in the file LICENSE in this distribution or at
14 *  http://www.rtems.com/license/LICENSE.
15 *
16 *  $Id$
17 */
18
19#ifndef __RTEMS_REGION_MP_h
20#define __RTEMS_REGION_MP_h
21
22#ifdef __cplusplus
23extern "C" {
24#endif
25
26#include <rtems/score/mppkt.h>
27#include <rtems/score/object.h>
28#include <rtems/score/thread.h>
29
30#include <rtems/rtems/options.h>
31#include <rtems/rtems/region.h>
32
33/*
34 *  The following enumerated type defines the list of
35 *  remote region operations.
36 */
37
38typedef enum {
39  REGION_MP_ANNOUNCE_CREATE         =  0,
40  REGION_MP_ANNOUNCE_DELETE         =  1,
41  REGION_MP_EXTRACT_PROXY           =  2,
42  REGION_MP_GET_SEGMENT_REQUEST     =  3,
43  REGION_MP_GET_SEGMENT_RESPONSE    =  4,
44  REGION_MP_RETURN_SEGMENT_REQUEST  =  5,
45  REGION_MP_RETURN_SEGMENT_RESPONSE =  6
46}   Region_MP_Remote_operations;
47
48/*
49 *  The following data structure defines the packet used to perform
50 *  remote region operations.
51 */
52
53typedef struct {
54  rtems_packet_prefix          Prefix;
55  Region_MP_Remote_operations  operation;
56  rtems_name                   name;
57  rtems_option                 option_set;
58  uint32_t                     size;
59  Objects_Id                   proxy_id;
60  void                        *segment;
61}   Region_MP_Packet;
62
63/*
64 *  _Region_MP_Send_process_packet
65 *
66 *  DESCRIPTION:
67 *
68 *  This routine performs a remote procedure call so that a
69 *  process operation can be performed on another node.
70 */
71
72void _Region_MP_Send_process_packet (
73  Region_MP_Remote_operations operation,
74  Objects_Id                  region_id,
75  rtems_name                  name,
76  Objects_Id                  proxy_id
77);
78
79/*
80 *  _Region_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 _Region_MP_Send_request_packet (
89  Region_MP_Remote_operations  operation,
90  Objects_Id                   region_id,
91  void                        *segment,
92  uint32_t                     size,
93  rtems_option                 option_set,
94  rtems_interval               timeout
95);
96
97/*
98 *  _Region_MP_Send_response_packet
99 *
100 *  DESCRIPTION:
101 *
102 *  This routine performs a remote procedure call so that a
103 *  directive can be performed on another node.
104 */
105
106void _Region_MP_Send_response_packet (
107  Region_MP_Remote_operations  operation,
108  Objects_Id                   region_id,
109  Thread_Control              *the_thread
110);
111
112/*
113 *
114 *  _Region_MP_Process_packet
115 *
116 *  DESCRIPTION:
117 *
118 *  This routine performs the actions specific to this package for
119 *  the request from another node.
120 */
121
122void _Region_MP_Process_packet (
123  rtems_packet_prefix *the_packet_prefix
124);
125
126/*
127 *  _Region_MP_Send_object_was_deleted
128 *
129 *  DESCRIPTION:
130 *
131 *  This routine is invoked indirectly by the thread queue
132 *  when a proxy has been removed from the thread queue and
133 *  the remote node must be informed of this.
134 *
135 *  This routine is not needed by the Region since a region
136 *  cannot be deleted when segments are in use.
137 */
138
139/*
140 *  _Region_MP_Send_extract_proxy
141 *
142 *  DESCRIPTION:
143 *
144 *  This routine is invoked when a task is deleted and it
145 *  has a proxy which must be removed from a thread queue and
146 *  the remote node must be informed of this.
147 */
148
149void _Region_MP_Send_extract_proxy (
150  void           *argument
151);
152
153/*
154 *  _Region_MP_Get_packet
155 *
156 *  DESCRIPTION:
157 *
158 *  This function is used to obtain a region mp packet.
159 */
160
161Region_MP_Packet *_Region_MP_Get_packet ( void );
162
163#ifdef __cplusplus
164}
165#endif
166
167#endif
168/* end of file */
Note: See TracBrowser for help on using the repository browser.