STRUCT RESOURCE_TABLE(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

✨ struct resource_table(9) β€” it's giving kernel API manual, section 9 πŸ’…

okay so bestie, we're in the Kernel API Manual today and the main character is literally struct resource_table. let's get into it 🫢


🌸 NAME 🌸

struct resource_table β€” the firmware resource table header. that's it, that's the vibe ✨


πŸŽ€ SYNOPSIS πŸŽ€

struct resource_table {
    u32 ver;
    u32 num;
    u32 reserved[2];
    u32 offset[];
 };

no cap, that's the whole shape of it. slay πŸ’–


πŸ’« Members πŸ’«

  • ver β€” the version number πŸ‘‘
  • num β€” how many resource entries there are, like the headcount at the function πŸ”₯
  • reserved β€” reserved, and it must be zero fr fr, don't be cute with it πŸ™ˆ
  • offset β€” an array of offsets pointing at the various resource entries, lowkey the map to everything else πŸ—ΊοΈ

πŸ¦‹ Description πŸ¦‹

so a resource table is essentially a list of system resources required by the remote processor. it may also include configuration entries. and if needed, the remote processor firmware should contain this table as a dedicated ".resource_table" ELF section. periodt πŸ’…

some resource entries are mere announcements, where the host is informed of specific remoteproc configuration. other entries require the host to do something (e.g. allocate a system resource). sometimes a negotiation is expected, where the firmware requests a resource, and once allocated, the host should provide back its details (e.g. address of an allocated memory region). it's giving group project but make it kernel 🧚

the header of the resource table, as expressed by this structure, contains a version number (should we need to change this format in the future), the number of available resource entries, and their offsets in the table. so basically a little table of contents for your table of contents, iconic honestly ⭐

immediately following this header are the resource entries themselves, each of which begins with a resource entry header (as described below). yes bestie, the entries go right after the header, in order, no gaps in the lore 🌈


πŸ”₯ SEE ALSO πŸ”₯

  • Kernel file ./include/linux/rsc_table.h
  • struct fw_rsc_hdr(9)
  • enum fw_resource_type(9)
  • struct fw_rsc_carveout(9)
  • struct fw_rsc_devmem(9)
  • struct fw_rsc_trace(9)
  • struct fw_rsc_vdev_vring(9)
  • struct fw_rsc_vdev(9)
  • rsc_table_for_each_entry(9)

go read them, iykyk 😭✨


okay that's the whole page, go be obsessed with your resource tables πŸ’œ

source: ./include/linux πŸ“ dated: October 2026 🌸 byeee, struct resource_table(9) out πŸ’–πŸ‘‘

πŸ“¦ where this page comes from