STRUCT ARM_SMMU_INV_STATE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct arm_smmu_inv_state β€” like, the whole vibe ✨

okay so this is a page from the Kernel API Manual, and bestie, we're talking about struct arm_smmu_inv_state β€” the per-domain invalidation array state. yes, that's a mouthful. no, we're not skipping it. πŸŽ€


🌸 NAME 🌸

struct arm_smmu_inv_state β€” per-domain invalidation array state. that's it, that's the whole name. she's concise, she's iconic. πŸ‘‘


✨ SYNOPSIS ✨

here's the actual struct, copied character-for-character because we do not play with code:

struct arm_smmu_inv_state {
    struct arm_smmu_invs **invs_ptr;
    struct arm_smmu_invs *old_invs;
    struct arm_smmu_invs *new_invs;
 };

look at her. three pointers, one dream. πŸ¦‹


🫢 Members 🫢

okay so now we meet the cast, and honestly? each one has main character energy:

  • invs_ptr β€” this bad boy points to domain->invs (yes, that's the unwinding-nesting/etc. situation going on over there), or it's NULL if no change should be made. so basically: NULL means "we're good, don't touch anything." lowkey respectful. πŸ™ˆ
  • old_invs β€” the original invs array. the before picture. the pre-glow-up. πŸ’–
  • new_invs β€” okay so this one's doing double duty depending on whose domain we're talking about, and the way that's literally two jobs:
    • for a new domain, this is the new invs array that updates domain->invs ✨
    • for an old domain, this is the master->build_invs that you pass in as the to_unref argument to an arm_smmu_invs_unref call 🧹

periodt. one field, two meanings, no cap. πŸ’€


🌈 SEE ALSO 🌈

if you wanna keep reading (and you should, ngl), go check out the kernel file ./drivers/iommu/arm/arm-smmu-v3/arm-smmu-v3.h and its bestie struct arm_smmu_invs(9). iykyk. πŸ”₯


aaand that's the page! mwah πŸ’‹ this little number lives in ./drivers/iommu/arm/arm-smmu-v3 and it's stamped October 2026 β€” so yeah, she's from the future, she's ahead of her time, and she's still struct arm_smmu_inv_state(9) at heart. slay. πŸŒŸπŸ’œ

πŸ“¦ where this page comes from