source: rtems/c/src/exec/score/headers/objectmp.h @ 9db72b4

4.104.114.84.95
Last change on this file since 9db72b4 was 03f2154e, checked in by Joel Sherrill <joel.sherrill@…>, on 04/22/97 at 17:20:27

headers updated to reflect new style copyright notice as part
of switching to the modified GNU GPL.

  • 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-1997.
7 *  On-Line Applications Research Corporation (OAR).
8 *  Copyright assigned to U.S. Government, 1994.
9 *
10 *  The license and distribution terms for this file may in
11 *  the file LICENSE in this distribution or at
12 *  http://www.OARcorp.com/rtems/license.html.
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  unsigned32      name;     /* XXX broken but works */
32  /* XXX If any API is MP with variable length names .. BOOM!!!! */
33}   Objects_MP_Control;
34
35/*
36 *  _Objects_MP_Handler_initialization
37 *
38 *  DESCRIPTION:
39 *
40 *  This routine intializes the inactive global object chain
41 *  based on the maximum number of global objects configured.
42 */
43
44void _Objects_MP_Handler_initialization (
45  unsigned32 node,
46  unsigned32 maximum_nodes,
47  unsigned32 maximum_global_objects
48);
49
50/*PAGE
51 *
52 *  _Objects_MP_Open
53 *
54 *  DESCRIPTION:
55 *
56 *  This routine place the specified global object in the
57 *  specified information table. 
58 */
59 
60void _Objects_MP_Open (
61  Objects_Information *information,
62  Objects_MP_Control  *the_global_object,
63  unsigned32           the_name,      /* XXX -- wrong for variable */
64  Objects_Id           the_id
65);
66
67/*
68 *  _Objects_MP_Allocate_and_open
69 *
70 *  DESCRIPTION:
71 *
72 *  This routine allocates a global object control block
73 *  and places it in the specified information table.  If the
74 *  allocation fails, then is_fatal_error determines the
75 *  error processing actions taken.
76 */
77
78boolean _Objects_MP_Allocate_and_open (
79  Objects_Information *information,
80  unsigned32           the_name,     /* XXX -- wrong for variable length */
81  Objects_Id           the_id,
82  boolean              is_fatal_error
83);
84
85/*
86 *  _Objects_MP_Close
87 *
88 *  DESCRIPTION:
89 *
90 *  This routine removes a global object from the specified
91 *  information table and deallocates the global object control block.
92 */
93
94void _Objects_MP_Close (
95  Objects_Information *information,
96  Objects_Id           the_id
97);
98
99/*
100 *  _Objects_MP_Global_name_search
101 *
102 *  DESCRIPTION:
103 *
104 *  This routine looks for the object with the_name in the global
105 *  object tables indicated by information.  It returns the ID of the
106 *  object with that name if one is found.
107 */
108
109Objects_Name_to_id_errors _Objects_MP_Global_name_search (
110  Objects_Information *information,
111  Objects_Name         the_name,
112  unsigned32           nodes_to_search,
113  Objects_Id          *the_id
114);
115
116/*
117 *  _Objects_MP_Is_remote
118 *
119 *  DESCRIPTION:
120 *
121 *  This function searches the Global Object Table managed
122 *  by information for the object indicated by ID.  If the object
123 *  is found, then location is set to objects_remote, otherwise
124 *  location is set to objects_error.  In both cases, the_object
125 *  is undefined.
126 */
127
128void _Objects_MP_Is_remote (
129  Objects_Information  *information,
130  Objects_Id            the_id,
131  Objects_Locations    *location,
132  Objects_Control     **the_object
133);
134
135/*
136 *  The following chain header is used to manage the set of
137 *  inactive global object control blocks.
138 */
139
140SCORE_EXTERN unsigned32     _Objects_MP_Maximum_global_objects;
141SCORE_EXTERN Chain_Control  _Objects_MP_Inactive_global_objects;
142
143#ifndef __RTEMS_APPLICATION__
144#include <rtems/score/objectmp.inl>
145#endif
146
147#ifdef __cplusplus
148}
149#endif
150
151#endif
152/* end of include file */
Note: See TracBrowser for help on using the repository browser.