rproc_add(9)
π rproc_add(9) β kernel API manual, bestie edition π
okay so real talk, this is a page straight out of the kernel API manual, section 9, and it's about rproc_add. that's the whole vibe. let's get into it β¨
πΈ NAME πΈ
rproc_add β register a remote processor. that's it. that's the function. she registers, she slays π
π¦ SYNOPSIS π¦
int rproc_add (struct rproc *rproc );
literally one argument, one int coming back. iconic minimalism π
π ARGUMENTS π
rprocβ the remote processor handle you wanna register. that's the thing you're signing up for the framework. your main character struct π«Ά
β¨ DESCRIPTION β¨
so what she actually does: rproc_add registers rproc with the remoteproc framework β and important detail, this happens after it's been allocated with rproc_alloc. so like, alloc first, add second. don't skip steps bestie π
who calls it? the platform-specific rproc implementation calls this, whenever a new remote processor device is probed. so it's the "hey a new device showed up" moment, and this is what you do about it π
π₯ NOTE π₯
heads up, this one's important β this function initiates an asynchronous firmware loading context. async! it doesn't sit there and block, it kicks things off and goes about its business.
that context is gonna look for virtio devices supported by the rproc's firmware.
and if it finds them? those virtio devices get created and added. so like, as a result of registering this remote processor, additional virtio drivers might get probed. surprise guests at the party πβ
π RETURN π
0on success π- an appropriate error code otherwise π
that's the whole return situation. classic kernel energy.
π SEE ALSO π
this list is LONG, get comfy. kernel file ./drivers/remoteproc/remoteproc_core.c and then:
rproc_da_to_va(9), rproc_find_carveout_by_name(9), rproc_check_carveout_da(9), rproc_handle_vdev(9), rproc_handle_trace(9), rproc_handle_devmem(9), rproc_alloc_carveout(9), rproc_release_carveout(9), rproc_handle_carveout(9), rproc_add_carveout(9), rproc_mem_entry_init(9), rproc_of_resm_mem_entry_init(9), rproc_of_parse_firmware(9), rproc_alloc_registered_carveouts(9), rproc_resource_cleanup(9), rproc_trigger_recovery(9), rproc_crash_handler_work(9), rproc_boot(9), rproc_shutdown(9), rproc_detach(9), rproc_get_by_phandle(9), rproc_set_firmware(9), devm_rproc_add(9), rproc_type_release(9), rproc_alloc(9), rproc_free(9), rproc_put(9), rproc_del(9), devm_rproc_alloc(9), rproc_add_subdev(9), rproc_remove_subdev(9), rproc_get_by_child(9), rproc_report_crash(9)
fr fr that's all of them, go read, iykyk π
and that's the page!! mwah π this little gem lives in ./drivers/remoteproc and it's dated October 2026 β so yeah, future vibes, no cap. catch you in the next manpage bestie π§ββοΈπ
π¦ 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