__arm_smccc_smc(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ NAME ✨

okay so bestie, welcome to __arm_smccc_smc(9) from the Kernel API Manual πŸ«ΆπŸ’–. The whole name-vibe is: __arm_smccc_smc β€” make SMC calls @a0-a7: arguments passed in registers 0 to 7 ✨.

🫢 SYNOPSIS 🫢

Here's the signature exactly as it is, no cap:

void __arm_smccc_smc (unsigned long a0 , unsigned long a1 , unsigned long a2 , unsigned long a3 , unsigned long a4 , unsigned long a5 , unsigned long a6 , unsigned long a7 , struct arm_smccc_res *res , struct arm_smccc_quirk *quirk );

πŸŽ€ ARGUMENTS πŸŽ€

  • a0 β€” the original is literally giving -- undescribed --, so that's all we know 😭
  • a1 β€” same energy, bestie: -- undescribed -- 🫠
  • a2 β€” the docs said -- undescribed -- and honestly they meant it πŸ’€
  • a3 β€” yup, -- undescribed -- again 🌸
  • a4 β€” -- undescribed --, no extra lore, fr fr πŸ™ˆ
  • a5 β€” -- undescribed --, that's the whole tea πŸ“
  • a6 β€” -- undescribed --, the mystery continues 🧚
  • a7 β€” -- undescribed --, we stay guessing πŸ’œ
  • res β€” result values from registers 0 to 3 ✨
  • quirk β€” points to an arm_smccc_quirk, or NULL when no quirks are required 🫢

πŸ’… DESCRIPTION πŸ’…

okay so this function is used to make SMC calls following the SMC Calling Convention ✨. The content of the supplied param gets copied to registers 0 to 7 before the SMC instruction does its thing πŸ’…. On the way back from the SMC instruction, the return values are updated with the content from register 0 to 3 🫢. And the optional quirk structure? It provides vendor specific behavior, periodt 🌈.

πŸ”₯ SEE ALSO πŸ”₯

Kernel file ./include/linux/arm-smccc.h is where the header lore lives πŸ“βœ¨.


okay bye bestie 🫢 this page's source/version is ./include/linux, it's dated October 2026, and the manual page is __arm_smccc_smc(9) β€” you ate that, fr fr πŸ’…βœ¨

πŸ“¦ where this page comes from