26 lines
581 B
C++
26 lines
581 B
C++
#ifndef CODEGEN_IAMD64ONLYCONVERTER_HPP
|
|
#define CODEGEN_IAMD64ONLYCONVERTER_HPP
|
|
|
|
#include <codegen/CodegenTypes.hpp>
|
|
#include <domain/Types.hpp>
|
|
#include <memory>
|
|
#include <vector>
|
|
|
|
namespace Codegen {
|
|
|
|
class IAmd64OnlyConverter {
|
|
public:
|
|
virtual ~IAmd64OnlyConverter() = default;
|
|
|
|
[[nodiscard]] virtual ConvertResult Convert(
|
|
std::vector<std::uint8_t> fileBytes,
|
|
const std::vector<Domain::ProgramHeader>& segments
|
|
) const = 0;
|
|
};
|
|
|
|
std::unique_ptr<IAmd64OnlyConverter> MakeAmd64OnlyConverter(Amd64OnlyTarget target = Amd64OnlyTarget::Intel);
|
|
|
|
}
|
|
|
|
#endif
|