|
XenevaOS
|
#include <drm_gpuvm.h>

Public Attributes | ||
| struct drm_gpuvm * | vm | |
| struct drm_gpuvm_bo * | vm_bo | |
| enum drm_gpuva_flags | flags | |
| struct { | ||
| u64 addr | ||
| u64 range | ||
| } | va | |
| struct { | ||
| u64 offset | ||
| struct drm_gem_object * obj | ||
| struct list_head entry | ||
| } | gem | |
| struct { | ||
| struct rb_node node | ||
| struct list_head entry | ||
| u64 __subtree_last | ||
| } | rb | |
struct drm_gpuva - structure to track a GPU VA mapping
This structure represents a GPU VA mapping and is associated with a &drm_gpuvm.
Typically, this structure is embedded in bigger driver structures.
| u64 drm_gpuva::__subtree_last |
@rb.__subtree_last: needed by the interval tree, holding last-in-subtree
| u64 drm_gpuva::addr |
@va.addr: the start address
| struct list_head drm_gpuva::entry |
@gem.entry: the &list_head to attach this object to a &drm_gpuvm_bo
@rb.entry: The &list_head to additionally connect &drm_gpuvas in the same order they appear in the interval tree. This is useful to keep iterating &drm_gpuvas from a start node found through the rb-tree while doing modifications on the rb-tree itself.
| enum drm_gpuva_flags drm_gpuva::flags |
@flags: the &drm_gpuva_flags for this mapping
| struct { ... } drm_gpuva::gem |
@gem: structure containing the &drm_gem_object and its offset
| struct rb_node drm_gpuva::node |
@rb.node: the rb-tree node
| struct drm_gem_object* drm_gpuva::obj |
@gem.obj: the mapped &drm_gem_object
| u64 drm_gpuva::offset |
@gem.offset: the offset within the &drm_gem_object
| u64 drm_gpuva::range |
| struct { ... } drm_gpuva::rb |
@rb: structure containing data to store &drm_gpuvas in a rb-tree
| struct { ... } drm_gpuva::va |
@va: structure containing the address and range of the &drm_gpuva
| struct drm_gpuvm_bo* drm_gpuva::vm_bo |
@vm_bo: the &drm_gpuvm_bo abstraction for the mapped &drm_gem_object