diff --git a/level_zero/tools/source/debug/linux/CMakeLists.txt b/level_zero/tools/source/debug/linux/CMakeLists.txt index 9cea8d0103..5366e06e3d 100644 --- a/level_zero/tools/source/debug/linux/CMakeLists.txt +++ b/level_zero/tools/source/debug/linux/CMakeLists.txt @@ -9,6 +9,7 @@ if(UNIX) PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/CMakeLists.txt ${CMAKE_CURRENT_SOURCE_DIR}/debug_session.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/drm_helper.cpp ) if(NEO_ENABLE_i915_PRELIM_DETECTION) @@ -16,7 +17,6 @@ if(UNIX) PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/prelim/debug_session.cpp ${CMAKE_CURRENT_SOURCE_DIR}/prelim/debug_session.h - ${CMAKE_CURRENT_SOURCE_DIR}/prelim/drm_helper.cpp ) endif() diff --git a/level_zero/tools/source/debug/linux/debug_session.cpp b/level_zero/tools/source/debug/linux/debug_session.cpp index d09094c979..f06ff9c44f 100644 --- a/level_zero/tools/source/debug/linux/debug_session.cpp +++ b/level_zero/tools/source/debug/linux/debug_session.cpp @@ -11,6 +11,7 @@ #include "shared/source/os_interface/linux/drm_neo.h" #include "level_zero/core/source/device/device.h" +#include "level_zero/tools/source/debug/linux/debug_session.h" #include "level_zero/tools/source/debug/linux/debug_session_factory.h" namespace L0 { @@ -51,4 +52,22 @@ DebugSession *DebugSession::create(const zet_debug_config_t &config, Device *dev } return debugSession; } + +ze_result_t DebugSessionLinux::translateDebuggerOpenErrno(int error) { + + ze_result_t result = ZE_RESULT_ERROR_UNKNOWN; + switch (error) { + case ENODEV: + result = ZE_RESULT_ERROR_UNSUPPORTED_FEATURE; + break; + case EBUSY: + result = ZE_RESULT_ERROR_NOT_AVAILABLE; + break; + case EACCES: + result = ZE_RESULT_ERROR_INSUFFICIENT_PERMISSIONS; + break; + } + return result; +} + } // namespace L0 diff --git a/level_zero/tools/source/debug/linux/debug_session.h b/level_zero/tools/source/debug/linux/debug_session.h new file mode 100644 index 0000000000..b839f5a2ab --- /dev/null +++ b/level_zero/tools/source/debug/linux/debug_session.h @@ -0,0 +1,17 @@ +/* + * Copyright (C) 2023 Intel Corporation + * + * SPDX-License-Identifier: MIT + * + */ + +#include "level_zero/tools/source/debug/debug_session.h" +#include "level_zero/tools/source/debug/debug_session_imp.h" + +namespace L0 { +struct DebugSessionLinux : DebugSessionImp { + + DebugSessionLinux(const zet_debug_config_t &config, Device *device) : DebugSessionImp(config, device){}; + static ze_result_t translateDebuggerOpenErrno(int error); +}; +} // namespace L0 \ No newline at end of file diff --git a/level_zero/tools/source/debug/linux/prelim/drm_helper.cpp b/level_zero/tools/source/debug/linux/drm_helper.cpp similarity index 95% rename from level_zero/tools/source/debug/linux/prelim/drm_helper.cpp rename to level_zero/tools/source/debug/linux/drm_helper.cpp index 6c28913720..4cb3159a3c 100644 --- a/level_zero/tools/source/debug/linux/prelim/drm_helper.cpp +++ b/level_zero/tools/source/debug/linux/drm_helper.cpp @@ -5,7 +5,7 @@ * */ -#include "level_zero/tools/source/debug/linux/prelim/drm_helper.h" +#include "level_zero/tools/source/debug/linux/drm_helper.h" #include "shared/source/os_interface/linux/drm_neo.h" #include "shared/source/os_interface/linux/engine_info.h" diff --git a/level_zero/tools/source/debug/linux/prelim/drm_helper.h b/level_zero/tools/source/debug/linux/drm_helper.h similarity index 93% rename from level_zero/tools/source/debug/linux/prelim/drm_helper.h rename to level_zero/tools/source/debug/linux/drm_helper.h index 7b32543110..e05a626fc5 100644 --- a/level_zero/tools/source/debug/linux/prelim/drm_helper.h +++ b/level_zero/tools/source/debug/linux/drm_helper.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2022 Intel Corporation + * Copyright (C) 2022-2023 Intel Corporation * * SPDX-License-Identifier: MIT * diff --git a/level_zero/tools/source/debug/linux/prelim/debug_session.cpp b/level_zero/tools/source/debug/linux/prelim/debug_session.cpp index 07bc46d043..92751cd891 100644 --- a/level_zero/tools/source/debug/linux/prelim/debug_session.cpp +++ b/level_zero/tools/source/debug/linux/prelim/debug_session.cpp @@ -26,7 +26,7 @@ #include "level_zero/core/source/gfx_core_helpers/l0_gfx_core_helper.h" #include "level_zero/include/zet_intel_gpu_debug.h" #include "level_zero/tools/source/debug/linux/debug_session_factory.h" -#include "level_zero/tools/source/debug/linux/prelim/drm_helper.h" +#include "level_zero/tools/source/debug/linux/drm_helper.h" #include #include "common/StateSaveAreaHeader.h" @@ -41,7 +41,7 @@ static DebugSessionLinuxPopulateFactoryioctl(fd, request, arg); } diff --git a/level_zero/tools/source/debug/linux/prelim/debug_session.h b/level_zero/tools/source/debug/linux/prelim/debug_session.h index 95494bc437..8df54d9aeb 100644 --- a/level_zero/tools/source/debug/linux/prelim/debug_session.h +++ b/level_zero/tools/source/debug/linux/prelim/debug_session.h @@ -16,6 +16,7 @@ #include "level_zero/core/source/device/device_imp.h" #include "level_zero/tools/source/debug/debug_session.h" #include "level_zero/tools/source/debug/debug_session_imp.h" +#include "level_zero/tools/source/debug/linux/debug_session.h" #include #include @@ -30,7 +31,7 @@ struct EngineClassInstance; namespace L0 { struct TileDebugSessionLinuxi915; -struct DebugSessionLinuxi915 : DebugSessionImp { +struct DebugSessionLinuxi915 : DebugSessionLinux { friend struct TileDebugSessionLinuxi915; @@ -171,8 +172,6 @@ struct DebugSessionLinuxi915 : DebugSessionImp { std::unordered_map uuidToModule; }; - static ze_result_t translateDebuggerOpenErrno(int error); - constexpr static uint64_t invalidClientHandle = std::numeric_limits::max(); constexpr static uint64_t invalidHandle = std::numeric_limits::max();