Turbo Haskell  0.1
 All Classes Functions Variables Pages
Public Member Functions | Public Attributes | Static Public Attributes | List of all members
rts::gc_ptr Struct Reference

A heap pointer. More...

#include <rts/gc.h>

Public Member Functions

template<typename T >
T & operator* ()
 
template<typename T >
T * operator-> ()
 
template<typename T >
T & operator[] (std::ptrdiff_t i)
 
void lvb (uint64_t *address, bool unique_context=true)
 loaded-value-barrier read-barrier, modified to do contraction of "locally unique" references when the context isn't unique.
 

Public Attributes

union {
   uint64_t   unique: 1
 does this reference locally believe it is unique?
 
   uint64_t   type: 2
 what type of this pointer is this?
 
   uint64_t   offset: 9
 offset within a 4k page
 
   uint64_t   segment: 9
 which 4k page within a 2mb region
 
   uint64_t   region: 19
 which 2mb region in the system? 1tb addressable.
 
   uint64_t   nmt: 1
 not-marked-through toggle for LVB read-barrier
 
   uint64_t   space: 4
 which generation/space are we in?
 
   uint64_t   tag: 19
 constructor #
 
   uint64_t   addr
 
}; 
 

Static Public Attributes

static const uint64_t mask = 0x7ffffffff8
 mask for the offset, segment and region
 

Detailed Description

A heap pointer.


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