Files
AnyPS5/core/relinker/src/ValidationPolicy.hpp
T
2026-08-03 20:02:52 +03:00

32 lines
1.1 KiB
C++

#ifndef RELINKER_SRC_VALIDATIONPOLICY_HPP
#define RELINKER_SRC_VALIDATIONPOLICY_HPP
#include <relinker/IValidationPolicy.hpp>
#include <set>
namespace Relinker {
class ValidationPolicy : public IValidationPolicy {
public:
ValidationPolicy() = default;
void ValidateSyscallAbsence() override;
void ValidateRelocationTypeSupported(std::uint32_t RelocationTypeValue, Offset Offset) override;
void ValidateNidBelongsToLibrary(const std::string& Nid, const std::string& Library) override;
void ValidateSceStructureSize(Size ExpectedSize, Size ActualSize, Offset Offset) override;
void ValidateDynamicFieldInterpretable(const std::string& FieldName, Offset Offset) override;
void ValidateNoSyscallInstructions(const std::vector<std::uint8_t>& CodeSection, Offset CodeOffset) override;
void RegisterLibraryImport(const std::string& Library);
private:
std::set<std::string> _importedLibraries;
std::set<std::uint32_t> _supportedRelocationTypes;
void _initializeSupportedRelocationTypes();
};
}
#endif // RELINKER_SRC_VALIDATIONPOLICY_HPP