20 #ifndef _RTEMS_SCORE_OBJECT_H 21 #define _RTEMS_SCORE_OBJECT_H 24 #include <rtems/score/cpu.h> 87 #define OBJECTS_INDEX_START_BIT 0U 92 #define OBJECTS_NODE_START_BIT 16U 98 #define OBJECTS_API_START_BIT 24U 104 #define OBJECTS_CLASS_START_BIT 27U 109 #define OBJECTS_INDEX_MASK (Objects_Id)0x0000ffffU 114 #define OBJECTS_NODE_MASK (Objects_Id)0x00ff0000U 119 #define OBJECTS_API_MASK (Objects_Id)0x07000000U 124 #define OBJECTS_CLASS_MASK (Objects_Id)0xf8000000U 130 #define OBJECTS_INDEX_VALID_BITS (Objects_Id)0x0000ffffU 136 #define OBJECTS_NODE_VALID_BITS (Objects_Id)0x000000ffU 142 #define OBJECTS_API_VALID_BITS (Objects_Id)0x00000007U 148 #define OBJECTS_CLASS_VALID_BITS (Objects_Id)0x0000001fU 154 #define OBJECTS_UNLIMITED_OBJECTS 0x80000000U 159 #define OBJECTS_ID_INITIAL_INDEX (0) 164 #define OBJECTS_ID_FINAL_INDEX (0xffffU) 171 OBJECTS_INTERNAL_API = 1,
172 OBJECTS_CLASSIC_API = 2,
173 OBJECTS_POSIX_API = 3,
174 OBJECTS_FAKE_OBJECTS_API = 7
178 #define OBJECTS_APIS_LAST OBJECTS_POSIX_API 183 #define OBJECTS_ID_NONE 0 189 #define OBJECTS_ID_OF_SELF ((Objects_Id) 0) 195 #define OBJECTS_SEARCH_ALL_NODES 0 201 #define OBJECTS_SEARCH_OTHER_NODES 0x7FFFFFFE 207 #define OBJECTS_SEARCH_LOCAL_NODE 0x7FFFFFFF 213 #define OBJECTS_WHO_AM_I 0 219 #define OBJECTS_ID_INITIAL(_api, _class, _node) \ 220 _Objects_Build_id( (_api), (_class), (_node), OBJECTS_ID_INITIAL_INDEX ) 225 #define OBJECTS_ID_FINAL ((Objects_Id)~0) 237 #define _Objects_Build_name( _C1, _C2, _C3, _C4 ) \ 238 ( (uint32_t)(_C1) << 24 | \ 239 (uint32_t)(_C2) << 16 | \ 240 (uint32_t)(_C3) << 8 | \ 312 #define _Objects_Build_id( the_api, the_class, node, index ) \ 313 ( (Objects_Id) ( (Objects_Id) the_api << OBJECTS_API_START_BIT ) | \ 314 ( (Objects_Id) the_class << OBJECTS_CLASS_START_BIT ) | \ 315 ( (Objects_Id) node << OBJECTS_NODE_START_BIT ) | \ 316 ( (Objects_Id) index << OBJECTS_INDEX_START_BIT ) ) 326 #define _Objects_Is_unlimited( maximum ) \ 327 ( ( ( maximum ) & OBJECTS_UNLIMITED_OBJECTS ) != 0 ) 333 #define _Objects_Maximum_per_allocation( maximum ) \ 334 ((Objects_Maximum) ((maximum) & ~OBJECTS_UNLIMITED_OBJECTS)) uint32_t name_u32
Definition: object.h:63
#define OBJECTS_API_VALID_BITS
Definition: object.h:142
RTEMS_INLINE_ROUTINE Objects_APIs _Objects_Get_API(Objects_Id id)
Definition: object.h:250
RTEMS_INLINE_ROUTINE Objects_Maximum _Objects_Get_index(Objects_Id id)
Definition: object.h:291
#define OBJECTS_INDEX_VALID_BITS
Definition: object.h:130
#define RTEMS_INLINE_ROUTINE
Definition: basedefs.h:65
#define OBJECTS_CLASS_VALID_BITS
Definition: object.h:148
#define OBJECTS_CLASS_START_BIT
Definition: object.h:104
#define OBJECTS_INDEX_START_BIT
Definition: object.h:87
#define OBJECTS_API_START_BIT
Definition: object.h:98
#define OBJECTS_NODE_VALID_BITS
Definition: object.h:136
const char * name_p
Definition: object.h:61
RTEMS_INLINE_ROUTINE uint32_t _Objects_Get_class(Objects_Id id)
Definition: object.h:262
uint16_t Objects_Maximum
Definition: object.h:81
RTEMS_INLINE_ROUTINE uint32_t _Objects_Get_node(Objects_Id id)
Definition: object.h:277
uint32_t Objects_Id
Definition: object.h:75
#define OBJECTS_NODE_START_BIT
Definition: object.h:92
Objects_APIs
Definition: object.h:169