RTEMS CPU Kit with SuperCore
4.11.3
|
This handler encapsulates functionality which is used to manage objects which have been declared to be globally visible. More...
![]() |
Files | |
file | objectmp.c |
Objects MP Support. | |
Functions | |
void | _Objects_MP_Handler_initialization (void) |
Intializes the inactive global object chain based on the maximum number of global objects configured. More... | |
void | _Objects_MP_Handler_early_initialization (void) |
Intializes the global object node number used in the ID field of all objects. More... | |
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. More... | |
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. More... | |
void | _Objects_MP_Close (Objects_Information *information, Objects_Id the_id) |
Removes a global object from the specified information table. More... | |
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. More... | |
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. More... | |
RTEMS_INLINE_ROUTINE Objects_MP_Control * | _Objects_MP_Allocate_global_object (void) |
This function allocates a 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. | |
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. | |
Variables | |
SCORE_EXTERN uint32_t | _Objects_MP_Maximum_global_objects |
This is the maximum number of global objects configured. | |
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. | |
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.
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.
[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. |
References _Objects_MP_Allocate_global_object(), _Objects_MP_Is_null_global_object(), _Terminate(), and INTERNAL_ERROR_CORE.
Referenced by rtems_semaphore_create().
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.
References _Chain_Extract(), _Chain_First(), _Chain_Is_tail(), _Chain_Next(), _Objects_Are_ids_equal(), _Objects_Get_node(), _Objects_MP_Free_global_object(), _Terminate(), and INTERNAL_ERROR_CORE.
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.
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.
[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. |
This | method returns one of the Objects_Name_or_id_lookup_errors. If successful, the_id will contain the Id of the object. |
References _Objects_Maximum_nodes, and Objects_Name::name_u32.
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.
References _Terminate(), and INTERNAL_ERROR_CORE.
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.
References _Chain_Initialize(), _Chain_Initialize_empty(), _Objects_MP_Inactive_global_objects, _Objects_MP_Maximum_global_objects, and _Workspace_Allocate_or_fatal_error().
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.
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.
[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. |
This | method fills in location to indicate successful location of the object or error. On success, the_object will be filled in. |
References _Objects_Get_node(), _Objects_Is_local_node(), and _Objects_Maximum_nodes.
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.
[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. |
References _Chain_Prepend(), and _Objects_Get_node().