STRUCT PRUSS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’– struct pruss(9) β€” like, the PRUSS parent structure, bestie πŸ’–

okay so this is straight out of the Kernel API Manual, and no cap, it's lowkey one of those little structs that's holding the whole PRUSS situation together. it's giving main character energy for the parent structure. let's get into it 🫢


🌸 NAME 🌸

struct pruss β€” the PRUSS parent structure. yep. that's the whole vibe. it's the parent, it's in charge, it's iconic πŸ’…


✨ SYNOPSIS ✨

struct pruss {
    struct device *dev;
    void __iomem *cfg_base;
    struct regmap *cfg_regmap;
    struct pruss_mem_region mem_regions[PRUSS_MEM_MAX];
    struct pruss_mem_region *mem_in_use[PRUSS_MEM_MAX];
    struct mutex lock;
    struct clk *core_clk_mux;
    struct clk *iep_clk_mux;
 };

like, copy it exactly pls, this is not a drill πŸ™ˆ


πŸŽ€ Members πŸŽ€

okay so every single member, one by one, because we don't skip anybody here. every member is a star ⭐

  • dev β€” the pruss device pointer. that's the device, pointing at it, doing its thing πŸ’–
  • cfg_base β€” the base iomap for the CFG region. that's where the CFG region lives, mapped in ✨
  • cfg_regmap β€” the regmap for the config region. regmap, but for config πŸŽ€
  • mem_regions β€” the data for each of the PRUSS memory regions. like, each one. all of them. PRUSS_MEM_MAX of them, plural, per the synopsis πŸ‘‘
  • mem_in_use β€” this one's the vibe check: it indicates if a memory resource is in use. literally just tells you if it's taken πŸ¦‹
  • lock β€” a mutex to serialize access to resources. no two threads in the same club at the same time, periodt πŸ”’
  • core_clk_mux β€” the clk handle for PRUSS CORE_CLK_MUX
  • iep_clk_mux β€” the clk handle for PRUSS IEP_CLK_MUX

🌈 SEE ALSO 🌈

  • Kernel file ./include/linux/pruss_driver.h
  • enum pru_type(9)
  • struct pruss_mem_region(9)

go read those too, iykyk 🧚


ngl bestie, the mem_in_use field is the one doing the most work here β€” it's literally the "is this resource taken" indicator, so don't come for her πŸ’€

that's the whole page, fr fr πŸ“ it lives in ./include/linux and it's dated October 2026 β€” so like, future vibes only, we're ahead of schedule πŸ’œ stay hydrated, go read your pruss_driver.h, mwah πŸŽ€πŸ’–

πŸ“¦ where this page comes from