#include <drm/drm_fourcc.h>
#include "display/intel_display.h"
#include "gem/i915_gem_ioctls.h"
#include "gem/i915_gem_lmem.h"
#include "gem/i915_gem_region.h"
#include "pxp/intel_pxp.h"
#include "i915_drv.h"
#include "i915_gem_create.h"
#include "i915_trace.h"
#include "i915_user_extensions.h"
static u32 object_max_page_size(struct intel_memory_region **placements,
unsigned int n_placements)
{ … }
static int object_set_placements(struct drm_i915_gem_object *obj,
struct intel_memory_region **placements,
unsigned int n_placements)
{ … }
static int i915_gem_publish(struct drm_i915_gem_object *obj,
struct drm_file *file,
u64 *size_p,
u32 *handle_p)
{ … }
static struct drm_i915_gem_object *
__i915_gem_object_create_user_ext(struct drm_i915_private *i915, u64 size,
struct intel_memory_region **placements,
unsigned int n_placements,
unsigned int ext_flags)
{ … }
struct drm_i915_gem_object *
__i915_gem_object_create_user(struct drm_i915_private *i915, u64 size,
struct intel_memory_region **placements,
unsigned int n_placements)
{ … }
int
i915_gem_dumb_create(struct drm_file *file,
struct drm_device *dev,
struct drm_mode_create_dumb *args)
{ … }
int
i915_gem_create_ioctl(struct drm_device *dev, void *data,
struct drm_file *file)
{ … }
struct create_ext { … };
static void repr_placements(char *buf, size_t size,
struct intel_memory_region **placements,
int n_placements)
{ … }
static int set_placements(struct drm_i915_gem_create_ext_memory_regions *args,
struct create_ext *ext_data)
{ … }
static int ext_set_placements(struct i915_user_extension __user *base,
void *data)
{ … }
static int ext_set_protected(struct i915_user_extension __user *base, void *data)
{ … }
static int ext_set_pat(struct i915_user_extension __user *base, void *data)
{ … }
static const i915_user_extension_fn create_extensions[] = …;
#define PAT_INDEX_NOT_SET …
int
i915_gem_create_ext_ioctl(struct drm_device *dev, void *data,
struct drm_file *file)
{ … }