10b3ab9713
Several downstream crates (acpid for SMBIOS scanning, redox-drm, GPU drivers) hold the physmap error in a map_err adapter. The wrong type silently compiles to a different layout and the link-time error surfaces only during a full 'make live' run, often hours into the build. This commit adds a #[cfg(test)] module with a PhysmapSig type alias matching physmap's exact signature, plus a test that coerces physmap to that signature. If physmap's error type drifts (e.g. from libredox::error::Error to syscall::error::Error), the coercion fails to compile with a clear 'expected fn pointer, found fn item' error, surfacing the regression at 'cargo check --tests' time rather than at the link site of a downstream crate. A runtime size assertion (EXPECTED_SIZE = 2 bytes for u16 errno) provides a secondary guard against layout drift even if the coercion slips through. Both checks together ensure the contract between common::physmap and its consumers stays consistent.