Based on https://github.com/tslabs/zx-evo/tree/master/pentevo/esp32, extended with an SMB2/3 server that exposes the ZX Evolution's real SD card as a network share (browse/download/upload/delete), plus assorted stability and protocol-correctness fixes in vfs_bridge.cpp and the vendored libsmb2 - see firmware/README.md for the detailed changelog and current status. Also adds: - firmware/: ready-to-flash compiled binaries + flashing instructions - hardware/: adapter board connection diagram, PCB photo, and Gerber files - src/third_party/libsmb2: vendored from sahlberg/libsmb2 (LGPL-2.1, see its own COPYING/LICENCE files), de-submoduled to a plain snapshot with local patches applied directly Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
22 lines
921 B
C
22 lines
921 B
C
#pragma once
|
|
|
|
// Phase 1 of the SMB2/3 network-share feature (see project plan): an SMB2/3
|
|
// server task with a hardcoded fake filesystem, to prove the protocol layer
|
|
// works before anything is wired to the Z80/Wild Commander side.
|
|
|
|
#define VFS_SHARE_NAME_MAX 32
|
|
extern char vfs_share_name[VFS_SHARE_NAME_MAX + 1];
|
|
|
|
void vfs_bridge_init();
|
|
void smb_server_task(void *arg);
|
|
|
|
// Start/stop the SMB2/3 server on demand (ESP_CMD_VFS_SERVER_START/STOP,
|
|
// dispatched via TASK_VFS_SERVER_START/STOP in helper_task) instead of it
|
|
// running unconditionally once WiFi comes up - the Z80 side is single-
|
|
// tasking (it can only ever be driving one plugin at a time), so there is
|
|
// no point keeping the SMB server (or the other services it pauses -
|
|
// at_uart_suspend()/tracker_suspend()) active except while the smbvfs.wmf
|
|
// plugin is actually the thing running.
|
|
void vfs_bridge_start_server();
|
|
void vfs_bridge_stop_server();
|