#pragma once #include #include #include "TargetMemory.hpp" #include "TargetMemorySegmentType.hpp" namespace Targets { struct TargetMemorySegmentDescriptor { public: std::string key; std::string name; TargetMemorySegmentType type; TargetMemoryAddressRange addressRange; TargetMemoryAccess debugModeAccess; TargetMemoryAccess programmingModeAccess; std::optional pageSize; TargetMemorySegmentDescriptor( const std::string& key, const std::string& name, TargetMemorySegmentType type, const TargetMemoryAddressRange& addressRange, const TargetMemoryAccess& debugModeAccess, const TargetMemoryAccess& programmingModeAccess, std::optional pageSize ) : key(key) , name(name) , type(type) , addressRange(addressRange) , debugModeAccess(debugModeAccess) , programmingModeAccess(programmingModeAccess) , pageSize(pageSize) {}; TargetMemorySize size() const { return this->addressRange.size(); } }; }