From e7a30076d06cae28bf627e54548de4d7d5a7e217 Mon Sep 17 00:00:00 2001 From: Nav Date: Sat, 9 Oct 2021 19:17:58 +0100 Subject: [PATCH] New TargetMemoryDescriptor struct --- src/Targets/TargetDescriptor.hpp | 3 ++- src/Targets/TargetMemory.hpp | 12 ++++++++++++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/src/Targets/TargetDescriptor.hpp b/src/Targets/TargetDescriptor.hpp index 99f71bf4..c4348c82 100644 --- a/src/Targets/TargetDescriptor.hpp +++ b/src/Targets/TargetDescriptor.hpp @@ -5,6 +5,7 @@ #include #include +#include "TargetMemory.hpp" #include "TargetRegister.hpp" #include "TargetVariant.hpp" @@ -14,7 +15,7 @@ namespace Bloom::Targets { std::string name; std::string id; - std::uint32_t ramSize; + std::map memoryDescriptorsByType; std::map registerDescriptorsByType; std::vector variants; }; diff --git a/src/Targets/TargetMemory.hpp b/src/Targets/TargetMemory.hpp index 7d2dfd03..c1c212f2 100644 --- a/src/Targets/TargetMemory.hpp +++ b/src/Targets/TargetMemory.hpp @@ -22,6 +22,18 @@ namespace Bloom::Targets TargetMemoryAddressRange(std::uint32_t startAddress, std::uint32_t endAddress) : startAddress(startAddress), endAddress(endAddress) {}; }; + + struct TargetMemoryDescriptor + { + TargetMemoryType type; + TargetMemoryAddressRange addressRange; + + TargetMemoryDescriptor(TargetMemoryType type, TargetMemoryAddressRange addressRange) + : type(type), addressRange(addressRange) {}; + + std::uint32_t size() const { + return this->addressRange.endAddress - this->addressRange.startAddress; + } }; using TargetMemoryBuffer = std::vector;