STRUCT PVR_VM_BIND_OP(9)
π NAME π
okay so bestie, welcome to the struct pvr_vm_bind_op(9) page from the Kernel API Manual β this is literally the context of a map/unmap operation, and we are gonna go through every single field together. no cap, nothing is getting skipped π
.
β¨ SYNOPSIS β¨
here is the whole struct in all its main-character glory:
struct pvr_vm_bind_op {
enum pvr_vm_bind_type type;
struct pvr_gem_object *pvr_obj;
struct pvr_vm_context *vm_ctx;
struct pvr_mmu_op_context *mmu_op_ctx;
struct drm_gpuvm_bo *gpuvm_bo;
struct pvr_vm_gpuva *new_va;
struct pvr_vm_gpuva *prev_va;
struct pvr_vm_gpuva *next_va;
u64 offset;
u64 device_addr;
u64 size;
};
π Members π
okay, vibe check on every member, bestie:
typeβ map or unmap. that is the whole assignment, fr fr.pvr_objβ object associated with mapping (map only). so if you are unmapping, this one is not the main character here π.vm_ctxβ VM context where the mapping will be created or destroyed.mmu_op_ctxβ MMU op context. iconic, brief, does what it says.gpuvm_boβ prealloced wrapped BO for attaching to the gpuvm.new_vaβ prealloced VA mapping object (init in callback). used when creating a mapping.prev_vaβ prealloced VA mapping object (init in callback). used when a mapping or unmapping operation overlaps an existing mapping and splits away the beginning into a new mapping.next_vaβ prealloced VA mapping object (init in callback). used when a mapping or unmapping operation overlaps an existing mapping and splits away the end into a new mapping.offsetβ offset intopvr_objto begin mapping from.device_addrβ device-virtual address at the start of the mapping.sizeβ size of the desired mapping.
heads up bestie: pvr_obj is map only β do not forget π
π SEE ALSO π
go read these next, bestie β it is giving extended cinematic universe π:
- Kernel file
./drivers/gpu/drm/imagination/pvr_vm.c Memory context(9)struct pvr_vm_context(9)pvr_vm_get_page_table_root_addr(9)pvr_vm_get_dma_resv(9)Memory mappings(9)struct pvr_vm_gpuva(9)pvr_vm_bind_op_exec(9)pvr_vm_gpuva_map(9)pvr_vm_gpuva_unmap(9)pvr_vm_gpuva_remap(9)pvr_device_addr_is_valid(9)pvr_device_addr_and_size_are_valid(9)pvr_vm_create_context(9)pvr_vm_context_release(9)pvr_vm_context_lookup(9)pvr_vm_context_put(9)pvr_destroy_vm_contexts_for_file(9)pvr_vm_map(9)pvr_vm_unmap_obj_locked(9)pvr_vm_unmap_obj(9)pvr_vm_unmap(9)pvr_vm_unmap_all(9)pvr_heap_contains_range(9)pvr_find_heap_containing(9)pvr_vm_find_gem_object(9)pvr_vm_get_fw_mem_context(9)
mwah π β this page came from ./drivers/gpu/drm/imagination, dated October 2026, and it is the struct pvr_vm_bind_op(9) manual page. bye bestie, go map something iconic π«Άβ¨
π¦ 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