Detailed Requirements
Each detailed requirement refines exactly one top-level requirement and is verified by test cases of the Test Specification via
their verifies links.
Integrity detection (SD-TOP-001)
|
|
|
Consistent modification (SD-TOP-002)
|
|
With locking enabled, concurrent readers and writers of one container shall be serialised such that a reader can never observe a torn (internally inconsistent) payload snapshot. |
|
When available, |
Single-fault recovery (SD-TOP-003)
|
With |
When the payload and the shadow copy are inconsistent and neither matches
the stored tag, no copy can vouch for the data: verification shall report
|
Fault reaction and observability (SD-TOP-004)
The control-flow reaction to an unrecoverable fault shall be selectable at
build time: return the error code ( |
With |
|
With |
Timing and execution-context safety (SD-TOP-005)
With |
The locking entry points are not ISR-safe. Where |
Defensive interface (SD-TOP-006)
Every API entry point shall reject missing required pointer arguments and
zero-length payloads with |
A mutator returning a positive value violates the transaction contract.
|
|
With |
Self-diagnosis (SD-TOP-007)
|
Requirement overview
ID |
Title |
Status |
Refines |
Tags |
|---|---|---|---|---|
Sealing on initialisation |
approved |
core |
||
Argument validation |
approved |
core; defensive |
||
Pure verification |
approved |
core |
||
In-place repair under mutual exclusion |
approved |
core; recovery |
||
Validated read |
approved |
operations |
||
Atomic sealed write |
approved |
operations |
||
Transactional read-modify-write |
approved |
operations |
||
Mutator contract enforcement |
approved |
operations; defensive |
||
Single-copy fault recovery |
approved |
recovery |
||
Double-fault detection |
approved |
recovery |
||
Configurable unrecoverable-fault reaction |
approved |
fault-handling |
||
Integrity-event statistics |
approved |
diagnostics; kconfig-SAFE_DATA_STATS |
||
Fault-handler registration and event reporting |
approved |
diagnostics |
||
Bounded lock acquisition |
approved |
timing; kconfig-SAFE_DATA_LOCK_TIMEOUT_MS |
||
No ISR-context locking |
approved |
timing; defensive |
||
Serialised access — no torn snapshots |
approved |
concurrency |
||
Integrity-mechanism self-test |
approved |
diagnostics; kconfig-SAFE_DATA_SELFTEST |
||
Write may not silently mask corruption |
approved |
diagnostics; kconfig-SAFE_DATA_WRITE_CHECKS_OLD |
||
Compile-time payload guards |
approved |
compile-time |
||
Reduced API surface at the Strict level |
approved |
compile-time; kconfig-SAFE_DATA_LEVEL_STRICT |
||
Scoped access block |
approved |
operations; kconfig-SAFE_DATA_GNU_EXTENSIONS |
||
Unchecked commit |
approved |
operations; kconfig-SAFE_DATA_ALLOW_UNCHECKED_COMMIT |