mirror of
https://github.com/intel/compute-runtime.git
synced 2026-01-08 05:56:36 +08:00
Create enum for Ioctl request values
Related-To: NEO-6852 Signed-off-by: Mateusz Jablonski <mateusz.jablonski@intel.com>
This commit is contained in:
committed by
Compute-Runtime-Automation
parent
0bf3af37d3
commit
b3814e41b4
@@ -17,11 +17,11 @@
|
||||
const int DrmMock::mockFd;
|
||||
const uint32_t DrmMockResources::registerResourceReturnHandle = 3;
|
||||
|
||||
int DrmMock::ioctl(unsigned long request, void *arg) {
|
||||
int DrmMock::ioctl(DrmIoctl request, void *arg) {
|
||||
ioctlCallsCount++;
|
||||
ioctlCount.total++;
|
||||
|
||||
if ((request == DRM_IOCTL_I915_GETPARAM) && (arg != nullptr)) {
|
||||
if ((request == DrmIoctl::Getparam) && (arg != nullptr)) {
|
||||
ioctlCount.contextGetParam++;
|
||||
auto gp = static_cast<GetParam *>(arg);
|
||||
if (gp->param == I915_PARAM_EU_TOTAL) {
|
||||
@@ -74,7 +74,7 @@ int DrmMock::ioctl(unsigned long request, void *arg) {
|
||||
}
|
||||
}
|
||||
|
||||
if ((request == DRM_IOCTL_I915_GEM_CONTEXT_CREATE_EXT) && (arg != nullptr)) {
|
||||
if ((request == DrmIoctl::GemContextCreateExt) && (arg != nullptr)) {
|
||||
ioctlCount.contextCreate++;
|
||||
auto create = static_cast<GemContextCreateExt *>(arg);
|
||||
create->contextId = this->storedDrmContextId;
|
||||
@@ -92,14 +92,14 @@ int DrmMock::ioctl(unsigned long request, void *arg) {
|
||||
}
|
||||
}
|
||||
|
||||
if ((request == DRM_IOCTL_I915_GEM_CONTEXT_DESTROY) && (arg != nullptr)) {
|
||||
if ((request == DrmIoctl::GemContextDestroy) && (arg != nullptr)) {
|
||||
ioctlCount.contextDestroy++;
|
||||
auto destroy = static_cast<GemContextDestroy *>(arg);
|
||||
this->receivedDestroyContextId = destroy->contextId;
|
||||
return this->storedRetVal;
|
||||
}
|
||||
|
||||
if ((request == DRM_IOCTL_I915_GEM_CONTEXT_SETPARAM) && (arg != nullptr)) {
|
||||
if ((request == DrmIoctl::GemContextSetparam) && (arg != nullptr)) {
|
||||
ioctlCount.contextSetParam++;
|
||||
receivedContextParamRequestCount++;
|
||||
receivedContextParamRequest = *static_cast<GemContextParam *>(arg);
|
||||
@@ -127,7 +127,7 @@ int DrmMock::ioctl(unsigned long request, void *arg) {
|
||||
}
|
||||
}
|
||||
|
||||
if ((request == DRM_IOCTL_I915_GEM_CONTEXT_GETPARAM) && (arg != nullptr)) {
|
||||
if ((request == DrmIoctl::GemContextGetparam) && (arg != nullptr)) {
|
||||
ioctlCount.contextGetParam++;
|
||||
receivedContextParamRequestCount++;
|
||||
receivedContextParamRequest = *static_cast<GemContextParam *>(arg);
|
||||
@@ -152,7 +152,7 @@ int DrmMock::ioctl(unsigned long request, void *arg) {
|
||||
}
|
||||
}
|
||||
|
||||
if (request == DRM_IOCTL_I915_GEM_EXECBUFFER2) {
|
||||
if (request == DrmIoctl::GemExecbuffer2) {
|
||||
ioctlCount.execbuffer2++;
|
||||
auto execbuf = static_cast<NEO::MockExecBuffer *>(arg);
|
||||
auto execObjects = reinterpret_cast<const MockExecObject *>(execbuf->getBuffersPtr());
|
||||
@@ -162,14 +162,14 @@ int DrmMock::ioctl(unsigned long request, void *arg) {
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
if (request == DRM_IOCTL_I915_GEM_USERPTR) {
|
||||
if (request == DrmIoctl::GemUserptr) {
|
||||
ioctlCount.gemUserptr++;
|
||||
auto userPtrParams = static_cast<NEO::GemUserPtr *>(arg);
|
||||
userPtrParams->handle = returnHandle;
|
||||
returnHandle++;
|
||||
return 0;
|
||||
}
|
||||
if (request == DRM_IOCTL_I915_GEM_CREATE) {
|
||||
if (request == DrmIoctl::GemCreate) {
|
||||
ioctlCount.gemCreate++;
|
||||
auto createParams = static_cast<NEO::GemCreate *>(arg);
|
||||
this->createParamsSize = createParams->size;
|
||||
@@ -179,7 +179,7 @@ int DrmMock::ioctl(unsigned long request, void *arg) {
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
if (request == DRM_IOCTL_I915_GEM_SET_TILING) {
|
||||
if (request == DrmIoctl::GemSetTiling) {
|
||||
ioctlCount.gemSetTiling++;
|
||||
auto setTilingParams = static_cast<NEO::GemSetTiling *>(arg);
|
||||
setTilingMode = setTilingParams->tilingMode;
|
||||
@@ -187,7 +187,7 @@ int DrmMock::ioctl(unsigned long request, void *arg) {
|
||||
setTilingStride = setTilingParams->stride;
|
||||
return 0;
|
||||
}
|
||||
if (request == DRM_IOCTL_PRIME_FD_TO_HANDLE) {
|
||||
if (request == DrmIoctl::PrimeFdToHandle) {
|
||||
ioctlCount.primeFdToHandle++;
|
||||
auto primeToHandleParams = static_cast<PrimeHandle *>(arg);
|
||||
//return BO
|
||||
@@ -195,35 +195,28 @@ int DrmMock::ioctl(unsigned long request, void *arg) {
|
||||
inputFd = primeToHandleParams->fileDescriptor;
|
||||
return fdToHandleRetVal;
|
||||
}
|
||||
if (request == DRM_IOCTL_PRIME_HANDLE_TO_FD) {
|
||||
if (request == DrmIoctl::PrimeHandleToFd) {
|
||||
ioctlCount.handleToPrimeFd++;
|
||||
auto primeToFdParams = static_cast<PrimeHandle *>(arg);
|
||||
primeToFdParams->fileDescriptor = outputFd;
|
||||
return 0;
|
||||
}
|
||||
if (request == DRM_IOCTL_I915_GEM_GET_APERTURE) {
|
||||
ioctlCount.gemGetAperture++;
|
||||
auto aperture = static_cast<drm_i915_gem_get_aperture *>(arg);
|
||||
aperture->aper_available_size = gpuMemSize;
|
||||
aperture->aper_size = gpuMemSize;
|
||||
return 0;
|
||||
}
|
||||
if (request == DRM_IOCTL_I915_GEM_MMAP) {
|
||||
if (request == DrmIoctl::GemMmap) {
|
||||
ioctlCount.gemMmap++;
|
||||
auto mmapArg = static_cast<GemMmap *>(arg);
|
||||
mmapArg->addrPtr = reinterpret_cast<uint64_t>(lockedPtr);
|
||||
return 0;
|
||||
}
|
||||
if (request == DRM_IOCTL_I915_GEM_WAIT) {
|
||||
if (request == DrmIoctl::GemWait) {
|
||||
ioctlCount.gemWait++;
|
||||
receivedGemWait = *static_cast<GemWait *>(arg);
|
||||
return 0;
|
||||
}
|
||||
if (request == DRM_IOCTL_GEM_CLOSE) {
|
||||
if (request == DrmIoctl::GemClose) {
|
||||
ioctlCount.gemClose++;
|
||||
return storedRetValForGemClose;
|
||||
}
|
||||
if (request == DRM_IOCTL_I915_GET_RESET_STATS && arg != nullptr) {
|
||||
if (request == DrmIoctl::GetResetStats && arg != nullptr) {
|
||||
ioctlCount.gemResetStats++;
|
||||
auto outResetStats = static_cast<ResetStats *>(arg);
|
||||
for (const auto &resetStats : resetStatsToReturn) {
|
||||
@@ -236,7 +229,7 @@ int DrmMock::ioctl(unsigned long request, void *arg) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (request == DRM_IOCTL_I915_QUERY && arg != nullptr) {
|
||||
if (request == DrmIoctl::Query && arg != nullptr) {
|
||||
ioctlCount.query++;
|
||||
auto queryArg = static_cast<Query *>(arg);
|
||||
auto queryItemArg = reinterpret_cast<QueryItem *>(queryArg->itemsPtr);
|
||||
@@ -277,8 +270,8 @@ int DrmMock::waitUserFence(uint32_t ctxIdx, uint64_t address, uint64_t value, Va
|
||||
waitUserFenceParams.push_back({ctxIdx, address, value, dataWidth, timeout, flags});
|
||||
return Drm::waitUserFence(ctxIdx, address, value, dataWidth, timeout, flags);
|
||||
}
|
||||
int DrmMockEngine::handleRemainingRequests(unsigned long request, void *arg) {
|
||||
if ((request == DRM_IOCTL_I915_QUERY) && (arg != nullptr)) {
|
||||
int DrmMockEngine::handleRemainingRequests(DrmIoctl request, void *arg) {
|
||||
if ((request == DrmIoctl::Query) && (arg != nullptr)) {
|
||||
if (i915QuerySuccessCount == 0) {
|
||||
return EINVAL;
|
||||
}
|
||||
@@ -295,69 +288,6 @@ int DrmMockEngine::handleRemainingRequests(unsigned long request, void *arg) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
std::map<unsigned long, const char *> ioctlCodeStringMap = {
|
||||
{DRM_IOCTL_I915_INIT, "DRM_IOCTL_I915_INIT"},
|
||||
{DRM_IOCTL_I915_FLUSH, "DRM_IOCTL_I915_FLUSH"},
|
||||
{DRM_IOCTL_I915_FLIP, "DRM_IOCTL_I915_FLIP"},
|
||||
{DRM_IOCTL_GEM_CLOSE, "DRM_IOCTL_GEM_CLOSE"},
|
||||
{DRM_IOCTL_I915_BATCHBUFFER, "DRM_IOCTL_I915_BATCHBUFFER"},
|
||||
{DRM_IOCTL_I915_IRQ_EMIT, "DRM_IOCTL_I915_IRQ_EMIT"},
|
||||
{DRM_IOCTL_I915_IRQ_WAIT, "DRM_IOCTL_I915_IRQ_WAIT"},
|
||||
{DRM_IOCTL_I915_GETPARAM, "DRM_IOCTL_I915_GETPARAM"},
|
||||
{DRM_IOCTL_I915_SETPARAM, "DRM_IOCTL_I915_SETPARAM"},
|
||||
{DRM_IOCTL_I915_ALLOC, "DRM_IOCTL_I915_ALLOC"},
|
||||
{DRM_IOCTL_I915_FREE, "DRM_IOCTL_I915_FREE"},
|
||||
{DRM_IOCTL_I915_INIT_HEAP, "DRM_IOCTL_I915_INIT_HEAP"},
|
||||
{DRM_IOCTL_I915_CMDBUFFER, "DRM_IOCTL_I915_CMDBUFFER"},
|
||||
{DRM_IOCTL_I915_DESTROY_HEAP, "DRM_IOCTL_I915_DESTROY_HEAP"},
|
||||
{DRM_IOCTL_I915_SET_VBLANK_PIPE, "DRM_IOCTL_I915_SET_VBLANK_PIPE"},
|
||||
{DRM_IOCTL_I915_GET_VBLANK_PIPE, "DRM_IOCTL_I915_GET_VBLANK_PIPE"},
|
||||
{DRM_IOCTL_I915_VBLANK_SWAP, "DRM_IOCTL_I915_VBLANK_SWAP"},
|
||||
{DRM_IOCTL_I915_HWS_ADDR, "DRM_IOCTL_I915_HWS_ADDR"},
|
||||
{DRM_IOCTL_I915_GEM_INIT, "DRM_IOCTL_I915_GEM_INIT"},
|
||||
{DRM_IOCTL_I915_GEM_EXECBUFFER, "DRM_IOCTL_I915_GEM_EXECBUFFER"},
|
||||
{DRM_IOCTL_I915_GEM_EXECBUFFER2, "DRM_IOCTL_I915_GEM_EXECBUFFER2"},
|
||||
{DRM_IOCTL_I915_GEM_EXECBUFFER2_WR, "DRM_IOCTL_I915_GEM_EXECBUFFER2_WR"},
|
||||
{DRM_IOCTL_I915_GEM_PIN, "DRM_IOCTL_I915_GEM_PIN"},
|
||||
{DRM_IOCTL_I915_GEM_UNPIN, "DRM_IOCTL_I915_GEM_UNPIN"},
|
||||
{DRM_IOCTL_I915_GEM_BUSY, "DRM_IOCTL_I915_GEM_BUSY"},
|
||||
{DRM_IOCTL_I915_GEM_SET_CACHING, "DRM_IOCTL_I915_GEM_SET_CACHING"},
|
||||
{DRM_IOCTL_I915_GEM_GET_CACHING, "DRM_IOCTL_I915_GEM_GET_CACHING"},
|
||||
{DRM_IOCTL_I915_GEM_THROTTLE, "DRM_IOCTL_I915_GEM_THROTTLE"},
|
||||
{DRM_IOCTL_I915_GEM_ENTERVT, "DRM_IOCTL_I915_GEM_ENTERVT"},
|
||||
{DRM_IOCTL_I915_GEM_LEAVEVT, "DRM_IOCTL_I915_GEM_LEAVEVT"},
|
||||
{DRM_IOCTL_I915_GEM_CREATE, "DRM_IOCTL_I915_GEM_CREATE"},
|
||||
{DRM_IOCTL_I915_GEM_PREAD, "DRM_IOCTL_I915_GEM_PREAD"},
|
||||
{DRM_IOCTL_I915_GEM_PWRITE, "DRM_IOCTL_I915_GEM_PWRITE"},
|
||||
{DRM_IOCTL_I915_GEM_SET_DOMAIN, "DRM_IOCTL_I915_GEM_SET_DOMAIN"},
|
||||
{DRM_IOCTL_I915_GEM_SW_FINISH, "DRM_IOCTL_I915_GEM_SW_FINISH"},
|
||||
{DRM_IOCTL_I915_GEM_SET_TILING, "DRM_IOCTL_I915_GEM_SET_TILING"},
|
||||
{DRM_IOCTL_I915_GEM_GET_TILING, "DRM_IOCTL_I915_GEM_GET_TILING"},
|
||||
{DRM_IOCTL_I915_GEM_GET_APERTURE, "DRM_IOCTL_I915_GEM_GET_APERTURE"},
|
||||
{DRM_IOCTL_I915_GET_PIPE_FROM_CRTC_ID, "DRM_IOCTL_I915_GET_PIPE_FROM_CRTC_ID"},
|
||||
{DRM_IOCTL_I915_GEM_MADVISE, "DRM_IOCTL_I915_GEM_MADVISE"},
|
||||
{DRM_IOCTL_I915_OVERLAY_PUT_IMAGE, "DRM_IOCTL_I915_OVERLAY_PUT_IMAGE"},
|
||||
{DRM_IOCTL_I915_OVERLAY_ATTRS, "DRM_IOCTL_I915_OVERLAY_ATTRS"},
|
||||
{DRM_IOCTL_I915_SET_SPRITE_COLORKEY, "DRM_IOCTL_I915_SET_SPRITE_COLORKEY"},
|
||||
{DRM_IOCTL_I915_GET_SPRITE_COLORKEY, "DRM_IOCTL_I915_GET_SPRITE_COLORKEY"},
|
||||
{DRM_IOCTL_I915_GEM_WAIT, "DRM_IOCTL_I915_GEM_WAIT"},
|
||||
{DRM_IOCTL_I915_GEM_CONTEXT_CREATE, "DRM_IOCTL_I915_GEM_CONTEXT_CREATE"},
|
||||
{DRM_IOCTL_I915_GEM_CONTEXT_CREATE_EXT, "DRM_IOCTL_I915_GEM_CONTEXT_CREATE_EXT"},
|
||||
{DRM_IOCTL_I915_GEM_CONTEXT_DESTROY, "DRM_IOCTL_I915_GEM_CONTEXT_DESTROY"},
|
||||
{DRM_IOCTL_I915_REG_READ, "DRM_IOCTL_I915_REG_READ"},
|
||||
{DRM_IOCTL_I915_GET_RESET_STATS, "DRM_IOCTL_I915_GET_RESET_STATS"},
|
||||
{DRM_IOCTL_I915_GEM_USERPTR, "DRM_IOCTL_I915_GEM_USERPTR"},
|
||||
{DRM_IOCTL_I915_GEM_CONTEXT_GETPARAM, "DRM_IOCTL_I915_GEM_CONTEXT_GETPARAM"},
|
||||
{DRM_IOCTL_I915_GEM_CONTEXT_SETPARAM, "DRM_IOCTL_I915_GEM_CONTEXT_SETPARAM"},
|
||||
{DRM_IOCTL_I915_PERF_OPEN, "DRM_IOCTL_I915_PERF_OPEN"},
|
||||
{DRM_IOCTL_I915_PERF_ADD_CONFIG, "DRM_IOCTL_I915_PERF_ADD_CONFIG"},
|
||||
{DRM_IOCTL_I915_PERF_REMOVE_CONFIG, "DRM_IOCTL_I915_PERF_REMOVE_CONFIG"},
|
||||
{DRM_IOCTL_I915_QUERY, "DRM_IOCTL_I915_QUERY"},
|
||||
{DRM_IOCTL_I915_GEM_MMAP, "DRM_IOCTL_I915_GEM_MMAP"},
|
||||
{DRM_IOCTL_PRIME_FD_TO_HANDLE, "DRM_IOCTL_PRIME_FD_TO_HANDLE"},
|
||||
{DRM_IOCTL_PRIME_HANDLE_TO_FD, "DRM_IOCTL_PRIME_HANDLE_TO_FD"},
|
||||
{static_cast<unsigned long>(101010101), "101010101"}};
|
||||
|
||||
std::map<int, const char *> ioctlParamCodeStringMap = {
|
||||
{I915_PARAM_CHIPSET_ID, "I915_PARAM_CHIPSET_ID"},
|
||||
{I915_PARAM_REVISION, "I915_PARAM_REVISION"},
|
||||
|
||||
@@ -74,7 +74,7 @@ class DrmMock : public Drm {
|
||||
}
|
||||
}
|
||||
|
||||
int ioctl(unsigned long request, void *arg) override;
|
||||
int ioctl(DrmIoctl request, void *arg) override;
|
||||
int getErrno() override {
|
||||
if (baseErrno) {
|
||||
return Drm::getErrno();
|
||||
@@ -249,7 +249,7 @@ class DrmMock : public Drm {
|
||||
bool expectIoctlCallsOnDestruction = false;
|
||||
uint32_t expectedIoctlCallsOnDestruction = 0u;
|
||||
|
||||
virtual int handleRemainingRequests(unsigned long request, void *arg) { return -1; }
|
||||
virtual int handleRemainingRequests(DrmIoctl request, void *arg) { return -1; }
|
||||
|
||||
struct WaitUserFenceParams {
|
||||
uint32_t ctxId;
|
||||
@@ -265,14 +265,14 @@ class DrmMock : public Drm {
|
||||
class DrmMockNonFailing : public DrmMock {
|
||||
public:
|
||||
using DrmMock::DrmMock;
|
||||
int handleRemainingRequests(unsigned long request, void *arg) override { return 0; }
|
||||
int handleRemainingRequests(DrmIoctl request, void *arg) override { return 0; }
|
||||
};
|
||||
|
||||
class DrmMockReturnErrorNotSupported : public DrmMock {
|
||||
public:
|
||||
using DrmMock::DrmMock;
|
||||
int ioctl(unsigned long request, void *arg) override {
|
||||
if (request == DRM_IOCTL_I915_GEM_EXECBUFFER2) {
|
||||
int ioctl(DrmIoctl request, void *arg) override {
|
||||
if (request == DrmIoctl::GemExecbuffer2) {
|
||||
return -1;
|
||||
}
|
||||
return 0;
|
||||
@@ -289,7 +289,7 @@ class DrmMockEngine : public DrmMock {
|
||||
rootDeviceEnvironment.setHwInfo(defaultHwInfo.get());
|
||||
}
|
||||
|
||||
int handleRemainingRequests(unsigned long request, void *arg) override;
|
||||
int handleRemainingRequests(DrmIoctl request, void *arg) override;
|
||||
|
||||
void handleQueryItem(QueryItem *queryItem);
|
||||
bool failQueryDeviceBlob = false;
|
||||
|
||||
@@ -37,9 +37,9 @@ constexpr std::array<uint64_t, 9> copyEnginesCapsMap = {{
|
||||
|
||||
} // namespace
|
||||
|
||||
int DrmMockPrelimContext::handlePrelimRequest(unsigned long request, void *arg) {
|
||||
int DrmMockPrelimContext::handlePrelimRequest(DrmIoctl request, void *arg) {
|
||||
switch (request) {
|
||||
case DRM_IOCTL_I915_GETPARAM: {
|
||||
case DrmIoctl::Getparam: {
|
||||
auto gp = static_cast<GetParam *>(arg);
|
||||
if (gp->param == PRELIM_I915_PARAM_HAS_PAGE_FAULT) {
|
||||
*gp->value = hasPageFaultQueryValue;
|
||||
@@ -50,14 +50,14 @@ int DrmMockPrelimContext::handlePrelimRequest(unsigned long request, void *arg)
|
||||
return vmBindQueryReturn;
|
||||
}
|
||||
} break;
|
||||
case DRM_IOCTL_I915_GEM_CONTEXT_GETPARAM: {
|
||||
case DrmIoctl::GemContextGetparam: {
|
||||
auto gp = static_cast<GemContextParam *>(arg);
|
||||
if (gp->param == PRELIM_I915_CONTEXT_PARAM_DEBUG_FLAGS) {
|
||||
gp->value = contextDebugSupported ? PRELIM_I915_CONTEXT_PARAM_DEBUG_FLAG_SIP << 32 : 0;
|
||||
return 0;
|
||||
}
|
||||
} break;
|
||||
case DRM_IOCTL_I915_GEM_CONTEXT_CREATE_EXT: {
|
||||
case DrmIoctl::GemContextCreateExt: {
|
||||
auto create = static_cast<GemContextCreateExt *>(arg);
|
||||
auto setParam = reinterpret_cast<GemContextCreateExtSetParam *>(create->extensions);
|
||||
if (setParam->param.param == PRELIM_I915_CONTEXT_PARAM_ACC) {
|
||||
@@ -68,12 +68,12 @@ int DrmMockPrelimContext::handlePrelimRequest(unsigned long request, void *arg)
|
||||
}
|
||||
return 0;
|
||||
} break;
|
||||
case DRM_IOCTL_I915_GEM_MMAP_OFFSET: {
|
||||
case DrmIoctl::GemMmapOffset: {
|
||||
auto mmapArg = static_cast<GemMmapOffset *>(arg);
|
||||
mmapArg->offset = 0;
|
||||
return mmapOffsetReturn;
|
||||
} break;
|
||||
case PRELIM_DRM_IOCTL_I915_GEM_CLOS_RESERVE: {
|
||||
case DrmIoctl::GemClosReserve: {
|
||||
auto closReserveArg = static_cast<prelim_drm_i915_gem_clos_reserve *>(arg);
|
||||
closIndex++;
|
||||
if (closIndex == 0) {
|
||||
@@ -82,7 +82,7 @@ int DrmMockPrelimContext::handlePrelimRequest(unsigned long request, void *arg)
|
||||
closReserveArg->clos_index = closIndex;
|
||||
return 0;
|
||||
} break;
|
||||
case PRELIM_DRM_IOCTL_I915_GEM_CLOS_FREE: {
|
||||
case DrmIoctl::GemClosFree: {
|
||||
auto closFreeArg = static_cast<prelim_drm_i915_gem_clos_free *>(arg);
|
||||
if (closFreeArg->clos_index > closIndex) {
|
||||
return EINVAL;
|
||||
@@ -90,7 +90,7 @@ int DrmMockPrelimContext::handlePrelimRequest(unsigned long request, void *arg)
|
||||
closIndex--;
|
||||
return 0;
|
||||
} break;
|
||||
case PRELIM_DRM_IOCTL_I915_GEM_CACHE_RESERVE: {
|
||||
case DrmIoctl::GemCacheReserve: {
|
||||
auto cacheReserveArg = static_cast<prelim_drm_i915_gem_cache_reserve *>(arg);
|
||||
if (cacheReserveArg->clos_index > closIndex) {
|
||||
return EINVAL;
|
||||
@@ -106,7 +106,7 @@ int DrmMockPrelimContext::handlePrelimRequest(unsigned long request, void *arg)
|
||||
allocNumWays += cacheReserveArg->num_ways;
|
||||
return 0;
|
||||
} break;
|
||||
case PRELIM_DRM_IOCTL_I915_GEM_VM_BIND: {
|
||||
case DrmIoctl::GemVmBind: {
|
||||
vmBindCalled++;
|
||||
const auto vmBind = reinterpret_cast<prelim_drm_i915_gem_vm_bind *>(arg);
|
||||
receivedVmBind = VmBindParams{
|
||||
@@ -121,7 +121,7 @@ int DrmMockPrelimContext::handlePrelimRequest(unsigned long request, void *arg)
|
||||
storeVmBindExtensions(vmBind->extensions, true);
|
||||
return vmBindReturn;
|
||||
} break;
|
||||
case PRELIM_DRM_IOCTL_I915_GEM_VM_UNBIND: {
|
||||
case DrmIoctl::GemVmUnbind: {
|
||||
vmUnbindCalled++;
|
||||
const auto vmBind = reinterpret_cast<prelim_drm_i915_gem_vm_bind *>(arg);
|
||||
receivedVmUnbind = VmBindParams{
|
||||
@@ -136,7 +136,7 @@ int DrmMockPrelimContext::handlePrelimRequest(unsigned long request, void *arg)
|
||||
storeVmBindExtensions(vmBind->extensions, false);
|
||||
return vmUnbindReturn;
|
||||
} break;
|
||||
case PRELIM_DRM_IOCTL_I915_GEM_CREATE_EXT: {
|
||||
case DrmIoctl::GemCreateExt: {
|
||||
auto createExt = static_cast<prelim_drm_i915_gem_create_ext *>(arg);
|
||||
if (createExt->size == 0) {
|
||||
return EINVAL;
|
||||
@@ -178,7 +178,7 @@ int DrmMockPrelimContext::handlePrelimRequest(unsigned long request, void *arg)
|
||||
|
||||
return gemCreateExtReturn;
|
||||
} break;
|
||||
case PRELIM_DRM_IOCTL_I915_GEM_WAIT_USER_FENCE: {
|
||||
case DrmIoctl::GemWaitUserFence: {
|
||||
waitUserFenceCalled++;
|
||||
const auto wait = reinterpret_cast<prelim_drm_i915_gem_wait_user_fence *>(arg);
|
||||
receivedWaitUserFence = WaitUserFence{
|
||||
@@ -193,7 +193,7 @@ int DrmMockPrelimContext::handlePrelimRequest(unsigned long request, void *arg)
|
||||
};
|
||||
return 0;
|
||||
} break;
|
||||
case DRM_IOCTL_I915_GEM_CONTEXT_SETPARAM: {
|
||||
case DrmIoctl::GemContextSetparam: {
|
||||
const auto req = reinterpret_cast<GemContextParam *>(arg);
|
||||
if (req->param == PRELIM_I915_CONTEXT_PARAM_DEBUG_FLAGS) {
|
||||
receivedSetContextParamValue = req->value;
|
||||
@@ -202,12 +202,12 @@ int DrmMockPrelimContext::handlePrelimRequest(unsigned long request, void *arg)
|
||||
|
||||
return !contextDebugSupported ? EINVAL : 0;
|
||||
} break;
|
||||
case PRELIM_DRM_IOCTL_I915_GEM_VM_ADVISE: {
|
||||
case DrmIoctl::GemVmAdvise: {
|
||||
const auto req = reinterpret_cast<prelim_drm_i915_gem_vm_advise *>(arg);
|
||||
receivedVmAdvise = VmAdvise{req->handle, req->attribute};
|
||||
return vmAdviseReturn;
|
||||
} break;
|
||||
case PRELIM_DRM_IOCTL_I915_UUID_REGISTER: {
|
||||
case DrmIoctl::UuidRegister: {
|
||||
auto uuidControl = reinterpret_cast<prelim_drm_i915_uuid_control *>(arg);
|
||||
|
||||
if (uuidControl->uuid_class != uint32_t(PRELIM_I915_UUID_CLASS_STRING) && uuidControl->uuid_class > uuidHandle) {
|
||||
@@ -228,7 +228,7 @@ int DrmMockPrelimContext::handlePrelimRequest(unsigned long request, void *arg)
|
||||
memcpy_s(receivedRegisterUuid->uuid, sizeof(receivedRegisterUuid->uuid), uuidControl->uuid, sizeof(uuidControl->uuid));
|
||||
return uuidControlReturn;
|
||||
} break;
|
||||
case PRELIM_DRM_IOCTL_I915_UUID_UNREGISTER: {
|
||||
case DrmIoctl::UuidUnregister: {
|
||||
auto uuidControl = reinterpret_cast<prelim_drm_i915_uuid_control *>(arg);
|
||||
receivedUnregisterUuid = UuidControl{
|
||||
{},
|
||||
@@ -243,7 +243,7 @@ int DrmMockPrelimContext::handlePrelimRequest(unsigned long request, void *arg)
|
||||
return uuidControlReturn;
|
||||
} break;
|
||||
|
||||
case PRELIM_DRM_IOCTL_I915_DEBUGGER_OPEN: {
|
||||
case DrmIoctl::DebuggerOpen: {
|
||||
auto debuggerOpen = reinterpret_cast<prelim_drm_i915_debugger_open_param *>(arg);
|
||||
if (debuggerOpen->pid != 0 && debuggerOpen->events == 0) {
|
||||
return debuggerOpenRetval;
|
||||
|
||||
@@ -138,7 +138,7 @@ struct DrmMockPrelimContext {
|
||||
// Debugger ioctls
|
||||
int debuggerOpenRetval = 10; // debugFd
|
||||
|
||||
int handlePrelimRequest(unsigned long request, void *arg);
|
||||
int handlePrelimRequest(DrmIoctl request, void *arg);
|
||||
bool handlePrelimQueryItem(void *arg);
|
||||
void storeVmBindExtensions(uint64_t ptr, bool bind);
|
||||
};
|
||||
|
||||
@@ -11,8 +11,8 @@
|
||||
|
||||
#include "gtest/gtest.h"
|
||||
|
||||
int DrmQueryMock::handleRemainingRequests(unsigned long request, void *arg) {
|
||||
if (request == DRM_IOCTL_I915_QUERY && arg) {
|
||||
int DrmQueryMock::handleRemainingRequests(DrmIoctl request, void *arg) {
|
||||
if (request == DrmIoctl::Query && arg) {
|
||||
if (i915QuerySuccessCount == 0) {
|
||||
return EINVAL;
|
||||
}
|
||||
@@ -31,7 +31,7 @@ int DrmQueryMock::handleRemainingRequests(unsigned long request, void *arg) {
|
||||
}
|
||||
|
||||
return 0;
|
||||
} else if (request == DRM_IOCTL_I915_GEM_CONTEXT_SETPARAM && receivedContextParamRequest.param == I915_CONTEXT_PARAM_ENGINES) {
|
||||
} else if (request == DrmIoctl::GemContextSetparam && receivedContextParamRequest.param == I915_CONTEXT_PARAM_ENGINES) {
|
||||
EXPECT_LE(receivedContextParamRequest.size, sizeof(receivedContextParamEngines));
|
||||
memcpy(&receivedContextParamEngines, reinterpret_cast<const void *>(receivedContextParamRequest.value), receivedContextParamRequest.size);
|
||||
auto srcBalancer = reinterpret_cast<const i915_context_engines_load_balance *>(receivedContextParamEngines.extensions);
|
||||
|
||||
@@ -55,6 +55,6 @@ class DrmQueryMock : public DrmMock {
|
||||
uint32_t i915QuerySuccessCount = std::numeric_limits<uint32_t>::max();
|
||||
int storedRetValForSetParamEngines{0};
|
||||
|
||||
int handleRemainingRequests(unsigned long request, void *arg) override;
|
||||
int handleRemainingRequests(DrmIoctl request, void *arg) override;
|
||||
virtual bool handleQueryItem(void *queryItem);
|
||||
};
|
||||
|
||||
@@ -63,12 +63,12 @@ void DrmMockCustom::testIoctls() {
|
||||
#undef NEO_IOCTL_EXPECT_EQ
|
||||
}
|
||||
|
||||
int DrmMockCustom::ioctl(unsigned long request, void *arg) {
|
||||
int DrmMockCustom::ioctl(DrmIoctl request, void *arg) {
|
||||
auto ext = ioctl_res_ext.load();
|
||||
|
||||
//store flags
|
||||
switch (request) {
|
||||
case DRM_IOCTL_I915_GEM_EXECBUFFER2: {
|
||||
case DrmIoctl::GemExecbuffer2: {
|
||||
auto execbuf = static_cast<NEO::MockExecBuffer *>(arg);
|
||||
this->execBuffer = *execbuf;
|
||||
this->execBufferBufferObjects =
|
||||
@@ -77,33 +77,33 @@ int DrmMockCustom::ioctl(unsigned long request, void *arg) {
|
||||
execBufferExtensions(execbuf);
|
||||
} break;
|
||||
|
||||
case DRM_IOCTL_I915_GEM_USERPTR: {
|
||||
case DrmIoctl::GemUserptr: {
|
||||
auto *userPtrParams = static_cast<NEO::GemUserPtr *>(arg);
|
||||
userPtrParams->handle = returnHandle;
|
||||
returnHandle++;
|
||||
ioctl_cnt.gemUserptr++;
|
||||
} break;
|
||||
|
||||
case DRM_IOCTL_I915_GEM_CREATE: {
|
||||
case DrmIoctl::GemCreate: {
|
||||
auto *createParams = static_cast<NEO::GemCreate *>(arg);
|
||||
this->createParamsSize = createParams->size;
|
||||
this->createParamsHandle = createParams->handle = 1u;
|
||||
ioctl_cnt.gemCreate++;
|
||||
} break;
|
||||
case DRM_IOCTL_I915_GEM_SET_TILING: {
|
||||
case DrmIoctl::GemSetTiling: {
|
||||
auto *setTilingParams = static_cast<NEO::GemSetTiling *>(arg);
|
||||
setTilingMode = setTilingParams->tilingMode;
|
||||
setTilingHandle = setTilingParams->handle;
|
||||
setTilingStride = setTilingParams->stride;
|
||||
ioctl_cnt.gemSetTiling++;
|
||||
} break;
|
||||
case DRM_IOCTL_I915_GEM_GET_TILING: {
|
||||
case DrmIoctl::GemGetTiling: {
|
||||
auto *getTilingParams = static_cast<NEO::GemGetTiling *>(arg);
|
||||
getTilingParams->tilingMode = getTilingModeOut;
|
||||
getTilingHandleIn = getTilingParams->handle;
|
||||
ioctl_cnt.gemGetTiling++;
|
||||
} break;
|
||||
case DRM_IOCTL_PRIME_FD_TO_HANDLE: {
|
||||
case DrmIoctl::PrimeFdToHandle: {
|
||||
auto *primeToHandleParams = static_cast<NEO::PrimeHandle *>(arg);
|
||||
//return BO
|
||||
primeToHandleParams->handle = outputHandle;
|
||||
@@ -113,7 +113,7 @@ int DrmMockCustom::ioctl(unsigned long request, void *arg) {
|
||||
return -1;
|
||||
}
|
||||
} break;
|
||||
case DRM_IOCTL_PRIME_HANDLE_TO_FD: {
|
||||
case DrmIoctl::PrimeHandleToFd: {
|
||||
auto *handleToPrimeParams = static_cast<NEO::PrimeHandle *>(arg);
|
||||
//return FD
|
||||
inputHandle = handleToPrimeParams->handle;
|
||||
@@ -121,7 +121,7 @@ int DrmMockCustom::ioctl(unsigned long request, void *arg) {
|
||||
handleToPrimeParams->fileDescriptor = outputFd;
|
||||
ioctl_cnt.handleToPrimeFd++;
|
||||
} break;
|
||||
case DRM_IOCTL_I915_GEM_MMAP: {
|
||||
case DrmIoctl::GemMmap: {
|
||||
auto mmapParams = static_cast<NEO::GemMmap *>(arg);
|
||||
mmapHandle = mmapParams->handle;
|
||||
mmapPad = mmapParams->pad;
|
||||
@@ -131,7 +131,7 @@ int DrmMockCustom::ioctl(unsigned long request, void *arg) {
|
||||
mmapParams->addrPtr = mmapAddrPtr;
|
||||
ioctl_cnt.gemMmap++;
|
||||
} break;
|
||||
case DRM_IOCTL_I915_GEM_SET_DOMAIN: {
|
||||
case DrmIoctl::GemSetDomain: {
|
||||
auto setDomainParams = static_cast<NEO::GemSetDomain *>(arg);
|
||||
setDomainHandle = setDomainParams->handle;
|
||||
setDomainReadDomains = setDomainParams->readDomains;
|
||||
@@ -139,45 +139,45 @@ int DrmMockCustom::ioctl(unsigned long request, void *arg) {
|
||||
ioctl_cnt.gemSetDomain++;
|
||||
} break;
|
||||
|
||||
case DRM_IOCTL_I915_GEM_WAIT: {
|
||||
case DrmIoctl::GemWait: {
|
||||
auto gemWaitParams = static_cast<NEO::GemWait *>(arg);
|
||||
gemWaitTimeout = gemWaitParams->timeoutNs;
|
||||
ioctl_cnt.gemWait++;
|
||||
} break;
|
||||
|
||||
case DRM_IOCTL_GEM_CLOSE:
|
||||
case DrmIoctl::GemClose:
|
||||
ioctl_cnt.gemClose++;
|
||||
break;
|
||||
|
||||
case DRM_IOCTL_I915_REG_READ:
|
||||
case DrmIoctl::RegRead:
|
||||
ioctl_cnt.regRead++;
|
||||
break;
|
||||
|
||||
case DRM_IOCTL_I915_GETPARAM: {
|
||||
case DrmIoctl::Getparam: {
|
||||
ioctl_cnt.contextGetParam++;
|
||||
auto getParam = static_cast<NEO::GetParam *>(arg);
|
||||
recordedGetParam = *getParam;
|
||||
*getParam->value = getParamRetValue;
|
||||
} break;
|
||||
|
||||
case DRM_IOCTL_I915_GEM_CONTEXT_SETPARAM: {
|
||||
case DrmIoctl::GemContextSetparam: {
|
||||
} break;
|
||||
|
||||
case DRM_IOCTL_I915_GEM_CONTEXT_GETPARAM: {
|
||||
case DrmIoctl::GemContextGetparam: {
|
||||
ioctl_cnt.contextGetParam++;
|
||||
auto getContextParam = static_cast<NEO::GemContextParam *>(arg);
|
||||
recordedGetContextParam = *getContextParam;
|
||||
getContextParam->value = getContextParamRetValue;
|
||||
} break;
|
||||
|
||||
case DRM_IOCTL_I915_GEM_CONTEXT_CREATE_EXT: {
|
||||
case DrmIoctl::GemContextCreateExt: {
|
||||
auto contextCreateParam = static_cast<NEO::GemContextCreateExt *>(arg);
|
||||
contextCreateParam->contextId = ++ioctl_cnt.contextCreate;
|
||||
} break;
|
||||
case DRM_IOCTL_I915_GEM_CONTEXT_DESTROY: {
|
||||
case DrmIoctl::GemContextDestroy: {
|
||||
ioctl_cnt.contextDestroy++;
|
||||
} break;
|
||||
case DRM_IOCTL_I915_GEM_MMAP_OFFSET: {
|
||||
case DrmIoctl::GemMmapOffset: {
|
||||
auto mmapOffsetParams = reinterpret_cast<NEO::GemMmapOffset *>(arg);
|
||||
mmapOffsetParams->handle = mmapOffsetHandle;
|
||||
mmapOffsetParams->offset = mmapOffsetExpected;
|
||||
|
||||
@@ -20,6 +20,7 @@
|
||||
#include <cstdint>
|
||||
|
||||
using NEO::Drm;
|
||||
using NEO::DrmIoctl;
|
||||
using NEO::HwDeviceIdDrm;
|
||||
using NEO::RootDeviceEnvironment;
|
||||
|
||||
@@ -61,20 +62,20 @@ class DrmMockSuccess : public Drm {
|
||||
using Drm::setupIoctlHelper;
|
||||
DrmMockSuccess(int fd, RootDeviceEnvironment &rootDeviceEnvironment) : Drm(std::make_unique<HwDeviceIdDrm>(fd, mockPciPath), rootDeviceEnvironment) {}
|
||||
|
||||
int ioctl(unsigned long request, void *arg) override { return 0; };
|
||||
int ioctl(DrmIoctl request, void *arg) override { return 0; };
|
||||
};
|
||||
|
||||
class DrmMockFail : public Drm {
|
||||
public:
|
||||
DrmMockFail(RootDeviceEnvironment &rootDeviceEnvironment) : Drm(std::make_unique<HwDeviceIdDrm>(mockFd, mockPciPath), rootDeviceEnvironment) {}
|
||||
|
||||
int ioctl(unsigned long request, void *arg) override { return -1; };
|
||||
int ioctl(DrmIoctl request, void *arg) override { return -1; };
|
||||
};
|
||||
|
||||
class DrmMockTime : public DrmMockSuccess {
|
||||
public:
|
||||
using DrmMockSuccess::DrmMockSuccess;
|
||||
int ioctl(unsigned long request, void *arg) override {
|
||||
int ioctl(DrmIoctl request, void *arg) override {
|
||||
auto *reg = reinterpret_cast<NEO::RegisterRead *>(arg);
|
||||
reg->value = getVal() << 32;
|
||||
return 0;
|
||||
@@ -130,9 +131,9 @@ class DrmMockCustom : public Drm {
|
||||
|
||||
void testIoctls();
|
||||
|
||||
int ioctl(unsigned long request, void *arg) override;
|
||||
int ioctl(DrmIoctl request, void *arg) override;
|
||||
|
||||
virtual int ioctlExtra(unsigned long request, void *arg) {
|
||||
virtual int ioctlExtra(DrmIoctl request, void *arg) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
@@ -11,21 +11,19 @@
|
||||
|
||||
#include "third_party/uapi/prelim/drm/i915_drm.h"
|
||||
|
||||
#include <iostream>
|
||||
|
||||
int DrmMockCustomPrelimContext::ioctlExtra(unsigned long request, void *arg) {
|
||||
int DrmMockCustomPrelimContext::ioctlExtra(DrmIoctl request, void *arg) {
|
||||
switch (request) {
|
||||
case PRELIM_DRM_IOCTL_I915_GEM_CREATE_EXT: {
|
||||
case DrmIoctl::GemCreateExt: {
|
||||
auto createExtParams = reinterpret_cast<prelim_drm_i915_gem_create_ext *>(arg);
|
||||
createExtSize = createExtParams->size;
|
||||
createExtHandle = createExtParams->handle;
|
||||
createExtExtensions = createExtParams->extensions;
|
||||
} break;
|
||||
case PRELIM_DRM_IOCTL_I915_GEM_VM_BIND: {
|
||||
case DrmIoctl::GemVmBind: {
|
||||
} break;
|
||||
case PRELIM_DRM_IOCTL_I915_GEM_VM_UNBIND: {
|
||||
case DrmIoctl::GemVmUnbind: {
|
||||
} break;
|
||||
case PRELIM_DRM_IOCTL_I915_GEM_WAIT_USER_FENCE: {
|
||||
case DrmIoctl::GemWaitUserFence: {
|
||||
const auto wait = reinterpret_cast<prelim_drm_i915_gem_wait_user_fence *>(arg);
|
||||
receivedGemWaitUserFence = WaitUserFence{
|
||||
wait->extensions,
|
||||
@@ -40,8 +38,6 @@ int DrmMockCustomPrelimContext::ioctlExtra(unsigned long request, void *arg) {
|
||||
gemWaitUserFenceCalled++;
|
||||
} break;
|
||||
default: {
|
||||
std::cout << std::hex << DRM_IOCTL_I915_GEM_WAIT << std::endl;
|
||||
std::cout << "unexpected IOCTL: " << std::hex << request << std::endl;
|
||||
UNRECOVERABLE_IF(true);
|
||||
} break;
|
||||
}
|
||||
|
||||
@@ -23,6 +23,6 @@ struct DrmMockCustomPrelimContext {
|
||||
uint64_t completionAddress = 0;
|
||||
uint64_t completionValue = 0;
|
||||
|
||||
int ioctlExtra(unsigned long request, void *arg);
|
||||
int ioctlExtra(DrmIoctl request, void *arg);
|
||||
void execBufferExtensions(void *arg);
|
||||
};
|
||||
|
||||
@@ -40,9 +40,9 @@ class DrmMockCustomImpl : public DrmMockCustom {
|
||||
__u32 createExtHandle = 0;
|
||||
__u64 createExtExtensions = 0;
|
||||
|
||||
int ioctlExtra(unsigned long request, void *arg) override {
|
||||
int ioctlExtra(DrmIoctl request, void *arg) override {
|
||||
switch (request) {
|
||||
case DRM_IOCTL_I915_GEM_CREATE_EXT: {
|
||||
case DrmIoctl::GemCreateExt: {
|
||||
auto createExtParams = reinterpret_cast<drm_i915_gem_create_ext *>(arg);
|
||||
createExtSize = createExtParams->size;
|
||||
createExtHandle = createExtParams->handle;
|
||||
@@ -50,7 +50,6 @@ class DrmMockCustomImpl : public DrmMockCustom {
|
||||
ioctlImpl_cnt.gemCreateExt++;
|
||||
} break;
|
||||
default: {
|
||||
std::cout << "unexpected IOCTL: " << NEO::IoctlToStringHelper::getIoctlString(request) << std::endl;
|
||||
UNRECOVERABLE_IF(true);
|
||||
} break;
|
||||
}
|
||||
|
||||
@@ -24,7 +24,7 @@ class DrmMockCustomPrelim : public DrmMockCustom {
|
||||
prelimVersion = "2.0";
|
||||
}
|
||||
|
||||
int ioctlExtra(unsigned long request, void *arg) override {
|
||||
int ioctlExtra(DrmIoctl request, void *arg) override {
|
||||
return context.ioctlExtra(request, arg);
|
||||
}
|
||||
|
||||
|
||||
@@ -41,8 +41,8 @@ class DrmTipMock : public DrmMock {
|
||||
prelimVersion = "";
|
||||
}
|
||||
|
||||
int handleRemainingRequests(unsigned long request, void *arg) override {
|
||||
if ((request == DRM_IOCTL_I915_QUERY) && (arg != nullptr)) {
|
||||
int handleRemainingRequests(DrmIoctl request, void *arg) override {
|
||||
if ((request == DrmIoctl::Query) && (arg != nullptr)) {
|
||||
if (i915QuerySuccessCount == 0) {
|
||||
return EINVAL;
|
||||
}
|
||||
@@ -55,7 +55,7 @@ class DrmTipMock : public DrmMock {
|
||||
handleQueryItem(reinterpret_cast<QueryItem *>(query->itemsPtr) + i);
|
||||
}
|
||||
return 0;
|
||||
} else if (request == DRM_IOCTL_I915_GEM_MMAP_OFFSET) {
|
||||
} else if (request == DrmIoctl::GemMmapOffset) {
|
||||
auto mmapArg = static_cast<GemMmapOffset *>(arg);
|
||||
mmapOffsetFlagsReceived = mmapArg->flags;
|
||||
mmapArg->offset = offset;
|
||||
@@ -93,8 +93,8 @@ class DrmTipMock : public DrmMock {
|
||||
}
|
||||
}
|
||||
|
||||
virtual int handleKernelSpecificRequests(unsigned long request, void *arg) {
|
||||
if (request == DRM_IOCTL_I915_GEM_CREATE_EXT) {
|
||||
virtual int handleKernelSpecificRequests(DrmIoctl request, void *arg) {
|
||||
if (request == DrmIoctl::GemCreateExt) {
|
||||
auto createExtParams = static_cast<drm_i915_gem_create_ext *>(arg);
|
||||
if (createExtParams->size == 0) {
|
||||
return EINVAL;
|
||||
|
||||
@@ -53,8 +53,8 @@ class DrmMockProdDg1 : public DrmTipMock {
|
||||
}
|
||||
}
|
||||
|
||||
int handleKernelSpecificRequests(unsigned long request, void *arg) override {
|
||||
if (request == DRM_IOCTL_I915_GEM_CREATE_EXT) {
|
||||
int handleKernelSpecificRequests(DrmIoctl request, void *arg) override {
|
||||
if (request == DrmIoctl::DG1GemCreateExt) {
|
||||
auto createExtParams = static_cast<drm_i915_gem_create_ext *>(arg);
|
||||
if (createExtParams->size == 0) {
|
||||
return EINVAL;
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
#include "shared/source/helpers/file_io.h"
|
||||
#include "shared/source/helpers/hw_info.h"
|
||||
#include "shared/source/os_interface/device_factory.h"
|
||||
#include "shared/source/os_interface/linux/ioctl_strings.h"
|
||||
#include "shared/source/os_interface/linux/os_context_linux.h"
|
||||
#include "shared/source/os_interface/linux/os_inc.h"
|
||||
#include "shared/source/os_interface/os_interface.h"
|
||||
@@ -1173,3 +1174,50 @@ TEST(DrmTest, givenSetupIoctlHelperThenIoctlHelperNotNull) {
|
||||
|
||||
EXPECT_NE(nullptr, drm.ioctlHelper.get());
|
||||
}
|
||||
|
||||
TEST(DrmWrapperTest, WhenGettingDrmIoctlGetparamValueThenIoctlHelperIsNotNeeded) {
|
||||
EXPECT_EQ(getIoctlRequestValue(DrmIoctl::Getparam, nullptr), static_cast<unsigned int>(DRM_IOCTL_I915_GETPARAM));
|
||||
EXPECT_THROW(getIoctlRequestValue(DrmIoctl::DG1GemCreateExt, nullptr), std::runtime_error);
|
||||
}
|
||||
|
||||
TEST(DrmWrapperTest, WhenGettingIoctlStringValueThenProperStringIsReturned) {
|
||||
std::map<DrmIoctl, const char *> ioctlCodeStringMap = {
|
||||
{DrmIoctl::GemClose, "DRM_IOCTL_GEM_CLOSE"},
|
||||
{DrmIoctl::Getparam, "DRM_IOCTL_I915_GETPARAM"},
|
||||
{DrmIoctl::GemExecbuffer2, "DRM_IOCTL_I915_GEM_EXECBUFFER2"},
|
||||
{DrmIoctl::GemCreate, "DRM_IOCTL_I915_GEM_CREATE"},
|
||||
{DrmIoctl::GemSetDomain, "DRM_IOCTL_I915_GEM_SET_DOMAIN"},
|
||||
{DrmIoctl::GemSetTiling, "DRM_IOCTL_I915_GEM_SET_TILING"},
|
||||
{DrmIoctl::GemGetTiling, "DRM_IOCTL_I915_GEM_GET_TILING"},
|
||||
{DrmIoctl::GemWait, "DRM_IOCTL_I915_GEM_WAIT"},
|
||||
{DrmIoctl::GemContextCreateExt, "DRM_IOCTL_I915_GEM_CONTEXT_CREATE_EXT"},
|
||||
{DrmIoctl::GemContextDestroy, "DRM_IOCTL_I915_GEM_CONTEXT_DESTROY"},
|
||||
{DrmIoctl::RegRead, "DRM_IOCTL_I915_REG_READ"},
|
||||
{DrmIoctl::GetResetStats, "DRM_IOCTL_I915_GET_RESET_STATS"},
|
||||
{DrmIoctl::GemUserptr, "DRM_IOCTL_I915_GEM_USERPTR"},
|
||||
{DrmIoctl::GemContextGetparam, "DRM_IOCTL_I915_GEM_CONTEXT_GETPARAM"},
|
||||
{DrmIoctl::GemContextSetparam, "DRM_IOCTL_I915_GEM_CONTEXT_SETPARAM"},
|
||||
{DrmIoctl::Query, "DRM_IOCTL_I915_QUERY"},
|
||||
{DrmIoctl::GemMmap, "DRM_IOCTL_I915_GEM_MMAP"},
|
||||
{DrmIoctl::PrimeFdToHandle, "DRM_IOCTL_PRIME_FD_TO_HANDLE"},
|
||||
{DrmIoctl::GemVmBind, "PRELIM_DRM_IOCTL_I915_GEM_VM_BIND"},
|
||||
{DrmIoctl::GemVmUnbind, "PRELIM_DRM_IOCTL_I915_GEM_VM_UNBIND"},
|
||||
{DrmIoctl::GemWaitUserFence, "PRELIM_DRM_IOCTL_I915_GEM_WAIT_USER_FENCE"},
|
||||
{DrmIoctl::GemCreateExt, "DRM_IOCTL_I915_GEM_CREATE_EXT"},
|
||||
{DrmIoctl::DG1GemCreateExt, "DG1_DRM_IOCTL_I915_GEM_CREATE_EXT"},
|
||||
{DrmIoctl::GemVmAdvise, "PRELIM_DRM_IOCTL_I915_GEM_VM_ADVISE"},
|
||||
{DrmIoctl::GemVmPrefetch, "PRELIM_DRM_IOCTL_I915_GEM_VM_PREFETCH"},
|
||||
{DrmIoctl::UuidRegister, "PRELIM_DRM_IOCTL_I915_UUID_REGISTER"},
|
||||
{DrmIoctl::UuidUnregister, "PRELIM_DRM_IOCTL_I915_UUID_UNREGISTER"},
|
||||
{DrmIoctl::DebuggerOpen, "PRELIM_DRM_IOCTL_I915_DEBUGGER_OPEN"},
|
||||
{DrmIoctl::GemClosReserve, "PRELIM_DRM_IOCTL_I915_GEM_CLOS_RESERVE"},
|
||||
{DrmIoctl::GemClosFree, "PRELIM_DRM_IOCTL_I915_GEM_CLOS_FREE"},
|
||||
{DrmIoctl::GemCacheReserve, "PRELIM_DRM_IOCTL_I915_GEM_CACHE_RESERVE"},
|
||||
{DrmIoctl::GemMmapOffset, "DRM_IOCTL_I915_GEM_MMAP_OFFSET"},
|
||||
{DrmIoctl::GemVmCreate, "DRM_IOCTL_I915_GEM_VM_CREATE"},
|
||||
{DrmIoctl::GemVmDestroy, "DRM_IOCTL_I915_GEM_VM_DESTROY"},
|
||||
{DrmIoctl::PrimeHandleToFd, "DRM_IOCTL_PRIME_HANDLE_TO_FD"}};
|
||||
for (auto &ioctlCodeString : ioctlCodeStringMap) {
|
||||
EXPECT_STREQ(IoctlToStringHelper::getIoctlString(ioctlCodeString.first).c_str(), ioctlCodeString.second);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
using namespace NEO;
|
||||
|
||||
extern int handlePrelimRequests(unsigned long request, void *arg, int ioctlRetVal, int queryDistanceIoctlRetVal);
|
||||
extern int handlePrelimRequests(DrmIoctl request, void *arg, int ioctlRetVal, int queryDistanceIoctlRetVal);
|
||||
|
||||
class DrmPrelimMock : public DrmMock {
|
||||
public:
|
||||
@@ -35,7 +35,7 @@ class DrmPrelimMock : public DrmMock {
|
||||
prelimVersion = "2.0";
|
||||
}
|
||||
|
||||
int handleRemainingRequests(unsigned long request, void *arg) override {
|
||||
int handleRemainingRequests(DrmIoctl request, void *arg) override {
|
||||
return handlePrelimRequests(request, arg, ioctlRetVal, queryDistanceIoctlRetVal);
|
||||
}
|
||||
};
|
||||
@@ -135,7 +135,7 @@ TEST_F(IoctlHelperPrelimFixture, givenPrelimsWhenCreateGemExtWithDebugFlagThenPr
|
||||
|
||||
TEST_F(IoctlHelperPrelimFixture, givenPrelimsWhenCallIoctlThenProperIoctlRegistered) {
|
||||
GemContextCreateExt arg{};
|
||||
auto ret = IoctlHelper::ioctl(drm.get(), DRM_IOCTL_I915_GEM_CONTEXT_CREATE_EXT, &arg);
|
||||
auto ret = IoctlHelper::ioctl(drm.get(), DrmIoctl::GemContextCreateExt, &arg);
|
||||
EXPECT_EQ(0u, ret);
|
||||
EXPECT_EQ(1u, drm->ioctlCallsCount);
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
#include "shared/source/os_interface/linux/ioctl_helper.h"
|
||||
#include "shared/source/os_interface/linux/memory_info.h"
|
||||
#include "shared/test/common/helpers/debug_manager_state_restore.h"
|
||||
#include "shared/test/common/mocks/mock_execution_environment.h"
|
||||
#include "shared/test/common/test_macros/test.h"
|
||||
#include "shared/test/unit_test/os_interface/linux/drm_mock_prod_dg1.h"
|
||||
|
||||
@@ -58,8 +59,7 @@ DG1TEST_F(IoctlHelperTestsDg1, givenDg1WhenCreateGemExtWithDebugFlagThenPrintDeb
|
||||
DebugManagerStateRestore stateRestore;
|
||||
DebugManager.flags.PrintBOCreateDestroyResult.set(true);
|
||||
|
||||
auto executionEnvironment = std::make_unique<ExecutionEnvironment>();
|
||||
executionEnvironment->prepareRootDeviceEnvironments(1);
|
||||
auto executionEnvironment = std::make_unique<MockExecutionEnvironment>();
|
||||
auto drm = std::make_unique<DrmMockProdDg1>(*executionEnvironment->rootDeviceEnvironments[0]);
|
||||
|
||||
testing::internal::CaptureStdout();
|
||||
@@ -92,3 +92,35 @@ DG1TEST_F(IoctlHelperTestsDg1, givenDg1AndMemoryRegionQuerySupportedWhenQuerying
|
||||
ASSERT_NE(nullptr, memoryInfo);
|
||||
EXPECT_EQ(2u, memoryInfo->getDrmRegionInfos().size());
|
||||
}
|
||||
|
||||
DG1TEST_F(IoctlHelperTestsDg1, whenGettingIoctlRequestValueThenPropertValueIsReturned) {
|
||||
auto executionEnvironment = std::make_unique<MockExecutionEnvironment>();
|
||||
auto drm = std::make_unique<DrmMockProdDg1>(*executionEnvironment->rootDeviceEnvironments[0]);
|
||||
auto &ioctlHelper = *drm->getIoctlHelper();
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemExecbuffer2), static_cast<unsigned int>(DRM_IOCTL_I915_GEM_EXECBUFFER2));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemWait), static_cast<unsigned int>(DRM_IOCTL_I915_GEM_WAIT));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemClose), static_cast<unsigned int>(DRM_IOCTL_GEM_CLOSE));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemUserptr), static_cast<unsigned int>(DRM_IOCTL_I915_GEM_USERPTR));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemCreate), static_cast<unsigned int>(DRM_IOCTL_I915_GEM_CREATE));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemSetDomain), static_cast<unsigned int>(DRM_IOCTL_I915_GEM_SET_DOMAIN));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemSetTiling), static_cast<unsigned int>(DRM_IOCTL_I915_GEM_SET_TILING));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemGetTiling), static_cast<unsigned int>(DRM_IOCTL_I915_GEM_GET_TILING));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemContextDestroy), static_cast<unsigned int>(DRM_IOCTL_I915_GEM_CONTEXT_DESTROY));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::RegRead), static_cast<unsigned int>(DRM_IOCTL_I915_REG_READ));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GetResetStats), static_cast<unsigned int>(DRM_IOCTL_I915_GET_RESET_STATS));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemContextGetparam), static_cast<unsigned int>(DRM_IOCTL_I915_GEM_CONTEXT_GETPARAM));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemContextSetparam), static_cast<unsigned int>(DRM_IOCTL_I915_GEM_CONTEXT_SETPARAM));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::Query), static_cast<unsigned int>(DRM_IOCTL_I915_QUERY));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemMmap), static_cast<unsigned int>(DRM_IOCTL_I915_GEM_MMAP));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::PrimeFdToHandle), static_cast<unsigned int>(DRM_IOCTL_PRIME_FD_TO_HANDLE));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::PrimeHandleToFd), static_cast<unsigned int>(DRM_IOCTL_PRIME_HANDLE_TO_FD));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemContextCreateExt), static_cast<unsigned int>(DRM_IOCTL_I915_GEM_CONTEXT_CREATE_EXT));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemMmapOffset), static_cast<unsigned int>(DRM_IOCTL_I915_GEM_MMAP_OFFSET));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemVmCreate), static_cast<unsigned int>(DRM_IOCTL_I915_GEM_VM_CREATE));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemVmDestroy), static_cast<unsigned int>(DRM_IOCTL_I915_GEM_VM_DESTROY));
|
||||
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::DG1GemCreateExt), static_cast<unsigned int>(DRM_IOCTL_I915_GEM_CREATE_EXT));
|
||||
EXPECT_NE(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemCreateExt), static_cast<unsigned int>(DRM_IOCTL_I915_GEM_CREATE_EXT));
|
||||
|
||||
EXPECT_THROW(ioctlHelper.getIoctlRequestValue(DrmIoctl::Getparam), std::runtime_error);
|
||||
}
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
|
||||
using namespace NEO;
|
||||
|
||||
extern std::map<unsigned long, const char *> ioctlCodeStringMap;
|
||||
extern std::map<int, const char *> ioctlParamCodeStringMap;
|
||||
extern std::vector<uint8_t> getRegionInfo(const std::vector<MemoryRegion> &inputRegions);
|
||||
extern std::vector<uint8_t> getEngineInfo(const std::vector<EngineCapabilities> &inputEngines);
|
||||
@@ -24,27 +23,43 @@ struct IoctlPrelimHelperTests : ::testing::Test {
|
||||
IoctlHelperPrelim20 ioctlHelper{};
|
||||
};
|
||||
|
||||
TEST_F(IoctlPrelimHelperTests, givenIoctlWhenParseToStringThenProperStringIsReturned) {
|
||||
for (auto &ioctlCodeString : ioctlCodeStringMap) {
|
||||
EXPECT_STREQ(IoctlToStringHelper::getIoctlString(ioctlCodeString.first).c_str(), ioctlCodeString.second);
|
||||
}
|
||||
EXPECT_STREQ(IoctlToStringHelper::getIoctlString(PRELIM_DRM_IOCTL_I915_GEM_VM_BIND).c_str(), "PRELIM_DRM_IOCTL_I915_GEM_VM_BIND");
|
||||
EXPECT_STREQ(IoctlToStringHelper::getIoctlString(PRELIM_DRM_IOCTL_I915_GEM_VM_UNBIND).c_str(), "PRELIM_DRM_IOCTL_I915_GEM_VM_UNBIND");
|
||||
EXPECT_STREQ(IoctlToStringHelper::getIoctlString(PRELIM_DRM_IOCTL_I915_GEM_WAIT_USER_FENCE).c_str(), "PRELIM_DRM_IOCTL_I915_GEM_WAIT_USER_FENCE");
|
||||
EXPECT_STREQ(IoctlToStringHelper::getIoctlString(PRELIM_DRM_IOCTL_I915_GEM_CREATE_EXT).c_str(), "PRELIM_DRM_IOCTL_I915_GEM_CREATE_EXT");
|
||||
EXPECT_STREQ(IoctlToStringHelper::getIoctlString(PRELIM_DRM_IOCTL_I915_GEM_VM_ADVISE).c_str(), "PRELIM_DRM_IOCTL_I915_GEM_VM_ADVISE");
|
||||
EXPECT_STREQ(IoctlToStringHelper::getIoctlString(PRELIM_DRM_IOCTL_I915_GEM_VM_PREFETCH).c_str(), "PRELIM_DRM_IOCTL_I915_GEM_VM_PREFETCH");
|
||||
EXPECT_STREQ(IoctlToStringHelper::getIoctlString(PRELIM_DRM_IOCTL_I915_UUID_REGISTER).c_str(), "PRELIM_DRM_IOCTL_I915_UUID_REGISTER");
|
||||
EXPECT_STREQ(IoctlToStringHelper::getIoctlString(PRELIM_DRM_IOCTL_I915_UUID_UNREGISTER).c_str(), "PRELIM_DRM_IOCTL_I915_UUID_UNREGISTER");
|
||||
EXPECT_STREQ(IoctlToStringHelper::getIoctlString(PRELIM_DRM_IOCTL_I915_DEBUGGER_OPEN).c_str(), "PRELIM_DRM_IOCTL_I915_DEBUGGER_OPEN");
|
||||
EXPECT_STREQ(IoctlToStringHelper::getIoctlString(PRELIM_DRM_IOCTL_I915_GEM_CLOS_RESERVE).c_str(), "PRELIM_DRM_IOCTL_I915_GEM_CLOS_RESERVE");
|
||||
EXPECT_STREQ(IoctlToStringHelper::getIoctlString(PRELIM_DRM_IOCTL_I915_GEM_CLOS_FREE).c_str(), "PRELIM_DRM_IOCTL_I915_GEM_CLOS_FREE");
|
||||
EXPECT_STREQ(IoctlToStringHelper::getIoctlString(PRELIM_DRM_IOCTL_I915_GEM_CACHE_RESERVE).c_str(), "PRELIM_DRM_IOCTL_I915_GEM_CACHE_RESERVE");
|
||||
EXPECT_STREQ(IoctlToStringHelper::getIoctlString(DRM_IOCTL_I915_GEM_MMAP_GTT).c_str(), "DRM_IOCTL_I915_GEM_MMAP_GTT");
|
||||
EXPECT_STREQ(IoctlToStringHelper::getIoctlString(DRM_IOCTL_I915_GEM_MMAP_OFFSET).c_str(), "DRM_IOCTL_I915_GEM_MMAP_OFFSET");
|
||||
EXPECT_STREQ(IoctlToStringHelper::getIoctlString(DRM_IOCTL_I915_GEM_VM_CREATE).c_str(), "DRM_IOCTL_I915_GEM_VM_CREATE");
|
||||
EXPECT_STREQ(IoctlToStringHelper::getIoctlString(DRM_IOCTL_I915_GEM_VM_DESTROY).c_str(), "DRM_IOCTL_I915_GEM_VM_DESTROY");
|
||||
EXPECT_STREQ(IoctlToStringHelper::getIoctlString(DRM_IOCTL_I915_GEM_VM_DESTROY).c_str(), "DRM_IOCTL_I915_GEM_VM_DESTROY");
|
||||
TEST_F(IoctlPrelimHelperTests, whenGettingIoctlRequestValueThenPropertValueIsReturned) {
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemExecbuffer2), static_cast<unsigned int>(DRM_IOCTL_I915_GEM_EXECBUFFER2));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemWait), static_cast<unsigned int>(DRM_IOCTL_I915_GEM_WAIT));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemClose), static_cast<unsigned int>(DRM_IOCTL_GEM_CLOSE));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemUserptr), static_cast<unsigned int>(DRM_IOCTL_I915_GEM_USERPTR));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemCreate), static_cast<unsigned int>(DRM_IOCTL_I915_GEM_CREATE));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemSetDomain), static_cast<unsigned int>(DRM_IOCTL_I915_GEM_SET_DOMAIN));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemSetTiling), static_cast<unsigned int>(DRM_IOCTL_I915_GEM_SET_TILING));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemGetTiling), static_cast<unsigned int>(DRM_IOCTL_I915_GEM_GET_TILING));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemContextCreateExt), static_cast<unsigned int>(DRM_IOCTL_I915_GEM_CONTEXT_CREATE_EXT));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemContextDestroy), static_cast<unsigned int>(DRM_IOCTL_I915_GEM_CONTEXT_DESTROY));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::RegRead), static_cast<unsigned int>(DRM_IOCTL_I915_REG_READ));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GetResetStats), static_cast<unsigned int>(DRM_IOCTL_I915_GET_RESET_STATS));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemContextGetparam), static_cast<unsigned int>(DRM_IOCTL_I915_GEM_CONTEXT_GETPARAM));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemContextSetparam), static_cast<unsigned int>(DRM_IOCTL_I915_GEM_CONTEXT_SETPARAM));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::Query), static_cast<unsigned int>(DRM_IOCTL_I915_QUERY));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemMmap), static_cast<unsigned int>(DRM_IOCTL_I915_GEM_MMAP));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::PrimeFdToHandle), static_cast<unsigned int>(DRM_IOCTL_PRIME_FD_TO_HANDLE));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::PrimeHandleToFd), static_cast<unsigned int>(DRM_IOCTL_PRIME_HANDLE_TO_FD));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemVmBind), static_cast<unsigned int>(PRELIM_DRM_IOCTL_I915_GEM_VM_BIND));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemVmUnbind), static_cast<unsigned int>(PRELIM_DRM_IOCTL_I915_GEM_VM_UNBIND));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemWaitUserFence), static_cast<unsigned int>(PRELIM_DRM_IOCTL_I915_GEM_WAIT_USER_FENCE));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemCreateExt), static_cast<unsigned int>(PRELIM_DRM_IOCTL_I915_GEM_CREATE_EXT));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemVmAdvise), static_cast<unsigned int>(PRELIM_DRM_IOCTL_I915_GEM_VM_ADVISE));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemVmPrefetch), static_cast<unsigned int>(PRELIM_DRM_IOCTL_I915_GEM_VM_PREFETCH));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::UuidRegister), static_cast<unsigned int>(PRELIM_DRM_IOCTL_I915_UUID_REGISTER));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::UuidUnregister), static_cast<unsigned int>(PRELIM_DRM_IOCTL_I915_UUID_UNREGISTER));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::DebuggerOpen), static_cast<unsigned int>(PRELIM_DRM_IOCTL_I915_DEBUGGER_OPEN));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemClosReserve), static_cast<unsigned int>(PRELIM_DRM_IOCTL_I915_GEM_CLOS_RESERVE));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemClosFree), static_cast<unsigned int>(PRELIM_DRM_IOCTL_I915_GEM_CLOS_FREE));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemCacheReserve), static_cast<unsigned int>(PRELIM_DRM_IOCTL_I915_GEM_CACHE_RESERVE));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemMmapOffset), static_cast<unsigned int>(DRM_IOCTL_I915_GEM_MMAP_OFFSET));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemVmCreate), static_cast<unsigned int>(DRM_IOCTL_I915_GEM_VM_CREATE));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemVmDestroy), static_cast<unsigned int>(DRM_IOCTL_I915_GEM_VM_DESTROY));
|
||||
|
||||
EXPECT_THROW(ioctlHelper.getIoctlRequestValue(DrmIoctl::Getparam), std::runtime_error);
|
||||
EXPECT_THROW(ioctlHelper.getIoctlRequestValue(DrmIoctl::DG1GemCreateExt), std::runtime_error);
|
||||
}
|
||||
|
||||
TEST_F(IoctlPrelimHelperTests, givenIoctlParamWhenParseToStringThenProperStringIsReturned) {
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
#include "shared/test/unit_test/os_interface/linux/drm_mock_impl.h"
|
||||
|
||||
using namespace NEO;
|
||||
extern std::map<unsigned long, const char *> ioctlCodeStringMap;
|
||||
extern std::map<int, const char *> ioctlParamCodeStringMap;
|
||||
|
||||
TEST(IoctlHelperUpstreamTest, whenGettingVmBindAvailabilityThenFalseIsReturned) {
|
||||
@@ -24,18 +23,41 @@ TEST(IoctlHelperUpstreamTest, whenGettingVmBindAvailabilityThenFalseIsReturned)
|
||||
EXPECT_FALSE(ioctlHelper.isVmBindAvailable(drm.get()));
|
||||
}
|
||||
|
||||
TEST(IoctlHelperUpstreamTest, givenIoctlWhenParseToStringThenProperStringIsReturned) {
|
||||
for (auto ioctlCodeString : ioctlCodeStringMap) {
|
||||
EXPECT_STREQ(IoctlToStringHelper::getIoctlString(ioctlCodeString.first).c_str(), ioctlCodeString.second);
|
||||
}
|
||||
}
|
||||
|
||||
TEST(IoctlHelperUpstreamTest, givenIoctlParamWhenParseToStringThenProperStringIsReturned) {
|
||||
for (auto ioctlParamCodeString : ioctlParamCodeStringMap) {
|
||||
EXPECT_STREQ(IoctlToStringHelper::getIoctlParamString(ioctlParamCodeString.first).c_str(), ioctlParamCodeString.second);
|
||||
}
|
||||
}
|
||||
|
||||
TEST(IoctlHelperUpstreamTest, whenGettingIoctlRequestValueThenPropertValueIsReturned) {
|
||||
IoctlHelperUpstream ioctlHelper{};
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemExecbuffer2), static_cast<unsigned int>(DRM_IOCTL_I915_GEM_EXECBUFFER2));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemWait), static_cast<unsigned int>(DRM_IOCTL_I915_GEM_WAIT));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemClose), static_cast<unsigned int>(DRM_IOCTL_GEM_CLOSE));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemUserptr), static_cast<unsigned int>(DRM_IOCTL_I915_GEM_USERPTR));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemCreate), static_cast<unsigned int>(DRM_IOCTL_I915_GEM_CREATE));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemSetDomain), static_cast<unsigned int>(DRM_IOCTL_I915_GEM_SET_DOMAIN));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemSetTiling), static_cast<unsigned int>(DRM_IOCTL_I915_GEM_SET_TILING));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemGetTiling), static_cast<unsigned int>(DRM_IOCTL_I915_GEM_GET_TILING));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemContextCreateExt), static_cast<unsigned int>(DRM_IOCTL_I915_GEM_CONTEXT_CREATE_EXT));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemContextDestroy), static_cast<unsigned int>(DRM_IOCTL_I915_GEM_CONTEXT_DESTROY));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::RegRead), static_cast<unsigned int>(DRM_IOCTL_I915_REG_READ));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GetResetStats), static_cast<unsigned int>(DRM_IOCTL_I915_GET_RESET_STATS));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemContextGetparam), static_cast<unsigned int>(DRM_IOCTL_I915_GEM_CONTEXT_GETPARAM));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemContextSetparam), static_cast<unsigned int>(DRM_IOCTL_I915_GEM_CONTEXT_SETPARAM));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::Query), static_cast<unsigned int>(DRM_IOCTL_I915_QUERY));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemMmap), static_cast<unsigned int>(DRM_IOCTL_I915_GEM_MMAP));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::PrimeFdToHandle), static_cast<unsigned int>(DRM_IOCTL_PRIME_FD_TO_HANDLE));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::PrimeHandleToFd), static_cast<unsigned int>(DRM_IOCTL_PRIME_HANDLE_TO_FD));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemCreateExt), static_cast<unsigned int>(DRM_IOCTL_I915_GEM_CREATE_EXT));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemMmapOffset), static_cast<unsigned int>(DRM_IOCTL_I915_GEM_MMAP_OFFSET));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemVmCreate), static_cast<unsigned int>(DRM_IOCTL_I915_GEM_VM_CREATE));
|
||||
EXPECT_EQ(ioctlHelper.getIoctlRequestValue(DrmIoctl::GemVmDestroy), static_cast<unsigned int>(DRM_IOCTL_I915_GEM_VM_DESTROY));
|
||||
|
||||
EXPECT_THROW(ioctlHelper.getIoctlRequestValue(DrmIoctl::Getparam), std::runtime_error);
|
||||
EXPECT_THROW(ioctlHelper.getIoctlRequestValue(DrmIoctl::DG1GemCreateExt), std::runtime_error);
|
||||
}
|
||||
|
||||
TEST(IoctlHelperUpstreamTest, whenCreatingVmControlRegionExtThenNullptrIsReturned) {
|
||||
IoctlHelperUpstream ioctlHelper{};
|
||||
std::optional<MemoryClassInstance> regionInstanceClass = MemoryClassInstance{};
|
||||
|
||||
@@ -16,8 +16,8 @@
|
||||
|
||||
using namespace NEO;
|
||||
|
||||
int handlePrelimRequests(unsigned long request, void *arg, int ioctlRetVal, int queryDistanceIoctlRetVal) {
|
||||
if (request == PRELIM_DRM_IOCTL_I915_GEM_CREATE_EXT) {
|
||||
int handlePrelimRequests(DrmIoctl request, void *arg, int ioctlRetVal, int queryDistanceIoctlRetVal) {
|
||||
if (request == DrmIoctl::GemCreateExt) {
|
||||
auto createExtParams = static_cast<prelim_drm_i915_gem_create_ext *>(arg);
|
||||
if (createExtParams->size == 0) {
|
||||
return EINVAL;
|
||||
@@ -43,10 +43,10 @@ int handlePrelimRequests(unsigned long request, void *arg, int ioctlRetVal, int
|
||||
if ((data->memoryClass != PRELIM_I915_MEMORY_CLASS_SYSTEM) && (data->memoryClass != PRELIM_I915_MEMORY_CLASS_DEVICE)) {
|
||||
return EINVAL;
|
||||
}
|
||||
} else if (request == PRELIM_DRM_IOCTL_I915_GEM_CLOS_RESERVE) {
|
||||
} else if (request == DrmIoctl::GemClosReserve) {
|
||||
auto closReserveArg = static_cast<prelim_drm_i915_gem_clos_reserve *>(arg);
|
||||
closReserveArg->clos_index = 1u;
|
||||
} else if (request == DRM_IOCTL_I915_QUERY) {
|
||||
} else if (request == DrmIoctl::Query) {
|
||||
auto query = static_cast<Query *>(arg);
|
||||
if (query->itemsPtr == 0) {
|
||||
return EINVAL;
|
||||
|
||||
Reference in New Issue
Block a user