source: rtems/c/src/exec/rtems/include/rtems/rtems/partmp.h @ da6375b

4.104.114.84.95
Last change on this file since da6375b was da6375b, checked in by Joel Sherrill <joel.sherrill@…>, on 08/22/95 at 16:03:46

fix broken RCS Ids -- $ accidentally lost merging changes earlier

  • Property mode set to 100644
File size: 3.8 KB
Line 
1/*  partmp.h
2 *
3 *  This include file contains all the constants and structures associated
4 *  with the Multiprocessing Support in the Partition Manager.
5 *
6 *  COPYRIGHT (c) 1989, 1990, 1991, 1992, 1993, 1994.
7 *  On-Line Applications Research Corporation (OAR).
8 *  All rights assigned to U.S. Government, 1994.
9 *
10 *  This material may be reproduced by or for the U.S. Government pursuant
11 *  to the copyright license under the clause at DFARS 252.227-7013.  This
12 *  notice must appear in all copies of this file and its derivatives.
13 *
14 *  $Id$
15 */
16
17#ifndef __RTEMS_PARTITION_MP_h
18#define __RTEMS_PARTITION_MP_h
19
20#ifdef __cplusplus
21extern "C" {
22#endif
23
24#include <rtems/mppkt.h>
25#include <rtems/object.h>
26#include <rtems/options.h>
27#include <rtems/part.h>
28#include <rtems/thread.h>
29
30/*
31 *  The following enumerated type defines the list of
32 *  remote partition operations.
33 */
34
35typedef enum {
36  PARTITION_MP_ANNOUNCE_CREATE        =  0,
37  PARTITION_MP_ANNOUNCE_DELETE        =  1,
38  PARTITION_MP_EXTRACT_PROXY          =  2,
39  PARTITION_MP_GET_BUFFER_REQUEST     =  3,
40  PARTITION_MP_GET_BUFFER_RESPONSE    =  4,
41  PARTITION_MP_RETURN_BUFFER_REQUEST  =  5,
42  PARTITION_MP_RETURN_BUFFER_RESPONSE =  6
43}   Partition_MP_Remote_operations;
44
45/*
46 *  The following data structure defines the packet used to perform
47 *  remote partition operations.
48 */
49
50typedef struct {
51  rtems_packet_prefix                Prefix;
52  Partition_MP_Remote_operations  operation;
53  Objects_Name                    name;
54  void                           *buffer;
55  Objects_Id                      proxy_id;
56}   Partition_MP_Packet;
57
58/*
59 *  _Partition_MP_Send_process_packet
60 *
61 *  DESCRIPTION:
62 *
63 *  This routine performs a remote procedure call so that a
64 *  process operation can be performed on another node.
65 */
66
67void _Partition_MP_Send_process_packet (
68  Partition_MP_Remote_operations operation,
69  Objects_Id                     partition_id,
70  Objects_Name                   name,
71  Objects_Id                     proxy_id
72);
73
74/*
75 *  _Partition_MP_Send_request_packet
76 *
77 *  DESCRIPTION:
78 *
79 *  This routine performs a remote procedure call so that a
80 *  directive operation can be initiated on another node.
81 */
82
83rtems_status_code _Partition_MP_Send_request_packet (
84  Partition_MP_Remote_operations  operation,
85  Objects_Id                      partition_id,
86  void                           *buffer
87);
88
89/*
90 *  _Partition_MP_Send_response_packet
91 *
92 *  DESCRIPTION:
93 *
94 *  This routine performs a remote procedure call so that a
95 *  directive can be performed on another node.
96 */
97
98void _Partition_MP_Send_response_packet (
99  Partition_MP_Remote_operations  operation,
100  Objects_Id                      partition_id,
101  Thread_Control                 *the_thread
102);
103
104/*
105 *
106 *  _Partition_MP_Process_packet
107 *
108 *  DESCRIPTION:
109 *
110 *  This routine performs the actions specific to this package for
111 *  the request from another node.
112 */
113
114void _Partition_MP_Process_packet (
115  rtems_packet_prefix *the_packet_prefix
116);
117
118/*
119 *  _Partition_MP_Send_object_was_deleted
120 *
121 *  DESCRIPTION:
122 *
123 *  This routine is invoked indirectly by the thread queue
124 *  when a proxy has been removed from the thread queue and
125 *  the remote node must be informed of this.
126 *
127 *  This routine is not needed by the Partition since a partition
128 *  cannot be deleted when buffers are in use.
129 */
130
131/*
132 *  _Partition_MP_Send_extract_proxy
133 *
134 *  DESCRIPTION:
135 *
136 *  This routine is invoked when a task is deleted and it
137 *  has a proxy which must be removed from a thread queue and
138 *  the remote node must be informed of this.
139 */
140
141void _Partition_MP_Send_extract_proxy (
142  Thread_Control *the_thread
143);
144
145/*
146 *  _Partition_MP_Get_packet
147 *
148 *  DESCRIPTION:
149 *
150 *  This function is used to obtain a partition mp packet.
151 */
152
153Partition_MP_Packet *_Partition_MP_Get_packet ( void );
154
155#ifdef __cplusplus
156}
157#endif
158
159#endif
160/* end of file */
Note: See TracBrowser for help on using the repository browser.