|
XenevaOS
|
#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) |
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.
| 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.
| 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.
| 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.
| 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.