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)
#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
RTEMS_INLINE_ROUTINE uint32_t _Objects_Get_node(Objects_Id id)
Returns the node portion of the ID.
Definition: object.h:284
Objects_APIs
Definition: object.h:174
#define OBJECTS_NODE_START_BIT
Definition: object.h:97
RTEMS_INLINE_ROUTINE uint32_t _Objects_Get_class(Objects_Id id)
Returns the class portion of the ID.
Definition: object.h:269
uint32_t Objects_Id
Definition: object.h:80
#define OBJECTS_API_VALID_BITS
Definition: object.h:147
#define OBJECTS_CLASS_VALID_BITS
Definition: object.h:153
#define OBJECTS_INDEX_START_BIT
Definition: object.h:92
#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_INDEX_VALID_BITS
Definition: object.h:135
uint16_t Objects_Maximum
Definition: object.h:86
#define OBJECTS_CLASS_START_BIT
Definition: object.h:109
#define OBJECTS_NODE_VALID_BITS
Definition: object.h:141
#define _Objects_Local_node
The local MPCI node number.
Definition: object.h:347
const char * name_p
Definition: object.h:66
uint32_t name_u32
Definition: object.h:68