<dec f='src/src/sys/external/bsd/drm2/dist/include/drm/ttm/ttm_bo_api.h' l='541' type='int ttm_bo_create(struct ttm_bo_device * bdev, unsigned long size, enum ttm_bo_type type, struct ttm_placement * placement, __uint32_t page_alignment, _Bool interruptible, struct file * persistent_swap_storage, struct ttm_buffer_object ** p_bo)'/>
<doc f='src/src/sys/external/bsd/drm2/dist/include/drm/ttm/ttm_bo_api.h' l='515'>/**
 * ttm_bo_synccpu_object_init
 *
 * @bdev: Pointer to a ttm_bo_device struct.
 * @bo: Pointer to a ttm_buffer_object to be initialized.
 * @size: Requested size of buffer object.
 * @type: Requested type of buffer object.
 * @flags: Initial placement flags.
 * @page_alignment: Data alignment in pages.
 * @interruptible: If needing to sleep while waiting for GPU resources,
 * sleep interruptible.
 * @persistent_swap_storage: Usually the swap storage is deleted for buffers
 * pinned in physical memory. If this behaviour is not desired, this member
 * holds a pointer to a persistent shmem object. Typically, this would
 * point to the shmem object backing a GEM object if TTM is used to back a
 * GEM user interface.
 * @p_bo: On successful completion *p_bo points to the created object.
 *
 * This function allocates a ttm_buffer_object, and then calls ttm_bo_init
 * on that object. The destroy function is set to kfree().
 * Returns
 * -ENOMEM: Out of memory.
 * -EINVAL: Invalid placement flags.
 * -ERESTARTSYS: Interrupted by signal while waiting for resources.
 */</doc>
<def f='src/src/sys/external/bsd/drm2/dist/drm/ttm/ttm_bo.c' l='1254' ll='1279' type='int ttm_bo_create(struct ttm_bo_device * bdev, unsigned long size, enum ttm_bo_type type, struct ttm_placement * placement, __uint32_t page_alignment, _Bool interruptible, struct file * persistent_swap_storage, struct ttm_buffer_object ** p_bo)'/>
