|
RTEMS CPU Kit with SuperCore
4.11.2
|
Inlined Routines in the Object Handler. More...
#include <rtems/score/object.h>#include <rtems/score/apimutex.h>#include <rtems/score/isrlock.h>#include <rtems/score/threaddispatch.h>
Go to the source code of this file.
Data Structures | |
| struct | Objects_Information |
| The following defines the structure for the information used to manage each class of objects. More... | |
Macros | |
| #define | OBJECTS_INTERNAL_CLASSES_LAST OBJECTS_INTERNAL_MUTEXES |
| This macro is used to generically specify the last API index. More... | |
| #define | OBJECTS_RTEMS_CLASSES_LAST OBJECTS_RTEMS_BARRIERS |
| This macro is used to generically specify the last API index. More... | |
| #define | OBJECTS_POSIX_CLASSES_LAST OBJECTS_POSIX_RWLOCKS |
| This macro is used to generically specify the last API index. More... | |
| #define | _Objects_Local_node ((uint16_t)1) |
| The following is referenced to the node number of the local node. | |
| #define | _Objects_Maximum_nodes 1 |
| The following is referenced to the number of nodes in the system. | |
| #define | OBJECTS_NAME_ERRORS_FIRST OBJECTS_NAME_OR_ID_LOOKUP_SUCCESSFUL |
| This macro defines the first entry in the Objects_Name_or_id_lookup_errors enumerated list. | |
| #define | OBJECTS_NAME_ERRORS_LAST OBJECTS_INVALID_NODE |
| This macro defines the last entry in the Objects_Name_or_id_lookup_errors enumerated list. | |
Typedefs | |
| typedef bool(* | Objects_Name_comparators) (void *, void *, uint16_t) |
| Functions which compare names are prototyped like this. | |
| typedef void(* | Objects_Thread_queue_Extract_callout) (void *) |
| The following type defines the callout used when a local task is extracted from a remote thread queue (i.e. More... | |
Enumerations | |
| enum | Objects_Internal_API { OBJECTS_INTERNAL_NO_CLASS = 0, OBJECTS_INTERNAL_THREADS = 1, OBJECTS_INTERNAL_MUTEXES = 2 } |
| This enumerated type is used in the class field of the object ID for RTEMS internal object classes. | |
| enum | Objects_Classic_API { OBJECTS_CLASSIC_NO_CLASS = 0, OBJECTS_RTEMS_TASKS = 1, OBJECTS_RTEMS_TIMERS = 2, OBJECTS_RTEMS_SEMAPHORES = 3, OBJECTS_RTEMS_MESSAGE_QUEUES = 4, OBJECTS_RTEMS_PARTITIONS = 5, OBJECTS_RTEMS_REGIONS = 6, OBJECTS_RTEMS_PORTS = 7, OBJECTS_RTEMS_PERIODS = 8, OBJECTS_RTEMS_EXTENSIONS = 9, OBJECTS_RTEMS_BARRIERS = 10 } |
| This enumerated type is used in the class field of the object ID for the RTEMS Classic API. | |
| enum | Objects_POSIX_API { OBJECTS_POSIX_NO_CLASS = 0, OBJECTS_POSIX_THREADS = 1, OBJECTS_POSIX_KEYS = 2, OBJECTS_POSIX_INTERRUPTS = 3, OBJECTS_POSIX_MESSAGE_QUEUE_FDS = 4, OBJECTS_POSIX_MESSAGE_QUEUES = 5, OBJECTS_POSIX_MUTEXES = 6, OBJECTS_POSIX_SEMAPHORES = 7, OBJECTS_POSIX_CONDITION_VARIABLES = 8, OBJECTS_POSIX_TIMERS = 9, OBJECTS_POSIX_BARRIERS = 10, OBJECTS_POSIX_SPINLOCKS = 11, OBJECTS_POSIX_RWLOCKS = 12 } |
| This enumerated type is used in the class field of the object ID for the POSIX API. | |
| enum | Objects_Fake_objects_API { OBJECTS_FAKE_OBJECTS_NO_CLASS = 0, OBJECTS_FAKE_OBJECTS_SCHEDULERS = 1 } |
| enum | Objects_Locations { OBJECTS_LOCAL = 0, OBJECTS_ERROR = 1 } |
| This enumerated type lists the locations which may be returned by _Objects_Get. More... | |
| 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 } |
| This function implements the common portion of the object identification directives. More... | |
Functions | |
| void | _Objects_Extend_information (Objects_Information *information) |
| This function extends an object class information record. More... | |
| void | _Objects_Shrink_information (Objects_Information *information) |
| Shrink an object class information record. More... | |
| void | _Objects_Initialize_information (Objects_Information *information, Objects_APIs the_api, uint16_t the_class, uint32_t maximum, uint16_t size, bool is_string, uint32_t maximum_name_length) |
| Initialize object 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_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_Information *information, Objects_Id id, Objects_Locations *location) |
| Maps object ids to object control blocks. More... | |
| Objects_Control * | _Objects_Get_isr_disable (Objects_Information *information, Objects_Id id, Objects_Locations *location, ISR_lock_Context *lock_context) |
| Maps object ids to object control blocks. More... | |
| Objects_Control * | _Objects_Get_no_protection (Objects_Information *information, Objects_Id id, Objects_Locations *location) |
| Maps object ids to object control blocks. More... | |
| Objects_Control * | _Objects_Get_next (Objects_Information *information, Objects_Id id, Objects_Locations *location_p, Objects_Id *next_id_p) |
| Like _Objects_Get, but is used to find "next" open object. More... | |
| 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... | |
| bool | _Objects_Set_name (Objects_Information *information, Objects_Control *the_object, const char *name) |
| Set objects name. More... | |
| void | _Objects_Namespace_remove (Objects_Information *information, Objects_Control *the_object) |
| Removes object from namespace. More... | |
| void | _Objects_Close (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_Is_api_valid (uint32_t the_api) |
| This function returns true if the api is valid. More... | |
| RTEMS_INLINE_ROUTINE bool | _Objects_Is_local_node (uint32_t node) |
| This function returns true if the node is of the local object, and false otherwise. More... | |
| RTEMS_INLINE_ROUTINE bool | _Objects_Is_local_id (Objects_Id id) |
| This function returns true if the id is of a local object, and false otherwise. More... | |
| RTEMS_INLINE_ROUTINE bool | _Objects_Are_ids_equal (Objects_Id left, Objects_Id right) |
| This function returns true if left and right are equal, and false otherwise. More... | |
| RTEMS_INLINE_ROUTINE Objects_Control * | _Objects_Get_local_object (Objects_Information *information, uint16_t index) |
| This function returns a pointer to the local_table object referenced by the index. More... | |
| RTEMS_INLINE_ROUTINE void | _Objects_Set_local_object (Objects_Information *information, uint32_t index, Objects_Control *the_object) |
| This function sets the pointer to the local_table object referenced by the index. More... | |
| RTEMS_INLINE_ROUTINE void | _Objects_Invalidate_Id (Objects_Information *information, Objects_Control *the_object) |
| This function sets the pointer to the local_table object referenced by the index to a NULL so the object Id is invalid after this call. More... | |
| RTEMS_INLINE_ROUTINE void | _Objects_Open (Objects_Information *information, Objects_Control *the_object, Objects_Name name) |
| This function 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 (Objects_Information *information, Objects_Control *the_object, uint32_t name) |
| This function 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 (Objects_Information *information, Objects_Control *the_object, const char *name) |
| This function places the_object control pointer and object name in the Local Pointer and Local Name Tables, respectively. More... | |
| RTEMS_INLINE_ROUTINE void | _Objects_Put (Objects_Control *the_object) |
| Puts back an object obtained with _Objects_Get(). More... | |
| RTEMS_INLINE_ROUTINE void | _Objects_Put_without_thread_dispatch (Objects_Control *the_object) |
| Puts back an object obtained with _Objects_Get(). 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... | |
Variables | |
| SCORE_EXTERN Objects_Information ** | _Objects_Information_table [OBJECTS_APIS_LAST+1] |
| The following is the list of information blocks per API for each object class. More... | |
Inlined Routines in the Object Handler.
This include file contains the static inline implementation of all of the inlined routines in the Object Handler.
1.8.13