source: rtems/cpukit/rtems/include/rtems/rtems/partmp.h @ 08311cc3

4.104.114.84.95
Last change on this file since 08311cc3 was 08311cc3, checked in by Joel Sherrill <joel.sherrill@…>, on 11/17/99 at 17:51:34

Updated copyright notice.

  • Property mode set to 100644
File size: 3.7 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-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.OARcorp.com/rtems/license.html.
12 *
13 *  $Id$
14 */
15
16#ifndef __RTEMS_PARTITION_MP_h
17#define __RTEMS_PARTITION_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/thread.h>
27
28#include <rtems/rtems/part.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  rtems_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  rtems_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.