Deluge Firmware 1.3.0
Build date: 2025.04.16
Loading...
Searching...
No Matches
MemoryRegion Class Reference
Collaboration diagram for MemoryRegion:

Public Member Functions

void setup (void *emptySpacesMemory, int32_t emptySpacesMemorySize, uint32_t regionBegin, uint32_t regionEnd, CacheManager *cacheManager)
 
void * alloc (uint32_t requiredSize, bool makeStealable, void *thingNotToStealFrom)
 
size_t nallocx (size_t size)
 
uint32_t shortenRight (void *address, uint32_t newSize)
 
uint32_t shortenLeft (void *address, uint32_t amountToShorten, uint32_t numBytesToMoveRightIfSuccessful=0)
 
void extend (void *address, uint32_t minAmountToExtend, uint32_t idealAmountToExtend, uint32_t *getAmountExtendedLeft, uint32_t *getAmountExtendedRight, void *thingNotToStealFrom)
 
uint32_t extendRightAsMuchAsEasilyPossible (void *spaceAddress)
 
void dealloc (void *address)
 
void verifyMemoryNotFree (void *address, uint32_t spaceSize)
 
CacheManagercache_manager ()
 

Public Attributes

uint32_t start
 
uint32_t end
 
OrderedResizeableArrayWithMultiWordKey emptySpaces
 

Private Member Functions

void markSpaceAsEmpty (uint32_t spaceStart, uint32_t spaceSize, bool mayLookLeft=true, bool mayLookRight=true)
 
NeighbouringMemoryGrabAttemptResult attemptToGrabNeighbouringMemory (void *originalSpaceAddress, int32_t originalSpaceSize, int32_t minAmountToExtend, int32_t idealAmountToExtend, void *thingNotToStealFrom, uint32_t markWithTraversalNo=0, bool originalSpaceNeedsStealing=false)
 
void writeTempHeadersBeforeASteal (uint32_t newStartAddress, uint32_t newSize)
 
void sanityCheck ()
 
uint32_t padSize (uint32_t requiredSize)
 

Private Attributes

CacheManagercache_manager_
 
uint32_t numAllocations_ {0}
 
uint32_t pivot_ {pivot_big}
 
size_t maxAlign_ = max_align_big
 
ptrdiff_t minAlign_ = min_align_big
 

Friends

class CacheManager
 
class GeneralMemoryAllocator
 

The documentation for this class was generated from the following files: