RTEMS CPU Kit with SuperCore  4.11.2
objectmp.h
Go to the documentation of this file.
1 
10 /*
11  * COPYRIGHT (c) 1989-2009.
12  * On-Line Applications Research Corporation (OAR).
13  *
14  * The license and distribution terms for this file may be
15  * found in the file LICENSE in this distribution or at
16  * http://www.rtems.org/license/LICENSE.
17  */
18 
19 #ifndef _RTEMS_SCORE_OBJECTMP_H
20 #define _RTEMS_SCORE_OBJECTMP_H
21 
22 #ifndef _RTEMS_SCORE_OBJECTIMPL_H
23 # error "Never use <rtems/rtems/objectmp.h> directly; include <rtems/rtems/objectimpl.h> instead."
24 #endif
25 
26 #include <rtems/score/chainimpl.h>
27 
28 #ifdef __cplusplus
29 extern "C" {
30 #endif
31 
51 
60 
77 void _Objects_MP_Open (
78  Objects_Information *information,
79  Objects_MP_Control *the_global_object,
80  uint32_t the_name,
81  Objects_Id the_id
82 );
83 
104  Objects_Information *information,
105  uint32_t the_name,
106  Objects_Id the_id,
107  bool is_fatal_error
108 );
109 
116 void _Objects_MP_Close (
117  Objects_Information *information,
118  Objects_Id the_id
119 );
120 
140  Objects_Information *information,
141  Objects_Name the_name,
142  uint32_t nodes_to_search,
143  Objects_Id *the_id
144 );
145 
167  Objects_Information *information,
168  Objects_Id the_id,
169  Objects_Locations *location,
170  Objects_Control **the_object
171 );
172 
177 
183 
189  void
190 )
191 {
192  return (Objects_MP_Control *)
193  _Chain_Get( &_Objects_MP_Inactive_global_objects );
194 }
195 
201  Objects_MP_Control *the_object
202 )
203 {
205  &_Objects_MP_Inactive_global_objects,
206  &the_object->Object.Node
207  );
208 }
209 
215  Objects_MP_Control *the_object
216 )
217 {
218  return( the_object == NULL );
219 }
220 
223 #ifdef __cplusplus
224 }
225 #endif
226 
227 #endif
228 /* end of include file */
void _Objects_MP_Is_remote(Objects_Information *information, Objects_Id the_id, Objects_Locations *location, Objects_Control **the_object)
Searches the Global Object Table managed by information for the object indicated by ID...
Definition: objectmp.c:217
SCORE_EXTERN uint32_t _Objects_MP_Maximum_global_objects
This is the maximum number of global objects configured.
Definition: objectmp.h:176
Objects_Name_or_id_lookup_errors
This function implements the common portion of the object identification directives.
Definition: objectimpl.h:407
Chain_Node * _Chain_Get(Chain_Control *the_chain)
Obtain the first node on a chain.
Definition: chainget.c:26
The following defines the Object Control Block used to manage each object local to this node...
Definition: object.h:232
RTEMS_INLINE_ROUTINE Objects_MP_Control * _Objects_MP_Allocate_global_object(void)
This function allocates a Global Object control block.
Definition: objectmp.h:188
SCORE_EXTERN Chain_Control _Objects_MP_Inactive_global_objects
The following chain header is used to manage the set of inactive global object control blocks...
Definition: objectmp.h:182
#define RTEMS_INLINE_ROUTINE
The following (in conjunction with compiler arguments) are used to choose between the use of static i...
Definition: basedefs.h:135
This is used to manage a chain.
Definition: chain.h:83
Objects_Name_or_id_lookup_errors _Objects_MP_Global_name_search(Objects_Information *information, Objects_Name the_name, uint32_t nodes_to_search, Objects_Id *the_id)
Look for the object with the_name in the global object tables indicated by information.
Definition: objectmp.c:154
RTEMS_INLINE_ROUTINE bool _Objects_MP_Is_null_global_object(Objects_MP_Control *the_object)
This function returns whether the global object is NULL or not.
Definition: objectmp.h:214
The following defines the structure for the information used to manage each class of objects...
Definition: objectimpl.h:136
Chain Handler API.
void _Objects_MP_Open(Objects_Information *information, Objects_MP_Control *the_global_object, uint32_t the_name, Objects_Id the_id)
Place the specified global object in the specified information table.
Definition: objectmp.c:76
void _Chain_Append(Chain_Control *the_chain, Chain_Node *the_node)
Append a node on the end of a chain.
Definition: chainappend.c:41
Objects_Locations
This enumerated type lists the locations which may be returned by _Objects_Get.
Definition: objectimpl.h:117
RTEMS_INLINE_ROUTINE void _Objects_MP_Free_global_object(Objects_MP_Control *the_object)
This routine deallocates a Global Object control block.
Definition: objectmp.h:200
bool _Objects_MP_Allocate_and_open(Objects_Information *information, uint32_t the_name, Objects_Id the_id, bool is_fatal_error)
Allocates a global object control block and places it in the specified information table...
Definition: objectmp.c:93
uint32_t Objects_Id
The following type defines the control block used to manage object IDs.
Definition: object.h:122
The following type defines the control block used to manage object names.
Definition: object.h:68
#define SCORE_EXTERN
The following ensures that all data is declared in the space of the initialization routine for either...
Definition: basedefs.h:81
void _Objects_MP_Handler_initialization(void)
Intializes the inactive global object chain based on the maximum number of global objects configured...
Definition: objectmp.c:51
void _Objects_MP_Handler_early_initialization(void)
Intializes the global object node number used in the ID field of all objects.
Definition: objectmp.c:27
void _Objects_MP_Close(Objects_Information *information, Objects_Id the_id)
Removes a global object from the specified information table.
Definition: objectmp.c:121