Lines Matching full:range
130 * @range_alloc: Allocate a GPU SVM range (optional)
133 * Allocate a GPU SVM range.
135 * Return: Pointer to the allocated GPU SVM range on success, NULL on failure.
140 * @range_free: Free a GPU SVM range (optional)
141 * @range: Pointer to the GPU SVM range to be freed
143 * Free a GPU SVM range.
145 void (*range_free)(struct drm_gpusvm_range *range);
153 * Invalidate the GPU page tables. It can safely walk the notifier range
191 * struct drm_gpusvm_range_flags - Structure representing a GPU SVM range flags
193 * @migrate_devmem: Flag indicating whether the range can be migrated to device memory
194 * @unmapped: Flag indicating if the range has been unmapped
195 * @partial_unmap: Flag indicating if the range has been partially unmapped
196 * @has_devmem_pages: Flag indicating if the range has devmem pages
197 * @has_dma_mapping: Flag indicating if the range has a DMA mapping
198 * @__flags: Flags for range in u16 form (used for READ_ONCE)
216 * struct drm_gpusvm_range - Structure representing a GPU SVM range
220 * @refcount: Reference count for the range
221 * @itree: Interval tree node for the range (inserted in GPU SVM notifier)
223 * @notifier_seq: Notifier sequence number of the range's pages
226 * Note this is assuming only one drm_pagemap per range is allowed.
227 * @flags: Flags for range
229 * This structure represents a GPU SVM range used for tracking memory ranges
252 * @mm_range: Range of the GPU SVM
255 * @chunk_sizes: Pointer to the array of chunk sizes used in range allocation.
338 struct drm_gpusvm_range *range);
341 struct drm_gpusvm_range *range);
344 drm_gpusvm_range_get(struct drm_gpusvm_range *range);
346 void drm_gpusvm_range_put(struct drm_gpusvm_range *range);
349 struct drm_gpusvm_range *range);
352 struct drm_gpusvm_range *range,
356 struct drm_gpusvm_range *range,
360 struct drm_gpusvm_range *range,
375 void drm_gpusvm_range_set_unmapped(struct drm_gpusvm_range *range,
396 "GPUSVM range lock should be set only once."))\
422 * drm_gpusvm_range_start() - GPU SVM range start address
423 * @range: Pointer to the GPU SVM range
425 * Return: GPU SVM range start address
428 drm_gpusvm_range_start(struct drm_gpusvm_range *range) in drm_gpusvm_range_start() argument
430 return range->itree.start; in drm_gpusvm_range_start()
434 * drm_gpusvm_range_end() - GPU SVM range end address
435 * @range: Pointer to the GPU SVM range
437 * Return: GPU SVM range end address
440 drm_gpusvm_range_end(struct drm_gpusvm_range *range) in drm_gpusvm_range_end() argument
442 return range->itree.last + 1; in drm_gpusvm_range_end()
446 * drm_gpusvm_range_size() - GPU SVM range size
447 * @range: Pointer to the GPU SVM range
449 * Return: GPU SVM range size
452 drm_gpusvm_range_size(struct drm_gpusvm_range *range) in drm_gpusvm_range_size() argument
454 return drm_gpusvm_range_end(range) - drm_gpusvm_range_start(range); in drm_gpusvm_range_size()
495 * __drm_gpusvm_range_next() - Get the next GPU SVM range in the list
496 * @range: a pointer to the current GPU SVM range
499 * current range is the last one or if the input range is NULL.
502 __drm_gpusvm_range_next(struct drm_gpusvm_range *range) in __drm_gpusvm_range_next() argument
504 if (range && !list_is_last(&range->entry, in __drm_gpusvm_range_next()
505 &range->notifier->range_list)) in __drm_gpusvm_range_next()
506 return list_next_entry(range, entry); in __drm_gpusvm_range_next()
514 * the iterator. If NULL, call drm_gpusvm_range_find() to get the range.
516 * @start__: Start address of the range
517 * @end__: End address of the range