From 11a714d4b61922084718b597bd6018d0370ca009 Mon Sep 17 00:00:00 2001 From: Nav Date: Sat, 16 Mar 2024 16:22:35 +0000 Subject: [PATCH] Used `TargetMemoryAddressRange` in address space and memory segment descriptors --- src/Targets/TargetAddressSpaceDescriptor.hpp | 13 +++++++------ .../TargetDescription/TargetDescriptionFile.cpp | 12 ++++++++---- src/Targets/TargetMemorySegmentDescriptor.hpp | 13 +++++++------ 3 files changed, 22 insertions(+), 16 deletions(-) diff --git a/src/Targets/TargetAddressSpaceDescriptor.hpp b/src/Targets/TargetAddressSpaceDescriptor.hpp index fe279c1e..b05bfb49 100644 --- a/src/Targets/TargetAddressSpaceDescriptor.hpp +++ b/src/Targets/TargetAddressSpaceDescriptor.hpp @@ -19,26 +19,27 @@ namespace Targets public: const TargetAddressSpaceDescriptorId id; std::string key; - TargetMemoryAddress startAddress; - TargetMemorySize size; + TargetMemoryAddressRange addressRange; TargetMemoryEndianness endianness; std::map segmentDescriptorsByKey; TargetAddressSpaceDescriptor( const std::string& key, - TargetMemoryAddress startAddress, - TargetMemorySize size, + const TargetMemoryAddressRange& addressRange, TargetMemoryEndianness endianness, const std::map& 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> tryGetMemorySegmentDescriptor( const std::string& key ) const { diff --git a/src/Targets/TargetDescription/TargetDescriptionFile.cpp b/src/Targets/TargetDescription/TargetDescriptionFile.cpp index 93b6ac3b..dac9ead9 100644 --- a/src/Targets/TargetDescription/TargetDescriptionFile.cpp +++ b/src/Targets/TargetDescription/TargetDescriptionFile.cpp @@ -695,8 +695,10 @@ namespace Targets::TargetDescription ) { auto output = TargetAddressSpaceDescriptor( addressSpace.key, - addressSpace.startAddress, - addressSpace.size, + TargetMemoryAddressRange( + addressSpace.startAddress, + addressSpace.startAddress + addressSpace.size - 1 + ), addressSpace.endianness.value_or(TargetMemoryEndianness::LITTLE), {} ); @@ -718,8 +720,10 @@ namespace Targets::TargetDescription memorySegment.key, memorySegment.name, memorySegment.type, - memorySegment.startAddress, - memorySegment.size, + TargetMemoryAddressRange( + memorySegment.startAddress, + memorySegment.startAddress + memorySegment.size - 1 + ), memorySegment.access, memorySegment.access, memorySegment.pageSize diff --git a/src/Targets/TargetMemorySegmentDescriptor.hpp b/src/Targets/TargetMemorySegmentDescriptor.hpp index 00e99aa6..31428077 100644 --- a/src/Targets/TargetMemorySegmentDescriptor.hpp +++ b/src/Targets/TargetMemorySegmentDescriptor.hpp @@ -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 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 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(); + } }; }