61#define ACCESSOR(structname, name, field) \
62 bitpack<IDType>::bitsliceref<structname::field> name##_##field() \
64 return id.slice<structname::field>(); \
66 bitpack<IDType>::constbitsliceref<structname::field> name##_##field() const \
68 return id.slice<structname::field>(); \
219 unsigned generation);
221 unsigned generation);
229 unsigned pgroup_idx);
231 unsigned sparsity_idx);
234 unsigned subgraph_idx);
278 ID(T thing_to_get_id_from);
293#include "realm/id.inl"
bool is_memory(void) const
bool operator!=(const ID &rhs) const
bool is_reservation(void) const
static const int INSTANCE_INDEX_WIDTH
Definition id.h:59
static const IDType ID_NULL
Definition id.h:269
static ID make_event(unsigned creator_node, unsigned gen_event_idx, unsigned generation)
bool is_event(void) const
bool is_procgroup(void) const
static ID make_instance(unsigned owner_node, unsigned creator_node, unsigned mem_idx, unsigned inst_idx)
bool operator==(const ID &rhs) const
bitpack< IDType > id
Definition id.h:286
ID_Types
Definition id.h:250
@ ID_EVENT
Definition id.h:253
@ ID_INDEXSPACE
Definition id.h:261
@ ID_UNUSED_5
Definition id.h:256
@ ID_SPECIAL
Definition id.h:251
@ ID_MEMORY
Definition id.h:257
@ ID_SUBGRAPH
Definition id.h:263
@ ID_SPARSITY
Definition id.h:262
@ ID_PROCESSOR
Definition id.h:259
@ ID_PROCGROUP
Definition id.h:260
@ ID_BARRIER
Definition id.h:254
@ ID_UNUSED_1
Definition id.h:252
@ ID_LOCK
Definition id.h:255
@ ID_IB_MEMORY
Definition id.h:258
@ ID_UNUSED_15
Definition id.h:266
@ ID_INSTANCE
Definition id.h:265
@ ID_UNUSED_13
Definition id.h:264
static ID make_subgraph(unsigned owner_node, unsigned creator_node, unsigned subgraph_idx)
bool is_processor(void) const
static ID make_ib_memory(unsigned owner_node, unsigned mem_idx)
static ID make_procgroup(unsigned owner_node, unsigned creator_node, unsigned pgroup_idx)
bool is_subgraph(void) const
static ID make_barrier(unsigned creator_node, unsigned barrier_idx, unsigned generation)
static const unsigned MAX_NODE_ID
Definition id.h:54
static const int MEMORY_INDEX_WIDTH
Definition id.h:58
static const int NODE_FIELD_WIDTH
Definition id.h:53
bool is_sparsity(void) const
bool is_barrier(void) const
static ID make_reservation(unsigned creator_node, unsigned rsrv_idx)
static ID make_compqueue(unsigned owner_node, unsigned cq_idx)
bool is_ib_memory(void) const
static ID make_processor(unsigned owner_node, unsigned proc_idx)
static const int EVENT_GENERATION_WIDTH
Definition id.h:56
bool is_instance(void) const
ID & operator=(const ID ©_from)
::realm_id_t IDType
Definition id.h:32
friend std::ostream & operator<<(std::ostream &os, ID id)
static ID make_memory(unsigned owner_node, unsigned mem_idx)
ID(T thing_to_get_id_from)
static ID make_sparsity(unsigned owner_node, unsigned creator_node, unsigned sparsity_idx)
bool is_compqueue(void) const
#define ACCESSOR(structname, name, field)
Definition id.h:61
Definition activemsg.h:38
unsigned long long realm_id_t
Definition realm_c.h:64
#define REALM_EVENT_GENERATION_BITS
Definition realm_config.h:30
bitfield< EVENT_GENERATION_WIDTH, 0 > generation
Definition id.h:92
bitfield< 24, EVENT_GENERATION_WIDTH > barrier_idx
Definition id.h:90
bitfield< NODE_FIELD_WIDTH, 60 - NODE_FIELD_WIDTH > creator_node
Definition id.h:89
bitfield< 4, 60 > type_tag
Definition id.h:88
bitfield< NODE_FIELD_WIDTH, 56 - NODE_FIELD_WIDTH > owner_node
Definition id.h:193
bitfield< 12, 0 > cq_idx
Definition id.h:195
bitfield< 8, 56 > type_tag
Definition id.h:192
bitfield< 1, 63 > type_tag
Definition id.h:72
bitfield< EVENT_GENERATION_WIDTH, 0 > generation
Definition id.h:77
bitfield< NODE_FIELD_WIDTH, 63 - NODE_FIELD_WIDTH > creator_node
Definition id.h:73
static const IDType TAG_VALUE
Definition id.h:79
bitfield< 63 - NODE_FIELD_WIDTH - EVENT_GENERATION_WIDTH, EVENT_GENERATION_WIDTH > gen_event_idx
Definition id.h:76
bitfield< MEMORY_INDEX_WIDTH, INSTANCE_INDEX_WIDTH > mem_idx
Definition id.h:138
bitfield< 2, 62 > type_tag
Definition id.h:135
bitfield< INSTANCE_INDEX_WIDTH, 0 > inst_idx
Definition id.h:139
static const IDType TAG_VALUE
Definition id.h:141
bitfield< NODE_FIELD_WIDTH, 62 - 2 *NODE_FIELD_WIDTH > creator_node
Definition id.h:137
bitfield< NODE_FIELD_WIDTH, 62 - NODE_FIELD_WIDTH > owner_node
Definition id.h:136
bitfield< 8, 56 > type_tag
Definition id.h:116
bitfield< MEMORY_INDEX_WIDTH, 0 > mem_idx
Definition id.h:120
bitfield< NODE_FIELD_WIDTH, 64 - NODE_FIELD_WIDTH - MEMORY_INDEX_WIDTH > owner_node
Definition id.h:118
bitfield< 24, 0 > pgroup_idx
Definition id.h:167
bitfield< NODE_FIELD_WIDTH, 56 - NODE_FIELD_WIDTH > owner_node
Definition id.h:165
bitfield< 8, 56 > type_tag
Definition id.h:164
bitfield< NODE_FIELD_WIDTH, 56 - 2 *NODE_FIELD_WIDTH > creator_node
Definition id.h:166
bitfield< 12, 0 > proc_idx
Definition id.h:154
bitfield< 8, 56 > type_tag
Definition id.h:151
bitfield< NODE_FIELD_WIDTH, 56 - NODE_FIELD_WIDTH > owner_node
Definition id.h:152
bitfield< NODE_FIELD_WIDTH, 56 - NODE_FIELD_WIDTH > creator_node
Definition id.h:104
bitfield< 8, 56 > type_tag
Definition id.h:103
bitfield< 32, 0 > rsrv_idx
Definition id.h:106
bitfield< NODE_FIELD_WIDTH, 60 - 2 *NODE_FIELD_WIDTH > creator_node
Definition id.h:180
bitfield< 28, 0 > sparsity_idx
Definition id.h:181
bitfield< NODE_FIELD_WIDTH, 60 - NODE_FIELD_WIDTH > owner_node
Definition id.h:179
bitfield< 4, 60 > type_tag
Definition id.h:178
bitfield< 24, 0 > subgraph_idx
Definition id.h:208
bitfield< NODE_FIELD_WIDTH, 56 - 2 *NODE_FIELD_WIDTH > creator_node
Definition id.h:207
bitfield< 8, 56 > type_tag
Definition id.h:205
bitfield< NODE_FIELD_WIDTH, 56 - NODE_FIELD_WIDTH > owner_node
Definition id.h:206