§H.12 step 13: blk_meta_t flags bit constants
BLK_FLAG_CLAIMED/BLK_FLAG_MIGRATING/BLK_FLAG_STALE (bits 0/1/2), matching the decided §F.4/§H.6 layout. Orthogonal bits, not a mutually-exclusive enum. Verified 3-arch boot to ok> (amd64/aarch64/riscv64). Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
edd7effb5a
commit
c19cc07ee3
+4
-1
@@ -4059,7 +4059,10 @@ work, not new invention.
|
||||
comment to point at the assert instead of repeating the wrong number. Did not touch
|
||||
`BLK_META_PER_BLOCK` itself — out of scope, unused, not what this step asked for.
|
||||
Verified 3-arch boot to `ok>` (amd64/aarch64/riscv64).
|
||||
- [ ] **13.** Define the three `flags` bit constants (`CLAIMED`=0/`MIGRATING`=1/`STALE`=2).
|
||||
- [x] **13. DONE 2026-09-03.** `BLK_FLAG_CLAIMED`/`BLK_FLAG_MIGRATING`/`BLK_FLAG_STALE`
|
||||
(bits 0/1/2, `1ull << n`) defined in `block_subsystem.h` right above `blk_meta_t`, `flags`
|
||||
field comment updated to point at them. Verified 3-arch boot to `ok>`
|
||||
(amd64/aarch64/riscv64).
|
||||
- [ ] **14.** Add C get/set accessors for the new fields in `block_subsystem.c`.
|
||||
- [ ] **15.** Add FORTH wrappers (`BLK-ACL-ALLOW@`/`!`, `BLK-ACL-TTL@`/`!`, `BLK-OWNER@`).
|
||||
- [ ] **16.** Add a new policy capsule (mirroring `ACL.4th`) with a real fast-deny check on
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# Capsule Block Manifest — Auto-generated
|
||||
<!-- Generated by mkcapsule --manifest 2026-09-03T11:16:49Z -->
|
||||
<!-- Generated by mkcapsule --manifest 2026-09-03T11:21:56Z -->
|
||||
<!-- DO NOT EDIT — re-run mkcapsule --manifest to refresh. -->
|
||||
<!-- Hand-written justifications and immutability notes live -->
|
||||
<!-- in MANIFEST.md alongside this auto-generated index. -->
|
||||
|
||||
Binary file not shown.
@@ -199,6 +199,16 @@ typedef struct {
|
||||
_Static_assert(sizeof(blk_volume_meta_t) == 4096,
|
||||
"blk_volume_meta_t must be exactly one 4 KiB devblock");
|
||||
|
||||
/* blk_meta_t.flags bit values -- FABRIC-3.md §F.4/§H.6/§H.12 step 13,
|
||||
* decided 2026-09-02/03. Orthogonal bits, not a mutually-exclusive enum:
|
||||
* a block can be both CLAIMED and MIGRATING at once. Grounded in the only
|
||||
* states §F.4 actually motivated by a real need (MIGSM/UNCLEAN, two
|
||||
* then-currently-blocked graph nodes) plus CLAIMED/STALE, the names
|
||||
* already used loosely in that pass's own prose. 61 bits remain reserved. */
|
||||
#define BLK_FLAG_CLAIMED (1ull << 0) /* owned, per BMAPFMT's owner_fp */
|
||||
#define BLK_FLAG_MIGRATING (1ull << 1) /* mid-migration; serves MIGSM */
|
||||
#define BLK_FLAG_STALE (1ull << 2) /* interrupted flush; serves UNCLEAN */
|
||||
|
||||
/* Per-1 KiB block metadata (packed into top 1 KiB region of each 4 KiB sector). */
|
||||
typedef struct {
|
||||
/* Core integrity (16 bytes) */
|
||||
@@ -210,7 +220,7 @@ typedef struct {
|
||||
uint64_t modified_time; /* Unix timestamp (last write) */
|
||||
|
||||
/* Block status (16 bytes) */
|
||||
uint64_t flags; /* Status flags */
|
||||
uint64_t flags; /* Status flags -- BLK_FLAG_* bits above */
|
||||
uint64_t write_count; /* Number of writes (wear leveling) */
|
||||
|
||||
/* Content identification (32 bytes) */
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user