/* * Copyright 2023 Intel Corporation * SPDX-License-Identifier: MIT */ #include "xe/intel_device_query.h" #include "drm-uapi/xe_drm.h" #include "common/intel_gem.h" void * xe_device_query_alloc_fetch(int fd, uint32_t query_id, uint32_t *len) { struct drm_xe_device_query query = { .query = query_id, }; if (intel_ioctl(fd, DRM_IOCTL_XE_DEVICE_QUERY, &query)) return NULL; void *data = calloc(1, query.size); if (!data) return NULL; query.data = (uintptr_t)data; if (intel_ioctl(fd, DRM_IOCTL_XE_DEVICE_QUERY, &query)) { free(data); return NULL; } if (len) *len = query.size; return data; }