acpi_pci_osc_control_set(9)
β¨ acpi_pci_osc_control_set(9) β¨
okay so bestie, this one's from the Kernel API Manual and it's giving "let me speak to the BIOS manager" energy π like, it's literally how the kernel asks for permission to drive the fancy PCI root features. buckle up π
π NAME π
acpi_pci_osc_control_set β Request control of PCI root _OSC features. π«Ά
πΈ SYNOPSIS πΈ
acpi_status acpi_pci_osc_control_set (acpi_handle handle , u32 *mask ,
u32 support , u32 *cxl_mask , u32 cxl_support );
that's the whole vibe, no cap β¨
π¦ ARGUMENTS π¦
handleβ the ACPI handle of a PCI root bridge (or a PCIe Root Complex, iykyk). it's like the β¨main characterβ¨ of this whole story πmaskβ mask of_OSCbits you wanna request control of, and the place to store control mask. yes bestie it's doing double duty, it's multi-talented πsupportβ_OSCsupported capability βcxl_maskβ mask of CXL_OSCcontrol bits, place to store control mask π₯cxl_supportβ CXL_OSCsupported capability πΈ
π DESCRIPTION π
so here's what's happening π β it runs the _OSC query for mask, and if that slays (aka it's successful), it compares the returned mask of control bits with req. and if all of the req bits are set in the returned mask, then it runs the _OSC request for it. periodt π
π«Ά lowkey important caveat bestie: the variable at themaskaddress may be modified regardless of whether or not the function returns success. on success it will contain the mask of_OSCbits the BIOS has granted control of, but its contents are meaningless on failure. so like, don't go reading it after a fail, that's not the move π
π§ SEE ALSO π§
- Kernel file
./drivers/acpi/pci_root.cπ acpi_is_root_bridge(9)acpi_dev_get_pci_dev(9)
β¨π and that's the tea! this iconic lil page lives in ./drivers/acpi, dated October 2026 β go off, kernel bestie πππ
π¦ 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