Lines Matching full:range

48 	 * @range_alloc: Allocate a GPU SVM range (optional)
51 * Allocate a GPU SVM range.
53 * Return: Pointer to the allocated GPU SVM range on success, NULL on failure.
58 * @range_free: Free a GPU SVM range (optional)
59 * @range: Pointer to the GPU SVM range to be freed
61 * Free a GPU SVM range.
63 void (*range_free)(struct drm_gpusvm_range *range);
71 * Invalidate the GPU page tables. It can safely walk the notifier range
138 * Note this is assuming only one drm_pagemap per range is allowed.
139 * @notifier_seq: Notifier sequence number of the range's pages
140 * @flags: Flags for range
141 * @flags.migrate_devmem: Flag indicating whether the range can be migrated to device memory
142 * @flags.unmapped: Flag indicating if the range has been unmapped
143 * @flags.partial_unmap: Flag indicating if the range has been partially unmapped
144 * @flags.has_devmem_pages: Flag indicating if the range has devmem pages
145 * @flags.has_dma_mapping: Flag indicating if the range has a DMA mapping
155 * struct drm_gpusvm_range - Structure representing a GPU SVM range
159 * @refcount: Reference count for the range
160 * @itree: Interval tree node for the range (inserted in GPU SVM notifier)
162 * @pages: The pages for this range.
164 * This structure represents a GPU SVM range used for tracking memory ranges
183 * @mm_range: Range of the GPU SVM
186 * @chunk_sizes: Pointer to the array of chunk sizes used in range allocation.
276 struct drm_gpusvm_range *range);
279 struct drm_gpusvm_range *range);
282 drm_gpusvm_range_get(struct drm_gpusvm_range *range);
284 void drm_gpusvm_range_put(struct drm_gpusvm_range *range);
287 struct drm_gpusvm_range *range);
290 struct drm_gpusvm_range *range,
294 struct drm_gpusvm_range *range,
308 void drm_gpusvm_range_set_unmapped(struct drm_gpusvm_range *range,
340 "GPUSVM range lock should be set only once."))\
366 * drm_gpusvm_range_start() - GPU SVM range start address
367 * @range: Pointer to the GPU SVM range
369 * Return: GPU SVM range start address
372 drm_gpusvm_range_start(struct drm_gpusvm_range *range) in drm_gpusvm_range_start() argument
374 return range->itree.start; in drm_gpusvm_range_start()
378 * drm_gpusvm_range_end() - GPU SVM range end address
379 * @range: Pointer to the GPU SVM range
381 * Return: GPU SVM range end address
384 drm_gpusvm_range_end(struct drm_gpusvm_range *range) in drm_gpusvm_range_end() argument
386 return range->itree.last + 1; in drm_gpusvm_range_end()
390 * drm_gpusvm_range_size() - GPU SVM range size
391 * @range: Pointer to the GPU SVM range
393 * Return: GPU SVM range size
396 drm_gpusvm_range_size(struct drm_gpusvm_range *range) in drm_gpusvm_range_size() argument
398 return drm_gpusvm_range_end(range) - drm_gpusvm_range_start(range); in drm_gpusvm_range_size()
439 * __drm_gpusvm_range_next() - Get the next GPU SVM range in the list
440 * @range: a pointer to the current GPU SVM range
443 * current range is the last one or if the input range is NULL.
446 __drm_gpusvm_range_next(struct drm_gpusvm_range *range) in __drm_gpusvm_range_next() argument
448 if (range && !list_is_last(&range->entry, in __drm_gpusvm_range_next()
449 &range->notifier->range_list)) in __drm_gpusvm_range_next()
450 return list_next_entry(range, entry); in __drm_gpusvm_range_next()
458 * the iterator. If NULL, call drm_gpusvm_range_find() to get the range.
460 * @start__: Start address of the range
461 * @end__: End address of the range
477 * @start__: Start address of the range
478 * @end__: End address of the range