RTEMS 6.1-rc4
Loading...
Searching...
No Matches
Files | Functions | Variables
Object Handler Multiprocessing (MP) Support

This group contains the implementation to support the Object Handler in multiprocessing (MP) configurations. More...

Files

file  objectmp.h
 This header file provides the interfaces of the Object Handler Multiprocessing (MP) Support.
 
file  objectmp.c
 This source file contains the definition of _Objects_Local_node, _Objects_Maximum_nodes, _Objects_MP_Maximum_global_objects and the implementation of _Objects_MP_Handler_early_initialization(), _Objects_MP_Handler_initialization(), _Objects_MP_Open(), _Objects_MP_Allocate_and_open(), _Objects_MP_Close(), _Objects_MP_Global_name_search(), _Objects_MP_Is_remote(), _Objects_MP_Allocate_global_object(), and _Objects_MP_Free_global_object().
 

Functions

void _Objects_MP_Handler_initialization (void)
 Intializes the inactive global object chain based on the maximum number of global objects configured.
 
void _Objects_MP_Handler_early_initialization (void)
 Intializes the global object node number used in the ID field of all objects.
 
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.
 
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.
 
void _Objects_MP_Close (Objects_Information *information, Objects_Id the_id)
 Removes a global object from the specified information table.
 
Status_Control _Objects_MP_Global_name_search (const Objects_Information *information, Objects_Name the_name, uint32_t nodes_to_search, Objects_Id *the_id)
 Looks for the object with the_name in the global object tables indicated by information.
 
bool _Objects_MP_Is_remote (Objects_Id id, const Objects_Information *information)
 Checks if the object identifier is in the global object identifier cache of the specified object information.
 
Objects_MP_Control * _Objects_MP_Allocate_global_object (void)
 This function allocates a Global Object control block.
 
void _Objects_MP_Free_global_object (Objects_MP_Control *the_object)
 This routine deallocates a Global Object control block.
 

Variables

uint32_t _Objects_MP_Maximum_global_objects
 

Detailed Description

This group contains the implementation to support the Object Handler in multiprocessing (MP) configurations.

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

◆ _Objects_MP_Allocate_and_open()

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.

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,out]informationPoints to the object information table for this object class.
the_nameThe name of the object being opened.
the_idThe Id of the object being opened.
is_fatal_errorIndicates whether not being able to allocate the object is considered a fatal error.
Return values
trueThe operation succeeded.
falseThe allocation failed, but is_fatal_error was set to false.
Todo:
This method only works for object types with 4 byte object names. It does not support variable length object names.

◆ _Objects_MP_Close()

void _Objects_MP_Close ( Objects_Information information,
Objects_Id  the_id 
)

Removes a global object from the specified information table.

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

Parameters
[in,out]informationPoints to the object information table for this object class.
the_idThe id of the global object to remove.

◆ _Objects_MP_Free_global_object()

void _Objects_MP_Free_global_object ( Objects_MP_Control *  the_object)

This routine deallocates a Global Object control block.

Parameters
[out]the_objectThe object to deallocate.

◆ _Objects_MP_Global_name_search()

Status_Control _Objects_MP_Global_name_search ( const Objects_Information information,
Objects_Name  the_name,
uint32_t  nodes_to_search,
Objects_Id the_id 
)

Looks for the object with the_name in the global object tables indicated by information.

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
informationPoints to the object information table for this object class.
the_nameThe name of the object being searched for.
nodes_to_searchIndicates the set of nodes to search.
[out]the_idwill contain the Id of the object if found.
Return values
STATUS_SUCCESSFULThe lookup was successful.
STATUS_INVALID_NODEThe number of nodes is bigger than the objects maximum nodes value.
STATUS_INVALID_NAMEThere is no global object with this name.

◆ _Objects_MP_Handler_early_initialization()

void _Objects_MP_Handler_early_initialization ( void  )

Intializes the global object node number used in the ID field of all objects.

This routine intializes the global object node number used in the ID field of all objects.

◆ _Objects_MP_Handler_initialization()

void _Objects_MP_Handler_initialization ( void  )

Intializes the inactive global object chain based on the maximum number of global objects configured.

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

◆ _Objects_MP_Is_remote()

bool _Objects_MP_Is_remote ( Objects_Id  id,
const Objects_Information information 
)

Checks if the object identifier is in the global object identifier cache of the specified object information.

Parameters
idThe object identifier.
informationThe object information.
Return values
trueA remote objects with this object identifier exists in the global object identifier cache of the specified information.
falseA remote objects with this object identifier does not exist in the global object identifier cache of the specified information.

◆ _Objects_MP_Open()

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.

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

Parameters
[in,out]informationPoints to the object information table for this object class.
[in,out]the_global_objectPoints to the object being opened.
the_nameThe name of the object being opened.
the_idThe 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

◆ _Objects_MP_Maximum_global_objects

uint32_t _Objects_MP_Maximum_global_objects
extern

This is the maximum number of global objects configured.