pvr_fw_object_create(9)
π pvr_fw_object_create(9) β from the Kernel API Manual β¨
okay so bestie, buckle up π this one's a kernel API page from the PowerVR / Imagination driver corner of the tree, and honestly? it's giving "small function, big responsibilities." let's get into it π
πΈ NAME πΈ
pvr_fw_object_create β literally just: create a FW object and map it to firmware. that's the whole vibe. no cap.
β¨ SYNOPSIS β¨
int pvr_fw_object_create (struct pvr_device *pvr_dev , size_t size , u64
flags , void (*init)(void *cpu_ptr, void *priv) , void *init_priv ,
struct pvr_fw_object **fw_obj_out );
like yes, it's a lot of arguments, but we're gonna go through every single one together π«Ά
π¦ ARGUMENTS π¦
pvr_devβ the PowerVR device pointer. your main character struct, iykyk πsizeβ size of the object, in bytes. measured in bytes, not vibes πflagsβ the options that affect both this operation and any future mapping operations done on the returned object. must be a combination ofDRM_PVR_BO_*and/orPVR_BO_*flags. so like, mix and match from those two families, but only those two families β¨initβ the initialisation callback. this is the lil function that runs to set your object up π§init_privβ private pointer that gets passed straight through to that initialisation callback. no questions asked, it just hands it over πfw_obj_outβ pointer to the location where the created object pointer gets stored. this is where your new object shows up to the party π
π DESCRIPTION π
so here's the tea, bestie β β DRM_PVR_BO_DEVICE_PM_FW_PROTECT is implied for all FW objects. like, it's automatic, it comes with the outfit, you don't get to opt out π
and because of that consequence: this function will fail if flags has DRM_PVR_BO_CPU_ALLOW_USERSPACE_ACCESS set. not "might", not "could", it will fail. so don't do that π
β RETURN β
0on success π or- any error returned by
pvr_fw_object_create_commonπ (yeah, the errors get passed up from there, we don't gatekeep them)
π SEE ALSO π
Kernel file ./drivers/gpu/drm/imagination/pvr_fw.c plus the whole friend group π«
pvr_fw_validate(9)pvr_fw_process(9)pvr_wait_for_fw_boot(9)pvr_fw_validate_init_device_info(9)pvr_fw_init(9)pvr_fw_fini(9)pvr_fw_mts_schedule(9)pvr_fw_structure_cleanup(9)pvr_fw_object_fw_map(9)pvr_fw_object_fw_unmap(9)pvr_fw_object_create_and_map(9)pvr_fw_object_create_and_map_offset(9)pvr_fw_object_destroy(9)pvr_fw_object_get_fw_addr_offset(9)
aaaand that's the page!! π this icon was living in ./drivers/gpu/drm/imagination, dated October 2026 β slay, go read the rest of the family, they all ate π₯π
π¦ 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