refactor: Add function to return eudebug interface type

Resolves: NEO-16006

Signed-off-by: Jemale Lockett <jemale.lockett@intel.com>
This commit is contained in:
Jemale Lockett
2025-10-13 21:05:51 +00:00
committed by Compute-Runtime-Automation
parent a858f159cf
commit 5df120ddbc
8 changed files with 29 additions and 6 deletions

View File

@@ -12,11 +12,17 @@
#include <string>
namespace NEO {
enum class EuDebugInterfaceType : uint32_t {
upstream,
prelim,
maxValue
};
class EuDebugInterface {
public:
static std::unique_ptr<EuDebugInterface> create(const std::string &sysFsPciPath);
virtual uint32_t getParamValue(EuDebugParam param) const = 0;
virtual bool isExecQueuePageFaultEnableSupported() { return false; };
virtual EuDebugInterfaceType getInterfaceType() const = 0;
virtual ~EuDebugInterface() = default;
virtual std::unique_ptr<EuDebugEventEuAttention, void (*)(EuDebugEventEuAttention *)> toEuDebugEventEuAttention(const void *drmType) = 0;
@@ -39,12 +45,6 @@ class EuDebugInterface {
virtual std::unique_ptr<void, void (*)(void *)> toDrmEuDebugAckEvent(const EuDebugAckEvent &ackEvent) = 0;
};
enum class EuDebugInterfaceType : uint32_t {
upstream,
prelim,
maxValue
};
using EuDebugInterfaceCreateFunctionType = std::unique_ptr<EuDebugInterface> (*)();
extern const char *eudebugSysfsEntry[static_cast<uint32_t>(EuDebugInterfaceType::maxValue)];
extern EuDebugInterfaceCreateFunctionType eudebugInterfaceFactory[static_cast<uint32_t>(EuDebugInterfaceType::maxValue)];

View File

@@ -92,6 +92,10 @@ uint32_t EuDebugInterfacePrelim::getParamValue(EuDebugParam param) const {
return 0;
}
EuDebugInterfaceType EuDebugInterfacePrelim::getInterfaceType() const {
return EuDebugInterfaceType::prelim;
}
std::unique_ptr<EuDebugEventEuAttention, void (*)(EuDebugEventEuAttention *)> EuDebugInterfacePrelim::toEuDebugEventEuAttention(const void *drmType) {
const prelim_drm_xe_eudebug_event_eu_attention *event = static_cast<const prelim_drm_xe_eudebug_event_eu_attention *>(drmType);
EuDebugEventEuAttention *pEuAttentionEvent = static_cast<EuDebugEventEuAttention *>(malloc(sizeof(EuDebugEventEuAttention) + event->bitmask_size * sizeof(uint8_t)));

View File

@@ -14,6 +14,7 @@ class EuDebugInterfacePrelim : public EuDebugInterface {
uint32_t getParamValue(EuDebugParam param) const override;
bool isExecQueuePageFaultEnableSupported() override;
uint32_t getAdditionalParamValue(EuDebugParam param) const;
EuDebugInterfaceType getInterfaceType() const override;
std::unique_ptr<EuDebugEventEuAttention, void (*)(EuDebugEventEuAttention *)> toEuDebugEventEuAttention(const void *drmType) override;
EuDebugEventClient toEuDebugEventClient(const void *drmType) override;

View File

@@ -93,6 +93,10 @@ uint32_t EuDebugInterfaceUpstream::getParamValue(EuDebugParam param) const {
return 0;
}
EuDebugInterfaceType EuDebugInterfaceUpstream::getInterfaceType() const {
return EuDebugInterfaceType::upstream;
}
std::unique_ptr<EuDebugEventEuAttention, void (*)(EuDebugEventEuAttention *)> EuDebugInterfaceUpstream::toEuDebugEventEuAttention(const void *drmType) {
const drm_xe_eudebug_event_eu_attention *event = static_cast<const drm_xe_eudebug_event_eu_attention *>(drmType);
EuDebugEventEuAttention *pEuAttentionEvent = static_cast<EuDebugEventEuAttention *>(malloc(sizeof(EuDebugEventEuAttention) + event->bitmask_size * sizeof(uint8_t)));

View File

@@ -14,6 +14,7 @@ class EuDebugInterfaceUpstream : public EuDebugInterface {
static constexpr const char *sysFsXeEuDebugFile = "/device/enable_eudebug";
uint32_t getParamValue(EuDebugParam param) const override;
EuDebugInterfaceType getInterfaceType() const override;
std::unique_ptr<EuDebugEventEuAttention, void (*)(EuDebugEventEuAttention *)> toEuDebugEventEuAttention(const void *drmType) override;
EuDebugEventClient toEuDebugEventClient(const void *drmType) override;