24 lines
883 B
Markdown
24 lines
883 B
Markdown
```mermaid
|
|
flowchart TD
|
|
Start([Function Called]) --> CheckErr{Did an error occur?}
|
|
|
|
%% Error path
|
|
CheckErr -->|Yes| PushBit["Bitwise OR error code into err<br/>err |= ERROR_BIT"]
|
|
PushBit --> CheckOrigin{Is origin == NULL?}
|
|
CheckOrigin -->|Yes| SetOrigin["Record location in origin<br/>origin = __func__ / __FILE__"]
|
|
CheckOrigin -->|No| KeepOrigin[Preserve original root cause]
|
|
|
|
SetOrigin --> ReturnStruct
|
|
KeepOrigin --> ReturnStruct
|
|
|
|
%% Success / Normal path
|
|
CheckErr -->|No| ComputeValue["Write computation result<br/>value = result"]
|
|
ComputeValue --> ReturnStruct
|
|
|
|
ReturnStruct(["Return / Pass Out _err_t"]) --> Caller{Caller Inspection}
|
|
|
|
Caller -->|Check errors| InspectBits[Inspect bit flags in err]
|
|
Caller -->|Read payload| ReadValue[Access value data]
|
|
Caller -->|Debug / Log| PrintOrigin[Print root cause origin]
|
|
```
|