883 B
883 B
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]