STRUCT PRU_RPROC(9)
π struct pru_rproc β the Kernel API Manual moment
okay so bestie, welcome to the struct pru_rproc(9) page β¨ this is from the Kernel API Manual and it's literally the whole personality of the PRU remoteproc structure. one struct. so many fields. we're gonna get through it together, no cap π«Ά
π NAME π
struct pru_rproc β the PRU remoteproc structure, aka the main character of this whole page π
β¨ SYNOPSIS β¨
here's the whole glow-up, verbatim, don't touch a single character bestie:
struct pru_rproc {
int id;
struct device *dev;
struct pruss *pruss;
struct rproc *rproc;
const struct pru_private_data *data;
struct pruss_mem_region mem_regions[PRU_IOMEM_MAX];
struct device_node *client_np;
struct mutex lock;
const char *fw_name;
unsigned int *mapped_irq;
struct pru_irq_rsc *pru_interrupt_map;
size_t pru_interrupt_map_sz;
spinlock_t rmw_lock;
u32 dbg_single_step;
u32 dbg_continuous;
u8 evt_count;
u8 gpmux_save;
};
πΈ Members πΈ
okay now the vibe check on every single field, one by one, because we do not skip π
idβ the id of the PRU core within the PRUSS πdevβ the PRU core device pointer, it's giving device energyprussβ back-reference to the parent PRUSS structure, like a link back to the parent account fr frrprocβ the remoteproc pointer for this PRU core, iconicdataβ PRU core specific data, each core's own little loremem_regionsβ data for each of the PRU memory regions, all of them, plural, we love a collection πclient_npβ the client device node πlockβ a mutex to protect client usage, do not skip the lock bestie, it's literally there to save you πfw_nameβ name of the firmware image used during loading, like a contact name but for firmwaremapped_irqβ virtual interrupt numbers of created fw specific mappingpru_interrupt_mapβ pointer to interrupt mapping description (firmware) π¦pru_interrupt_map_szβ thepru_interrupt_mapsize, the lil sibling fieldrmw_lockβ lock for read, modify, write operations on registers, protecting the register glow-up one step at a time β¨dbg_single_stepβ debug state variable to set PRU into single step mode πΎdbg_continuousβ debug state variable to restore PRU execution mode, the un-single-step, the comeback arcevt_countβ number of mapped eventsgpmux_saveβ saved value forgpmuxconfig πΎ
π₯ SEE ALSO π₯
go read these next bestie, iykyk:
- Kernel file
./drivers/remoteproc/pru_rproc.c enum pru_iomem(9)struct pru_private_data(9)pru_rproc_set_firmware(9)pru_rproc_get(9)pru_rproc_put(9)pru_rproc_set_ctable(9)
that's the whole page bestie, you ate that π and for the credits moment: this one lives at ./drivers/remoteproc, from the October 2026 Kernel API Manual, and it's literally signed struct pru_rproc(9) at the bottom like a little autograph π mwah, go read the source, you're gonna slay π§
π¦ 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