• Robert Sprowson's avatar
    Special case extension of aligned RMA claims · 949b03ad
    Robert Sprowson authored
    During ModHandReason_ClaimAligned care is taken to start on a multiple of 32 and end on a multiple of 32 + 16 (such that the next block in the heap would be at +20 same as plain ModHandReason_Claim would do). However, during a ModHandReason_ExtendBlock there's a possibility that those criteria can't be retained, due to having to move to a larger gap elsewhere, leaving the end at an inconvenient +36.
    Similar allocation functions in other OS' don't guarantee to return an extended block with the same alignment, so take the position that for extends we always allocate a fresh block, copy the contents, and free the original. Shrinks are left in place.
    Tested with a random allocator which juggles 16 aligned allocations 50,000 times.
    
    Version 6.36. Tagged as 'Kernel-6_36'
    949b03ad
VersionASM 846 Bytes