RTEMS: Object Handler Multiprocessing Support

| RTEMS 5.4-rc2

Loading...
Searching...
No Matches
Files | Functions | Variables
Object Handler Multiprocessing Support
Internal » SuperCore

Object Handler Multiprocessing Support. More...

## Files
file | objectmp.h
| Data Associated with the Manipulation of Global RTEMS Objects.
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.
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.
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)
| 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.
RTEMS_INLINE_ROUTINE bool | _Objects_MP_Is_null_global_object (Objects_MP_Control *the_object)
| Checks if the global object is NULL or not.

## Variables
uint32_t | _Objects_MP_Maximum_global_objects

## Detailed Description

Object Handler Multiprocessing Support.

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] | information | Points to the object information table for this object class.
  | the_name | The name of the object being opened.
  | the_id | The Id of the object being opened.
  | is_fatal_error | Indicates whether not being able to allocate the object is considered a fatal error.

Return values

  true | The operation succeeded.
  false | The 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] | information | Points to the object information table for this object class.
  | the_id | The 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_object | The object to deallocate.

## ◆ _Objects_MP_Global_name_search()

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
| ) |  |

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

  | information | Points to the object information table for this object class.
  | the_name | The name of the object being searched for.
  | nodes_to_search | Indicates the set of nodes to search.
  [out] | the_id | will contain the Id of the object if found.

Return values

  OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL | The lookup was successful.
  OBJECTS_INVALID_NODE | The number of nodes is bigger than the objects maximum nodes value.
  OBJECTS_INVALID_NAME | There 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_null_global_object()

RTEMS_INLINE_ROUTINE bool _Objects_MP_Is_null_global_object | ( | Objects_MP_Control * | the_object | ) |

Checks if the global object is NULL or not.

Parameters

  the_object | The object to check if it is NULL.

Return values

  true | the_object is NULL.
  false | the_object is not NULL.

## ◆ _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

  id | The object identifier.
  information | The object information.

Return values

  true | A remote objects with this object identifier exists in the global object identifier cache of the specified information.
  false | A 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] | information | Points to the object information table for this object class.
  [in,out] | the_global_object | Points to the object being opened.
  | the_name | The name of the object being opened.
  | the_id | 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

## ◆ _Objects_MP_Maximum_global_objects

uint32_t _Objects_MP_Maximum_global_objects
| extern

This is the maximum number of global objects configured.