feat: U2 UTRW slow path real branches

- slow_path.c: KEY_MISS -> PCKC re-derive (retry OK); EPOCH -> refresh cap epoch via out_cap (retry OK); STALE_CAP permanent; MAC_FAILED/POISONED -> PCKC invalidate + DRR fault report; RETRY passthrough
- status.h: add UTSM_ERR_MAC_FAILED (-11); utrw.h: slow path takes cap/rights/offset/len/reason + out_cap
- selftest: EPOCH refresh + KEY_MISS re-derive + POISONED passthrough coverage, full SELFTEST PASS in QEMU (.build_tmp/qemu_serial_u2slowpath.log)
This commit is contained in:
Linehu
2026-10-02 14:29:28 +08:00
parent 1eaf1aedf8
commit b76e8f1556
16 changed files with 187 additions and 13 deletions
+7 -1
View File
@@ -7,6 +7,12 @@
int utsm_read(utsm_capability cap, u64 offset, void *dst, u64 len);
int utsm_write(utsm_capability cap, u64 offset, const void *src, u64 len);
int utsm_slow_path(int reason);
/* U2: Slow Path —— Fast Path 失败后的恢复分支。
* reason 为 Fast Path 返回的错误码;恢复成功返回 UTSM_OK(可重试),
* EPOCH 场景经 out_cap 回传刷新后的凭证(可为 NULL)。
* 其余返回值为不可恢复错误。 */
int utsm_slow_path(utsm_capability cap, u32 rights, u64 offset, u64 len,
int reason, utsm_capability *out_cap);
#endif