acpi_evaluate_dsm(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… 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 be 16 bytes, 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. also u64. also important ✨
  • argv4 β€” the function-specific parameter. yes it's named argv4. 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:

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