STRUCT STM32_FIREWALL_CONTROLLER(9)
π 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-landmmioβ base address of the firewall controller. where the registers live, literallyentryβ the list entry of the firewall controller list. yes queen, linked lists, we love to see it πtypeβ type of firewall. iconic categorization momentmax_entriesβ number of entries covered by the firewall. that's the capacity, periodtgrant_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_accessandrelease_accessboth take(struct stm32_firewall_controller *ctrl, u32 id), andgrant_memory_range_accesstakes(struct stm32_firewall_controller *ctrl, phys_addr_t paddr, size_t size). don't retype them wrong bestie π
π¦ SEE ALSO π¦
- Kernel file
./include/linux/bus/stm32_firewall.hβ go read it, iykyk π STM32_PERIPHERAL_FIREWALL(9)stm32_firewall_controller_register(9)stm32_firewall_controller_unregister(9)stm32_firewall_populate_bus(9)
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
- 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