STRUCT RPROC_MEM_ENTRY(9)
π struct rproc_mem_entry(9) π
okay bestie, welcome to the Kernel API Manual β literally the group chat where the kernel explains its own data structures. today's main character is struct rproc_mem_entry, no cap. β¨
πΈ NAME πΈ
struct rproc_mem_entry β it's a memory entry descriptor. that's the whole vibe. one lil' struct holding all the deets about a memory entry. iconic.
π¦ SYNOPSIS π¦
like, this is the shape of it. copy-paste exactly, don't you dare touch a semicolon:
struct rproc_mem_entry {
void *va;
bool is_iomem;
dma_addr_t dma;
size_t len;
u32 da;
void *priv;
char name[32];
struct list_head node;
u32 rsc_offset;
u32 flags;
u32 of_resm_idx;
int (*alloc)(struct rproc *rproc, struct rproc_mem_entry *mem);
int (*release)(struct rproc *rproc, struct rproc_mem_entry *mem);
};
π Members π
okay so each of these fields has a job, and honestly they all ate:
vaβ the virtual address. the address you actually see. main character energy fr.is_iomemβ aboolthat says whether this is io memory. that's it. that's the whole field.dmaβ the dma address, typedma_addr_t. the DMA's address, obviously πlenβ the length, measured in bytes. bytes!! not kilobytes, not vibes.daβ device address. different address, different lane, same energy.privβ associated data. it's giving "miscellaneous stuff we're carrying around" π«Άnameβ the associated memory region name, and it's optional. it's achar name[32]so like... 32 chars max, bestie, know your limits.nodeβ astruct list_headlist node. it's how this struct links up with its friends πrsc_offsetβ the offset in the resource table. gotta know where you sit in the table, periodt.flagsβ iommu protection flags. protection = self care, honestly.of_resm_idxβ the reserved memory phandle index. yes that's a real thing. no I will not explain the name better, that's literally what it is.allocβ a function pointer, the specific memory allocator function. signature:int (*alloc)(struct rproc *rproc, struct rproc_mem_entry *mem);releaseβ also a function pointer, and it releases the associated memory. cleanup queen. signature:int (*release)(struct rproc *rproc, struct rproc_mem_entry *mem);
π reminder thatallocandreleaseare pointers β if they're not set up right, that's a you problem, and the kernel will absolutely let you know.
β SEE ALSO β
go read these next, iykyk. all of them live in the kernel file ./include/linux/remoteproc.h:
enum rsc_handling_status(9)struct rproc_ops(9)enum rproc_state(9)enum rproc_crash_type(9)enum rproc_dump_mechanism(9)struct rproc_dump_segment(9)enum rproc_features(9)struct rproc(9)struct rproc_subdev(9)struct rproc_vring(9)struct rproc_vdev(9)
and that's the whole page, bestie π§ no notes, absolute slay.
source: ./include/linux Β· date: October 2026 β mwah, catch you in the next manpage πππ¦
π¦ 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