Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Linux/drivers/gpu/drm/i915/gem/   (Open Source Betriebssystem Version 6.17.9©)  Datei vom 24.10.2025 mit Größe 2 kB image not shown  

Quelle  i915_gem_ttm.h   Sprache: C

 
/* SPDX-License-Identifier: MIT */
/*
 * Copyright © 2021 Intel Corporation
 */

#ifndef _I915_GEM_TTM_H_
#define _I915_GEM_TTM_H_

#include <drm/ttm/ttm_placement.h>

#include "gem/i915_gem_object_types.h"

/**
 * i915_gem_to_ttm - Convert a struct drm_i915_gem_object to a
 * struct ttm_buffer_object.
 * @obj: Pointer to the gem object.
 *
 * Return: Pointer to the embedded struct ttm_buffer_object.
 */

static inline struct ttm_buffer_object *
i915_gem_to_ttm(struct drm_i915_gem_object *obj)
{
 return &obj->__do_not_access;
}

/*
 * i915 ttm gem object destructor. Internal use only.
 */

void i915_ttm_bo_destroy(struct ttm_buffer_object *bo);

/**
 * i915_ttm_is_ghost_object - Check if the ttm bo is a ghost object.
 * @bo: Pointer to the ttm buffer object
 *
 * Return: True if the ttm bo is not a i915 object but a ghost ttm object,
 * False otherwise.
 */

static inline bool i915_ttm_is_ghost_object(struct ttm_buffer_object *bo)
{
 return bo->destroy != i915_ttm_bo_destroy;
}

/**
 * i915_ttm_to_gem - Convert a struct ttm_buffer_object to an embedding
 * struct drm_i915_gem_object.
 * @bo: Pointer to the ttm buffer object
 *
 * Return: Pointer to the embedding struct drm_i915_gem_object.
 */

static inline struct drm_i915_gem_object *
i915_ttm_to_gem(struct ttm_buffer_object *bo)
{
 return container_of(bo, struct drm_i915_gem_object, __do_not_access);
}

int __i915_gem_ttm_object_init(struct intel_memory_region *mem,
          struct drm_i915_gem_object *obj,
          resource_size_t offset,
          resource_size_t size,
          resource_size_t page_size,
          unsigned int flags);

/* Internal I915 TTM declarations and definitions below. */

#define I915_PL_LMEM0 TTM_PL_PRIV
#define I915_PL_SYSTEM TTM_PL_SYSTEM
#define I915_PL_STOLEN TTM_PL_VRAM
#define I915_PL_GGTT TTM_PL_TT

struct ttm_placement *i915_ttm_sys_placement(void);

void i915_ttm_free_cached_io_rsgt(struct drm_i915_gem_object *obj);

struct i915_refct_sgt *
i915_ttm_resource_get_st(struct drm_i915_gem_object *obj,
    struct ttm_resource *res);

void i915_ttm_adjust_lru(struct drm_i915_gem_object *obj);

int i915_ttm_purge(struct drm_i915_gem_object *obj);

/**
 * i915_ttm_gtt_binds_lmem - Should the memory be viewed as LMEM by the GTT?
 * @mem: struct ttm_resource representing the memory.
 *
 * Return: true if memory should be viewed as LMEM for GTT binding purposes,
 * false otherwise.
 */

static inline bool i915_ttm_gtt_binds_lmem(struct ttm_resource *mem)
{
 return mem->mem_type != I915_PL_SYSTEM;
}

/**
 * i915_ttm_cpu_maps_iomem - Should the memory be viewed as IOMEM by the CPU?
 * @mem: struct ttm_resource representing the memory.
 *
 * Return: true if memory should be viewed as IOMEM for CPU mapping purposes.
 */

static inline bool i915_ttm_cpu_maps_iomem(struct ttm_resource *mem)
{
 /* Once / if we support GGTT, this is also false for cached ttm_tts */
 return mem && mem->mem_type != I915_PL_SYSTEM;
}

bool i915_ttm_resource_mappable(struct ttm_resource *res);

#endif

Messung V0.5
C=94 H=100 G=96

¤ Dauer der Verarbeitung: 0.0 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.