53 lines · c
1/* SPDX-License-Identifier: MIT */2/*3 * Copyright © 2019 Intel Corporation4 */5 6#ifndef __I915_GEM_STOLEN_H__7#define __I915_GEM_STOLEN_H__8 9#include <linux/types.h>10 11struct drm_i915_private;12struct drm_mm_node;13struct drm_i915_gem_object;14 15#define i915_stolen_fb drm_mm_node16 17int i915_gem_stolen_insert_node(struct drm_i915_private *i915,18 struct drm_mm_node *node, u64 size,19 unsigned alignment);20int i915_gem_stolen_insert_node_in_range(struct drm_i915_private *i915,21 struct drm_mm_node *node, u64 size,22 unsigned alignment, u64 start,23 u64 end);24void i915_gem_stolen_remove_node(struct drm_i915_private *i915,25 struct drm_mm_node *node);26struct intel_memory_region *27i915_gem_stolen_smem_setup(struct drm_i915_private *i915, u16 type,28 u16 instance);29struct intel_memory_region *30i915_gem_stolen_lmem_setup(struct drm_i915_private *i915, u16 type,31 u16 instance);32 33struct drm_i915_gem_object *34i915_gem_object_create_stolen(struct drm_i915_private *i915,35 resource_size_t size);36 37bool i915_gem_object_is_stolen(const struct drm_i915_gem_object *obj);38 39#define I915_GEM_STOLEN_BIAS SZ_128K40 41bool i915_gem_stolen_initialized(const struct drm_i915_private *i915);42u64 i915_gem_stolen_area_address(const struct drm_i915_private *i915);43u64 i915_gem_stolen_area_size(const struct drm_i915_private *i915);44 45u64 i915_gem_stolen_node_address(const struct drm_i915_private *i915,46 const struct drm_mm_node *node);47 48bool i915_gem_stolen_node_allocated(const struct drm_mm_node *node);49u64 i915_gem_stolen_node_offset(const struct drm_mm_node *node);50u64 i915_gem_stolen_node_size(const struct drm_mm_node *node);51 52#endif /* __I915_GEM_STOLEN_H__ */53