0001
0002
0003
0004
0005
0006 #ifndef __I915_GEM_SHRINKER_H__
0007 #define __I915_GEM_SHRINKER_H__
0008
0009 #include <linux/bits.h>
0010
0011 struct drm_i915_private;
0012 struct i915_gem_ww_ctx;
0013 struct mutex;
0014
0015
0016 unsigned long i915_gem_shrink(struct i915_gem_ww_ctx *ww,
0017 struct drm_i915_private *i915,
0018 unsigned long target,
0019 unsigned long *nr_scanned,
0020 unsigned flags);
0021 #define I915_SHRINK_UNBOUND BIT(0)
0022 #define I915_SHRINK_BOUND BIT(1)
0023 #define I915_SHRINK_ACTIVE BIT(2)
0024 #define I915_SHRINK_VMAPS BIT(3)
0025 #define I915_SHRINK_WRITEBACK BIT(4)
0026
0027 unsigned long i915_gem_shrink_all(struct drm_i915_private *i915);
0028 void i915_gem_driver_register__shrinker(struct drm_i915_private *i915);
0029 void i915_gem_driver_unregister__shrinker(struct drm_i915_private *i915);
0030 void i915_gem_shrinker_taints_mutex(struct drm_i915_private *i915,
0031 struct mutex *mutex);
0032
0033 #endif