30 lines
1.0 KiB
Plaintext
30 lines
1.0 KiB
Plaintext
@startuml
|
|
!include card-uml-style.iuml
|
|
scale 900 width
|
|
top to bottom direction
|
|
|
|
class "01 workerA context\n.data / .bss" as Context <<application storage>>
|
|
class "02 &handle / handle\nfield address / opaque value" as Handle <<public API>>
|
|
class "03 TCB\nheap_4" as TCB <<kernel internal>>
|
|
class "task stack\nheap_4" as Stack <<runtime>>
|
|
class "04 callback ABI\na0 = &workerA" as ABI <<CPU>>
|
|
class "05 scheduling evidence\nPC · tick · A/B/A trace" as Schedule <<Hazard3>>
|
|
class "06 final evidence\nresult + source + E12" as Evidence <<verified>>
|
|
|
|
Context -right-> Handle : field value
|
|
Handle -right-> TCB : identifies
|
|
TCB -right-> Stack : points to separate block
|
|
ABI -right-> Schedule : PC / tick
|
|
Schedule -right-> Evidence : verified E12
|
|
Context -[hidden]down-> ABI
|
|
ABI --> Context : exact address
|
|
ABI --> Stack : SP inside range
|
|
Stack --> Schedule : restored execution
|
|
|
|
note bottom of TCB
|
|
Debugger may inspect the TCB address.
|
|
Application assertions use public APIs only.
|
|
Saved addresses are forensic after self-delete.
|
|
end note
|
|
@enduml
|