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