Files
lab-rv32i-freertos-heap4/web/figures/a2-structure.puml
T
2026-07-20 12:04:14 +02:00

49 lines
1.1 KiB
Plaintext

@startuml
scale 620 height
top to bottom direction
skinparam backgroundColor transparent
skinparam shadowing false
skinparam defaultFontName Monospace
skinparam defaultFontSize 10
skinparam classBorderColor #2c7794
skinparam classBackgroundColor #edf6fa
skinparam ArrowColor #8095a1
title A2 STRUCTURE — in-band metadata and address order
class "01 Block header" as HEADER {
next : BlockLink_t*
size : size_t
}
class "Allocated block" as ALLOC {
02 header + 13 byte request
aligned total = 32 bytes
payload begins after header
}
class "03 Free remainder" as REM {
own header
size = 224 bytes
}
HEADER *-- ALLOC : precedes payload
ALLOC -down-> REM : split preserves 256
class "04 Address-ordered free list" as LIST {
previous < inserted < current
}
class "05 Right neighbour" as RIGHT {
block + block.size == current
}
class "06 Left neighbour" as LEFT {
previous + previous.size == block
}
REM -down-> LIST : insert by address
LIST -down-> RIGHT : join first
RIGHT -down-> LEFT : then join left
note right of LIST
Ordering makes both physical
neighbours locally visible.
end note
@enduml