From bb71f92ca938aeb4a7b3a2cb1f8f1b64966db6a3 Mon Sep 17 00:00:00 2001 From: Mateusz Jablonski Date: Wed, 1 Jun 2022 18:53:00 +0000 Subject: [PATCH] Move common ioctl request values to common method Related-To: NEO-7028 Signed-off-by: Mateusz Jablonski --- .../os_interface/linux/ioctl_helper.cpp | 50 +++++++++++++++++++ .../source/os_interface/linux/ioctl_helper.h | 1 + .../linux/ioctl_helper_prelim.cpp | 45 +---------------- .../linux/ioctl_helper_upstream.cpp | 45 +---------------- 4 files changed, 53 insertions(+), 88 deletions(-) diff --git a/shared/source/os_interface/linux/ioctl_helper.cpp b/shared/source/os_interface/linux/ioctl_helper.cpp index 303d862eb9..5d7b862973 100644 --- a/shared/source/os_interface/linux/ioctl_helper.cpp +++ b/shared/source/os_interface/linux/ioctl_helper.cpp @@ -106,6 +106,56 @@ uint32_t IoctlHelper::createDrmContext(Drm &drm, const OsContext &osContext, uin return drmContextId; } +unsigned int IoctlHelper::getIoctlRequestValueBase(DrmIoctl ioctlRequest) const { + switch (ioctlRequest) { + case DrmIoctl::GemExecbuffer2: + return DRM_IOCTL_I915_GEM_EXECBUFFER2; + case DrmIoctl::GemWait: + return DRM_IOCTL_I915_GEM_WAIT; + case DrmIoctl::GemClose: + return DRM_IOCTL_GEM_CLOSE; + case DrmIoctl::GemUserptr: + return DRM_IOCTL_I915_GEM_USERPTR; + case DrmIoctl::GemCreate: + return DRM_IOCTL_I915_GEM_CREATE; + case DrmIoctl::GemSetDomain: + return DRM_IOCTL_I915_GEM_SET_DOMAIN; + case DrmIoctl::GemSetTiling: + return DRM_IOCTL_I915_GEM_SET_TILING; + case DrmIoctl::GemGetTiling: + return DRM_IOCTL_I915_GEM_GET_TILING; + case DrmIoctl::GemContextCreateExt: + return DRM_IOCTL_I915_GEM_CONTEXT_CREATE_EXT; + case DrmIoctl::GemContextDestroy: + return DRM_IOCTL_I915_GEM_CONTEXT_DESTROY; + case DrmIoctl::RegRead: + return DRM_IOCTL_I915_REG_READ; + case DrmIoctl::GetResetStats: + return DRM_IOCTL_I915_GET_RESET_STATS; + case DrmIoctl::GemContextGetparam: + return DRM_IOCTL_I915_GEM_CONTEXT_GETPARAM; + case DrmIoctl::GemContextSetparam: + return DRM_IOCTL_I915_GEM_CONTEXT_SETPARAM; + case DrmIoctl::Query: + return DRM_IOCTL_I915_QUERY; + case DrmIoctl::GemMmap: + return DRM_IOCTL_I915_GEM_MMAP; + case DrmIoctl::PrimeFdToHandle: + return DRM_IOCTL_PRIME_FD_TO_HANDLE; + case DrmIoctl::PrimeHandleToFd: + return DRM_IOCTL_PRIME_HANDLE_TO_FD; + case DrmIoctl::GemMmapOffset: + return DRM_IOCTL_I915_GEM_MMAP_OFFSET; + case DrmIoctl::GemVmCreate: + return DRM_IOCTL_I915_GEM_VM_CREATE; + case DrmIoctl::GemVmDestroy: + return DRM_IOCTL_I915_GEM_VM_DESTROY; + default: + UNRECOVERABLE_IF(true); + return 0u; + } +} + int IoctlHelper::getDrmParamValueBase(DrmParam drmParam) const { switch (drmParam) { case DrmParam::EngineClassRender: diff --git a/shared/source/os_interface/linux/ioctl_helper.h b/shared/source/os_interface/linux/ioctl_helper.h index 51e3c75428..9f1b523386 100644 --- a/shared/source/os_interface/linux/ioctl_helper.h +++ b/shared/source/os_interface/linux/ioctl_helper.h @@ -123,6 +123,7 @@ class IoctlHelper { void fillExecBuffer(ExecBuffer &execBuffer, uintptr_t buffersPtr, uint32_t bufferCount, uint32_t startOffset, uint32_t size, uint64_t flags, uint32_t drmContextId); void logExecBuffer(const ExecBuffer &execBuffer, std::stringstream &logger); int getDrmParamValueBase(DrmParam drmParam) const; + unsigned int getIoctlRequestValueBase(DrmIoctl ioctlRequest) const; }; class IoctlHelperUpstream : public IoctlHelper { diff --git a/shared/source/os_interface/linux/ioctl_helper_prelim.cpp b/shared/source/os_interface/linux/ioctl_helper_prelim.cpp index 8df6a8bedf..f96c6470d8 100644 --- a/shared/source/os_interface/linux/ioctl_helper_prelim.cpp +++ b/shared/source/os_interface/linux/ioctl_helper_prelim.cpp @@ -552,42 +552,6 @@ bool IoctlHelperPrelim20::isDebugAttachAvailable() { unsigned int IoctlHelperPrelim20::getIoctlRequestValue(DrmIoctl ioctlRequest) { switch (ioctlRequest) { - case DrmIoctl::GemExecbuffer2: - return DRM_IOCTL_I915_GEM_EXECBUFFER2; - case DrmIoctl::GemWait: - return DRM_IOCTL_I915_GEM_WAIT; - case DrmIoctl::GemClose: - return DRM_IOCTL_GEM_CLOSE; - case DrmIoctl::GemUserptr: - return DRM_IOCTL_I915_GEM_USERPTR; - case DrmIoctl::GemCreate: - return DRM_IOCTL_I915_GEM_CREATE; - case DrmIoctl::GemSetDomain: - return DRM_IOCTL_I915_GEM_SET_DOMAIN; - case DrmIoctl::GemSetTiling: - return DRM_IOCTL_I915_GEM_SET_TILING; - case DrmIoctl::GemGetTiling: - return DRM_IOCTL_I915_GEM_GET_TILING; - case DrmIoctl::GemContextCreateExt: - return DRM_IOCTL_I915_GEM_CONTEXT_CREATE_EXT; - case DrmIoctl::GemContextDestroy: - return DRM_IOCTL_I915_GEM_CONTEXT_DESTROY; - case DrmIoctl::RegRead: - return DRM_IOCTL_I915_REG_READ; - case DrmIoctl::GetResetStats: - return DRM_IOCTL_I915_GET_RESET_STATS; - case DrmIoctl::GemContextGetparam: - return DRM_IOCTL_I915_GEM_CONTEXT_GETPARAM; - case DrmIoctl::GemContextSetparam: - return DRM_IOCTL_I915_GEM_CONTEXT_SETPARAM; - case DrmIoctl::Query: - return DRM_IOCTL_I915_QUERY; - case DrmIoctl::GemMmap: - return DRM_IOCTL_I915_GEM_MMAP; - case DrmIoctl::PrimeFdToHandle: - return DRM_IOCTL_PRIME_FD_TO_HANDLE; - case DrmIoctl::PrimeHandleToFd: - return DRM_IOCTL_PRIME_HANDLE_TO_FD; case DrmIoctl::GemVmBind: return PRELIM_DRM_IOCTL_I915_GEM_VM_BIND; case DrmIoctl::GemVmUnbind: @@ -612,15 +576,8 @@ unsigned int IoctlHelperPrelim20::getIoctlRequestValue(DrmIoctl ioctlRequest) { return PRELIM_DRM_IOCTL_I915_GEM_CLOS_FREE; case DrmIoctl::GemCacheReserve: return PRELIM_DRM_IOCTL_I915_GEM_CACHE_RESERVE; - case DrmIoctl::GemMmapOffset: - return DRM_IOCTL_I915_GEM_MMAP_OFFSET; - case DrmIoctl::GemVmCreate: - return DRM_IOCTL_I915_GEM_VM_CREATE; - case DrmIoctl::GemVmDestroy: - return DRM_IOCTL_I915_GEM_VM_DESTROY; default: - UNRECOVERABLE_IF(true); - return 0u; + return getIoctlRequestValueBase(ioctlRequest); } } diff --git a/shared/source/os_interface/linux/ioctl_helper_upstream.cpp b/shared/source/os_interface/linux/ioctl_helper_upstream.cpp index a453336994..40db345c13 100644 --- a/shared/source/os_interface/linux/ioctl_helper_upstream.cpp +++ b/shared/source/os_interface/linux/ioctl_helper_upstream.cpp @@ -234,53 +234,10 @@ bool IoctlHelperUpstream::isDebugAttachAvailable() { unsigned int IoctlHelperUpstream::getIoctlRequestValue(DrmIoctl ioctlRequest) { switch (ioctlRequest) { - case DrmIoctl::GemExecbuffer2: - return DRM_IOCTL_I915_GEM_EXECBUFFER2; - case DrmIoctl::GemWait: - return DRM_IOCTL_I915_GEM_WAIT; - case DrmIoctl::GemClose: - return DRM_IOCTL_GEM_CLOSE; - case DrmIoctl::GemUserptr: - return DRM_IOCTL_I915_GEM_USERPTR; - case DrmIoctl::GemCreate: - return DRM_IOCTL_I915_GEM_CREATE; case DrmIoctl::GemCreateExt: return DRM_IOCTL_I915_GEM_CREATE_EXT; - case DrmIoctl::GemSetDomain: - return DRM_IOCTL_I915_GEM_SET_DOMAIN; - case DrmIoctl::GemSetTiling: - return DRM_IOCTL_I915_GEM_SET_TILING; - case DrmIoctl::GemGetTiling: - return DRM_IOCTL_I915_GEM_GET_TILING; - case DrmIoctl::GemContextCreateExt: - return DRM_IOCTL_I915_GEM_CONTEXT_CREATE_EXT; - case DrmIoctl::GemContextDestroy: - return DRM_IOCTL_I915_GEM_CONTEXT_DESTROY; - case DrmIoctl::RegRead: - return DRM_IOCTL_I915_REG_READ; - case DrmIoctl::GetResetStats: - return DRM_IOCTL_I915_GET_RESET_STATS; - case DrmIoctl::GemContextGetparam: - return DRM_IOCTL_I915_GEM_CONTEXT_GETPARAM; - case DrmIoctl::GemContextSetparam: - return DRM_IOCTL_I915_GEM_CONTEXT_SETPARAM; - case DrmIoctl::Query: - return DRM_IOCTL_I915_QUERY; - case DrmIoctl::GemMmap: - return DRM_IOCTL_I915_GEM_MMAP; - case DrmIoctl::PrimeFdToHandle: - return DRM_IOCTL_PRIME_FD_TO_HANDLE; - case DrmIoctl::PrimeHandleToFd: - return DRM_IOCTL_PRIME_HANDLE_TO_FD; - case DrmIoctl::GemMmapOffset: - return DRM_IOCTL_I915_GEM_MMAP_OFFSET; - case DrmIoctl::GemVmCreate: - return DRM_IOCTL_I915_GEM_VM_CREATE; - case DrmIoctl::GemVmDestroy: - return DRM_IOCTL_I915_GEM_VM_DESTROY; default: - UNRECOVERABLE_IF(true); - return 0u; + return getIoctlRequestValueBase(ioctlRequest); } }