Realm
A distributed, event-based tasking library
Loading...
Searching...
No Matches
Realm::NodeSetBitmask Class Reference

#include <nodeset.h>

Collaboration diagram for Realm::NodeSetBitmask:

Public Member Functions

size_t set_bit (NodeID id)
 
size_t clear_bit (NodeID id)
 
size_t set_range (NodeID lo, NodeID hi)
 
size_t clear_range (NodeID lo, NodeID hi)
 
bool is_set (NodeID id) const
 
NodeID first_set () const
 
NodeID next_set (NodeID after) const
 
void copy (const NodeSetBitmask *copy_from)
 

Static Public Member Functions

static void configure_allocator (NodeID _max_node_id, size_t _bitsets_per_chunk, bool _use_twolevel)
 
static void free_allocations ()
 
static NodeSetBitmaskacquire_bitmask ()
 
static NodeSetBitmaskclone_bitmask (const NodeSetBitmask *clone_from)
 
static void release_bitmask (NodeSetBitmask *bitmask, bool already_empty)
 

Protected Types

typedef uint64_t bitmask_elem_t
 

Protected Member Functions

 NodeSetBitmask ()
 
void l2_set (int elmt_idx)
 
void l2_clear (int elmt_idx)
 
int l2_find (int first_idx) const
 

Protected Attributes

bitmask_elem_t bits [1]
 

Static Protected Attributes

static const size_t BITS_PER_ELEM = 8 * sizeof(bitmask_elem_t)
 
static NodeID max_node_id
 
static size_t bitset_elements
 
static size_t bitsets_per_chunk
 
static size_t bitset_twolevel
 
static uintptr_t alloc_chain_head
 
static uintptr_t free_list_head
 
static Mutex free_list_mutex
 

Member Typedef Documentation

◆ bitmask_elem_t

typedef uint64_t Realm::NodeSetBitmask::bitmask_elem_t
protected

Constructor & Destructor Documentation

◆ NodeSetBitmask()

Realm::NodeSetBitmask::NodeSetBitmask ( )
protected

Member Function Documentation

◆ acquire_bitmask()

static NodeSetBitmask * Realm::NodeSetBitmask::acquire_bitmask ( )
static

◆ clear_bit()

size_t Realm::NodeSetBitmask::clear_bit ( NodeID  id)

◆ clear_range()

size_t Realm::NodeSetBitmask::clear_range ( NodeID  lo,
NodeID  hi 
)

◆ clone_bitmask()

static NodeSetBitmask * Realm::NodeSetBitmask::clone_bitmask ( const NodeSetBitmask clone_from)
static

◆ configure_allocator()

static void Realm::NodeSetBitmask::configure_allocator ( NodeID  _max_node_id,
size_t  _bitsets_per_chunk,
bool  _use_twolevel 
)
static

◆ copy()

void Realm::NodeSetBitmask::copy ( const NodeSetBitmask copy_from)

◆ first_set()

NodeID Realm::NodeSetBitmask::first_set ( ) const

◆ free_allocations()

static void Realm::NodeSetBitmask::free_allocations ( )
static

◆ is_set()

bool Realm::NodeSetBitmask::is_set ( NodeID  id) const

◆ l2_clear()

void Realm::NodeSetBitmask::l2_clear ( int  elmt_idx)
protected

◆ l2_find()

int Realm::NodeSetBitmask::l2_find ( int  first_idx) const
protected

◆ l2_set()

void Realm::NodeSetBitmask::l2_set ( int  elmt_idx)
protected

◆ next_set()

NodeID Realm::NodeSetBitmask::next_set ( NodeID  after) const

◆ release_bitmask()

static void Realm::NodeSetBitmask::release_bitmask ( NodeSetBitmask bitmask,
bool  already_empty 
)
static

◆ set_bit()

size_t Realm::NodeSetBitmask::set_bit ( NodeID  id)

◆ set_range()

size_t Realm::NodeSetBitmask::set_range ( NodeID  lo,
NodeID  hi 
)

Member Data Documentation

◆ alloc_chain_head

uintptr_t Realm::NodeSetBitmask::alloc_chain_head
staticprotected

◆ bits

bitmask_elem_t Realm::NodeSetBitmask::bits[1]
protected

◆ BITS_PER_ELEM

const size_t Realm::NodeSetBitmask::BITS_PER_ELEM = 8 * sizeof(bitmask_elem_t)
staticprotected

◆ bitset_elements

size_t Realm::NodeSetBitmask::bitset_elements
staticprotected

◆ bitset_twolevel

size_t Realm::NodeSetBitmask::bitset_twolevel
staticprotected

◆ bitsets_per_chunk

size_t Realm::NodeSetBitmask::bitsets_per_chunk
staticprotected

◆ free_list_head

uintptr_t Realm::NodeSetBitmask::free_list_head
staticprotected

◆ free_list_mutex

Mutex Realm::NodeSetBitmask::free_list_mutex
staticprotected

◆ max_node_id

NodeID Realm::NodeSetBitmask::max_node_id
staticprotected

The documentation for this class was generated from the following file: