summaryrefslogtreecommitdiff
path: root/src/esp32p4.zig
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-09-06 18:11:36 -0300
committerGabriel Schneider <[email protected]>2026-09-07 13:59:12 -0300
commit60367d8fe23f6af98ec28e3cf6c2094dfe332df0 (patch)
tree310fc734173cf771881f4691c71909135fadde97 /src/esp32p4.zig
parentfa82cac885cb4738fe36d1e49b4749b5a3e31a4a (diff)
downloadpardes-60367d8fe23f6af98ec28e3cf6c2094dfe332df0.tar.gz
pardes-60367d8fe23f6af98ec28e3cf6c2094dfe332df0.zip
Refactor panes and filesystem; replace FUSE with 9P
Consolidate pane, layout, memory and host code. Serve 9P by default over Unix sockets, with runtime mounts and optional TCP/QUIC transports. Remove FUSE and obsolete proof-of-concept examples. Fix highlighting and terminal-history performance, expand differential and stress-test infrastructure, sort navigation results while preserving the next occurrence, add syntax-colored Braille minimaps, remove SPC-k, and document 9P interaction as a repository skill.
Diffstat (limited to 'src/esp32p4.zig')
-rw-r--r--src/esp32p4.zig11
1 files changed, 5 insertions, 6 deletions
diff --git a/src/esp32p4.zig b/src/esp32p4.zig
index 8eab57e2..0d532e1e 100644
--- a/src/esp32p4.zig
+++ b/src/esp32p4.zig
@@ -1,8 +1,7 @@
//! The ESP32-P4 firmware shell: pardes as one freestanding object, bytes in and bytes out.
//!
-//! This is the fourth platform, and the only one that is not an executable. `zig build
-//! -Dplatform=esp32p4 -Dtarget=riscv32-freestanding` emits this file as a single object exporting the C
-//! ABI below; the `zig-p4` package links it beside its own `_start`, its generated linker script,
+//! `zig build -Dplatform=esp32p4` emits this file as a single object exporting the C
+//! ABI below; the sibling `05-zig-p4` toolchain links it beside `_start`, its generated linker script,
//! and its UART driver. Nothing here knows what a UART is.
//!
//! **Why an object and not a module.** The obvious arrangement was for zig-p4 to declare this
@@ -123,7 +122,7 @@ pub const WriteFn = *const fn (ctx: ?*anyopaque, ptr: [*]const u8, len: usize) c
///
/// The board's side, not the editor's, because a correct toggle is the IO MUX, the GPIO matrix, the
/// pad's own bits and the output enable - four register files behind a per-pin table that the
-/// firmware already has and checks against ESP-IDF. See `Host.VTable.pull_gpio_toggle`.
+/// firmware already has and checks against ESP-IDF. See `Host.VTable.gpio_toggle`.
pub const GpioFn = *const fn (ctx: ?*anyopaque, pin: u16, was: *u8, now: *u8) callconv(.c) bool;
// ------------------------------------------------------------------- the allocator, rebuilt
@@ -280,7 +279,7 @@ export fn pardes_esp32p4_init(
.y_pixel = 0,
};
- const allocs = pardes.allocators.init(a);
+ const allocs = pardes.memory.init(a);
// `std.Io.failing` and not a real Io: every path in the core that would perform I/O is behind
// the Host vtable, and the ones that are not are the ones this platform does not have.
pardes.image.start(std.Io.failing, allocs.image);
@@ -608,7 +607,7 @@ export fn pardes_esp32p4_quit() callconv(.c) bool {
// ------------------------------------------------------------------------------------ the host
-const pardes_host: pardes.Host.VTable = .{ .push_present = present, .pull_gpio_toggle = gpioToggle };
+const pardes_host: pardes.Host.VTable = .{ .present = present, .gpio_toggle = gpioToggle };
/// The `Gpio` word's one seam to the board. Nothing here knows what a pad is; it forwards, and
/// answers false when the firmware brought none, which is what puts "gpio: NoPads" on the message