starkernel: item 4.1a -- quota granting, Hermes's one-time birth grant
Punch list §25 item 4.1a complete. New prerequisite item, found while scoping 4.2: no quota-granting mechanism existed at all. Adds stadium_grant_quota(new_vm_id, from_vm_id) -- a one-time initial grant at birth, distinct from item 1.3's still-unbuilt recurring capacity-transfer arbitration. Splits the donor's free list evenly by cell count, reassigns stadium_owner[] for every moved cell, and grants the new VM a fresh Q48_ONE reservoir (not a split of the donor's -- per-VM conservation, same pattern as Hera's own boot grant). Wired into every baby VM's birth in capsule_birth.c. Verified via a boot-time self-test in kernel_main.c using a synthetic identity (not the real UUID pool, not a real capsule birth -- item 0.1's Hera-alone pruning stays intact). All three architectures booted to ok> with identical output: grant OK, Hera reservoir=0 (already fully committed to resident words, correctly unchanged), test-vm reservoir=65536 (fresh Q48_ONE). dict_hash identical across all three and unchanged from item 4.1's baseline (0x3d4e1daf289da94f) -- confirms no dictionary word was added. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
edfc246579
commit
2981ada2a5
@@ -628,6 +628,26 @@ static void kernel_main_deep(BootInfo *boot_info) {
|
||||
* capsule birth above, so this is non-vacuous by this point. */
|
||||
stadium_words_print_boot_diagnostics(vm_uuid_hera());
|
||||
|
||||
/* item 4.1a self-test: exercises stadium_grant_quota() with a synthetic
|
||||
* identity, NOT vm_uuid_next()'s real birth pool (would perturb the
|
||||
* deterministic ID stream real BIRTH calls draw from) and NOT a real
|
||||
* capsule birth (item 0.1 pruned automatic Hermes birth from init.4th;
|
||||
* restoring it is item 4.2's job, not this one's). Diagnostic only --
|
||||
* the synthetic VM is never used for anything else. */
|
||||
{
|
||||
VMUuid test_id;
|
||||
test_id.hi = 0;
|
||||
test_id.lo = 1; /* distinct from vm_uuid_hera() (all-zero) and
|
||||
* vm_uuid_none() (all-ones) */
|
||||
int grant_rc = stadium_grant_quota(test_id, vm_uuid_hera());
|
||||
console_puts("Stadium quota grant self-test: ");
|
||||
console_println(grant_rc == 0 ? "OK" : "REFUSED");
|
||||
if (grant_rc == 0) {
|
||||
print_uint(" Hera reservoir=", stadium_reservoir_peek(vm_uuid_hera()));
|
||||
print_uint(" test-vm reservoir=", stadium_reservoir_peek(test_id));
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Runtime --doe flag: inject "EXEC-DOE BYE" if requested via boot args.
|
||||
* Checked before SK_STARTUP_FORTH so a runtime --doe takes precedence.
|
||||
|
||||
Reference in New Issue
Block a user