xe_bo_init_locked(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

🌸 NAME: xe_bo_init_locked(9) from the Kernel API Manual 🌸

okay so bestie, welcome to the xe_bo_init_locked(9) page β€” this function is literally here to initialize or create an xe_bo. That's the whole NAME vibe, no cap. πŸ’…βœ¨


✨ SYNOPSIS ✨

       struct xe_bo * xe_bo_init_locked (struct xe_device *xe , struct xe_bo
       *bo , struct xe_tile *tile , struct dma_resv *resv , struct
       ttm_lru_bulk_move *bulk , size_t size , u16 cpu_caching , enum
       ttm_bo_type type , u32 flags , struct dma_buf *dma_buf , struct drm_exec
       *exec );

🧚 ARGUMENTS 🧚

bestie, here's the whole cast β€” every single one, no skips:

  • xe β€” the xe device.
  • bo β€” an already allocated buffer object, or NULL if the function should allocate a new one.
  • tile β€” the tile to select for migration of this bo, and the tile used for GGTT binding if any. Only to be non-NULL for ttm_bo_type_kernel bos.
  • resv β€” pointer to a locked shared reservation object to use for this bo, or NULL for the xe_bo to use its own.
  • bulk β€” the bulk move to use for LRU bumping, or NULL for external bos.
  • size β€” the storage size to use for the bo.
  • cpu_caching β€” the cpu caching used for system memory backing store.
  • type β€” the TTM buffer object type.
  • flags β€” XE_BO_FLAG_ flags.
  • dma_buf β€” the dma-buf to reference for the BO lifetime (imported BOs), or NULL.
  • exec β€” the drm_exec transaction to use for exhaustive eviction.

πŸ’« DESCRIPTION πŸ’«

Initialize or create an xe buffer object. On failure, any allocated buffer object passed in bo will have been unreferenced β€” so yeah, that's the cleanup tea, bestie. πŸ«–πŸ˜­


🫢 RETURN 🫢

The buffer object on success. Negative error pointer on failure. That's it, that's the return vibe. πŸ’–


πŸ‘‘ SEE ALSO πŸ‘‘

Kernel file ./drivers/gpu/drm/xe/xe_bo.c is the source spot, and then go peek at: xe_bo_has_single_placement(9), xe_bo_is_stolen_devmem(9), xe_bo_is_vm_bound(9), xe_bo_pin_account(9), xe_bo_unpin_account(9), xe_bo_is_visible_vram(9), xe_bo_move_notify(9), xe_bo_set_purgeable_shrinker(9), xe_bo_set_purgeable_state(9), xe_ttm_bo_purge(9), xe_bo_shrink(9), xe_bo_notifier_prepare_pinned(9), xe_bo_notifier_unprepare_pinned(9), xe_bo_evict_pinned(9), xe_bo_restore_pinned(9), xe_bo_read(9), xe_bo_alloc(9), xe_bo_free(9), xe_bo_create_locked(9), xe_bo_create_user(9), xe_bo_create_pin_range_novm(9), xe_bo_create_pin_map_at_novm(9), xe_bo_create_pin_map(9), xe_bo_create_pin_map_novm(9), xe_managed_bo_reinit_in_vram(9), xe_bo_pin_external(9), xe_bo_pin(9), xe_bo_unpin_external(9), xe_bo_validate(9), xe_bo_decompress(9), xe_bo_lock(9), xe_bo_unlock(9), xe_bo_can_migrate(9), xe_bo_migrate(9), xe_bo_evict(9), xe_bo_needs_ccs_pages(9), __xe_bo_release_dummy(9), xe_bo_put_commit(9), xe_bo_dev_init(9), xe_bo_dev_fini(9), xe_bo_dumb_create(9).


okay bestie, that's the whole page πŸŽ€ it lives under source/version line ./drivers/gpu/drm/xe, dated October 2026, and it's the xe_bo_init_locked(9) manual. mwah πŸ’‹βœ¨

πŸ“¦ where this page comes from