STRUCT VPU(9)
β¨ struct vpu β¨
okay so this is a page from the Kernel API Manual (section 9, struct vpu(9) β yes bestie, section nine, we're in kernel-internals territory π
) and it's literally just the tea on struct vpu, which is the Ingenic VPU remoteproc private structure. that's it, that's the whole vibe. she's private, she's Ingenic, she's a VPU, she keeps her business to herself π«Ά
πΈ NAME πΈ
struct vpu β the Ingenic VPU remoteproc private structure. no cap, that's the name and the whole personality.
π SYNOPSIS π
here's the actual shape of her, character for character, do not touch:
struct vpu {
int irq;
struct clk_bulk_data clks[2];
void __iomem *aux_base;
struct vpu_mem_info mem_info[ARRAY_SIZE(vpu_mem_map)];
struct device *dev;
};
like, look at that. five members. she's compact. she's iconic. she ate and left zero crumbs π₯
π Members π
okay now we get into the individual members, and honestly this is the part where i need you to lock in bestie, because these are the facts and the facts are not changing:
irqβ the interrupt number. that's it. that's her whole job. one little int holding the interrupt number π¦clksβ pointers to the VPU and AUX clocks. it's astruct clk_bulk_data, and note that it'sclks[2]β two of them, because there are two clocks (VPU and AUX, as established). two clocks, two slots, math is mathing πaux_baseβ a raw pointer to the AUX interface registers. it'svoid __iomem *, so it's raw and it's memory-mapped, and we respect that. register poking happens here, iykyk β¨mem_infoβ an array ofstruct vpu_mem_info, which contain the mapping info of each of the external memories. and it's sized asARRAY_SIZE(vpu_mem_map), so the size comes straight fromvpu_mem_map, not from a hardcoded number. one entry per external memory, all mapped out, organized queen πdevβ a private pointer to the device. private. pointer. device. the link back to the bigstruct device. she's got connections π
π SEE ALSO π
if you want the actual source (and honestly, why wouldn't you), it lives in the Kernel file:
./drivers/remoteproc/ingenic_rproc.c
that's the spot. go read it, it's giving main character energy π§
and that's the page bestie π nothing dangerous here, no deprecated flags, no undefined behaviour, just five struct members and a clock array of exactly two. keep the details exact and slay responsibly π
sign-off time πΈ this page came out of ./drivers/remoteproc and it's dated October 2026 β so like, future-dated, very ahead of its time, absolutely iconic of her. mwah π
π¦ 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