drm_gpuva_for_each_op_safe(9)
π drm_gpuva_for_each_op_safe(9) π
okay bestie, so this is a page from the Kernel API Manual (yes, the Kernel API Manual, we're in the big leagues now β¨) and it's all about drm_gpuva_for_each_op_safe β your new fave iterator for strolling over &drm_gpuva_ops. Let's get into it π
β¨ NAME β¨
drm_gpuva_for_each_op_safe β an iterator that safely walks over &drm_gpuva_ops π«Ά (yes, "safe" is literally in the name, she's telling you something)
πΈ SYNOPSIS πΈ
drm_gpuva_for_each_op_safe (op , next , ops );
π ARGUMENTS π
opβ thedrm_gpuva_opyou assign on every single iteration step. she's the main character of each loop turn πnextβ the nextdrm_gpuva_op, where you stash the upcoming step so you don't lose your place π«opsβ thedrm_gpuva_opsyou're walking through. the whole lineup, the whole squad π
π¦ DESCRIPTION π¦
okay so here's the vibe: this iterator walks over all the ops inside a given list of operations. literally all of them, no skipping π
and the way it's built? it's implemented with list_for_each_safe, which means it's safe against removal of elements β so if something gets yeeted out of the list mid-walk, you're not gonna crash and burn π it's giving self-care, it's giving protection, it's giving iconic iterator behaviour. periodt.
π₯ SEE ALSO π₯
everything else in the family, bestie β go read these too:
Kernel file ./include/drm/drm_gpuvm.h
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_get(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_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)
π« and that's the whole page, bestie π«
this lil legend lives in ./include/drm and the version we're looking at is dated October 2026 β so yeah, future-coded of her π catch you on the next manpage, mwah ππ§
π¦ 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