source: rtems/c/src/exec/score/headers/objectmp.h @ 63edbb3f

4.104.114.84.95
Last change on this file since 63edbb3f was ac7d5ef0, checked in by Joel Sherrill <joel.sherrill@…>, on 05/11/95 at 17:39:37

Initial revision

  • Property mode set to 100644
File size: 3.6 KB
Line 
1/*  objectmp.h
2 *
3 *  This include file contains all the constants and structures associated
4 *  with the manipulation of Global RTEMS Objects.
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_OBJECTS_MP_h
18#define __RTEMS_OBJECTS_MP_h
19
20#ifdef __cplusplus
21extern "C" {
22#endif
23
24/*
25 *  This defines the Global Object Control Block used to manage
26 *  objects resident on other nodes.
27 */
28
29typedef struct {
30  Objects_Control Object;
31  Objects_Name    name;
32}   Objects_MP_Control;
33
34/*
35 *  _Objects_MP_Handler_initialization
36 *
37 *  DESCRIPTION:
38 *
39 *  This routine intializes the inactive global object chain
40 *  based on the maximum number of global objects configured.
41 */
42
43void _Objects_MP_Handler_initialization (
44  unsigned32 maximum_global_objects
45);
46
47/*
48 *  _Objects_MP_Allocate_global_object
49 *
50 *  DESCRIPTION:
51 *
52 *  This function allocates a Global Object control block.
53 */
54
55STATIC INLINE Objects_MP_Control *_Objects_MP_Allocate_global_object (
56  void
57);
58
59/*
60 *  _Objects_MP_Free_global_object
61 *
62 *  DESCRIPTION:
63 *
64 *  This routine deallocates a Global Object control block.
65 */
66
67STATIC INLINE void _Objects_MP_Free_global_object (
68  Objects_MP_Control *the_object
69);
70
71/*
72 *  _Objects_MP_Is_null_global_object
73 *
74 *  DESCRIPTION:
75 *
76 *  This function returns whether the global object is NULL or not.
77 */
78
79STATIC INLINE boolean _Objects_MP_Is_null_global_object (
80  Objects_MP_Control *the_object
81);
82
83/*
84 *  _Objects_MP_Open
85 *
86 *  DESCRIPTION:
87 *
88 *  This routine allocates a global object control block
89 *  and places it in the specified information table.  If the
90 *  allocation fails, then is_fatal_error determines the
91 *  error processing actions taken.
92 */
93
94boolean _Objects_MP_Open (
95  Objects_Information *information,
96  Objects_Name         the_name,
97  Objects_Id           the_id,
98  boolean              is_fatal_error
99);
100
101/*
102 *  _Objects_MP_Close
103 *
104 *  DESCRIPTION:
105 *
106 *  This routine removes a global object from the specified
107 *  information table and deallocates the global object control block.
108 */
109
110void _Objects_MP_Close (
111  Objects_Information *information,
112  Objects_Id           the_id
113);
114
115/*
116 *  _Objects_MP_Global_name_search
117 *
118 *  DESCRIPTION:
119 *
120 *  This routine looks for the object with the_name in the global
121 *  object tables indicated by information.  It returns the ID of the
122 *  object with that name if one is found.
123 */
124
125rtems_status_code _Objects_MP_Global_name_search (
126  Objects_Information *information,
127  Objects_Name         the_name,
128  unsigned32           nodes_to_search,
129  Objects_Id          *the_id
130);
131
132/*
133 *  _Objects_MP_Is_remote
134 *
135 *  DESCRIPTION:
136 *
137 *  This function searches the Global Object Table managed
138 *  by information for the object indicated by ID.  If the object
139 *  is found, then location is set to objects_remote, otherwise
140 *  location is set to objects_error.  In both cases, the_object
141 *  is undefined.
142 */
143
144void _Objects_MP_Is_remote (
145  Objects_Information  *information,
146  Objects_Id            the_id,
147  Objects_Locations    *location,
148  Objects_Control     **the_object
149);
150
151/*
152 *  The following chain header is used to manage the set of
153 *  inactive global object control blocks.
154 */
155
156EXTERN Chain_Control  _Objects_MP_Inactive_global_objects;
157
158#include <rtems/objectmp.inl>
159
160#ifdef __cplusplus
161}
162#endif
163
164#endif
165/* end of include file */
Note: See TracBrowser for help on using the repository browser.