STRUCT STM32_FIREWALL_CONTROLLER(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– NAME πŸ’–

struct stm32_firewall_controller β€” the whole vibe of a firewall controller, like, everything it needs to supply its services ✨

okay so bestie, quick manual check: this is a Kernel API Manual page, section 9, and it's genuinely just the lowdown on this one struct. no cap, that's it. 🫢


πŸŽ€ SYNOPSIS πŸŽ€

struct stm32_firewall_controller {
    const char *name;
    struct device *dev;
    void __iomem *mmio;
    struct list_head entry;
    unsigned int type;
    unsigned int max_entries;
    int (*grant_access)(struct stm32_firewall_controller *ctrl, u32 id);
    void (*release_access)(struct stm32_firewall_controller *ctrl, u32 id);
    int (*grant_memory_range_access)(struct stm32_firewall_controller *ctrl, phys_addr_t paddr, size_t size);
 };

like, that's the whole struct. every field copied exactly, don't come for me πŸ’…


🌸 Members 🌸

girl, let's go field by field, main character energy only:

  • name β€” the name of the firewall controller. its little name tag 🏷️
  • dev β€” the device reference of the firewall controller, i.e. who it actually is in device-land
  • mmio β€” base address of the firewall controller. where the registers live, literally
  • entry β€” the list entry of the firewall controller list. yes queen, linked lists, we love to see it πŸ”—
  • type β€” type of firewall. iconic categorization moment
  • max_entries β€” number of entries covered by the firewall. that's the capacity, periodt
  • grant_access β€” callback used to grant access for a device access against a firewall controller βœ…
  • release_access β€” callback used to release resources taken by a device when access was granted. the clean-up fairy 🧚
  • grant_memory_range_access β€” callback used to grant access for a device to a given memory region πŸ—ΊοΈ
ngl the three callback fields are function pointers with the exact signatures above β€” grant_access and release_access both take (struct stm32_firewall_controller *ctrl, u32 id), and grant_memory_range_access takes (struct stm32_firewall_controller *ctrl, phys_addr_t paddr, size_t size). don't retype them wrong bestie 😭

πŸ¦‹ SEE ALSO πŸ¦‹


and that's the page, bestie! πŸŽ€ source lives over in ./include/linux/bus, dated October 2026, and it's struct stm32...l_controller(9) all the way down. slay, go grant some access πŸ’œ

πŸ“¦ where this page comes from