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.