mirror of
https://github.com/intel/compute-runtime.git
synced 2025-12-29 17:13:29 +08:00
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:
committed by
Compute-Runtime-Automation
parent
a858f159cf
commit
5df120ddbc
@@ -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)];
|
||||
|
||||
@@ -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)));
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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)));
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user