i915_gem_shrinker.h revision 1.1
1/* SPDX-License-Identifier: MIT */
2/*
3 * Copyright �� 2019 Intel Corporation
4 */
5
6#ifndef __I915_GEM_SHRINKER_H__
7#define __I915_GEM_SHRINKER_H__
8
9#include <linux/bits.h>
10
11struct drm_i915_private;
12struct rwlock;
13
14/* i915_gem_shrinker.c */
15unsigned long i915_gem_shrink(struct drm_i915_private *i915,
16			      unsigned long target,
17			      unsigned long *nr_scanned,
18			      unsigned flags);
19#define I915_SHRINK_UNBOUND	BIT(0)
20#define I915_SHRINK_BOUND	BIT(1)
21#define I915_SHRINK_ACTIVE	BIT(2)
22#define I915_SHRINK_VMAPS	BIT(3)
23#define I915_SHRINK_WRITEBACK	BIT(4)
24
25unsigned long i915_gem_shrink_all(struct drm_i915_private *i915);
26void i915_gem_driver_register__shrinker(struct drm_i915_private *i915);
27void i915_gem_driver_unregister__shrinker(struct drm_i915_private *i915);
28void i915_gem_shrinker_taints_mutex(struct drm_i915_private *i915,
29				    struct rwlock *mutex);
30
31#endif /* __I915_GEM_SHRINKER_H__ */
32