template <typename Config>

class MapAllocator

Defined at line 723 of file ../../third_party/scudo/src/secondary.h

Public Methods

void init (GlobalStats * S, s32 ReleaseToOsInterval)

Defined at line 725 of file ../../third_party/scudo/src/secondary.h

uptr getBlockEnd (void * Ptr)

Defined at line 744 of file ../../third_party/scudo/src/secondary.h

uptr getBlockSize (void * Ptr)

Defined at line 749 of file ../../third_party/scudo/src/secondary.h

uptr getGuardPageSize ()

Defined at line 753 of file ../../third_party/scudo/src/secondary.h

uptr getHeadersSize ()

Defined at line 759 of file ../../third_party/scudo/src/secondary.h

void disable ()

Defined at line 763 of file ../../third_party/scudo/src/secondary.h

void enable ()

Defined at line 768 of file ../../third_party/scudo/src/secondary.h

template <typename F>
void iterateOverBlocks (F Callback)

Defined at line 773 of file ../../third_party/scudo/src/secondary.h

bool canCache (uptr Size)

Defined at line 784 of file ../../third_party/scudo/src/secondary.h

bool setOption (Option O, sptr Value)

Defined at line 786 of file ../../third_party/scudo/src/secondary.h

void releaseToOS (ReleaseToOS ReleaseType)

Defined at line 788 of file ../../third_party/scudo/src/secondary.h

void disableMemoryTagging ()

Defined at line 790 of file ../../third_party/scudo/src/secondary.h

void unmapTestOnly ()

Defined at line 792 of file ../../third_party/scudo/src/secondary.h

uptr getMaxResidentBytesTestOnly ()

Defined at line 794 of file ../../third_party/scudo/src/secondary.h

uptr getCurrentResidentBytesTestOnly ()

Defined at line 798 of file ../../third_party/scudo/src/secondary.h

void * allocate (const Options & Options, uptr Size, uptr AlignmentHint, uptr * BlockEnd, FillContentsMode FillContents)

As with the Primary, the size passed to this function includes any desired

alignment, so that the frontend can align the user allocation. The hint

parameter allows us to unmap spurious memory when dealing with larger

(greater than a page) alignments on 32-bit platforms.

Due to the sparsity of address space available on those platforms, requesting

an allocation from the Secondary with a large alignment would end up wasting

VA space (even though we are not committing the whole thing), hence the need

to trim off some of the reserved space.

For allocations requested with an alignment greater than or equal to a page,

the committed memory will amount to something close to Size - AlignmentHint

(pending rounding and headers).

Defined at line 937 of file ../../third_party/scudo/src/secondary.h

void deallocate (const Options & Options, void * Ptr)

Defined at line 1041 of file ../../third_party/scudo/src/secondary.h

void * tryAllocateFromCache (const Options & Options, uptr Size, uptr Alignment, uptr * BlockEndPtr, FillContentsMode FillContents)

Defined at line 819 of file ../../third_party/scudo/src/secondary.h

void getStats (ScopedString * Str)

Defined at line 1070 of file ../../third_party/scudo/src/secondary.h