STRUCT X86_LEGACY_DEVICES(9)
π struct x86_legacy_devices(9) β the kernel API manual, but make it make sense
okay so bestie, welcome to struct x86_legacy_devices(9), straight out of the Kernel API Manual. this is a tiny little struct with exactly one job, and honestly? it ate. let's get into it π
β¨ NAME β¨
struct x86_legacy_devices β legacy x86 devices. that's it. that's the whole name. short, sweet, iconic π
π¦ SYNOPSIS π¦
struct x86_legacy_devices {
int pnpbios;
};
yes she's just one int in a trench coat. no cap. π
πΈ Members πΈ
pnpbiosβ this platform can have a PNPBIOS. and if this is disabled, the platform is known to never have a PNPBIOS. like, ever. periodt. so this lil flag is basically the vibe check for whether PNPBIOS is even possible here π«Ά
π₯ Description π₯
so these are devices known to require LPC or ISA bus β the legacy squad. the definition of legacy devices here adheres to the ACPI 5.2.9.3 IA-PC Boot Architecture flag ACPI_FADT_LEGACY_DEVICES. literally the whole point of this struct, iykyk.
these devices consist of user visible devices on the LPC or ISA bus. and "user visible devices" means devices that have end-user accessible connectors β for example, the LPT parallel port. like, a port you can physically plug something into. main character energy β¨
legacy devices on the LPC bus consist, for example, of:
- serial and parallel ports
- PS/2 keyboard / mouse
- the floppy disk controller
yes the floppy disk controller is still in the chat. she's vintage π
here's the important part: a system that lacks all known legacy devices can assume all devices can be detected exclusively via standard device enumeration mechanisms, including the ACPI namespace. no legacy scavenger hunt needed, bestie.
β οΈ and a system that does not have ACPI_FADT_LEGACY_DEVICES enabled must not have any of the legacy devices enumerated below present. that's a hard rule, fr fr. no exceptions, no "just this once" π
π SEE ALSO π
kernel file ./arch/x86/include/asm/x86_init.h, plus the whole extended universe:
struct x86_init_mpparse(9)struct x86_init_resources(9)struct x86_init_irqs(9)struct x86_init_oem(9)struct x86_init_paging(9)struct x86_init_timers(9)struct x86_init_iommu(9)struct x86_init_pci(9)struct x86_hyper_init(9)struct x86_init_acpi(9)struct x86_guest(9)struct x86_init_ops(9)struct x86_cpuinit_ops(9)enum x86_legacy_i8042_state(9)struct x86_legacy_features(9)struct x86_hyper_runtime(9)struct x86_platform_ops(9)
that's the whole friend group right there. go read them, they're all linked in ./arch/x86/include/asm π§
π and that's the page, bestie! sigggnning off from ./arch/x86/include/asm, dated October 2026, for struct x86_legacy_devices(9) β stay legacy, stay iconic, slay πβπ
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms