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_range_flags - Structure representing a GPU SVM range flags
134 * struct drm_gpusvm_range - Structure representing a GPU SVM range
136 * @gpusvm: Pointer to the GPU SVM structure
137 * @notifier: Pointer to the GPU SVM notifier
139 * @itree: Interval tree node for the range (inserted in GPU SVM notifier)
147 * This structure represents a GPU SVM range used for tracking memory ranges
163 * struct drm_gpusvm - GPU SVM structure
165 * @name: Name of the GPU SVM
169 * @mm_start: Start address of GPU SVM
170 * @mm_range: Range of the GPU SVM
172 * @ops: Pointer to the operations structure for GPU SVM
177 * @root: Cached root node of the Red-Black tree containing GPU SVM notifiers
182 * This structure represents a GPU SVM (Shared Virtual Memory) used for tracking
213 * struct drm_gpusvm_ctx - DRM GPU SVM context
219 * remains with either exclusive GPU or CPU access.
294 * drm_gpusvm_driver_set_lock() - Set the lock protecting accesses to GPU SVM
295 * @gpusvm: Pointer to the GPU SVM structure.
313 * drm_gpusvm_notifier_lock() - Lock GPU SVM notifier
314 * @gpusvm__: Pointer to the GPU SVM structure.
316 * Abstract client usage GPU SVM notifier lock, take lock
322 * drm_gpusvm_notifier_unlock() - Unlock GPU SVM notifier
323 * @gpusvm__: Pointer to the GPU SVM structure.
325 * Abstract client usage GPU SVM notifier lock, drop lock
331 * drm_gpusvm_range_start() - GPU SVM range start address
332 * @range: Pointer to the GPU SVM range
334 * Return: GPU SVM range start address
343 * drm_gpusvm_range_end() - GPU SVM range end address
344 * @range: Pointer to the GPU SVM range
346 * Return: GPU SVM range end address
355 * drm_gpusvm_range_size() - GPU SVM range size
356 * @range: Pointer to the GPU SVM range
358 * Return: GPU SVM range size
367 * drm_gpusvm_notifier_start() - GPU SVM notifier start address
368 * @notifier: Pointer to the GPU SVM notifier
370 * Return: GPU SVM notifier start address
379 * drm_gpusvm_notifier_end() - GPU SVM notifier end address
380 * @notifier: Pointer to the GPU SVM notifier
382 * Return: GPU SVM notifier end address
391 * drm_gpusvm_notifier_size() - GPU SVM notifier size
392 * @notifier: Pointer to the GPU SVM notifier
394 * Return: GPU SVM notifier size
404 * __drm_gpusvm_range_next() - Get the next GPU SVM range in the list
405 * @range: a pointer to the current GPU SVM range
421 * drm_gpusvm_for_each_range() - Iterate over GPU SVM ranges in a notifier
424 * @notifier__: Pointer to the GPU SVM notifier
428 * This macro is used to iterate over GPU SVM ranges in a notifier. It is safe