STRUCT RPC_UCODE_LIBOS_PRINT_V1E_08(9)
π NAME π
struct rpc_ucode_libos_print_v1e_08 β the RPC payload for libos print buffers π (yes bestie, this is from the Kernel API Manual, section 9, and it's giving "tiny struct, big job" energy)
β¨ SYNOPSIS β¨
struct rpc_ucode_libos_print_v1e_08 {
u32 ucode_eng_desc;
u32 libos_print_buf_size;
u8 libos_print_buf[];
};
okay so that's the whole shape of it, three members, no cap π«Ά
πΈ Members πΈ
ucode_eng_descβ the engine descriptor π§ literally what it says on the tinlibos_print_buf_sizeβ the size oflibos_print_buf[]π so the buffer knows how big it islibos_print_bufβ the actual buffer π the real one, the main character, the payload itself
π¦ Description π¦
So here's the tea β: the engine descriptor is split up into a 31:8 "class ID" and a 7:0 "instance ID". That's the bit-slicing, iykyk. And out of all of that? We only care about messages from PMU π
that's it, that's the whole vibe check.
ngl, everything else in that descriptor is just kind of there doing its thing β PMU messages are the only ones we're obsessed with π
π SEE ALSO π
the kernel file in question, bestie:
./drivers/gpu/drm/nouveau/nvkm/subdev/gsp/rm/r535/gsp.c
and the whole friend group π₯:
nvkm_gsp_mem_ctor(9)struct registry_list_entry(9)add_registry(9)build_registry(9)clean_registry(9)strip(9)r535_gsp_rpc_set_registry(9)r535_gsp_msg_run_cpu_sequencer(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)
and that's a wrap, bestie π¬ source is ./drivers/gpu/drm/nouveau/nvkm... and it's dated October 2026 β same page name, struct rpc_...print_v1e_08(9), 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