Object Handler Multiprocessing Support


Data Structures

struct  Objects_MP_Control

Functions

void _Objects_MP_Handler_initialization (uint32_t node, uint32_t maximum_nodes, uint32_t maximum_global_objects)
 Objects MP Handler initialization.
void _Objects_MP_Open (Objects_Information *information, Objects_MP_Control *the_global_object, uint32_t the_name, Objects_Id the_id)
 Objects MP Open.
boolean _Objects_MP_Allocate_and_open (Objects_Information *information, uint32_t the_name, Objects_Id the_id, boolean is_fatal_error)
 Objects MP Allocate and open.
void _Objects_MP_Close (Objects_Information *information, Objects_Id the_id)
 Objects MP Close.
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)
 Objects MP Global name search.
void _Objects_MP_Is_remote (Objects_Information *information, Objects_Id the_id, Objects_Locations *location, Objects_Control **the_object)
 Objects MP Is remote.
RTEMS_INLINE_ROUTINE
Objects_MP_Control
_Objects_MP_Allocate_global_object (void)
RTEMS_INLINE_ROUTINE void _Objects_MP_Free_global_object (Objects_MP_Control *the_object)
RTEMS_INLINE_ROUTINE boolean _Objects_MP_Is_null_global_object (Objects_MP_Control *the_object)

Variables

SCORE_EXTERN uint32_t _Objects_MP_Maximum_global_objects
SCORE_EXTERN Chain_Control _Objects_MP_Inactive_global_objects

Detailed Description

This handler encapsulates functionality which is used to manage objects which have been declared to be globally visible. This handler knows objects from all of the nodes in the system.

Function Documentation

boolean _Objects_MP_Allocate_and_open ( Objects_Information information,
uint32_t  the_name,
Objects_Id  the_id,
boolean  is_fatal_error 
)

Objects MP Allocate and open.

This routine allocates a global object control block and places it in the specified information table. If the allocation fails, then is_fatal_error determines the error processing actions taken.

Parameters:
[in] information points to the object information table for this object class.
[in] the_name is the name of the object being opened.
[in] the_id is the Id of the object being opened.
[in] is_fatal_error is TRUE if not being able to allocate the object is considered a fatal error.
Todo:
This method only works for object types with 4 byte object names. It does not support variable length object names.

RTEMS_INLINE_ROUTINE Objects_MP_Control* _Objects_MP_Allocate_global_object ( void   ) 

This function allocates a Global Object control block.

References _Chain_Get(), and _Objects_MP_Inactive_global_objects.

void _Objects_MP_Close ( Objects_Information information,
Objects_Id  the_id 
)

Objects MP Close.

This routine removes a global object from the specified information table and deallocates the global object control block.

RTEMS_INLINE_ROUTINE void _Objects_MP_Free_global_object ( Objects_MP_Control the_object  ) 

This routine deallocates a Global Object control block.

References _Chain_Append(), _Objects_MP_Inactive_global_objects, Objects_Control::Node, and Objects_MP_Control::Object.

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 
)

Objects MP Global name search.

This routine looks for the object with the_name in the global object tables indicated by information. It returns the ID of the object with that name if one is found.

Parameters:
[in] information points to the object information table for this object class.
[in] the_name is the name of the object being searched for.
[in] nodes_to_search indicates the set of nodes to search.
[in] the_id will contain the Id of the object if found.
Returns:
This method returns one of the Objects_Name_or_id_lookup_errors. If successful, the_id will contain the Id of the object.

void _Objects_MP_Handler_initialization ( uint32_t  node,
uint32_t  maximum_nodes,
uint32_t  maximum_global_objects 
)

Objects MP Handler initialization.

This routine intializes the inactive global object chain based on the maximum number of global objects configured.

Parameters:
[in] node is this node's number.
[in] maximum_nodes is the maximum number of nodes in the system.
[in] maximum_global_objects is the maximum number of concurrently created global objects.

RTEMS_INLINE_ROUTINE boolean _Objects_MP_Is_null_global_object ( Objects_MP_Control the_object  ) 

This function returns whether the global object is NULL or not.

void _Objects_MP_Is_remote ( Objects_Information information,
Objects_Id  the_id,
Objects_Locations location,
Objects_Control **  the_object 
)

Objects MP Is remote.

This function searches the Global Object Table managed by information for the object indicated by ID. If the object is found, then location is set to objects_remote, otherwise location is set to objects_error. In both cases, the_object is undefined.

Parameters:
[in] information points to the object information table for this object class.
[in] the_id is the Id of the object being opened.
[in] location will contain the location of the object.
[in] the_object will contain a pointer to the object.
Returns:
This method fills in location to indicate successful location of the object or error. On success, the_object will be filled in.

void _Objects_MP_Open ( Objects_Information information,
Objects_MP_Control the_global_object,
uint32_t  the_name,
Objects_Id  the_id 
)

Objects MP Open.

This routine place the specified global object in the specified information table.

Parameters:
[in] information points to the object information table for this object class.
[in] the_global_object points to the object being opened.
[in] the_name is the name of the object being opened.
[in] the_id is the Id of the object being opened.
Todo:
This method only works for object types with 4 byte object names. It does not support variable length object names.


Variable Documentation

The following chain header is used to manage the set of inactive global object control blocks.

Referenced by _Objects_MP_Allocate_global_object(), and _Objects_MP_Free_global_object().

SCORE_EXTERN uint32_t _Objects_MP_Maximum_global_objects

This is the maximum number of global objects configured.


Generated on Wed Aug 27 18:16:45 2008 for RTEMSSuperCore by  doxygen 1.5.6