Migrate Hera->Artemis storage-attach to a real message round-trip
Hera still polls xHCI and sig-checks attached drives, but the storage
registration step (blk_subsys_attach_device(), now wrapped as the
BLK-ATTACH primitive) moves to Artemis's own dictionary, reached via
HERA-BLK-ATTACH-REQ/BLK-ATTACH-ACK (VM-EXEC, since Hera can't load her
own messaging.4th -- see the doc comment in repl.c). Identity birth
(Zuse genesis / WIREBIND) is deferred until the ack confirms storage
actually succeeded, instead of running synchronously underneath a
storage call that might fail ("wait for ack, safer for identity data").
Caught and fixed a real bug live during acceptance testing: Artemis's
ACK-APPEND-NUM fed a single-cell value into <# #S #> (which expects a
double-cell pair), causing a stack underflow the first time
HERA-BLK-ATTACH-REQ ran. Fixed with the same `0 SWAP` convention every
other numeric-append helper in this codebase already uses.
Verified booting clean to (zuse) ok> with no VM-EXEC errors on all
three architectures (amd64/aarch64/riscv64).
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014Ec88YKxxhZGG1RNnune78
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
c4f94c409f
commit
63b8b3bc29
@@ -89,6 +89,15 @@ const homeblocks_sig_t *sk_repl_get_homeblocks_sig(void);
|
||||
*/
|
||||
struct blkio_dev *sk_repl_get_attached_blk_dev(void);
|
||||
|
||||
/**
|
||||
* sk_repl_register_words - Registers repl.c's own FORTH-visible words
|
||||
* (currently just BLK-ATTACH-ACK, Artemis's storage-attach reply target --
|
||||
* see sk_word_blk_attach_ack()'s doc comment in repl.c). Call once from
|
||||
* register_forth79_words() alongside the other __STARKERNEL__-only
|
||||
* registration calls.
|
||||
*/
|
||||
void sk_repl_register_words(VM *vm);
|
||||
|
||||
/**
|
||||
* sk_console_getkey - Real body of the standard dictionary's KEY word
|
||||
* (called from shim.c's getchar()). Blocks until a key is available from
|
||||
|
||||
Reference in New Issue
Block a user