22 #ifndef _RTEMS_SCORE_OBJECT_H 23 #define _RTEMS_SCORE_OBJECT_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)
#define OBJECTS_NODE_VALID_BITS
#define OBJECTS_INDEX_START_BIT
#define OBJECTS_NODE_START_BIT
#define OBJECTS_INDEX_VALID_BITS
static __inline__ Objects_Maximum _Objects_Get_index(Objects_Id id)
Returns the index portion of the ID.
#define OBJECTS_API_START_BIT
static __inline__ uint32_t _Objects_Get_node(Objects_Id id)
Returns the node portion of the ID.
#define OBJECTS_CLASS_START_BIT
static __inline__ uint32_t _Objects_Get_class(Objects_Id id)
Returns the class portion of the ID.
#define OBJECTS_CLASS_VALID_BITS
SPARC CPU Department Source.
#define _Objects_Local_node
The local MPCI node number.
#define OBJECTS_API_VALID_BITS
This header file provides basic definitions used by the API and the implementation.
#define RTEMS_INLINE_ROUTINE
Gives a hint to the compiler in a function declaration to inline this function.
static __inline__ Objects_APIs _Objects_Get_API(Objects_Id id)
Returns the API portion of the ID.