ttm_buffer_object
struct ttm_buffer_object;
void ttm_bo_release_mmap(struct ttm_buffer_object *bo);
static void ttm_bo_release_list(struct ttm_buffer_object *bo)
int ttm_bo_move_buffer(struct ttm_buffer_object *bo,
int ttm_bo_validate(struct ttm_buffer_object *bo,
int ttm_bo_check_placement(struct ttm_buffer_object *bo,
struct ttm_buffer_object *bo,
void (*destroy) (struct ttm_buffer_object *))
ttm_bo_wait_unreserved_locked(struct ttm_buffer_object *bo, bool interruptible)
struct ttm_buffer_object **p_bo)
struct ttm_buffer_object *bo;
acc_size = ttm_bo_acc_size(bdev, size, sizeof(struct ttm_buffer_object));
void ttm_bo_add_to_lru(struct ttm_buffer_object *bo)
void ttm_bo_unmap_virtual_locked(struct ttm_buffer_object *bo)
void ttm_bo_unmap_virtual(struct ttm_buffer_object *bo)
static void ttm_bo_vm_insert_rb(struct ttm_buffer_object *bo)
static int ttm_bo_setup_vm(struct ttm_buffer_object *bo)
int ttm_bo_wait(struct ttm_buffer_object *bo,
int ttm_bo_synccpu_write_grab(struct ttm_buffer_object *bo, bool no_wait)
int ttm_bo_del_from_lru(struct ttm_buffer_object *bo)
void ttm_bo_synccpu_write_release(struct ttm_buffer_object *bo)
struct ttm_buffer_object *bo;
int ttm_bo_reserve_nolru(struct ttm_buffer_object *bo,
void ttm_bo_list_ref_sub(struct ttm_buffer_object *bo, int count,
int ttm_bo_reserve(struct ttm_buffer_object *bo,
int ttm_bo_reserve_slowpath_nolru(struct ttm_buffer_object *bo,
int ttm_bo_reserve_slowpath(struct ttm_buffer_object *bo,
void ttm_bo_unreserve_locked(struct ttm_buffer_object *bo)
void ttm_bo_unreserve(struct ttm_buffer_object *bo)
static int ttm_bo_add_ttm(struct ttm_buffer_object *bo, bool zero_alloc)
static int ttm_bo_handle_move_mem(struct ttm_buffer_object *bo,
static int ttm_bo_setup_vm(struct ttm_buffer_object *bo);
static void ttm_bo_cleanup_memtype_use(struct ttm_buffer_object *bo)
static void ttm_bo_cleanup_refs_or_queue(struct ttm_buffer_object *bo)
static int ttm_bo_cleanup_refs_and_unlock(struct ttm_buffer_object *bo,
struct ttm_buffer_object *entry = NULL;
struct ttm_buffer_object, ddestroy);
struct ttm_buffer_object *nentry = NULL;
struct ttm_buffer_object, ddestroy);
static void ttm_bo_mem_space_debug(struct ttm_buffer_object *bo,
static void ttm_bo_release(struct ttm_buffer_object *bo)
void ttm_bo_unref(struct ttm_buffer_object **p_bo)
struct ttm_buffer_object *bo = *p_bo;
static int ttm_bo_evict(struct ttm_buffer_object *bo, bool interruptible,
struct ttm_buffer_object *bo;
void ttm_bo_mem_put(struct ttm_buffer_object *bo, struct ttm_mem_reg *mem)
static int ttm_bo_mem_force_space(struct ttm_buffer_object *bo,
int ttm_bo_mem_space(struct ttm_buffer_object *bo,
void (*destroy) (struct ttm_buffer_object *);
RB_ENTRY(ttm_buffer_object) vm_rb;
struct ttm_buffer_object *bo;
static inline struct ttm_buffer_object *
ttm_bo_reference(struct ttm_buffer_object *bo)
extern int ttm_bo_wait(struct ttm_buffer_object *bo, bool lazy,
extern int ttm_bo_validate(struct ttm_buffer_object *bo,
extern void ttm_bo_unref(struct ttm_buffer_object **bo);
extern void ttm_bo_list_ref_sub(struct ttm_buffer_object *bo, int count,
extern void ttm_bo_add_to_lru(struct ttm_buffer_object *bo);
extern int ttm_bo_del_from_lru(struct ttm_buffer_object *bo);
ttm_bo_synccpu_write_grab(struct ttm_buffer_object *bo, bool no_wait);
extern void ttm_bo_synccpu_write_release(struct ttm_buffer_object *bo);
struct ttm_buffer_object *bo,
void (*destroy) (struct ttm_buffer_object *));
struct ttm_buffer_object **p_bo);
extern int ttm_bo_check_placement(struct ttm_buffer_object *bo,
extern int ttm_bo_kmap(struct ttm_buffer_object *bo, unsigned long start_page,
static inline bool ttm_bo_is_reserved(struct ttm_buffer_object *bo)
int ttm_bo_cmp_rb_tree_items(struct ttm_buffer_object *a,
struct ttm_buffer_object *b);
RB_PROTOTYPE(ttm_bo_device_buffer_objects, ttm_buffer_object, vm_rb,
struct ttm_buffer_object *bo,
void(*evict_flags) (struct ttm_buffer_object *bo,
int (*move) (struct ttm_buffer_object *bo,
int (*verify_access) (struct ttm_buffer_object *bo);
void (*move_notify)(struct ttm_buffer_object *bo,
int (*fault_reserve_notify)(struct ttm_buffer_object *bo);
void (*swap_notify) (struct ttm_buffer_object *bo);
RB_HEAD(ttm_bo_device_buffer_objects, ttm_buffer_object) addr_space_rb;
extern int ttm_bo_mem_space(struct ttm_buffer_object *bo,
extern void ttm_bo_mem_put(struct ttm_buffer_object *bo,
extern void ttm_bo_mem_put_locked(struct ttm_buffer_object *bo,
extern void ttm_bo_unmap_virtual(struct ttm_buffer_object *bo);
extern void ttm_bo_unmap_virtual_locked(struct ttm_buffer_object *bo);
extern int ttm_mem_io_reserve_vm(struct ttm_buffer_object *bo);
extern void ttm_mem_io_free_vm(struct ttm_buffer_object *bo);
extern int ttm_bo_reserve(struct ttm_buffer_object *bo,
extern int ttm_bo_reserve_slowpath_nolru(struct ttm_buffer_object *bo,
extern int ttm_bo_reserve_slowpath(struct ttm_buffer_object *bo,
extern int ttm_bo_reserve_nolru(struct ttm_buffer_object *bo,
extern void ttm_bo_unreserve(struct ttm_buffer_object *bo);
extern void ttm_bo_unreserve_locked(struct ttm_buffer_object *bo);
extern int ttm_bo_move_ttm(struct ttm_buffer_object *bo,
extern int ttm_bo_move_memcpy(struct ttm_buffer_object *bo,
extern void ttm_bo_free_old_node(struct ttm_buffer_object *bo);
extern int ttm_bo_move_accel_cleanup(struct ttm_buffer_object *bo,
struct ttm_buffer_object *bo,
struct ttm_buffer_object *bo;
struct ttm_buffer_object,
int ttm_mem_io_reserve_vm(struct ttm_buffer_object *bo)
void ttm_mem_io_free_vm(struct ttm_buffer_object *bo)
int ttm_bo_move_memcpy(struct ttm_buffer_object *bo,
void ttm_bo_free_old_node(struct ttm_buffer_object *bo)
static void ttm_transfered_destroy(struct ttm_buffer_object *bo)
ttm_buffer_object_transfer(struct ttm_buffer_object *bo,
struct ttm_buffer_object **new_obj)
struct ttm_buffer_object *fbo;
int ttm_bo_move_ttm(struct ttm_buffer_object *bo,
static int ttm_bo_ioremap(struct ttm_buffer_object *bo,
static int ttm_bo_kmap_ttm(struct ttm_buffer_object *bo,
int ttm_bo_kmap(struct ttm_buffer_object *bo,
struct ttm_buffer_object *bo = map->bo;
int ttm_bo_move_accel_cleanup(struct ttm_buffer_object *bo,
struct ttm_buffer_object *ghost_obj;
struct ttm_buffer_object *bo = vm_obj->handle;
struct ttm_buffer_object *bo = handle;
struct ttm_buffer_object *bo;
ttm_bo_release_mmap(struct ttm_buffer_object *bo)
int ttm_fbdev_mmap(struct vm_area_struct *vma, struct ttm_buffer_object *bo)
struct ttm_buffer_object *bo;
ssize_t ttm_bo_fbdev_io(struct ttm_buffer_object *bo, const char __user *wbuf,
RB_GENERATE(ttm_bo_device_buffer_objects, ttm_buffer_object, vm_rb,
ttm_bo_cmp_rb_tree_items(struct ttm_buffer_object *a,
struct ttm_buffer_object *b)
static struct ttm_buffer_object *ttm_bo_vm_lookup_rb(struct ttm_bo_device *bdev,
struct ttm_buffer_object *bo;
struct ttm_buffer_object *best_bo = NULL;
struct ttm_buffer_object *bo = entry->bo;
struct ttm_buffer_object *bo;
struct ttm_buffer_object *bo = entry->bo;
struct ttm_buffer_object *bo = entry->bo;
struct ttm_buffer_object *bo = entry->bo;
struct ttm_buffer_object *bo;