|
XenevaOS
|
#include <xe_drm.h>
Public Attributes | ||
| __u64 | extensions | |
| __u32 | vm_id | |
| __u32 | property | |
| __u32 | size | |
| __u32 | pad | |
| union { | ||
| __u64 data | ||
| __u64 value | ||
| }; | ||
| __u64 | reserved [3] | |
struct drm_xe_vm_get_property - Input of &DRM_IOCTL_XE_VM_GET_PROPERTY
The user provides a VM and a property to query among DRM_XE_VM_GET_PROPERTY_*, and sets the values in the vm_id and property members, respectively. This determines both the VM to get the property of, as well as the property to report.
If size is set to 0, the driver fills it with the required size for the requested property. The user is expected here to allocate memory for the property structure and to provide a pointer to the allocated memory using the data member. For some properties, this may be zero, in which case, the value of the property will be saved to the value member and size will remain zero on return.
If size is not zero, then the IOCTL will attempt to copy the requested property into the data member.
The IOCTL will return -ENOENT if the VM could not be identified from the provided VM ID, or -EINVAL if the IOCTL fails for any other reason, such as providing an invalid size for the given property or if the property data could not be copied to the memory allocated to the data member.
The property member can be:
| union { ... } drm_xe_vm_get_property |
| __u64 drm_xe_vm_get_property::data |
@data: Pointer to user-defined array of flexible size and type
| __u64 drm_xe_vm_get_property::extensions |
@extensions: Pointer to the first extension struct, if any
| __u32 drm_xe_vm_get_property::pad |
@pad: MBZ
| __u32 drm_xe_vm_get_property::property |
| __u64 drm_xe_vm_get_property::reserved[3] |
@reserved: MBZ
| __u32 drm_xe_vm_get_property::size |
@size: Size to allocate for @data
| __u64 drm_xe_vm_get_property::value |
@value: Return value for scalar queries
| __u32 drm_xe_vm_get_property::vm_id |
@vm_id: The ID of the VM to query the properties of