acpi_evaluate_dsm(9)
π acpi_evaluate_dsm β the kernel API manual, bestie edition β¨
okay so real talk, this is the man page for acpi_evaluate_dsm from the Kernel API Manual, and yes i'm gonna walk you through the whole thing because you deserve to understand it π«Ά
β¨ NAME β¨
acpi_evaluate_dsm β literally just "evaluate device's _DSM method" π that's the whole vibe. it calls the thing. that's it. iconic behavior honestly.
πΈ SYNOPSIS πΈ
union acpi_object * acpi_evaluate_dsm (acpi_handle handle , const guid_t
*guid , u64 rev , u64 func , union acpi_object *argv4 );
look at that signature. five params, one return, zero notes. she's serving function prototype realness π
π ARGUMENTS π
every single one, no skips, let's gooo:
handleβ an ACPI device handle. it's the device you're talking to, bestie π¦guidβ the GUID of the requested functions. should be16bytes, no cap. if you mess that up that's on you πrevβ the revision number of the requested function.u64, keep up πfuncβ the requested function number. alsou64. also important β¨argv4β the function-specific parameter. yes it's namedargv4. yes that's a little C-coded. we move π§
π DESCRIPTION π
okay so what this does: it evaluates the device's _DSM method using the GUID you passed, the revision id, and the function number. simple as that π
big important thing though β the caller needs to free the returned object. like, YOU. you free it. don't just leak it into the void, that's not the vibe π main character energy means cleaning up after yourself.
and now the messy part, the tea β: ACPI defines that the fourth parameter for _DSM should be a package. but some old BIOSes out here do expect a buffer, or an integer, etc. so yeah. legacy firmware being legacy firmware π not us fixing it, just us reporting it.
π₯ SEE ALSO π₯
all the siblings, cousins, and adjacent icons β kernel file ./drivers/acpi/utils.c plus:
acpi_handle_list_equal(9)acpi_handle_list_replace(9)acpi_handle_list_free(9)acpi_device_dep(9)acpi_evaluate_ost(9)acpi_handle_path(9)acpi_handle_printk(9)__acpi_handle_debug(9)acpi_evaluation_failure_warn(9)acpi_has_method(9)acpi_evaluate_ej0(9)acpi_evaluate_lck(9)acpi_evaluate_reg(9)acpi_check_dsm(9)acpi_dev_uid_to_integer(9)acpi_dev_found(9)acpi_dev_present(9)acpi_dev_get_next_match_dev(9)acpi_dev_get_first_match_dev(9)acpi_reduced_hardware(9)acpi_dev_is_video_device(9)acpi_match_platform_list(9)
go read them. all of them. i'll wait π
and that's the page!! final sign-off: this came out of ./drivers/acpi, dated October 2026, and the manual itself is acpi_evaluate_dsm(9) β so if you need to cite it in your commit message, you're welcome bestie π
β¨ slay, go free your union acpi_object *, and have a gorgeous day ππ¦π
π¦ 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