source: rtems/cpukit/rtems/include/rtems/rtems/regionmp.h @ 584ab9e

4.104.115
Last change on this file since 584ab9e was 584ab9e, checked in by Joel Sherrill <joel.sherrill@…>, on 12/18/08 at 17:15:13

2008-12-18 Joel Sherrill <joel.sherrill@…>

  • rtems/include/rtems/rtems/regionmp.h, sapi/include/rtems/config.h, sapi/src/exinit.c, score/Makefile.am, score/include/rtems/score/object.h, score/include/rtems/score/objectmp.h, score/src/objectmp.c: Eliminate Object Handler Initialization routine since it was all for MP configurations.
  • score/src/object.c: Removed.
  • Property mode set to 100644
File size: 3.8 KB
Line 
1/**
2 * @file rtems/rtems/regionmp.h
3 *
4 *  This include file contains all the constants and structures associated
5 *  with the Multiprocessing Support in the Region Manager.
6 */
7
8/*  COPYRIGHT (c) 1989-2008.
9 *  On-Line Applications Research Corporation (OAR).
10 *
11 *  The license and distribution terms for this file may be
12 *  found in the file LICENSE in this distribution or at
13 *  http://www.rtems.com/license/LICENSE.
14 *
15 *  $Id$
16 */
17
18#ifndef _RTEMS_RTEMS_REGIONMP_H
19#define _RTEMS_RTEMS_REGIONMP_H
20
21#ifdef __cplusplus
22extern "C" {
23#endif
24
25#include <rtems/score/mppkt.h>
26#include <rtems/score/object.h>
27#include <rtems/score/thread.h>
28
29#include <rtems/rtems/options.h>
30#include <rtems/rtems/region.h>
31
32/**
33 *  @defgroup ClassicRegionMP Classic API Region MP Support
34 *
35 *  This encapsulates functionality which XXX
36 */
37/**@{*/
38
39/**
40 *  The following enumerated type defines the list of
41 *  remote region operations.
42 */
43typedef enum {
44  REGION_MP_ANNOUNCE_CREATE         =  0,
45  REGION_MP_ANNOUNCE_DELETE         =  1,
46  REGION_MP_EXTRACT_PROXY           =  2,
47  REGION_MP_GET_SEGMENT_REQUEST     =  3,
48  REGION_MP_GET_SEGMENT_RESPONSE    =  4,
49  REGION_MP_RETURN_SEGMENT_REQUEST  =  5,
50  REGION_MP_RETURN_SEGMENT_RESPONSE =  6
51}   Region_MP_Remote_operations;
52
53/**
54 *  The following data structure defines the packet used to perform
55 *  remote region operations.
56 */
57typedef struct {
58  rtems_packet_prefix          Prefix;
59  Region_MP_Remote_operations  operation;
60  rtems_name                   name;
61  rtems_option                 option_set;
62  uint32_t                     size;
63  Objects_Id                   proxy_id;
64  void                        *segment;
65}   Region_MP_Packet;
66
67/**
68 *  @brief _Region_MP_Send_process_packet
69 *
70 *  This routine performs a remote procedure call so that a
71 *  process operation can be performed on another node.
72 */
73void _Region_MP_Send_process_packet (
74  Region_MP_Remote_operations operation,
75  Objects_Id                  region_id,
76  rtems_name                  name,
77  Objects_Id                  proxy_id
78);
79
80/**
81 *  @brief _Region_MP_Send_request_packet
82 *
83 *  This routine performs a remote procedure call so that a
84 *  directive operation can be initiated on another node.
85 */
86rtems_status_code _Region_MP_Send_request_packet (
87  Region_MP_Remote_operations  operation,
88  Objects_Id                   region_id,
89  void                        *segment,
90  intptr_t                     size,
91  rtems_option                 option_set,
92  rtems_interval               timeout
93);
94
95/**
96 *  @brief _Region_MP_Send_response_packet
97 *
98 *  This routine performs a remote procedure call so that a
99 *  directive can be performed on another node.
100 */
101void _Region_MP_Send_response_packet (
102  Region_MP_Remote_operations  operation,
103  Objects_Id                   region_id,
104  Thread_Control              *the_thread
105);
106
107/**
108 *  @brief _Region_MP_Process_packet
109 *
110 *  This routine performs the actions specific to this package for
111 *  the request from another node.
112 */
113void _Region_MP_Process_packet (
114  rtems_packet_prefix *the_packet_prefix
115);
116
117/*
118 *  @brief _Region_MP_Send_object_was_deleted
119 *
120 *  This routine is invoked indirectly by the thread queue
121 *  when a proxy has been removed from the thread queue and
122 *  the remote node must be informed of this.
123 *
124 *  This routine is not needed by the Region since a region
125 *  cannot be deleted when segments are in use.
126 */
127
128/**
129 *  @brief _Region_MP_Send_extract_proxy
130 *
131 *  This routine is invoked when a task is deleted and it
132 *  has a proxy which must be removed from a thread queue and
133 *  the remote node must be informed of this.
134 */
135void _Region_MP_Send_extract_proxy (
136  void           *argument
137);
138
139/**
140 *  @brief _Region_MP_Get_packet
141 *
142 *  This function is used to obtain a region mp packet.
143 */
144Region_MP_Packet *_Region_MP_Get_packet ( void );
145
146#ifdef __cplusplus
147}
148#endif
149
150/**@}*/
151
152#endif
153/* end of file */
Note: See TracBrowser for help on using the repository browser.