Definition at line 274 of file SlamAllocator.h.
◆ SlamAllocator()
| SlamAllocator::SlamAllocator |
( |
| ) |
|
◆ ~SlamAllocator()
| SlamAllocator::~SlamAllocator |
( |
| ) |
|
|
virtual |
◆ allocate()
| uintptr_t SlamAllocator::allocate |
( |
size_t |
nBytes | ) |
|
- Note
- Even 2G is a stretch on most systems. Use some other allocator to allocate such large buffers.
Definition at line 1170 of file SlamAllocator.cc.
References SlamCache::allocate(), Dec, EMIT_IF, Thread::getParent(), ProcessorBase::guardDeviceHardIrqOperation(), Hex, ProcessorBase::information(), ProcessorBase::m_Initialised, Backtrace::m_pReturnAddresses, panic(), Backtrace::performBpBacktrace(), and UNLIKELY.
◆ allocSize()
| size_t SlamAllocator::allocSize |
( |
uintptr_t |
mem | ) |
|
◆ clearAll()
| void SlamAllocator::clearAll |
( |
| ) |
|
◆ footerSize()
| size_t SlamAllocator::footerSize |
( |
| ) |
const |
|
inline |
◆ free()
| void SlamAllocator::free |
( |
uintptr_t |
mem | ) |
|
◆ freeSlab()
| void SlamAllocator::freeSlab |
( |
uintptr_t |
address, |
|
|
size_t |
length |
|
) |
| |
◆ freeSlabUnlocked()
| void SlamAllocator::freeSlabUnlocked |
( |
uintptr_t |
address, |
|
|
size_t |
length |
|
) |
| |
|
private |
Variant of freeSlab that does not take the lock first. Dangerous if misused.
Definition at line 1107 of file SlamAllocator.cc.
References panic().
Referenced by wipe().
◆ getSlab()
| uintptr_t SlamAllocator::getSlab |
( |
size_t |
fullSize | ) |
|
◆ getVigilance()
| bool SlamAllocator::getVigilance |
( |
| ) |
const |
|
inline |
◆ headerSize()
| size_t SlamAllocator::headerSize |
( |
| ) |
const |
|
inline |
◆ heapPageCount()
| size_t SlamAllocator::heapPageCount |
( |
| ) |
const |
|
inline |
◆ initialise()
| void SlamAllocator::initialise |
( |
| ) |
|
◆ instance()
◆ isAllocatedPage()
| bool SlamAllocator::isAllocatedPage |
( |
uintptr_t |
address | ) |
const |
|
private |
Requires m_SlabRegionLock and checks that mapping is fully established.
Definition at line 1324 of file SlamAllocator.cc.
◆ isPointerValid()
| bool SlamAllocator::isPointerValid |
( |
uintptr_t |
mem | ) |
const |
◆ isWithinHeap()
| bool SlamAllocator::isWithinHeap |
( |
uintptr_t |
mem | ) |
const |
◆ markSlabReady()
| void SlamAllocator::markSlabReady |
( |
uintptr_t |
address, |
|
|
size_t |
length |
|
) |
| |
|
private |
Publishes allocator metadata only after the entire slab is mapped.
Definition at line 1082 of file SlamAllocator.cc.
References panic().
◆ recovery()
| size_t SlamAllocator::recovery |
( |
size_t |
maxSlabs = 1 | ) |
|
◆ setVigilance()
| void SlamAllocator::setVigilance |
( |
bool |
b | ) |
|
|
inline |
◆ wipe()
| void SlamAllocator::wipe |
( |
| ) |
|
|
private |
◆ SlamCache
◆ m_Base
| uintptr_t SlamAllocator::m_Base |
|
private |
◆ m_bInitialised
| bool SlamAllocator::m_bInitialised |
|
private |
◆ m_bVigilant
| bool SlamAllocator::m_bVigilant |
|
private |
◆ m_Caches
◆ m_HeapPageCount
| size_t SlamAllocator::m_HeapPageCount |
|
private |
◆ m_Instance
◆ m_Lock
◆ m_SlabRegionBitmap
◆ m_SlabRegionBitmapEntries
| size_t SlamAllocator::m_SlabRegionBitmapEntries |
|
private |
◆ m_SlabRegionLock
| Spinlock SlamAllocator::m_SlabRegionLock |
|
mutableprivate |
◆ m_SlabRegionPages
| size_t SlamAllocator::m_SlabRegionPages |
|
private |
The documentation for this class was generated from the following files: