template <size_t PersistSize, size_t ObjectSize>

class GPArena

Defined at line 133 of file ../../zircon/kernel/lib/fbl/include/fbl/gparena.h

Growable Persistent Arena (GPArena) is an arena that allows for fast allocation and

deallocation of a single kind of object. Compared to other arena style allocators it

additionally guarantees that a portion of the objects memory will be preserved between calls to

Free+Alloc.

Public Methods

void GPArena<PersistSize, ObjectSize> ()

Defined at line 135 of file ../../zircon/kernel/lib/fbl/include/fbl/gparena.h

void ~GPArena<PersistSize, ObjectSize> ()

Defined at line 136 of file ../../zircon/kernel/lib/fbl/include/fbl/gparena.h

zx_status_t Init (const char * name, size_t max_count)

Defined at line 150 of file ../../zircon/kernel/lib/fbl/include/fbl/gparena.h

void * Alloc ()

Returns a raw pointer and not a reference to an object of type T so that the memory can be

inspected prior to construction taking place.

Defined at line 219 of file ../../zircon/kernel/lib/fbl/include/fbl/gparena.h

void Free (void * node)

Takes a raw pointer as the destructor is expected to have already been run.

Defined at line 246 of file ../../zircon/kernel/lib/fbl/include/fbl/gparena.h

size_t DiagnosticCount ()

Defined at line 251 of file ../../zircon/kernel/lib/fbl/include/fbl/gparena.h

bool Committed (void * node)

Defined at line 253 of file ../../zircon/kernel/lib/fbl/include/fbl/gparena.h

uintptr_t Confine (uintptr_t address)

Return |address| if it is within the valid range of the arena or the base of the arena if

not. Hardened against Spectre V1 / bounds check bypass speculation attacks - it always

returns a safe value, even under speculation.

Defined at line 261 of file ../../zircon/kernel/lib/fbl/include/fbl/gparena.h

void * Base ()

Defined at line 268 of file ../../zircon/kernel/lib/fbl/include/fbl/gparena.h

void Dump ()

Defined at line 270 of file ../../zircon/kernel/lib/fbl/include/fbl/gparena.h