diff options
Diffstat (limited to 'src/host.zig')
| -rw-r--r-- | src/host.zig | 12 |
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 |
