HDK
|
#include <UT_PageArray.h>
Public Types | |
typedef PageTableEntry | ThisType |
typedef UT_FixedVector < NotVoidType, theSafeTupleSize > | Tuple |
Public Member Functions | |
SYS_FORCE_INLINE bool | isConstant () const |
This is always valid to call. More... | |
SYS_FORCE_INLINE bool | isConstantZero () const |
This is only valid to call if the type doesn't fit inline. More... | |
SYS_FORCE_INLINE bool | isConstantAndZeroSafe () const |
SYS_FORCE_INLINE bool | isRefd (exint tuplebytes) const |
SYS_FORCE_INLINE bool | isShared () const |
SYS_FORCE_INLINE void | incRef () |
SYS_FORCE_INLINE void | decRef () |
SYS_FORCE_INLINE exint | getRefCount () const |
SYS_FORCE_INLINE void | alloc (UT_PageOff nelements, exint tuplesize=TSIZE) |
void | realloc (UT_PageOff sizetocopy, UT_PageOff newpagecapacity, exint tuplesize=TSIZE) |
SYS_FORCE_INLINE bool | decRefIffShared (exint tuplesize=TSIZE) |
SYS_FORCE_INLINE NotVoidType * | getFirstPtr () |
Returns the data pointer, if not a constant page. More... | |
SYS_FORCE_INLINE const NotVoidType * | getFirstPtr () const |
Returns the data pointer, if not a constant page. More... | |
SYS_FORCE_INLINE void * | getFirstPtrVoid () |
Returns the data pointer, if not a constant page. More... | |
SYS_FORCE_INLINE const void * | getFirstPtrVoid () const |
Returns the data pointer, if not a constant page. More... | |
SYS_FORCE_INLINE void * | getFirstPtrVoidUnsafe () |
SYS_FORCE_INLINE const void * | getFirstPtrVoidUnsafe () const |
SYS_FORCE_INLINE NotVoidType * | getInlinePtr (exint tuplesize) |
Returns the data pointer, if an inline constant page. More... | |
SYS_FORCE_INLINE const NotVoidType * | getInlinePtr (exint tuplesize) const |
Returns the data pointer, if an inline constant page. More... | |
SYS_FORCE_INLINE NotVoidType * | getMaskedPtr () |
SYS_FORCE_INLINE const NotVoidType * | getMaskedPtr () const |
SYS_FORCE_INLINE void * | getMaskedPtrVoid () |
SYS_FORCE_INLINE const void * | getMaskedPtrVoid () const |
SYS_FORCE_INLINE void | initZero () |
SYS_FORCE_INLINE void | setConstantBit () |
void | tryCompressPage (UT_PageOff pagesize, exint tuplesize=TSIZE) |
SYS_FORCE_INLINE int64 | getMemoryUsage (exint tuplebytes) const |
template<typename DEST_DATA_T > | |
SYS_FORCE_INLINE const UT_PageArray< DEST_DATA_T, TSIZE, TABLEHARDENED, PAGESHARDENED, THEPAGEBITS, IDX_T >::PageTableEntry * | castType () const |
template<typename DEST_DATA_T > | |
SYS_FORCE_INLINE UT_PageArray < DEST_DATA_T, TSIZE, TABLEHARDENED, PAGESHARDENED, THEPAGEBITS, IDX_T > ::PageTableEntry * | castType () |
SYS_FORCE_INLINE bool | operator== (const ThisType &that) const |
NOTE: This just does a shallow comparison. More... | |
SYS_FORCE_INLINE bool | operator!= (const ThisType &that) const |
NOTE: This just does a shallow comparison. More... | |
Static Public Member Functions | |
static SYS_FORCE_INLINE bool | typeFitsInline (exint tuplesize=TSIZE) |
This is only valid to call when DATA_T is non-void. More... | |
Static Public Attributes | |
static const uintptr_t | theConstantPageBit = 1 |
Definition at line 2195 of file UT_PageArray.h.
typedef PageTableEntry UT_PageArray< DATA_T, TSIZE, TABLEHARDENED, PAGESHARDENED, THEPAGEBITS, IDX_T >::PageTableEntry::ThisType |
Definition at line 2198 of file UT_PageArray.h.
typedef UT_FixedVector<NotVoidType,theSafeTupleSize> UT_PageArray< DATA_T, TSIZE, TABLEHARDENED, PAGESHARDENED, THEPAGEBITS, IDX_T >::PageTableEntry::Tuple |
Definition at line 2199 of file UT_PageArray.h.
|
inline |
Definition at line 2284 of file UT_PageArray.h.
|
inline |
Definition at line 2540 of file UT_PageArray.h.
|
inline |
Definition at line 2548 of file UT_PageArray.h.
|
inline |
NOTE: This should only be called when there's an actual allocated page to decRef, i.e. !isConstant() || (!typeFitsInline(tuplesize) && !isConstantZero()).
Definition at line 2261 of file UT_PageArray.h.
|
inline |
Atomically decrement the reference count iff the page is shared. See the description of decRefIffSharedPage() above for why this function exists.
Definition at line 2340 of file UT_PageArray.h.
|
inline |
Returns the data pointer, if not a constant page.
Definition at line 2353 of file UT_PageArray.h.
|
inline |
Returns the data pointer, if not a constant page.
Definition at line 2363 of file UT_PageArray.h.
|
inline |
Returns the data pointer, if not a constant page.
Definition at line 2373 of file UT_PageArray.h.
|
inline |
Returns the data pointer, if not a constant page.
Definition at line 2382 of file UT_PageArray.h.
|
inline |
Returns the data pointer, or whatever's in its place with bit 0 set to 1 if it's something constant. If it's constant, it might not be a flagged pointer.
Definition at line 2393 of file UT_PageArray.h.
|
inline |
Returns the data pointer, or whatever's in its place with bit 0 set to 1 if it's something constant. If it's constant, it might not be a flagged pointer.
Definition at line 2402 of file UT_PageArray.h.
|
inline |
Returns the data pointer, if an inline constant page.
Definition at line 2409 of file UT_PageArray.h.
|
inline |
Returns the data pointer, if an inline constant page.
Definition at line 2418 of file UT_PageArray.h.
|
inline |
Returns the data pointer, if a non-inline constant page. Returns nullptr for a zero constant page.
Definition at line 2428 of file UT_PageArray.h.
|
inline |
Returns the data pointer, if a non-inline constant page. Returns nullptr for a zero constant page.
Definition at line 2439 of file UT_PageArray.h.
|
inline |
Returns the data pointer, if a non-inline constant page. Returns nullptr for a zero constant page.
Definition at line 2450 of file UT_PageArray.h.
|
inline |
Returns the data pointer, if a non-inline constant page. Returns nullptr for a zero constant page.
Definition at line 2460 of file UT_PageArray.h.
|
inline |
NOTE: This always excludes sizeof(*this), and is only valid for non-small pages, (okay if constant).
Definition at line 2528 of file UT_PageArray.h.
|
inline |
NOTE: This should only be called when there's an actual allocated page, i.e. !isConstant() || (!typeFitsInline(tuplesize) && !isConstantZero()).
Definition at line 2278 of file UT_PageArray.h.
|
inline |
NOTE: This should only be called when there's an actual allocated page to decRef, i.e. !isConstant() || (!typeFitsInline(tuplesize) && !isConstantZero()).
Definition at line 2254 of file UT_PageArray.h.
|
inline |
Initializes a page to constant zero, assuming that it hasn't been initialized yet.
Definition at line 2470 of file UT_PageArray.h.
|
inline |
This is always valid to call.
Definition at line 2203 of file UT_PageArray.h.
|
inline |
This is always valid to call, and will return true iff this is either inline and all zero or using the constant zero optimization.
Definition at line 2215 of file UT_PageArray.h.
|
inline |
This is only valid to call if the type doesn't fit inline.
Definition at line 2208 of file UT_PageArray.h.
|
inline |
This is always valid to call, but be aware that the parameter is the number of bytes in a tuple, not the number of components in a tuple.
Definition at line 2232 of file UT_PageArray.h.
|
inline |
NOTE: This should only be called when there's an actual allocated page, i.e. !isConstant() || (!typeFitsInline(tuplesize) && !isConstantZero()).
Definition at line 2246 of file UT_PageArray.h.
|
inline |
NOTE: This just does a shallow comparison.
Definition at line 2562 of file UT_PageArray.h.
|
inline |
NOTE: This just does a shallow comparison.
Definition at line 2556 of file UT_PageArray.h.
|
inline |
Definition at line 2295 of file UT_PageArray.h.
|
inline |
Definition at line 2477 of file UT_PageArray.h.
|
inline |
Definition at line 2482 of file UT_PageArray.h.
|
inlinestatic |
This is only valid to call when DATA_T is non-void.
Definition at line 2221 of file UT_PageArray.h.
|
static |
Definition at line 2200 of file UT_PageArray.h.