module vrt.gc.extent

Holds the code for managing extents.

Code Map

//! Holds the code for managing extents.
module vrt.gc.extent;


//! Metadata about a single region of user allocated memory.
struct Extent
{
public:
	enum SlabShift;
	enum SlabMask;
	enum KindShift;
	enum KindMask;
	enum MarkedShift;
	enum MarkedMask;
	enum InternalShift;
	enum InternalMask;
	enum DataMask;
	enum Alignment;


public:
	enum Kind
	{
		None,
		Ptr,
		Fin,
		PtrFin,
	}


public:
	node: UnionNode;


public:
	fn setupSlab(ptr: void*, n: size_t, finalizer: bool, pointers: bool, internal: bool) { }
	fn setupLarge(ptr: void*, n: size_t, finalizer: bool, pointers: bool, internal: bool) { }
	fn ptr() void* { }
	fn data() size_t { }
	fn data(d: size_t) { }
	fn size() size_t { }
	fn min() size_t { }
	fn max() size_t { }
	fn isInternal() bool { }
	fn isSlab() bool { }
	fn isLarge() bool { }
	fn kind() Kind { }
	fn hasFinalizer() bool { }
	fn hasPointers() bool { }


public:
	static fn makeKind(finalizer: bool, pointers: bool) Kind { }
}
struct Extent

Metadata about a single region of user allocated memory.