xref: /netbsd-src/sys/external/bsd/drm2/dist/drm/i915/gem/i915_gem_shrinker.h (revision 41ec02673d281bbb3d38e6c78504ce6e30c228c1)
1 /*	$NetBSD: i915_gem_shrinker.h,v 1.2 2021/12/18 23:45:30 riastradh Exp $	*/
2 
3 /* SPDX-License-Identifier: MIT */
4 /*
5  * Copyright © 2019 Intel Corporation
6  */
7 
8 #ifndef __I915_GEM_SHRINKER_H__
9 #define __I915_GEM_SHRINKER_H__
10 
11 #include <linux/bits.h>
12 
13 struct drm_i915_private;
14 struct mutex;
15 
16 /* i915_gem_shrinker.c */
17 unsigned long i915_gem_shrink(struct drm_i915_private *i915,
18 			      unsigned long target,
19 			      unsigned long *nr_scanned,
20 			      unsigned flags);
21 #define I915_SHRINK_UNBOUND	BIT(0)
22 #define I915_SHRINK_BOUND	BIT(1)
23 #define I915_SHRINK_ACTIVE	BIT(2)
24 #define I915_SHRINK_VMAPS	BIT(3)
25 #define I915_SHRINK_WRITEBACK	BIT(4)
26 
27 unsigned long i915_gem_shrink_all(struct drm_i915_private *i915);
28 void i915_gem_driver_register__shrinker(struct drm_i915_private *i915);
29 void i915_gem_driver_unregister__shrinker(struct drm_i915_private *i915);
30 void i915_gem_shrinker_taints_mutex(struct drm_i915_private *i915,
31 				    struct mutex *mutex);
32 
33 #endif /* __I915_GEM_SHRINKER_H__ */
34