|
XenevaOS
|
#include <xe_drm.h>
Public Attributes | |
| __u64 | extensions |
| __u32 | num_oa_units |
| __u32 | pad |
| __u64 | oa_units [] |
struct drm_xe_query_oa_units - describe OA units
If a query is made with a struct drm_xe_device_query where .query is equal to DRM_XE_DEVICE_QUERY_OA_UNITS, then the reply uses struct drm_xe_query_oa_units in .data.
OA unit properties for all OA units can be accessed using a code block such as the one below:
.. code-block:: C
struct drm_xe_query_oa_units *qoa; struct drm_xe_oa_unit *oau; u8 *poau;
// malloc qoa and issue DRM_XE_DEVICE_QUERY_OA_UNITS. Then: poau = (u8 *)&qoa->oa_units[0]; for (int i = 0; i < qoa->num_oa_units; i++) { oau = (struct drm_xe_oa_unit *)poau; // Access 'struct drm_xe_oa_unit' fields here poau += sizeof(*oau) + oau->num_engines * sizeof(oau->eci[0]); }
| __u64 drm_xe_query_oa_units::extensions |
@extensions: Pointer to the first extension struct, if any
| __u32 drm_xe_query_oa_units::num_oa_units |
@num_oa_units: number of OA units returned in oau[]
| __u64 drm_xe_query_oa_units::oa_units[] |
@oa_units: &struct drm_xe_oa_unit array returned for this device. Written below as a u64 array to avoid problems with nested flexible arrays with some compilers
| __u32 drm_xe_query_oa_units::pad |
@pad: MBZ