@startuml scale 600 height top to bottom direction skinparam backgroundColor transparent skinparam shadowing false skinparam defaultFontName Monospace skinparam defaultFontSize 10 skinparam stateBorderColor #2c7794 skinparam stateBackgroundColor #edf6fa skinparam ArrowColor #8095a1 title A6 STATE — reusable states of the same RV32 arena [*] --> Free : 01 E01 one list node Free --> Allocated : 02 E04 A+B+C allocated\ncurrent free = 3936 Allocated --> Fragmented : E05 free A\nE06 free C Fragmented : 03 E06 two free blocks Fragmented : sum free > largest block Fragmented --> Coalesced : 04 E07 free B\nmerge previous, then next Coalesced : one free block Coalesced : current = largest = initial Coalesced --> OOMChecked : 05 E08 request > arena OOMChecked : NULL · hook=1 · PASS=1 OOMChecked --> [*] state "minimum-ever" as MIN Allocated -right-> MIN : records low watermark Fragmented -right-> MIN : does not rise Coalesced -right-> MIN : history remains @enduml