Lines Matching +full:mem +full:- +full:array
3 * Copyright (c) 2006-2009 Vmware, Inc., Palo Alto, CA., USA
20 * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL
28 * Authors: Thomas Hellstrom <thellstrom-at-vmware-dot-com>
96 * @dummy_read_page: Page to map where the ttm_tt page array contains a NULL
98 * @pages: Array of pages backing the data.
99 * @num_pages: Number of pages in the page array.
106 * This is a structure holding the pages, caching- and aperture binding
118 struct sg_table *sg; /* for SG objects via dma-buf */
136 * This is a structure holding the pages, caching- and aperture binding
146 #define TTM_MEMTYPE_FLAG_FIXED (1 << 0) /* Fixed (on-card) PCI memory */
182 * @mem: Pointer to a struct ttm_mem_reg to be filled in.
187 * @mem::mm_node should be set to a non-null value, and
188 * @mem::start should be set to a value identifying the beginning
190 * If the memory region accommodate the buffer object, @mem::mm_node
195 * Note that @mem::mm_node will only be dereferenced by
206 struct ttm_mem_reg *mem);
212 * @mem: Pointer to a struct ttm_mem_reg to be filled in.
215 * and that are identified by @mem::mm_node and @mem::start. May not
219 struct ttm_mem_reg *mem);
228 * type manager to aid debugging of out-of-memory conditions.
253 * @io_reserve_lru: Optional lru list for unreserving io mem regions.
291 * Protected by the global->lru_lock.
342 * -ENOMEM: Out of memory.
377 * finished, they'll end up in bo->mem.flags
389 * @no_wait: whether this should give up and return -EBUSY
411 * This function should return 0 if access is granted, -EPERM otherwise.
451 int (*io_mem_reserve)(struct ttm_bo_device *bdev, struct ttm_mem_reg *mem);
452 void (*io_mem_free)(struct ttm_bo_device *bdev, struct ttm_mem_reg *mem);
456 * struct ttm_bo_global_ref - Argument to initialize a struct ttm_bo_global.
465 * struct ttm_bo_global - Buffer object driver global data.
514 * struct ttm_bo_device - Buffer object driver device-specific data.
517 * @man: An array of mem_type_managers.
656 * @pages: An array of pointers to struct page:s to flush.
661 * cache-coherent.
673 * write-combined,
690 * @mem: A valid struct ttm_mem_reg.
692 * Returns true if the memory described by @mem is PCI memory,
696 struct ttm_mem_reg *mem);
704 * @mem: A struct ttm_mem_reg.
709 * the placement flags in @mem, potentially evicting other idle buffer objects.
712 * -EBUSY: No space available (only if no_wait == 1).
713 * -ENOMEM: Could not allocate memory for the buffer object, either due to
715 * -ERESTARTSYS: An interruptible sleep was interrupted by a signal.
719 struct ttm_mem_reg *mem,
724 struct ttm_mem_reg *mem);
726 struct ttm_mem_reg *mem);
780 * @no_wait: Don't sleep while trying to reserve, rather return -EBUSY.
782 * it to become unreserved if @sequence < (@bo)->sequence.
794 * (typically execbuf), should first obtain a unique 32-bit
801 * holding the reservation, the function returns -EAGAIN. Otherwise it sleeps
804 * The caller should, when receiving an -EAGAIN error
811 * -EAGAIN: The reservation may cause a deadlock.
814 * -ERESTARTSYS: A wait for the buffer to become unreserved was interrupted by
815 * a signal. Release all buffer reservations and return to user-space.
816 * -EBUSY: The function needed to sleep, but @no_wait was true
817 * -EDEADLK: Bo already reserved using @sequence. This error code will only
828 * @sequence: Set (@bo)->sequence to this value after lock
830 * This is called after ttm_bo_reserve returns -EAGAIN and we backed off
846 * @sequence: Set (@bo)->sequence to this value after lock
848 * This is called after ttm_bo_reserve returns -EAGAIN and we backed off
860 * @no_wait: Don't sleep while trying to reserve, rather return -EBUSY.
862 * it to become unreserved if @sequence < (@bo)->sequence.
868 * -EAGAIN: The reservation may cause a deadlock.
871 * -ERESTARTSYS: A wait for the buffer to become unreserved was interrupted by
872 * a signal. Release all buffer reservations and return to user-space.
873 * -EBUSY: The function needed to sleep, but @no_wait was true
874 * -EDEADLK: Bo already reserved using @sequence. This error code will only
915 * free any old aperture space, and set (@new_mem)->mm_node to NULL,
916 * and update the (@bo)->mem placement flags. If unsuccessful, the old
937 * free any old aperture space, and set (@new_mem)->mm_node to NULL,
938 * and update the (@bo)->mem placement flags. If unsuccessful, the old