feat(kernel): MINT-ZUSE, a word of the lone node (request 2) (#92, 4.6) [skip ci]
word_count 317 -> 318; no POST case (it waits for a stick and YES, as BYE has none). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GE3SDvQn5EoxdGufk84zz2
This commit is contained in:
@@ -356,7 +356,7 @@ Tasks 1-3 accepted and merged (#159, master 594d2f93); #155 merged with them.
|
||||
- [x] 4.3 `gpt_write_one()` in `kernel/src/gpt.c` (one partition, protective MBR, both headers): builds clean on three ISAs; checked on the host (a throwaway harness, not in the tree) -- 600 MiB and 32 MiB blank images and the pair's used Zuse stick each give one identity partition, `gpt_read` reads it back, `sfdisk --verify` clean. Not yet called.
|
||||
- [x] 4.4 `sk_v4_identity_offer_wait()` / `sk_v4_identity_recheck_offered()`: a stick offered, not attached, while a mint waits (`g_mint_waiting`, `g_offered` in `sk_v4_identity.c`; any stick not this system's and readable -- blank, foreign or a bad table; ends on a stick, a key, or the system stick leaving). Builds on three ISAs; not yet called.
|
||||
- [x] 4.5 `sk_v4_mint.c`: the flow -- plug-in line, size line, `YES`, GPT, zeroed, minted, read back, marker. Builds on three ISAs; not yet called. The gate gained a **spare**: the last stick turned away as not this system's (or handed back by a refused mint) is offered first by the next mint (for `mint_zuse_refuse`: "a second `MINT-ZUSE` is offered again"); and accessors `sk_v4_identity_stick_in/offered_present/release_offered/marker/set_marker`.
|
||||
- [ ] 4.6 `MINT-ZUSE` in `sk_v4_words[]` (request 2): word_count 317 -> 318
|
||||
- [x] 4.6 `MINT-ZUSE` in `sk_v4_words[]` (request 2): word_count 317 -> 318. Builds; `mint_zuse` running on amd64 (build/t4/mint-46.txt).
|
||||
- [ ] 4.7 the real Zuse stick recognised and attached after the system stick; her session
|
||||
- [ ] 4.8 `mint_zuse` passes on amd64; then the other tests: `mint_zuse_refuse`, `mint_pull_system`, `zuse_stick_first`, `mint_small`, the pair's stick offered
|
||||
- [ ] 4.9 regressions, full acceptance on three ISAs (new dict_hash, equal), FABRIC entry, commit
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
*
|
||||
* Nothing of the v3 VM is started. docs/v4.0.0/DECOMPOSITION.md.
|
||||
*/
|
||||
#include "starkernel/v4/sk_v4_mint.h"
|
||||
#include "starkernel/v4/sk_v4.h"
|
||||
#include "starkernel/v4/sk_v4_identity.h"
|
||||
#include "starkernel/kbd_input.h"
|
||||
@@ -62,11 +63,12 @@ static int sk_v4_key(void)
|
||||
}
|
||||
|
||||
/* THE KERNEL'S WORDS for the lone node. BYE is v3's (mama_word_bye): a cold
|
||||
* restart. v3's reaps Hera's children first; the lone node is started
|
||||
* restart, and MINT-ZUSE mints the real Zuse onto a second stick
|
||||
* (sk_v4_mint.c). v3's BYE reaps Hera's children first; the lone node is started
|
||||
* before there is a fleet, so there are none. The rest of the kernel's
|
||||
* words come when the node is brought up in the VM's place (ENGINE.md
|
||||
* step 4), where v3's own functions serve them. */
|
||||
static const char *const sk_v4_words[] = { "BYE" };
|
||||
static const char *const sk_v4_words[] = { "BYE", "MINT-ZUSE" };
|
||||
|
||||
static void sk_v4_serve(v4_node *node, unsigned request)
|
||||
{
|
||||
@@ -75,6 +77,10 @@ static void sk_v4_serve(v4_node *node, unsigned request)
|
||||
console_println("BYE: cold restart");
|
||||
arch_cold_reset();
|
||||
}
|
||||
/* MINT-ZUSE: the real Zuse onto a second stick (docs/v4.0.0/STICK.md 6a;
|
||||
* plan 2026-10-29-stick-5, Task 4). No POST case: it waits for a stick
|
||||
* and a typed YES, as BYE has none. */
|
||||
if (request == 2) (void)sk_v4_mint_zuse();
|
||||
}
|
||||
|
||||
/* Read a line from the keyboard: characters are echoed, backspace rubs one
|
||||
|
||||
Reference in New Issue
Block a user