build_registry(9)
π NAME π
okay so real talk β this page is build_registry(9), straight from the Kernel API Manual (section 9, so it's kernel-dev territory, not something you type in a shell, iykyk π«Ά).
build_registry β create the registry RPC data. that's the whole gig. one job. iconic behavior honestly β¨
π SYNOPSIS π
void build_registry (struct nvkm_gsp *gsp , PACKED_REGISTRY_TABLE
*registry );
no cap, that's the entire signature. go off π
πΈ ARGUMENTS πΈ
gspβ gsp pointer. bestie that is the entire description and i'm not gonna invent lore about it πregistryβ pointer to the RPC payload to fill. this is the lil container you're stuffing full of registry goodness π
π¦ DESCRIPTION π¦
so here's the vibe: once you've already added all your registry key/value pairs, you call this function to build the RPC. that's the moment. the main character moment π₯
the registry RPC looks like this:
ββββββββββββββββββββββββββββββββββββββββββββ
β NvU32 size; β
β NvU32 numEntries; β
β PACKED_REGISTRY_ENTRY β
β Null-terminated key (string) for entry 0 β
ββββββββββββββββββββββββββββββββββββββββββββ
|Binary/string data value for entry 0 | (only if necessary)
ββββββββββββββββββββββββββββββββββββββββββββ
β PACKED_REGISTRY_ENTRY β
β Null-terminated key (string) for entry 1 β
ββββββββββββββββββββββββββββββββββββββββββββ
|Binary/string data value for entry 1 | (only if necessary) ... (and
so on, one copy for each entry)
likeβ¦ one copy for each entry. every single one. no skipping π
and the data field of an entry? it's either a 32-bit integer (for type DWORD) or an offset into the PACKED_REGISTRY_TABLE (for types BINARY and STRING). two paths, pick your fighter β
also important, don't sleep on this: all memory allocated by add_registry is released. every byte. it's giving cleanup era π§Ήβ¨
fr fr do not go poking at that memory afterwards, it is gone π
π SEE ALSO π
the whole friend group, in order:
- Kernel file
./drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/gsp.c nvkm_gsp_mem_ctor(9)struct registry_list_entry(9)add_registry(9)clean_registry(9)strip(9)r535_gsp_rpc_set_registry(9)r535_gsp_msg_run_cpu_sequencer(9)struct rpc_ucode_libos_print_v1e_08(9)r535_gsp_msg_libos_print(9)create_debugfs(9)r535_gsp_libos_debugfs_init(9)create_pte_array(9)r535_gsp_libos_init(9)nvkm_gsp_radix3_sg(9)r535_debugfs_shutdown(9)is_empty(9)r535_gsp_copy_log(9)r535_gsp_retain_logging(9)r535_gsp_libos_debugfs_fini(9)
mwah π that's the page. sourced from ./drivers/gpu/drm/nouveau/nvkm... and dated October 2026 β go forth and build that registry, bestie, 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