rproc_alloc(9)
π
rproc_alloc(9) β allocate a remote processor handle π
okay so welcome to the Kernel API Manual, bestie β this is the rproc_alloc(9) page, and it's literally giving βmake me a remote processor handle, but don't register it yet.β β¨
πΈ NAME πΈ
rproc_alloc β allocate a remote processor handle. That's the whole vibe: you're allocating the handle, not doing the full registration dance yet. π
β¨ SYNOPSIS β¨
struct rproc * rproc_alloc (struct device *dev , const char *name ,
const struct rproc_ops *ops , const char *firmware , int len );
π ARGUMENTS π
devβ the underlying device. Like, the device this whole remote-processor situation is sitting on top of. π«Άnameβ name of this remote processor. Give it a cute lil identity, bestie. πopsβ platform-specific handlers (mainly start/stop). This is where the platform-specific behavior lives. πfirmwareβ name of firmware file to load, can beNULL. If it'sNULL, don't panic β the DESCRIPTION has the tea. πlenβ length of private data needed by therprocdriver (in bytes). Bytes, not vibes. π
π¦ DESCRIPTION π¦
Allocates a new remote processor handle, but does not register it yet. If firmware is NULL, a default name is used. No cap, that's the deal. β¨
This function should be used by rproc implementations during initialization of the remote processor. Like, this is the setup-era move, bestie. π οΈ
After creating an rproc handle using this function, and when ready, implementations should then call rproc_add to complete the registration of the remote processor. That's the completion step β rproc_add, iykyk. π
π NOTE π
NO CAP: _never_ directly deallocaterproc, even if it was not registered yet. Instead, when you need to unrollrproc_alloc, userproc_free. Do not do the forbidden thing, bestie. π
π«Ά RETURN π«Ά
new rproc pointer on success, and NULL on failure. Slay on success, sad little NULL on failure. π
π SEE ALSO π
- the kernel file
./drivers/remoteproc/remoteproc_core.c 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)rproc_add(9)devm_rproc_add(9)rproc_type_release(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)
mwah π this page came from ./drivers/remoteproc, dated October 2026, and it's the rproc_alloc(9) page β periodt. π
π¦ 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