Home | History | Annotate | Line # | Download | only in gem
      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