Safe Data API — API Traceability
The implementation half of the traceability chain. Every public API function
or macro that names a requirement with Doxygen’s native @satisfies becomes
an impl need, generated from the API documentation’s Doxygen XML. Each one
is linked satisfies to its requirements in the Requirement
Specification, and links to its page in the API reference.
The annotation sits on the declaration’s doc block in
include/safe_data/safe_data.h, and only where the requirement names the
symbol. Requirements that constrain the whole API rather than one symbol are
not tagged; the traceability matrix lists them as not satisfied by a symbol.
Type-Erased Core
Function safe_data_init — Initialise the lock and seal the current payload contents. Declared in: |
Function safe_data_verify — Verify payload integrity. Pure: read-only and lock-free; it NEVER modifies the payload, so it is safe to call concurrently with writers (a transient mismatch may then be reported - callers needing atomicity should use the higher-level helpers). Declared in: |
Function safe_data_verify_repair — Verify payload integrity and repair a recoverable fault in place. Declared in: |
Function safe_data_read — Verify under lock and copy the payload out to Declared in: |
Function safe_data_write — Copy Declared in: |
Function safe_data_update — Atomic read-modify-write: lock, verify, run Declared in: |
Function safe_data_commit — Reseal after an explicit external modification (advanced use). Lock, recompute the integrity tag, unlock. Depends on: Declared in: |
Diagnostics and Fault Handling
Function safe_data_fault_handler_register — Register the fault handler callback. Declared in: |
Function safe_data_fault_handler — Legacy user-overridable (weak) fault handler. Declared in: |
Function safe_data_stats_get — Snapshot the global statistics. Declared in: |
Function safe_data_selftest — Self-test of the integrity mechanism itself. Depends on: Declared in: |
Containers and Typed Access
Define SAFE_CONTAINER_DEFINE — Declare a CRC-protected container type wrapping Declared in: |
Define SAFE_COMMIT — Reseal after an explicit external modification. Depends on: Declared in: |
Define SAFE_SECTION — Scoped lock + verify … reseal + unlock around a block. Depends on: Declared in: |