mirror of
https://github.com/boykopovar/AnyPS5.git
synced 2026-11-04 13:07:32 +00:00
feat(relinker): report instruction conversion progress for executables and modules
This commit is contained in:
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 = {});
|
||||
|
||||
Reference in new issue
Block a user