12ef97818SJani Nikula /* SPDX-License-Identifier: MIT */
22ef97818SJani Nikula /*
32ef97818SJani Nikula  * Copyright © 2021 Intel Corporation
42ef97818SJani Nikula  */
52ef97818SJani Nikula 
62ef97818SJani Nikula #ifndef __I915_GEM_EVICT_H__
72ef97818SJani Nikula #define __I915_GEM_EVICT_H__
82ef97818SJani Nikula 
92ef97818SJani Nikula #include <linux/types.h>
102ef97818SJani Nikula 
112ef97818SJani Nikula struct drm_mm_node;
122ef97818SJani Nikula struct i915_address_space;
1330424ebaSRodrigo Vivi struct i915_gem_ww_ctx;
14*801fa7a8SMatthew Auld struct drm_i915_gem_object;
152ef97818SJani Nikula 
162ef97818SJani Nikula int __must_check i915_gem_evict_something(struct i915_address_space *vm,
1730424ebaSRodrigo Vivi 					  struct i915_gem_ww_ctx *ww,
182ef97818SJani Nikula 					  u64 min_size, u64 alignment,
192ef97818SJani Nikula 					  unsigned long color,
202ef97818SJani Nikula 					  u64 start, u64 end,
212ef97818SJani Nikula 					  unsigned flags);
222ef97818SJani Nikula int __must_check i915_gem_evict_for_node(struct i915_address_space *vm,
2330424ebaSRodrigo Vivi 					 struct i915_gem_ww_ctx *ww,
242ef97818SJani Nikula 					 struct drm_mm_node *node,
252ef97818SJani Nikula 					 unsigned int flags);
2630424ebaSRodrigo Vivi int i915_gem_evict_vm(struct i915_address_space *vm,
27*801fa7a8SMatthew Auld 		      struct i915_gem_ww_ctx *ww,
28*801fa7a8SMatthew Auld 		      struct drm_i915_gem_object **busy_bo);
292ef97818SJani Nikula 
302ef97818SJani Nikula #endif /* __I915_GEM_EVICT_H__ */
31