RTEMS  5.1
Macros | Typedefs | Enumerations | Functions | Variables
objectimpl.h File Reference

Inlined Routines in the Object Handler. More...

#include <rtems/score/objectdata.h>
#include <rtems/score/apimutex.h>
#include <rtems/score/assert.h>
#include <rtems/score/isrlock.h>
#include <rtems/score/sysstate.h>
#include <rtems/score/threaddispatch.h>

Go to the source code of this file.

Macros

#define OBJECTS_INTERNAL_CLASSES_LAST   OBJECTS_INTERNAL_THREADS
 
#define OBJECTS_RTEMS_CLASSES_LAST   OBJECTS_RTEMS_BARRIERS
 
#define OBJECTS_POSIX_CLASSES_LAST   OBJECTS_POSIX_SHMS
 
#define _Objects_Maximum_nodes   1
 
#define OBJECTS_INDEX_MINIMUM   1U
 
#define OBJECTS_NAME_ERRORS_FIRST   OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL
 
#define OBJECTS_NAME_ERRORS_LAST   OBJECTS_INVALID_NODE
 

Typedefs

typedef bool(* Objects_Name_comparators) (void *, void *, uint16_t)
 

Enumerations

enum  Objects_Fake_objects_API { OBJECTS_FAKE_OBJECTS_NO_CLASS = 0, OBJECTS_FAKE_OBJECTS_SCHEDULERS = 1 }
 
enum  Objects_Name_or_id_lookup_errors {
  OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL, OBJECTS_INVALID_NAME, OBJECTS_INVALID_ADDRESS, OBJECTS_INVALID_ID,
  OBJECTS_INVALID_NODE
}
 
enum  Objects_Get_by_name_error { OBJECTS_GET_BY_NAME_INVALID_NAME, OBJECTS_GET_BY_NAME_NAME_TOO_LONG, OBJECTS_GET_BY_NAME_NO_OBJECT }
 

Functions

Objects_Maximum _Objects_Extend_information (Objects_Information *information)
 Extends an object class information record. More...
 
void _Objects_Free_objects_block (Objects_Information *information, Objects_Maximum block)
 Free the objects block with the specified index. More...
 
void _Objects_Shrink_information (Objects_Information *information)
 Shrinks an object class information record. More...
 
void _Objects_Initialize_information (Objects_Information *information)
 Initializes the specified objects information. More...
 
unsigned int _Objects_API_maximum_class (uint32_t api)
 Returns highest numeric value of a valid API for the specified API. More...
 
Objects_Control_Objects_Allocate (Objects_Information *information)
 Allocates an object. More...
 
Objects_Name_or_id_lookup_errors _Objects_Name_to_id_u32 (Objects_Information *information, uint32_t name, uint32_t node, Objects_Id *id)
 Converts an object name to an Id. More...
 
Objects_Control_Objects_Get_by_name (const Objects_Information *information, const char *name, size_t *name_length_p, Objects_Get_by_name_error *error)
 Gets an object control block identified by its name. More...
 
Objects_Name_or_id_lookup_errors _Objects_Id_to_name (Objects_Id id, Objects_Name *name)
 Returns the name associated with object id. More...
 
Objects_Control_Objects_Get (Objects_Id id, ISR_lock_Context *lock_context, const Objects_Information *information)
 Maps the specified object identifier to the associated local object control block. More...
 
Objects_Control_Objects_Get_no_protection (Objects_Id id, const Objects_Information *information)
 Maps object ids to object control blocks. More...
 
Objects_Control_Objects_Get_next (Objects_Id id, const Objects_Information *information, Objects_Id *next_id_p)
 Gets the next open object after the specified object identifier. More...
 
Objects_Information_Objects_Get_information (Objects_APIs the_api, uint16_t the_class)
 Gets object information. More...
 
Objects_Information_Objects_Get_information_id (Objects_Id id)
 Gets information of an object from an ID. More...
 
RTEMS_INLINE_ROUTINE bool _Objects_Has_string_name (const Objects_Information *information)
 Returns if the object has a string name. More...
 
char * _Objects_Get_name_as_string (Objects_Id id, size_t length, char *name)
 Gets object name in the form of a C string. More...
 
size_t _Objects_Name_to_string (Objects_Name name, bool is_string, char *buffer, size_t buffer_size)
 Converts the specified object name to a text representation. More...
 
bool _Objects_Set_name (const Objects_Information *information, Objects_Control *the_object, const char *name)
 Sets objects name. More...
 
RTEMS_INLINE_ROUTINE void _Objects_Namespace_remove_u32 (const Objects_Information *information, Objects_Control *the_object)
 Removes object with a 32-bit integer name from its namespace. More...
 
void _Objects_Namespace_remove_string (const Objects_Information *information, Objects_Control *the_object)
 Removes object with a string name from its namespace. More...
 
void _Objects_Close (const Objects_Information *information, Objects_Control *the_object)
 Closes object. More...
 
Objects_Maximum _Objects_Active_count (const Objects_Information *information)
 Returns the count of active objects. More...
 
RTEMS_INLINE_ROUTINE Objects_Maximum _Objects_Extend_size (const Objects_Information *information)
 Returns the object's objects per block. More...
 
RTEMS_INLINE_ROUTINE bool _Objects_Is_api_valid (uint32_t the_api)
 Checks if the api is valid. More...
 
RTEMS_INLINE_ROUTINE bool _Objects_Is_local_node (uint32_t node)
 Checks if the node is of the local object. More...
 
RTEMS_INLINE_ROUTINE bool _Objects_Is_local_id (Objects_Id id RTEMS_UNUSED)
 Checks if the id is of a local object. More...
 
RTEMS_INLINE_ROUTINE bool _Objects_Are_ids_equal (Objects_Id left, Objects_Id right)
 Checks if two object IDs are equal. More...
 
RTEMS_INLINE_ROUTINE Objects_Id _Objects_Get_minimum_id (Objects_Id id)
 Returns the identifier with the minimum index for the specified identifier. More...
 
RTEMS_INLINE_ROUTINE Objects_Maximum _Objects_Get_maximum_index (const Objects_Information *information)
 Returns the maximum index of the specified object class. More...
 
RTEMS_INLINE_ROUTINE Objects_Control_Objects_Get_inactive (Objects_Information *information)
 Get an inactive object or NULL. More...
 
RTEMS_INLINE_ROUTINE Objects_Maximum _Objects_Is_auto_extend (const Objects_Information *information)
 Checks if the automatic object extension (unlimited objects) is enabled. More...
 
RTEMS_INLINE_ROUTINE void _Objects_Set_local_object (const Objects_Information *information, uint32_t index, Objects_Control *the_object)
 Sets the pointer to the local_table object referenced by the index. More...
 
RTEMS_INLINE_ROUTINE void _Objects_Invalidate_Id (const Objects_Information *information, Objects_Control *the_object)
 Invalidates an object Id. More...
 
RTEMS_INLINE_ROUTINE void _Objects_Open (Objects_Information *information, Objects_Control *the_object, Objects_Name name)
 Places the_object control pointer and object name in the Local Pointer and Local Name Tables, respectively. More...
 
RTEMS_INLINE_ROUTINE void _Objects_Open_u32 (const Objects_Information *information, Objects_Control *the_object, uint32_t name)
 Places the_object control pointer and object name in the Local Pointer and Local Name Tables, respectively. More...
 
RTEMS_INLINE_ROUTINE void _Objects_Open_string (const Objects_Information *information, Objects_Control *the_object, const char *name)
 Places the_object control pointer and object name in the Local Pointer and Local Name Tables, respectively. More...
 
RTEMS_INLINE_ROUTINE void _Objects_Allocator_lock (void)
 Locks the object allocator mutex. More...
 
RTEMS_INLINE_ROUTINE void _Objects_Allocator_unlock (void)
 Unlocks the object allocator mutex. More...
 
RTEMS_INLINE_ROUTINE bool _Objects_Allocator_is_owner (void)
 Checks if the allocator is the owner of the object allocator mutex. More...
 
RTEMS_INLINE_ROUTINE Objects_Control_Objects_Allocate_unprotected (Objects_Information *information)
 Allocates an object without locking the allocator mutex. More...
 
RTEMS_INLINE_ROUTINE void _Objects_Free (Objects_Information *information, Objects_Control *the_object)
 Frees an object. More...
 
RTEMS_INLINE_ROUTINE void _Objects_Activate_unlimited (Objects_Information *information, Objects_Control *the_object)
 Activate the object. More...
 
RTEMS_INLINE_ROUTINE Objects_Control_Objects_Allocate_with_extend (Objects_Information *information, void(*extend)(Objects_Information *))
 Allocate an object and extend the objects information on demand. More...
 

Variables

Objects_Information **const _Objects_Information_table [OBJECTS_APIS_LAST+1]
 

Detailed Description

Inlined Routines in the Object Handler.

This include file contains the static inline implementation of all of the inlined routines in the Object Handler.