arm_smccc_1_2_smc(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… 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 via struct 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 via struct 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:

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