diff --git a/opencl/test/unit_test/os_interface/linux/device_command_stream_fixture_context.cpp b/opencl/test/unit_test/os_interface/linux/device_command_stream_fixture_context.cpp index 05df94effe..fe74380106 100644 --- a/opencl/test/unit_test/os_interface/linux/device_command_stream_fixture_context.cpp +++ b/opencl/test/unit_test/os_interface/linux/device_command_stream_fixture_context.cpp @@ -52,7 +52,7 @@ void DrmMockCustomPrelimContext::execBufferExtensions(void *arg) { const auto execbuf = reinterpret_cast(arg); if ((execbuf->hasUseExtensionsFlag()) && (execbuf->getCliprectsPtr() != 0)) { - i915_user_extension *base = reinterpret_cast(execbuf->getCliprectsPtr()); + DrmUserExtension *base = reinterpret_cast(execbuf->getCliprectsPtr()); if (base->name == PRELIM_DRM_I915_GEM_EXECBUFFER_EXT_USER_FENCE) { prelim_drm_i915_gem_execbuffer_ext_user_fence *userFenceExt = reinterpret_cast(execbuf->getCliprectsPtr()); diff --git a/shared/source/os_interface/linux/drm_neo.cpp b/shared/source/os_interface/linux/drm_neo.cpp index 132a9ec03f..86ccb7db5f 100644 --- a/shared/source/os_interface/linux/drm_neo.cpp +++ b/shared/source/os_interface/linux/drm_neo.cpp @@ -441,7 +441,7 @@ uint32_t Drm::createDrmContext(uint32_t drmVmId, bool isDirectSubmissionRequeste gcc.flags |= ioctlHelper->getDirectSubmissionFlag(); } - drm_i915_gem_context_create_ext_setparam extSetparam = {}; + GemContextCreateExtSetParam extSetparam = {}; if (drmVmId > 0) { extSetparam.base.name = I915_CONTEXT_CREATE_EXT_SETPARAM; diff --git a/shared/source/os_interface/linux/drm_wrappers.cpp b/shared/source/os_interface/linux/drm_wrappers.cpp index 686208a406..3602b09f0f 100644 --- a/shared/source/os_interface/linux/drm_wrappers.cpp +++ b/shared/source/os_interface/linux/drm_wrappers.cpp @@ -104,4 +104,14 @@ static_assert(offsetof(GemContextParam, size) == offsetof(drm_i915_gem_context_p static_assert(offsetof(GemContextParam, param) == offsetof(drm_i915_gem_context_param, param)); static_assert(offsetof(GemContextParam, value) == offsetof(drm_i915_gem_context_param, value)); +static_assert(sizeof(DrmUserExtension) == sizeof(i915_user_extension)); +static_assert(offsetof(DrmUserExtension, nextExtension) == offsetof(i915_user_extension, next_extension)); +static_assert(offsetof(DrmUserExtension, name) == offsetof(i915_user_extension, name)); +static_assert(offsetof(DrmUserExtension, flags) == offsetof(i915_user_extension, flags)); +static_assert(offsetof(DrmUserExtension, reserved) == offsetof(i915_user_extension, rsvd)); + +static_assert(sizeof(GemContextCreateExtSetParam) == sizeof(drm_i915_gem_context_create_ext_setparam)); +static_assert(offsetof(GemContextCreateExtSetParam, base) == offsetof(drm_i915_gem_context_create_ext_setparam, base)); +static_assert(offsetof(GemContextCreateExtSetParam, param) == offsetof(drm_i915_gem_context_create_ext_setparam, param)); + } // namespace NEO diff --git a/shared/source/os_interface/linux/drm_wrappers.h b/shared/source/os_interface/linux/drm_wrappers.h index a240494b57..e58e89a058 100644 --- a/shared/source/os_interface/linux/drm_wrappers.h +++ b/shared/source/os_interface/linux/drm_wrappers.h @@ -118,4 +118,16 @@ struct GemContextParam { uint64_t value; }; +struct DrmUserExtension { + uint64_t nextExtension; + uint32_t name; + uint32_t flags; + uint32_t reserved[4]; +}; + +struct GemContextCreateExtSetParam { + DrmUserExtension base; + GemContextParam param; +}; + } // namespace NEO diff --git a/shared/source/os_interface/linux/ioctl_helper_prelim.cpp b/shared/source/os_interface/linux/ioctl_helper_prelim.cpp index f633fe6846..f1d37ea27e 100644 --- a/shared/source/os_interface/linux/ioctl_helper_prelim.cpp +++ b/shared/source/os_interface/linux/ioctl_helper_prelim.cpp @@ -393,9 +393,9 @@ uint32_t IoctlHelperPrelim20::getFlagsForVmCreate(bool disableScratch, bool enab return flags; } -uint32_t gemCreateContextExt(Drm *drm, drm_i915_gem_context_create_ext &gcc, drm_i915_gem_context_create_ext_setparam &extSetparam) { +uint32_t gemCreateContextExt(Drm *drm, drm_i915_gem_context_create_ext &gcc, GemContextCreateExtSetParam &extSetparam) { gcc.flags |= I915_CONTEXT_CREATE_FLAGS_USE_EXTENSIONS; - extSetparam.base.next_extension = gcc.extensions; + extSetparam.base.nextExtension = gcc.extensions; gcc.extensions = reinterpret_cast(&extSetparam); auto ioctlResult = IoctlHelper::ioctl(drm, DRM_IOCTL_I915_GEM_CONTEXT_CREATE_EXT, &gcc); @@ -409,16 +409,16 @@ uint32_t gemCreateContextAcc(Drm *drm, drm_i915_gem_context_create_ext &gcc, uin paramAcc.notify = 1; paramAcc.granularity = granularity; - i915_user_extension userExt = {}; + DrmUserExtension userExt{}; userExt.name = I915_CONTEXT_CREATE_EXT_SETPARAM; - drm_i915_gem_context_param ctxParam = {}; + GemContextParam ctxParam = {}; ctxParam.param = PRELIM_I915_CONTEXT_PARAM_ACC; - ctxParam.ctx_id = 0; + ctxParam.contextId = 0; ctxParam.size = sizeof(paramAcc); ctxParam.value = reinterpret_cast(¶mAcc); - drm_i915_gem_context_create_ext_setparam extSetparam = {}; + GemContextCreateExtSetParam extSetparam{}; extSetparam.base = userExt; extSetparam.param = ctxParam; @@ -437,7 +437,7 @@ uint32_t IoctlHelperPrelim20::createContextWithAccessCounters(Drm *drm, drm_i915 } uint32_t IoctlHelperPrelim20::createCooperativeContext(Drm *drm, drm_i915_gem_context_create_ext &gcc) { - struct drm_i915_gem_context_create_ext_setparam extSetparam = {}; + GemContextCreateExtSetParam extSetparam{}; extSetparam.base.name = I915_CONTEXT_CREATE_EXT_SETPARAM; extSetparam.param.param = PRELIM_I915_CONTEXT_PARAM_RUNALONE; return gemCreateContextExt(drm, gcc, extSetparam); diff --git a/shared/test/common/libult/linux/drm_mock.cpp b/shared/test/common/libult/linux/drm_mock.cpp index 0eae4eb105..22f2756c87 100644 --- a/shared/test/common/libult/linux/drm_mock.cpp +++ b/shared/test/common/libult/linux/drm_mock.cpp @@ -83,7 +83,7 @@ int DrmMock::ioctl(unsigned long request, void *arg) { if (create->extensions == 0) { return this->storedRetVal; } - receivedContextCreateSetParam = *reinterpret_cast(create->extensions); + receivedContextCreateSetParam = *reinterpret_cast(create->extensions); if (receivedContextCreateSetParam.base.name == I915_CONTEXT_CREATE_EXT_SETPARAM) { receivedContextParamRequestCount++; receivedContextParamRequest = *reinterpret_cast(&receivedContextCreateSetParam.param); diff --git a/shared/test/common/libult/linux/drm_mock.h b/shared/test/common/libult/linux/drm_mock.h index e789161f00..320f2522fa 100644 --- a/shared/test/common/libult/linux/drm_mock.h +++ b/shared/test/common/libult/linux/drm_mock.h @@ -198,7 +198,7 @@ class DrmMock : public Drm { uint32_t passedContextDebugId = std::numeric_limits::max(); std::vector resetStatsToReturn{}; - drm_i915_gem_context_create_ext_setparam receivedContextCreateSetParam = {}; + GemContextCreateExtSetParam receivedContextCreateSetParam = {}; uint32_t receivedContextCreateFlags = 0; uint32_t receivedDestroyContextId = 0; uint32_t ioctlCallsCount = 0; diff --git a/shared/test/common/libult/linux/drm_mock_prelim_context.cpp b/shared/test/common/libult/linux/drm_mock_prelim_context.cpp index 2531403649..cf844f93b8 100644 --- a/shared/test/common/libult/linux/drm_mock_prelim_context.cpp +++ b/shared/test/common/libult/linux/drm_mock_prelim_context.cpp @@ -59,7 +59,7 @@ int DrmMockPrelimContext::handlePrelimRequest(unsigned long request, void *arg) } break; case DRM_IOCTL_I915_GEM_CONTEXT_CREATE_EXT: { auto create = static_cast(arg); - auto setParam = reinterpret_cast(create->extensions); + auto setParam = reinterpret_cast(create->extensions); if (setParam->param.param == PRELIM_I915_CONTEXT_PARAM_ACC) { const auto paramAcc = reinterpret_cast(setParam->param.value); receivedContextParamAcc = GemContextParamAcc{paramAcc->trigger, paramAcc->notify, paramAcc->granularity}; @@ -422,7 +422,7 @@ void DrmMockPrelimContext::storeVmBindExtensions(uint64_t ptr, bool bind) { } size_t uuidIndex{0}; - auto baseExt = reinterpret_cast(ptr); + auto baseExt = reinterpret_cast(ptr); while (baseExt) { if (baseExt->name == PRELIM_I915_VM_BIND_EXT_USER_FENCE) { const auto *ext = reinterpret_cast(baseExt); @@ -439,7 +439,7 @@ void DrmMockPrelimContext::storeVmBindExtensions(uint64_t ptr, bool bind) { } } - baseExt = reinterpret_cast(baseExt->next_extension); + baseExt = reinterpret_cast(baseExt->nextExtension); } } diff --git a/shared/test/unit_test/os_interface/linux/drm_query_prelim_tests.cpp b/shared/test/unit_test/os_interface/linux/drm_query_prelim_tests.cpp index ba2bd47315..f708bf7830 100644 --- a/shared/test/unit_test/os_interface/linux/drm_query_prelim_tests.cpp +++ b/shared/test/unit_test/os_interface/linux/drm_query_prelim_tests.cpp @@ -70,12 +70,12 @@ TEST(DrmQueryTest, givenCooperativeEngineWhenCreateDrmContextThenRunAloneContext const auto &extSetparam = drm.receivedContextCreateSetParam; EXPECT_EQ(static_cast(I915_CONTEXT_CREATE_EXT_SETPARAM), extSetparam.base.name); - EXPECT_EQ(0u, extSetparam.base.next_extension); + EXPECT_EQ(0u, extSetparam.base.nextExtension); EXPECT_EQ(0u, extSetparam.base.flags); EXPECT_EQ(static_cast(DrmPrelimHelper::getRunAloneContextParam()), extSetparam.param.param); EXPECT_EQ(0u, extSetparam.param.size); - EXPECT_EQ(0u, extSetparam.param.ctx_id); + EXPECT_EQ(0u, extSetparam.param.contextId); EXPECT_EQ(0u, extSetparam.param.value); } @@ -98,12 +98,12 @@ TEST(DrmQueryTest, givenForceRunAloneContextFlagSetWhenCreateDrmContextThenRunAl auto extSetparam = drm.receivedContextCreateSetParam; EXPECT_EQ(static_cast(I915_CONTEXT_CREATE_EXT_SETPARAM), extSetparam.base.name); - EXPECT_EQ(0u, extSetparam.base.next_extension); + EXPECT_EQ(0u, extSetparam.base.nextExtension); EXPECT_EQ(0u, extSetparam.base.flags); EXPECT_EQ(static_cast(DrmPrelimHelper::getRunAloneContextParam()), extSetparam.param.param); EXPECT_EQ(0u, extSetparam.param.size); - EXPECT_EQ(0u, extSetparam.param.ctx_id); + EXPECT_EQ(0u, extSetparam.param.contextId); EXPECT_EQ(0u, extSetparam.param.value); } } @@ -124,12 +124,12 @@ TEST(DrmQueryTest, givenCreateContextWithAccessCountersWhenDrmContextIsCreatedTh auto extSetparam = drm.receivedContextCreateSetParam; EXPECT_EQ(static_cast(I915_CONTEXT_CREATE_EXT_SETPARAM), extSetparam.base.name); - EXPECT_EQ(0u, extSetparam.base.next_extension); + EXPECT_EQ(0u, extSetparam.base.nextExtension); EXPECT_EQ(0u, extSetparam.base.flags); EXPECT_EQ(static_cast(DrmPrelimHelper::getAccContextParam()), extSetparam.param.param); EXPECT_EQ(DrmPrelimHelper::getAccContextParamSize(), extSetparam.param.size); - EXPECT_EQ(0u, extSetparam.param.ctx_id); + EXPECT_EQ(0u, extSetparam.param.contextId); EXPECT_NE(0u, extSetparam.param.value); auto paramAcc = drm.context.receivedContextParamAcc; @@ -158,12 +158,12 @@ TEST(DrmQueryTest, givenCreateContextWithAccessCounterWhenDrmContextIsCreatedThe auto extSetparam = drm.receivedContextCreateSetParam; EXPECT_EQ(static_cast(I915_CONTEXT_CREATE_EXT_SETPARAM), extSetparam.base.name); - EXPECT_EQ(0u, extSetparam.base.next_extension); + EXPECT_EQ(0u, extSetparam.base.nextExtension); EXPECT_EQ(0u, extSetparam.base.flags); EXPECT_EQ(static_cast(DrmPrelimHelper::getAccContextParam()), extSetparam.param.param); EXPECT_EQ(DrmPrelimHelper::getAccContextParamSize(), extSetparam.param.size); - EXPECT_EQ(0u, extSetparam.param.ctx_id); + EXPECT_EQ(0u, extSetparam.param.contextId); EXPECT_NE(0u, extSetparam.param.value); auto paramAcc = drm.context.receivedContextParamAcc; @@ -193,12 +193,12 @@ TEST(DrmQueryTest, givenCreateContextWithAccessCounterWhenDrmContextIsCreatedThe auto extSetparam = drm.receivedContextCreateSetParam; EXPECT_EQ(static_cast(I915_CONTEXT_CREATE_EXT_SETPARAM), extSetparam.base.name); - EXPECT_EQ(0u, extSetparam.base.next_extension); + EXPECT_EQ(0u, extSetparam.base.nextExtension); EXPECT_EQ(0u, extSetparam.base.flags); EXPECT_EQ(static_cast(DrmPrelimHelper::getAccContextParam()), extSetparam.param.param); EXPECT_EQ(DrmPrelimHelper::getAccContextParamSize(), extSetparam.param.size); - EXPECT_EQ(0u, extSetparam.param.ctx_id); + EXPECT_EQ(0u, extSetparam.param.contextId); EXPECT_NE(0u, extSetparam.param.value); auto paramAcc = drm.context.receivedContextParamAcc;