RTEMS  5.0.0
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/isrlock.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_Local_node   ((uint16_t)1)
 
#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

void _Objects_Extend_information (Objects_Information *information)
 
void _Objects_Shrink_information (Objects_Information *information)
 Shrink 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)
 Object API Maximum Class. More...
 
Objects_Control_Objects_Allocate_unprotected (Objects_Information *information)
 Allocates an object without locking the allocator mutex. More...
 
Objects_Control_Objects_Allocate (Objects_Information *information)
 Allocates an object. More...
 
void _Objects_Free (Objects_Information *information, Objects_Control *the_object)
 Frees 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)
 Implements the common portion of the object Id to name directives. 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)
 
Objects_Information_Objects_Get_information (Objects_APIs the_api, uint16_t the_class)
 Get object information. More...
 
Objects_Information_Objects_Get_information_id (Objects_Id id)
 Get information of an object from an ID. 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)
 Set objects name. More...
 
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)
 Close object. More...
 
Objects_Maximum _Objects_Active_count (const Objects_Information *information)
 Returns the count of active objects. More...
 
RTEMS_INLINE_ROUTINE bool _Objects_Has_string_name (const Objects_Information *information)
 
RTEMS_INLINE_ROUTINE Objects_Maximum _Objects_Extend_size (const Objects_Information *information)
 
RTEMS_INLINE_ROUTINE bool _Objects_Is_api_valid (uint32_t the_api)
 
RTEMS_INLINE_ROUTINE bool _Objects_Is_local_node (uint32_t node)
 
RTEMS_INLINE_ROUTINE bool _Objects_Is_local_id (Objects_Id id RTEMS_UNUSED)
 
RTEMS_INLINE_ROUTINE bool _Objects_Are_ids_equal (Objects_Id left, Objects_Id right)
 
RTEMS_INLINE_ROUTINE Objects_Id _Objects_Get_minimum_id (Objects_Id id)
 
RTEMS_INLINE_ROUTINE Objects_Maximum _Objects_Get_maximum_index (const Objects_Information *information)
 
RTEMS_INLINE_ROUTINE Objects_Maximum _Objects_Is_auto_extend (const Objects_Information *information)
 Returns true if the automatic object extension (unlimited objects) is enabled, otherwise false. More...
 
RTEMS_INLINE_ROUTINE void _Objects_Set_local_object (const Objects_Information *information, uint32_t index, Objects_Control *the_object)
 
RTEMS_INLINE_ROUTINE void _Objects_Invalidate_Id (const Objects_Information *information, Objects_Control *the_object)
 
RTEMS_INLINE_ROUTINE void _Objects_Open (Objects_Information *information, Objects_Control *the_object, Objects_Name name)
 
RTEMS_INLINE_ROUTINE void _Objects_Open_u32 (const Objects_Information *information, Objects_Control *the_object, uint32_t name)
 
RTEMS_INLINE_ROUTINE void _Objects_Open_string (const Objects_Information *information, Objects_Control *the_object, const char *name)
 
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)
 

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.