0b663cefb6
First foundation of the Windows-host rewrite (docs/windows-host-rewrite.md): a self-contained, no_std + bytemuck crate that defines the host<->driver binary contract ONCE — the control-plane IOCTLs (add/remove/set-render-adapter/ping/ get-info/clear-all) and the IDD-push frame transport (SharedHeader, the (gen<<40|seq<<8|slot) FrameToken, the Global\pfvd-* name scheme, driver-status codes). Previously these were hand-duplicated byte-for-byte across idd_push.rs/frame_transport.rs and sudovda.rs/control.rs with only "must match" comments; here const size-asserts + bytemuck round-trips make any drift a COMPILE error. Clean break from SudoVDA: a freshly-minted interface GUID (not e5bcc234), a contiguous 0x900 op space (not the gappy 0x800/0x888/0x8FF), a u64 session id (not the 16-byte GUID + pid-mangling), a single u32 protocol version. Self-contained (no workspace inheritance, no Windows deps) so the out-of-workspace driver build graph can path-dep it identically. 7 tests green on Linux; clippy + fmt clean. Also lands the full rewrite plan in docs/windows-host-rewrite.md (decisions: greenfield; IDD-push primary incl. secure desktop, WGC+DDA demoted to fallbacks; unify drivers on windows-drivers-rs + solve /INTEGRITYCHECK; keep GameStream, default secure). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
20 lines
1.0 KiB
TOML
20 lines
1.0 KiB
TOML
# Shared host<->driver binary contract for the punktfunk pf-vdisplay virtual display.
|
|
#
|
|
# Deliberately self-contained (no `*.workspace = true` inheritance, no Windows deps): this crate is a
|
|
# path dependency of BOTH the host workspace (crates/punktfunk-host) AND the out-of-workspace driver
|
|
# workspace (packaging/windows/drivers/), so it must resolve identically from either build graph. It is
|
|
# `no_std` (+ alloc) and platform-neutral; the GUID/LUID are plain integers each side converts to its
|
|
# own OS type. Defining every wire struct ONCE here — with `const` size/offset asserts + bytemuck
|
|
# round-trips — makes host<->driver ABI drift a COMPILE error instead of a silent frame/IOCTL corruption.
|
|
[package]
|
|
name = "pf-vdisplay-proto"
|
|
version = "0.0.1"
|
|
edition = "2021"
|
|
rust-version = "1.82"
|
|
license = "MIT OR Apache-2.0"
|
|
description = "Shared host<->driver binary contract for the punktfunk pf-vdisplay virtual display (control IOCTLs + IDD-push frame transport)."
|
|
publish = false
|
|
|
|
[dependencies]
|
|
bytemuck = { version = "1.19", features = ["derive"] }
|