Lines Matching full:gpu
23 * struct drm_gpusvm_ops - Operations structure for GPU SVM
25 * This structure defines the operations for GPU Shared Virtual Memory (SVM).
26 * These operations are provided by the GPU driver to manage SVM ranges and
31 * @notifier_alloc: Allocate a GPU SVM notifier (optional)
33 * Allocate a GPU SVM notifier.
35 * Return: Pointer to the allocated GPU SVM notifier on success, NULL on failure.
40 * @notifier_free: Free a GPU SVM notifier (optional)
41 * @notifier: Pointer to the GPU SVM notifier to be freed
43 * Free a GPU SVM notifier.
48 * @range_alloc: Allocate a GPU SVM range (optional)
49 * @gpusvm: Pointer to the GPU SVM
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.
66 * @invalidate: Invalidate GPU SVM notifier (required)
67 * @gpusvm: Pointer to the GPU SVM
68 * @notifier: Pointer to the GPU SVM notifier
71 * Invalidate the GPU page tables. It can safely walk the notifier range
80 * struct drm_gpusvm_notifier - Structure representing a GPU SVM notifier
82 * @gpusvm: Pointer to the GPU SVM structure
84 * @itree: Interval tree node for the notifier (inserted in GPU SVM)
94 * This structure represents a GPU SVM notifier.
109 * struct drm_gpusvm_pages_flags - Structure representing a GPU SVM pages flags
134 * struct drm_gpusvm_pages - Structure representing a GPU SVM mapped pages
155 * struct drm_gpusvm_range - Structure representing a GPU SVM range
157 * @gpusvm: Pointer to the GPU SVM structure
158 * @notifier: Pointer to the GPU SVM notifier
160 * @itree: Interval tree node for the range (inserted in GPU SVM notifier)
164 * This structure represents a GPU SVM range used for tracking memory ranges
177 * struct drm_gpusvm - GPU SVM structure
179 * @name: Name of the GPU SVM
182 * @mm_start: Start address of GPU SVM
183 * @mm_range: Range of the GPU SVM
185 * @ops: Pointer to the operations structure for GPU SVM
190 * @root: Cached root node of the Red-Black tree containing GPU SVM notifiers
195 * This structure represents a GPU SVM (Shared Virtual Memory) used for tracking
225 * struct drm_gpusvm_ctx - DRM GPU SVM context
233 * remains with either exclusive GPU or CPU access.
329 * drm_gpusvm_driver_set_lock() - Set the lock protecting accesses to GPU SVM
330 * @gpusvm: Pointer to the GPU SVM structure.
348 * drm_gpusvm_notifier_lock() - Lock GPU SVM notifier
349 * @gpusvm__: Pointer to the GPU SVM structure.
351 * Abstract client usage GPU SVM notifier lock, take lock
357 * drm_gpusvm_notifier_unlock() - Unlock GPU SVM notifier
358 * @gpusvm__: Pointer to the GPU SVM structure.
360 * Abstract client usage GPU SVM notifier lock, drop lock
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
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
390 * drm_gpusvm_range_size() - GPU SVM range size
391 * @range: Pointer to the GPU SVM range
393 * Return: GPU SVM range size
402 * drm_gpusvm_notifier_start() - GPU SVM notifier start address
403 * @notifier: Pointer to the GPU SVM notifier
405 * Return: GPU SVM notifier start address
414 * drm_gpusvm_notifier_end() - GPU SVM notifier end address
415 * @notifier: Pointer to the GPU SVM notifier
417 * Return: GPU SVM notifier end address
426 * drm_gpusvm_notifier_size() - GPU SVM notifier size
427 * @notifier: Pointer to the GPU SVM notifier
429 * Return: GPU SVM notifier 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
456 * drm_gpusvm_for_each_range() - Iterate over GPU SVM ranges in a notifier
459 * @notifier__: Pointer to the GPU SVM notifier
463 * This macro is used to iterate over GPU SVM ranges in a notifier. It is safe
473 * drm_gpusvm_for_each_range_safe() - Safely iterate over GPU SVM ranges in a notifier
476 * @notifier__: Pointer to the GPU SVM notifier
480 * This macro is used to iterate over GPU SVM ranges in a notifier while
508 * drm_gpusvm_for_each_notifier() - Iterate over GPU SVM notifiers in a gpusvm
510 * @gpusvm__: Pointer to the GPU SVM notifier
514 * This macro is used to iterate over GPU SVM notifiers in a gpusvm.
522 * drm_gpusvm_for_each_notifier_safe() - Safely iterate over GPU SVM notifiers in a gpusvm
525 * @gpusvm__: Pointer to the GPU SVM notifier
529 * This macro is used to iterate over GPU SVM notifiers in a gpusvm while