STRUCT VGIC_ITS_ABI(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ struct vgic_its_abi(9) ✨

okay so bestie, welcome to the Kernel API Manual πŸ’– this one's a struct page and honestly? she's giving "backstage pass to how the ITS keeps its books". let's get into it πŸŽ€


🌸 NAME 🌸

struct vgic_its_abi β€” the ITS abi ops and settings, aka the little config bundle that tells everyone how big the tables are and how to save/restore them πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

struct vgic_its_abi {
    int cte_esz;
    int dte_esz;
    int ite_esz;
    int (*save_tables)(struct vgic_its *its);
    int (*restore_tables)(struct vgic_its *its);
    void (*commit)(struct vgic_its *its);
 };

like, look at her. three ints and three function pointers. main character energy fr fr πŸ‘‘


🌈 Members 🌈

  • cte_esz β€” the collection table entry size. yes, the collection table. she's tiny but she matters πŸ“
  • dte_esz β€” the device table entry size. devices need their space too, no cap ✨
  • ite_esz β€” the interrupt translation table entry size. interrupting? iconic. but the entry still needs a size πŸ’…
  • save_tables β€” save the ITS tables into guest RAM. like packing your whole wardrobe into a suitcase, except it's tables and the suitcase is guest RAM 🧳
  • restore_tables β€” restore the ITS internal structs from tables stored in guest RAM. the unpacking arc 🫢 literally the reverse of save_tables and honestly such a serve
  • commit β€” initialize the registers which expose the ABI settings, especially the entry sizes. this is the glow-up moment where the settings actually get announced πŸ”₯

⭐ SEE ALSO ⭐

Kernel file ./arch/arm64/kvm/vgic/vgic-its.c β€” go read it, iykyk πŸ“–

and these besties too:


ngl this whole page lives under ./arch/arm64/kvm/vgic and it's tagged October 2026 🌸 so if you're reading this in the future, hi, hope the tables restored correctly 😭🫢

that's the whole page bestie, slay, go forth and respect the entry sizes πŸ’œπŸ¦‹

πŸ“¦ where this page comes from