22 #ifndef _RTEMS_SCORE_OBJECT_H 23 #define _RTEMS_SCORE_OBJECT_H 26 #include <rtems/score/cpu.h> 92 #define OBJECTS_INDEX_START_BIT 0U 97 #define OBJECTS_NODE_START_BIT 16U 103 #define OBJECTS_API_START_BIT 24U 109 #define OBJECTS_CLASS_START_BIT 27U 114 #define OBJECTS_INDEX_MASK (Objects_Id)0x0000ffffU 119 #define OBJECTS_NODE_MASK (Objects_Id)0x00ff0000U 124 #define OBJECTS_API_MASK (Objects_Id)0x07000000U 129 #define OBJECTS_CLASS_MASK (Objects_Id)0xf8000000U 135 #define OBJECTS_INDEX_VALID_BITS (Objects_Id)0x0000ffffU 141 #define OBJECTS_NODE_VALID_BITS (Objects_Id)0x000000ffU 147 #define OBJECTS_API_VALID_BITS (Objects_Id)0x00000007U 153 #define OBJECTS_CLASS_VALID_BITS (Objects_Id)0x0000001fU 159 #define OBJECTS_UNLIMITED_OBJECTS 0x80000000U 164 #define OBJECTS_ID_INITIAL_INDEX (0) 169 #define OBJECTS_ID_FINAL_INDEX (0xffffU) 176 OBJECTS_INTERNAL_API = 1,
177 OBJECTS_CLASSIC_API = 2,
178 OBJECTS_POSIX_API = 3,
179 OBJECTS_FAKE_OBJECTS_API = 7
183 #define OBJECTS_APIS_LAST OBJECTS_POSIX_API 188 #define OBJECTS_ID_NONE 0 194 #define OBJECTS_ID_OF_SELF ((Objects_Id) 0) 200 #define OBJECTS_SEARCH_ALL_NODES 0 206 #define OBJECTS_SEARCH_OTHER_NODES 0x7FFFFFFE 212 #define OBJECTS_SEARCH_LOCAL_NODE 0x7FFFFFFF 218 #define OBJECTS_WHO_AM_I 0 224 #define OBJECTS_ID_INITIAL(_api, _class, _node) \ 225 _Objects_Build_id( (_api), (_class), (_node), OBJECTS_ID_INITIAL_INDEX ) 230 #define OBJECTS_ID_FINAL ((Objects_Id)~0) 242 #define _Objects_Build_name( _C1, _C2, _C3, _C4 ) \ 243 ( (uint32_t)(_C1) << 24 | \ 244 (uint32_t)(_C2) << 16 | \ 245 (uint32_t)(_C3) << 8 | \ 317 #define _Objects_Build_id( the_api, the_class, node, index ) \ 318 ( (Objects_Id) ( (Objects_Id) the_api << OBJECTS_API_START_BIT ) | \ 319 ( (Objects_Id) the_class << OBJECTS_CLASS_START_BIT ) | \ 320 ( (Objects_Id) node << OBJECTS_NODE_START_BIT ) | \ 321 ( (Objects_Id) index << OBJECTS_INDEX_START_BIT ) ) 331 #define _Objects_Is_unlimited( maximum ) \ 332 ( ( ( maximum ) & OBJECTS_UNLIMITED_OBJECTS ) != 0 ) 338 #define _Objects_Maximum_per_allocation( maximum ) \ 339 ((Objects_Maximum) ((maximum) & ~OBJECTS_UNLIMITED_OBJECTS)) 344 #if defined(RTEMS_MULTIPROCESSING) 347 #define _Objects_Local_node ((uint16_t) 1) uint32_t name_u32
Definition: object.h:68
#define OBJECTS_NODE_VALID_BITS
Definition: object.h:141
RTEMS_INLINE_ROUTINE uint32_t _Objects_Get_class(Objects_Id id)
Returns the class portion of the ID.
Definition: object.h:269
#define OBJECTS_INDEX_START_BIT
Definition: object.h:92
#define OBJECTS_NODE_START_BIT
Definition: object.h:97
uint16_t Objects_Maximum
Definition: object.h:86
#define OBJECTS_INDEX_VALID_BITS
Definition: object.h:135
RTEMS_INLINE_ROUTINE uint32_t _Objects_Get_node(Objects_Id id)
Returns the node portion of the ID.
Definition: object.h:284
#define OBJECTS_API_START_BIT
Definition: object.h:103
RTEMS_INLINE_ROUTINE Objects_APIs _Objects_Get_API(Objects_Id id)
Returns the API portion of the ID.
Definition: object.h:255
#define OBJECTS_CLASS_START_BIT
Definition: object.h:109
#define OBJECTS_CLASS_VALID_BITS
Definition: object.h:153
const char * name_p
Definition: object.h:66
#define _Objects_Local_node
The local MPCI node number.
Definition: object.h:347
Objects_APIs
Definition: object.h:174
#define OBJECTS_API_VALID_BITS
Definition: object.h:147
uint32_t Objects_Id
Definition: object.h:80
#define RTEMS_INLINE_ROUTINE
Definition: basedefs.h:66
RTEMS_INLINE_ROUTINE Objects_Maximum _Objects_Get_index(Objects_Id id)
Returns the index portion of the ID.
Definition: object.h:298