diff --git a/tests/kfdtest/src/BaseDebug.cpp b/tests/kfdtest/src/BaseDebug.cpp index a673ad8448..1de15f80e6 100644 --- a/tests/kfdtest/src/BaseDebug.cpp +++ b/tests/kfdtest/src/BaseDebug.cpp @@ -146,3 +146,16 @@ HSAKMT_STATUS BaseDebug::QueryDebugEvent(uint64_t *exceptions, return result; } + +void BaseDebug::SetExceptionsEnabled(uint64_t exceptions) +{ + struct kfd_ioctl_dbg_trap_args args = {0}; + + memset(&args, 0x00, sizeof(args)); + + args.pid = m_Pid; + args.op = KFD_IOC_DBG_TRAP_SET_EXCEPTIONS_ENABLED; + args.set_exceptions_enabled.exception_mask = exceptions; + + hsaKmtDebugTrapIoctl(&args, NULL); +} diff --git a/tests/kfdtest/src/BaseDebug.hpp b/tests/kfdtest/src/BaseDebug.hpp index eede721a7c..f744761b5c 100644 --- a/tests/kfdtest/src/BaseDebug.hpp +++ b/tests/kfdtest/src/BaseDebug.hpp @@ -44,6 +44,7 @@ class BaseDebug { HSAKMT_STATUS QueryDebugEvent(uint64_t *exceptions, uint32_t *gpuId, uint32_t *queueId, int timeoutMsec); + void SetExceptionsEnabled(uint64_t exceptions); private: unsigned int m_Pid;