Lines Matching full:notifier

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.
45 void (*notifier_free)(struct drm_gpusvm_notifier *notifier);
66 * @invalidate: Invalidate GPU SVM notifier (required)
68 * @notifier: Pointer to the GPU SVM notifier
71 * Invalidate the GPU page tables. It can safely walk the notifier range
72 * RB tree/list in this function. Called while holding the notifier lock.
75 struct drm_gpusvm_notifier *notifier,
80 * struct drm_gpusvm_notifier - Structure representing a GPU SVM notifier
83 * @notifier: MMU interval notifier
84 * @itree: Interval tree node for the notifier (inserted in GPU SVM)
90 * @flags: Flags for notifier
91 * @flags.removed: Flag indicating whether the MMU interval notifier has been
94 * This structure represents a GPU SVM notifier.
98 struct mmu_interval_notifier notifier; member
123 /* All flags below must be set / cleared under notifier lock */
139 * @notifier_seq: Notifier sequence number of the range's pages
158 * @notifier: Pointer to the GPU SVM notifier
160 * @itree: Interval tree node for the range (inserted in GPU SVM notifier)
169 struct drm_gpusvm_notifier *notifier; member
189 * @notifier_lock: Read-write semaphore for protecting notifier operations
234 * @in_notifier: entering from a MMU notifier
305 drm_gpusvm_range_find(struct drm_gpusvm_notifier *notifier, unsigned long start,
314 struct mmu_interval_notifier *notifier,
348 * drm_gpusvm_notifier_lock() - Lock GPU SVM notifier
351 * Abstract client usage GPU SVM notifier lock, take lock
357 * drm_gpusvm_notifier_unlock() - Unlock GPU SVM notifier
360 * Abstract client usage GPU SVM notifier lock, drop lock
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
408 drm_gpusvm_notifier_start(struct drm_gpusvm_notifier *notifier) in drm_gpusvm_notifier_start() argument
410 return notifier->itree.start; in drm_gpusvm_notifier_start()
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
420 drm_gpusvm_notifier_end(struct drm_gpusvm_notifier *notifier) in drm_gpusvm_notifier_end() argument
422 return notifier->itree.last + 1; in drm_gpusvm_notifier_end()
426 * drm_gpusvm_notifier_size() - GPU SVM notifier size
427 * @notifier: Pointer to the GPU SVM notifier
429 * Return: GPU SVM notifier size
432 drm_gpusvm_notifier_size(struct drm_gpusvm_notifier *notifier) in drm_gpusvm_notifier_size() argument
434 return drm_gpusvm_notifier_end(notifier) - in drm_gpusvm_notifier_size()
435 drm_gpusvm_notifier_start(notifier); in drm_gpusvm_notifier_size()
449 &range->notifier->range_list)) in __drm_gpusvm_range_next()
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
464 * to use while holding the driver SVM lock or the notifier lock.
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
491 * @notifier: a pointer to the current drm_gpusvm_notifier
494 * the current notifier is the last one or if the input notifier is
498 __drm_gpusvm_notifier_next(struct drm_gpusvm_notifier *notifier) in __drm_gpusvm_notifier_next() argument
500 if (notifier && !list_is_last(&notifier->entry, in __drm_gpusvm_notifier_next()
501 &notifier->gpusvm->notifier_list)) in __drm_gpusvm_notifier_next()
502 return list_next_entry(notifier, entry); in __drm_gpusvm_notifier_next()
510 * @gpusvm__: Pointer to the GPU SVM notifier
511 * @start__: Start address of the notifier
512 * @end__: End address of the notifier
525 * @gpusvm__: Pointer to the GPU SVM notifier
526 * @start__: Start address of the notifier
527 * @end__: End address of the notifier