Files
BloomPatched/src/DebugToolDrivers/Protocols/RiscVDebug/DebugTransportModuleInterface.hpp
2025-03-29 03:54:01 +00:00

49 lines
1.4 KiB
C++

#pragma once
#include "Common.hpp"
#include "DebugModule/DebugModule.hpp"
#include "DebugModule/Registers/RegisterAddresses.hpp"
namespace DebugToolDrivers::Protocols::RiscVDebug
{
/**
* Provides access to the RISC-V target's debug transport module (DTM).
*/
class DebugTransportModuleInterface
{
public:
virtual ~DebugTransportModuleInterface() = default;
/**
* Should read the value of a debug module register.
*
* @param address
*
* @return
*/
virtual DebugModule::RegisterValue readDebugModuleRegister(DebugModule::RegisterAddress address) = 0;
DebugModule::RegisterValue readDebugModuleRegister(DebugModule::Registers::RegisterAddress address) {
return this->readDebugModuleRegister(static_cast<DebugModule::RegisterAddress>(address));
};
/**
* Should write a value to a debug module register.
*
* @param address
* @param value
*/
virtual void writeDebugModuleRegister(
DebugModule::RegisterAddress address,
DebugModule::RegisterValue value
) = 0;
void writeDebugModuleRegister(
DebugModule::Registers::RegisterAddress address,
DebugModule::RegisterValue value
) {
return this->writeDebugModuleRegister(static_cast<DebugModule::RegisterAddress>(address), value);
};
};
}