arm_smccc_1_2_smc(9)
π arm_smccc_1_2_smc(9) β like, the Kernel API Manual, but make it make sense
okay bestie, buckle up, because this one is a little niche but honestly kind of iconic once you get it. it's a kernel API page, from the Kernel API Manual, and it's about making SMC calls. yes. those SMC calls. π«Ά
β¨ NAME β¨
arm_smccc_1_2_smc β literally just: make SMC calls. that's the whole thing. short queen. π
π SYNOPSIS π
void arm_smccc_1_2_smc (const struct arm_smccc_1_2_regs *args , struct
arm_smccc_1_2_regs *res );
like, yes, it's void, she doesn't return anything, she just does things and gives you the tea back through a pointer. main character energy fr fr. π
πΈ ARGUMENTS πΈ
argsβ the arguments, passed in viastruct arm_smccc_1_2_regs. this is you telling the other side what you want. the ask. the vibe. β¨resβ the result values, coming back out viastruct arm_smccc_1_2_regs. this is the answer. the receipts. the "okay so here's what happened". π¬
π¦ DESCRIPTION π¦
okay so here's the actual lore. π
This function is used to make SMC calls following SMC Calling Convention v1.2 or above. like, v1.2 or above, bestie β don't come at her with the old convention, she's not doing that. π
The content of the supplied param are copied from the structure to registers prior to the SMC instruction. and then, on return from the SMC instruction, the return values are updated with the content from registers. so it's giving: pack up your struct β yeet it into registers β hit the SMC instruction β scoop the registers back into your struct β slay. π§
lowkey it's just a very polite, very structured handoff between your code and the registers, and honestly? we love a clean handoff. args goes in, res comes out, no cap. π
ngl, this is the only thing the page says it does, so don't go inventing extra behaviour for it. she does exactly what it says on the tin. π
β SEE ALSO β
bestie, the whole friend group is here, and you should absolutely go say hi to all of them:
- Kernel file
./include/linux/arm-smccc.hβ the source of truth, the mothership π arm_smccc_1_1_get_conduit(9)arm_smccc_get_version(9)arm_smccc_get_soc_id_version(9)arm_smccc_get_soc_id_revision(9)struct arm_smccc_res(9)struct arm_smccc_1_2_regs(9)arm_smccc_1_2_hvc(9)struct arm_smccc_quirk(9)__arm_smccc_smc(9)__arm_smccc_hvc(9)
like, that's a whole squad. iykyk. π
and that's the page!! π
okay so the cute little sign-off bit at the bottom: this one lives at ./include/linux, and it's dated October 2026, and yes, the page is arm_smccc_1_2_smc(9) all over again, because the footer needs its moment too. periodt. π
πΈ
π¦ 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