1 /* SPDX-License-Identifier: MIT */ 2 /* 3 * Copyright © 2025 Intel Corporation 4 */ 5 6 #ifndef _DRM_PAGEMAP_UTIL_H_ 7 #define _DRM_PAGEMAP_UTIL_H_ 8 9 struct drm_device; 10 struct drm_pagemap; 11 struct drm_pagemap_cache; 12 struct drm_pagemap_shrinker; 13 14 void drm_pagemap_shrinker_add(struct drm_pagemap *dpagemap); 15 16 int drm_pagemap_cache_lock_lookup(struct drm_pagemap_cache *cache); 17 18 void drm_pagemap_cache_unlock_lookup(struct drm_pagemap_cache *cache); 19 20 struct drm_pagemap_shrinker *drm_pagemap_shrinker_create_devm(struct drm_device *drm); 21 22 struct drm_pagemap_cache *drm_pagemap_cache_create_devm(struct drm_pagemap_shrinker *shrinker); 23 24 struct drm_pagemap *drm_pagemap_get_from_cache(struct drm_pagemap_cache *cache); 25 26 void drm_pagemap_cache_set_pagemap(struct drm_pagemap_cache *cache, struct drm_pagemap *dpagemap); 27 28 struct drm_pagemap *drm_pagemap_get_from_cache_if_active(struct drm_pagemap_cache *cache); 29 30 #ifdef CONFIG_PROVE_LOCKING 31 32 void drm_pagemap_shrinker_might_lock(struct drm_pagemap *dpagemap); 33 34 #else 35 36 static inline void drm_pagemap_shrinker_might_lock(struct drm_pagemap *dpagemap) 37 { 38 } 39 40 #endif /* CONFIG_PROVE_LOCKING */ 41 42 #endif 43