1 /*	$NetBSD: i915_gem_stolen.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_STOLEN_H__
9 #define __I915_GEM_STOLEN_H__
10 
11 #include <linux/types.h>
12 
13 struct drm_i915_private;
14 struct drm_mm_node;
15 struct drm_i915_gem_object;
16 
17 int i915_gem_stolen_insert_node(struct drm_i915_private *dev_priv,
18 				struct drm_mm_node *node, u64 size,
19 				unsigned alignment);
20 int i915_gem_stolen_insert_node_in_range(struct drm_i915_private *dev_priv,
21 					 struct drm_mm_node *node, u64 size,
22 					 unsigned alignment, u64 start,
23 					 u64 end);
24 void i915_gem_stolen_remove_node(struct drm_i915_private *dev_priv,
25 				 struct drm_mm_node *node);
26 struct intel_memory_region *i915_gem_stolen_setup(struct drm_i915_private *i915);
27 struct drm_i915_gem_object *
28 i915_gem_object_create_stolen(struct drm_i915_private *dev_priv,
29 			      resource_size_t size);
30 struct drm_i915_gem_object *
31 i915_gem_object_create_stolen_for_preallocated(struct drm_i915_private *dev_priv,
32 					       resource_size_t stolen_offset,
33 					       resource_size_t gtt_offset,
34 					       resource_size_t size);
35 
36 #endif /* __I915_GEM_STOLEN_H__ */
37