feat(relinker): report instruction conversion progress for executables and modules

This commit is contained in:
boykopovar committed 2026-10-13 12:57:54 +03:00
1 parent b42aa8c540
commit 6224febfb0
10 files changed
+69 -64

No files matched your search

@@ -4,6 +4,7 @@
#include <codegen/CodegenTypes.hpp>
#include <domain/Types.hpp>
#include <memory>
#include <functional>
#include <vector>
namespace Codegen {
@@ -12,13 +13,10 @@ class IAmd64OnlyConverter {
public:
virtual ~IAmd64OnlyConverter() = default;
[[nodiscard]] virtual ConvertResult Convert(
std::vector<std::uint8_t> fileBytes,
const std::vector<Domain::ProgramHeader>& segments
) const = 0;
[[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);
std::unique_ptr<IAmd64OnlyConverter> MakeAmd64OnlyConverter(Amd64OnlyTarget target = Amd64OnlyTarget::Intel, std::function<void(std::uint64_t, std::uint64_t)> progress = {});
}
@@ -13,11 +13,7 @@ class IInstructionScanner {
public:
virtual ~IInstructionScanner() = default;
[[nodiscard]] virtual std::vector<InstructionMatch> ScanCodeSection(
const std::vector<std::uint8_t>& codeSection,
Domain::FileByteOffset codeSectionOffset,
Domain::FileByteOffset codeSectionSize
) const = 0;
[[nodiscard]] virtual std::vector<InstructionMatch> ScanCodeSection(const std::vector<std::uint8_t>& codeSection, Domain::FileByteOffset codeSectionOffset, Domain::FileByteOffset codeSectionSize) const = 0;
};
std::unique_ptr<IInstructionScanner> MakeInstructionScanner(std::function<void(std::uint64_t, std::uint64_t)> progress = {});