summaryrefslogtreecommitdiff
path: root/src/host.zig
diff options
context:
space:
mode:
Diffstat (limited to 'src/host.zig')
-rw-r--r--src/host.zig12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/host.zig b/src/host.zig
index e44318da..9ca882b1 100644
--- a/src/host.zig
+++ b/src/host.zig
@@ -80,6 +80,18 @@ pub const Host = struct {
/// must not re-enter the core.
pull_tty_taken: ?*const fn (ctx: ?*anyopaque, pane: u8) bool = null,
+ // ---- the board's own pads ----
+ /// Flip one GPIO and report the level it held and the level it now holds. False means the
+ /// host would not do it: a pin number outside the part, or no pads at all.
+ ///
+ /// A pull, because there is one answer. The HOST answers it rather than the core reaching
+ /// for the registers itself - which `Peek` and `Poke` do two functions away - because
+ /// driving a pad correctly is not one register. It is the IO MUX function select, the GPIO
+ /// matrix output route, the pad's drive and input-buffer bits, and the output enable, keyed
+ /// by a per-pin table. The firmware already owns that code and checks it against ESP-IDF's
+ /// own headers on the die; a second copy in here would be a second copy nobody tests.
+ pull_gpio_toggle: ?*const fn (ctx: ?*anyopaque, pin: u16, was: *u8, now: *u8) bool = null,
+
// ---- the filesystem ----
/// `pane` travels with the bytes only so a host that posts a "saved"
/// message row can name the right pane; the core already resolved the