sk_v4_identity_offer_wait() beats until a stick that is not this system's arrives (offered), a key is pressed, or the system stick leaves; sk_v4_identity_recheck_offered() runs the arrival check again once the mint has written it. Builds on three ISAs; not yet called. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GE3SDvQn5EoxdGufk84zz2
50 lines
2.1 KiB
C
50 lines
2.1 KiB
C
/* sk_v4_identity.h -- the identity gate for the v4 boot: no identity drive,
|
|
* headless; Zuse's minted thumbdrive, a console.
|
|
* docs/v4.0.0/plans/2026-10-26-engine-step4-identity-gate.md.
|
|
*
|
|
* Built only with STARFORTH_V4=1 (Kconfig.kernel).
|
|
*/
|
|
#ifndef STARKERNEL_V4_SK_V4_IDENTITY_H
|
|
#define STARKERNEL_V4_SK_V4_IDENTITY_H
|
|
|
|
#include "uefi.h" /* BootDisk */
|
|
#include "blkio.h"
|
|
|
|
/* After POST and the block chain: every xHCI controller brought up, and the
|
|
* heartbeat started, as the v3 path does before its headless wait. `boot_disk`
|
|
* is the loader's (uefi_loader.c): a USB disk is this system's stick if it is
|
|
* that disk, or -- when the boot disk is not a stick -- the first USB disk
|
|
* with both StarshipOS partitions. Zuse's public key is read once the stick's
|
|
* Artemis partition is attached (docs/v4.0.0/plans/2026-10-27-stick-4-one-disk.md,
|
|
* Task 4). */
|
|
void sk_v4_identity_boot(const BootDisk *boot_disk);
|
|
|
|
/* 1 while Zuse's session holds: her drive is attached and checked. */
|
|
int sk_v4_identity_present(void);
|
|
|
|
/* Service the heartbeat and, once a second, the USB drives that have arrived
|
|
* or left (v3's idle beat, its USB part). Called while waiting for a key
|
|
* with nothing typed. */
|
|
void sk_v4_identity_beat(void);
|
|
|
|
/* The USB drives that have arrived or left, now, not waiting for the next
|
|
* beat: before each prompt, so that a drive pulled while the last line ran
|
|
* is seen before a prompt is shown. */
|
|
void sk_v4_identity_check_now(void);
|
|
|
|
/* MINT-ZUSE (plan 2026-10-29-stick-5, Task 4): beat until a stick that is not
|
|
* this system's arrives -- it is offered, not attached or refused: 1, its raw
|
|
* device and size in bytes -- or a key is pressed, or the system stick
|
|
* leaves: 0. */
|
|
int sk_v4_identity_offer_wait(blkio_dev_t **raw, uint64_t *bytes);
|
|
|
|
/* The arrival check run again on the offered stick, now that the mint has
|
|
* written its GPT and identity (it is then recognised as the real Zuse's). */
|
|
void sk_v4_identity_recheck_offered(void);
|
|
|
|
/* Headless: no prompt, and what is typed is read and dropped, until Zuse's
|
|
* session begins (v3's sk_repl_headless_wait()). */
|
|
void sk_v4_identity_wait(void);
|
|
|
|
#endif /* STARKERNEL_V4_SK_V4_IDENTITY_H */
|