|
XenevaOS
|
#include <drm_gpuvm.h>

Public Attributes | |
| struct drm_gpuva_op_map * | prev |
| struct drm_gpuva_op_map * | next |
| struct drm_gpuva_op_unmap * | unmap |
struct drm_gpuva_op_remap - GPU VA remap operation
This represents a single remap operation generated by the DRM GPU VA manager.
A remap operation is generated when an existing GPU VA mmapping is split up by inserting a new GPU VA mapping or by partially unmapping existent mapping(s), hence it consists of a maximum of two map and one unmap operation.
The @unmap operation takes care of removing the original existing mapping. @prev is used to remap the preceding part, @next the subsequent part.
If either a new mapping's start address is aligned with the start address of the old mapping or the new mapping's end address is aligned with the end address of the old mapping, either @prev or @next is NULL.
Note, the reason for a dedicated remap operation, rather than arbitrary unmap and map operations, is to give drivers the chance of extracting driver specific data for creating the new mappings from the unmap operations's &drm_gpuva structure which typically is embedded in larger driver specific structures.
| struct drm_gpuva_op_map* drm_gpuva_op_remap::next |
@next: the subsequent part of a split mapping
| struct drm_gpuva_op_map* drm_gpuva_op_remap::prev |
@prev: the preceding part of a split mapping
| struct drm_gpuva_op_unmap* drm_gpuva_op_remap::unmap |
@unmap: the unmap operation for the original existing mapping