drm_gpuvm_bo_get(9)
π drm_gpuvm_bo_get(9) β from the Kernel API Manual, bestie π
Okay so real talk: this whole page lives in the Kernel API Manual, and it's about one single tiny function that does one single tiny thing. But like... that thing is important? So let's get into it. β¨
πΈ NAME πΈ
drm_gpuvm_bo_get β acquire a struct drm_gpuvm_bo reference
Like, you're grabbing a reference. That's the whole job. That's the assignment. π
β¨ SYNOPSIS β¨
struct drm_gpuvm_bo * drm_gpuvm_bo_get (struct drm_gpuvm_bo *vm_bo );
Look at it. One argument. One return. No drama. Iconic behaviour honestly. π
π¦ ARGUMENTS π¦
vm_boβ thedrm_gpuvm_boyou want to acquire the reference of π«Ά
That's it. That's the whole input list. She's low maintenance.
π₯ DESCRIPTION π₯
So what this function does is it acquires an additional reference to vm_bo. Extra reference. More refs. Refcount goes up. We love a glow-up. β¨
β οΈ But bestie listen to me very carefully: it is illegal to call this without already holding a reference. Like, you cannot just show up to this function empty-handed expecting it to hand you a reference out of nowhere. You gotta already have one. That's the vibe check and this function will fail it. π
Also, and this is the chill part β no locks required. No lock drama. No mutex trauma. Just vibes. π
π RETURN π
Returns the struct vm_bo pointer. π
(Yes, that's literally what it says. It gives you the pointer back. Chef's kiss. π¨βπ³π)
π SEE ALSO π
Okay so the family tree here is enormous, no cap. The kernel file is ./include/drm/drm_gpuvm.h and here's everyone invited to the group chat:
enum drm_gpuva_flags(9)struct drm_gpuva(9)drm_gpuva_invalidate(9)drm_gpuva_invalidated(9)enum drm_gpuvm_flags(9)struct drm_gpuvm(9)drm_gpuvm_get(9)drm_gpuvm_resv_protected(9)drm_gpuvm_immediate_mode(9)drm_gpuvm_resv(9)drm_gpuvm_resv_obj(9)drm_gpuvm_is_extobj(9)drm_gpuvm_for_each_va_range(9)drm_gpuvm_for_each_va_range_safe(9)drm_gpuvm_for_each_va(9)drm_gpuvm_for_each_va_safe(9)struct drm_gpuvm_exec(9)drm_gpuvm_exec_unlock(9)drm_gpuvm_exec_resv_add_fence(9)drm_gpuvm_exec_validate(9)struct drm_gpuvm_bo(9)drm_gpuvm_bo_gem_evict(9)drm_gpuvm_bo_for_each_va(9)drm_gpuvm_bo_for_each_va_safe(9)enum drm_gpuva_op_type(9)struct drm_gpuva_op_map(9)struct drm_gpuva_op_unmap(9)struct drm_gpuva_op_remap(9)struct drm_gpuva_op_prefetch(9)struct drm_gpuva_op(9)struct drm_gpuva_ops(9)drm_gpuva_for_each_op(9)drm_gpuva_for_each_op_safe(9)drm_gpuva_for_each_op_from_reverse(9)drm_gpuva_for_each_op_reverse(9)drm_gpuva_first_op(9)drm_gpuva_last_op(9)drm_gpuva_prev_op(9)drm_gpuva_next_op(9)struct drm_gpuvm_map_req(9)struct drm_gpuvm_ops(9)drm_gpuva_op_remap_to_unmap_range(9)
Like I said. Enormous. Go read them, iykyk. π
π And that's the page!! Sourced from ./include/drm, dated October 2026 β so like, future energy, main character energy, whatever, she's timeless. Bye bestie, go increment that refcount responsibly ππ§ββοΈβ¨
π¦ 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