ttm_bo_lru_cursor_first(9)
ttm_bo_lru_cursor_first(9) π¦
hiii bestie π welcome to the Kernel API Manual page for ttm_bo_lru_cursor_first(9) β yes, manual name folded in right at the top, we're being efficient and cute. This is the function that kicks off the LRU-list crawl so you can find and lock a buffer object. It's giving "first step of a very serious walk," no cap. π
β¨ NAME β¨
ttm_bo_lru_cursor_first β start iterating a manager's LRU lists to find and lock buffer object. π
π SYNOPSIS π
struct ttm_buffer_object * ttm_bo_lru_cursor_first (struct
ttm_bo_lru_cursor *curs );
πΈ ARGUMENTS πΈ
cursβ the cursor initialized usingttm_bo_lru_cursor_init. That's the one you're handing over, bestie; it's already been set up by that init call. π«Ά
π₯ RETURN π₯
You get back a pointer to a locked and reference-counted buffer object π β that's the win. Or you get NULL if none could be found and looping should be terminated. So if it's NULL, bestie, the search said no and the looping should stop. π
π SEE ALSO π
Kernel file: ./drivers/gpu/drm/ttm/ttm_bo_util.c β that's the neighborhood where the magic lives. β¨ Also peep these:
ttm_move_memcpy(9)ttm_bo_move_memcpy(9)ttm_buffer_object_transfer(9)ttm_io_prot(9)ttm_bo_kmap_try_from_panic(9)ttm_bo_kmap(9)ttm_bo_kunmap(9)ttm_bo_vmap(9)ttm_bo_vunmap(9)ttm_bo_move_accel_cleanup(9)ttm_bo_move_sync_cleanup(9)ttm_bo_pipeline_gutting(9)ttm_lru_walk_for_evict(9)ttm_bo_lru_cursor_fini(9)ttm_bo_lru_cursor_init(9)ttm_bo_lru_cursor_next(9)ttm_bo_shrink(9)ttm_bo_shrink_suitable(9)ttm_bo_shrink_avoid_wait(9)
mwah π this page's source/version deets are ./drivers/gpu/drm/ttm, dated October 2026, and it's for ttm_bo_lru_cursor_first(9). Catch you in the kernel source, bestie β slay 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