Files
BloomPatched/src/Targets/TargetBreakpoint.hpp

53 lines
1.2 KiB
C++
Raw Normal View History

2021-04-04 21:04:12 +01:00
#pragma once
#include <cstdint>
2023-09-20 23:37:54 +01:00
#include <optional>
2021-04-04 21:04:12 +01:00
#include "TargetMemory.hpp"
namespace Targets
2021-04-04 21:04:12 +01:00
{
2023-09-20 23:37:54 +01:00
enum class TargetBreakCause: std::uint8_t
2021-04-04 21:04:12 +01:00
{
BREAKPOINT,
UNKNOWN,
};
struct TargetBreakpoint
{
2023-09-20 23:37:54 +01:00
enum class Type: std::uint8_t
{
HARDWARE,
SOFTWARE,
};
2021-04-04 21:04:12 +01:00
/**
* Byte address of the breakpoint.
*/
TargetMemoryAddress address = 0;
2021-04-04 21:04:12 +01:00
2023-09-20 23:37:54 +01:00
Type type = Type::SOFTWARE;
TargetBreakpoint() = default;
2023-09-20 23:37:54 +01:00
explicit TargetBreakpoint(TargetMemoryAddress address, Type type = Type::SOFTWARE)
: address(address)
, type(type)
{};
};
struct BreakpointResources
{
std::optional<std::uint16_t> maximumHardwareBreakpoints;
std::optional<std::uint16_t> maximumSoftwareBreakpoints;
BreakpointResources(
std::optional<std::uint16_t> maximumHardwareBreakpoints,
std::optional<std::uint16_t> maximumSoftwareBreakpoints
)
: maximumHardwareBreakpoints(maximumHardwareBreakpoints)
, maximumSoftwareBreakpoints(maximumSoftwareBreakpoints)
{}
2021-04-04 21:04:12 +01:00
};
}