41 lines
881 B
C++
41 lines
881 B
C++
#pragma once
|
|
|
|
#include <cstdint>
|
|
#include <optional>
|
|
#include <cassert>
|
|
|
|
#include "TargetMemory.hpp"
|
|
#include "TargetAddressSpaceDescriptor.hpp"
|
|
#include "TargetMemorySegmentDescriptor.hpp"
|
|
|
|
namespace Targets
|
|
{
|
|
enum class TargetBreakCause: std::uint8_t
|
|
{
|
|
BREAKPOINT,
|
|
UNKNOWN,
|
|
};
|
|
|
|
struct TargetProgramBreakpoint
|
|
{
|
|
enum class Type: std::uint8_t
|
|
{
|
|
HARDWARE,
|
|
SOFTWARE,
|
|
};
|
|
|
|
const TargetAddressSpaceDescriptor& addressSpaceDescriptor;
|
|
const TargetMemorySegmentDescriptor& memorySegmentDescriptor;
|
|
TargetMemoryAddress address;
|
|
TargetMemorySize size;
|
|
Type type;
|
|
};
|
|
|
|
struct BreakpointResources
|
|
{
|
|
std::uint32_t hardwareBreakpoints = 0;
|
|
std::uint32_t softwareBreakpoints = 0;
|
|
std::uint32_t reservedHardwareBreakpoints = 0;
|
|
};
|
|
}
|