#ifndef __I915_GEM_H__
#define __I915_GEM_H__
#include <linux/bug.h>
#include <linux/types.h>
#include <drm/drm_drv.h>
#include "i915_utils.h"
struct drm_file;
struct drm_i915_gem_object;
struct drm_i915_private;
struct i915_gem_ww_ctx;
struct i915_gtt_view;
struct i915_vma;
#define I915_GEM_GPU_DOMAINS …
void i915_gem_init_early(struct drm_i915_private *i915);
void i915_gem_cleanup_early(struct drm_i915_private *i915);
void i915_gem_drain_freed_objects(struct drm_i915_private *i915);
void i915_gem_drain_workqueue(struct drm_i915_private *i915);
struct i915_vma * __must_check
i915_gem_object_ggtt_pin_ww(struct drm_i915_gem_object *obj,
struct i915_gem_ww_ctx *ww,
const struct i915_gtt_view *view,
u64 size, u64 alignment, u64 flags);
struct i915_vma * __must_check
i915_gem_object_ggtt_pin(struct drm_i915_gem_object *obj,
const struct i915_gtt_view *view,
u64 size, u64 alignment, u64 flags);
int i915_gem_object_unbind(struct drm_i915_gem_object *obj,
unsigned long flags);
#define I915_GEM_OBJECT_UNBIND_ACTIVE …
#define I915_GEM_OBJECT_UNBIND_BARRIER …
#define I915_GEM_OBJECT_UNBIND_TEST …
#define I915_GEM_OBJECT_UNBIND_VM_TRYLOCK …
#define I915_GEM_OBJECT_UNBIND_ASYNC …
void i915_gem_runtime_suspend(struct drm_i915_private *i915);
int __must_check i915_gem_init(struct drm_i915_private *i915);
void i915_gem_driver_register(struct drm_i915_private *i915);
void i915_gem_driver_unregister(struct drm_i915_private *i915);
void i915_gem_driver_remove(struct drm_i915_private *i915);
void i915_gem_driver_release(struct drm_i915_private *i915);
int i915_gem_open(struct drm_i915_private *i915, struct drm_file *file);
#ifdef CONFIG_DRM_I915_DEBUG_GEM
#define GEM_SHOW_DEBUG …
#ifdef CONFIG_DRM_I915_DEBUG_GEM_ONCE
#define __GEM_BUG …
#else
#define __GEM_BUG …
#endif
#define GEM_BUG_ON …
#define GEM_WARN_ON …
#define GEM_DEBUG_WARN_ON …
#else
#define GEM_SHOW_DEBUG() …
#define GEM_BUG_ON(expr) …
#define GEM_WARN_ON(expr) …
#define GEM_DEBUG_WARN_ON(expr) …
#endif
#if IS_ENABLED(CONFIG_DRM_I915_TRACE_GEM)
#define GEM_TRACE …
#define GEM_TRACE_ERR …
#define GEM_TRACE_DUMP …
#define GEM_TRACE_DUMP_ON …
#else
#define GEM_TRACE(...) …
#define GEM_TRACE_ERR(...) …
#define GEM_TRACE_DUMP() …
#define GEM_TRACE_DUMP_ON(expr) …
#endif
#define I915_GEM_IDLE_TIMEOUT …
#endif