Used TargetMemoryAddressRange in address space and memory segment descriptors

This commit is contained in:
Nav
2024-03-16 16:22:35 +00:00
parent 4675d1fddc
commit 11a714d4b6
3 changed files with 22 additions and 16 deletions

View File

@@ -19,26 +19,27 @@ namespace Targets
public:
const TargetAddressSpaceDescriptorId id;
std::string key;
TargetMemoryAddress startAddress;
TargetMemorySize size;
TargetMemoryAddressRange addressRange;
TargetMemoryEndianness endianness;
std::map<std::string, TargetMemorySegmentDescriptor> segmentDescriptorsByKey;
TargetAddressSpaceDescriptor(
const std::string& key,
TargetMemoryAddress startAddress,
TargetMemorySize size,
const TargetMemoryAddressRange& addressRange,
TargetMemoryEndianness endianness,
const std::map<std::string, TargetMemorySegmentDescriptor>& segmentDescriptorsByKey
)
: id(++(TargetAddressSpaceDescriptor::lastAddressSpaceDescriptorId))
, key(key)
, startAddress(startAddress)
, size(size)
, addressRange(addressRange)
, endianness(endianness)
, segmentDescriptorsByKey(segmentDescriptorsByKey)
{};
TargetMemorySize size() const {
return this->addressRange.size();
}
std::optional<std::reference_wrapper<const TargetMemorySegmentDescriptor>> tryGetMemorySegmentDescriptor(
const std::string& key
) const {

View File

@@ -695,8 +695,10 @@ namespace Targets::TargetDescription
) {
auto output = TargetAddressSpaceDescriptor(
addressSpace.key,
TargetMemoryAddressRange(
addressSpace.startAddress,
addressSpace.size,
addressSpace.startAddress + addressSpace.size - 1
),
addressSpace.endianness.value_or(TargetMemoryEndianness::LITTLE),
{}
);
@@ -718,8 +720,10 @@ namespace Targets::TargetDescription
memorySegment.key,
memorySegment.name,
memorySegment.type,
TargetMemoryAddressRange(
memorySegment.startAddress,
memorySegment.size,
memorySegment.startAddress + memorySegment.size - 1
),
memorySegment.access,
memorySegment.access,
memorySegment.pageSize

View File

@@ -14,8 +14,7 @@ namespace Targets
std::string key;
std::string name;
TargetMemorySegmentType type;
TargetMemoryAddress startAddress;
TargetMemorySize size;
TargetMemoryAddressRange addressRange;
TargetMemoryAccess debugModeAccess;
TargetMemoryAccess programmingModeAccess;
std::optional<TargetMemorySize> pageSize;
@@ -24,8 +23,7 @@ namespace Targets
const std::string& key,
const std::string& name,
TargetMemorySegmentType type,
TargetMemoryAddress startAddress,
TargetMemorySize size,
const TargetMemoryAddressRange& addressRange,
const TargetMemoryAccess& debugModeAccess,
const TargetMemoryAccess& programmingModeAccess,
std::optional<TargetMemorySize> pageSize
@@ -33,11 +31,14 @@ namespace Targets
: key(key)
, name(name)
, type(type)
, startAddress(startAddress)
, size(size)
, addressRange(addressRange)
, debugModeAccess(debugModeAccess)
, programmingModeAccess(programmingModeAccess)
, pageSize(pageSize)
{};
TargetMemorySize size() const {
return this->addressRange.size();
}
};
}