Files
BloomPatched/src/Targets/TargetDescriptor.hpp

50 lines
1.6 KiB
C++
Raw Normal View History

2021-04-04 21:04:12 +01:00
#pragma once
#include <string>
#include <cstdint>
#include <vector>
#include <map>
#include <algorithm>
#include <QMetaType>
2021-04-04 21:04:12 +01:00
#include "TargetFamily.hpp"
2021-10-09 19:17:58 +01:00
#include "TargetMemory.hpp"
#include "TargetAddressSpaceDescriptor.hpp"
#include "TargetPeripheralDescriptor.hpp"
2021-04-04 21:04:12 +01:00
#include "TargetVariant.hpp"
2023-09-20 23:37:54 +01:00
#include "TargetBreakpoint.hpp"
2021-04-04 21:04:12 +01:00
namespace Targets
2021-04-04 21:04:12 +01:00
{
struct TargetDescriptor
{
std::string name;
TargetFamily family;
std::string marketId;
2022-08-30 02:51:10 +01:00
std::string vendorName;
std::map<std::string, TargetAddressSpaceDescriptor> addressSpaceDescriptorsByKey;
std::map<std::string, TargetPeripheralDescriptor> peripheralDescriptorsByKey;
2021-04-04 21:04:12 +01:00
std::vector<TargetVariant> variants;
BreakpointResources breakpointResources;
TargetDescriptor(
2023-09-20 18:56:44 +01:00
const std::string& name,
TargetFamily family,
2023-09-20 18:56:44 +01:00
const std::string& vendorName,
const std::string& marketName,
const std::map<std::string, TargetAddressSpaceDescriptor>& addressSpaceDescriptorsByKey,
const std::map<std::string, TargetPeripheralDescriptor>& peripheralDescriptorsByKey,
2023-09-20 18:56:44 +01:00
const std::vector<TargetVariant>& variants,
const BreakpointResources& breakpointResources
);
std::optional<std::reference_wrapper<const TargetAddressSpaceDescriptor>> tryGetAddressSpaceDescriptor(
const std::string& key
) const;
const TargetAddressSpaceDescriptor& getAddressSpaceDescriptor(const std::string& key) const;
2021-04-04 21:04:12 +01:00
};
}
Q_DECLARE_METATYPE(Targets::TargetDescriptor)