XenevaOS
Loading...
Searching...
No Matches
Public Attributes | List of all members
drm_pagemap_devmem_ops Struct Reference

#include <drm_pagemap.h>

Public Attributes

void(* devmem_release )(struct drm_pagemap_devmem *devmem_allocation)
 
int(* populate_devmem_pfn )(struct drm_pagemap_devmem *devmem_allocation, unsigned long npages, unsigned long *pfn)
 
int(* copy_to_devmem )(struct page **pages, struct drm_pagemap_addr *pagemap_addr, unsigned long npages, struct dma_fence *pre_migrate_fence)
 
int(* copy_to_ram )(struct page **pages, struct drm_pagemap_addr *pagemap_addr, unsigned long npages, struct dma_fence *pre_migrate_fence)
 

Detailed Description

struct drm_pagemap_devmem_ops - Operations structure for GPU SVM device memory

This structure defines the operations for GPU Shared Virtual Memory (SVM) device memory. These operations are provided by the GPU driver to manage device memory allocations and perform operations such as migration between device memory and system RAM.

Member Data Documentation

◆ copy_to_devmem

int(* drm_pagemap_devmem_ops::copy_to_devmem) (struct page **pages, struct drm_pagemap_addr *pagemap_addr, unsigned long npages, struct dma_fence *pre_migrate_fence)

@copy_to_devmem: Copy to device memory (required for migration) @pages: Pointer to array of device memory pages (destination) @pagemap_addr: Pointer to array of DMA information (source) @npages: Number of pages to copy @pre_migrate_fence: dma-fence to wait for before migration start. May be NULL.

Copy pages to device memory. If the order of a @pagemap_addr entry is greater than 0, the entry is populated but subsequent entries within the range of that order are not populated.

Return: 0 on success, a negative error code on failure.

◆ copy_to_ram

int(* drm_pagemap_devmem_ops::copy_to_ram) (struct page **pages, struct drm_pagemap_addr *pagemap_addr, unsigned long npages, struct dma_fence *pre_migrate_fence)

@copy_to_ram: Copy to system RAM (required for migration) @pages: Pointer to array of device memory pages (source) @pagemap_addr: Pointer to array of DMA information (destination) @npages: Number of pages to copy @pre_migrate_fence: dma-fence to wait for before migration start. May be NULL.

Copy pages to system RAM. If the order of a @pagemap_addr entry is greater than 0, the entry is populated but subsequent entries within the range of that order are not populated.

Return: 0 on success, a negative error code on failure.

◆ devmem_release

void(* drm_pagemap_devmem_ops::devmem_release) (struct drm_pagemap_devmem *devmem_allocation)

@devmem_release: Release device memory allocation (optional) @devmem_allocation: device memory allocation

Release device memory allocation and drop a reference to device memory allocation.

◆ populate_devmem_pfn

int(* drm_pagemap_devmem_ops::populate_devmem_pfn) (struct drm_pagemap_devmem *devmem_allocation, unsigned long npages, unsigned long *pfn)

@populate_devmem_pfn: Populate device memory PFN (required for migration) @devmem_allocation: device memory allocation @npages: Number of pages to populate @pfn: Array of page frame numbers to populate

Populate device memory page frame numbers (PFN).

Return: 0 on success, a negative error code on failure.


The documentation for this struct was generated from the following file: