Files
2025-12-10 15:05:53 +01:00

51 lines
1.3 KiB
C++

#pragma once
//
// This file is distributed under the MIT License. See LICENSE.md for details.
//
#include "llvm/ADT/ArrayRef.h"
#include "llvm/Support/raw_ostream.h"
#include "revng/PipeboxCommon/BinariesContainer.h"
#include "revng/PipeboxCommon/Common.h"
#include "revng/Pipeline/Contract.h"
#include "revng/Pipeline/Target.h"
#include "revng/Pipes/FileContainer.h"
#include "revng/Pipes/Kinds.h"
namespace revng::pipes {
class ImportBinaryAnalysis {
public:
static constexpr auto Name = "import-binary";
public:
std::vector<std::vector<pipeline::Kind *>> AcceptedKinds = {
{ &revng::kinds::Binary }
};
public:
llvm::Error run(pipeline::ExecutionContext &Context,
const BinaryFileContainer &SourceBinary);
};
} // namespace revng::pipes
namespace revng::pypeline::analyses {
/// This Analysis, given the BinariesContainer containing the input binaries,
/// will import the segments of the binary (by reading the ELF/Mach-O/PECOFF)
/// and try and import debugging information for it and any library it uses.
class ParseBinaryAnalysis {
public:
static constexpr llvm::StringRef Name = "parse-binary";
llvm::Error run(Model &Model,
const Request &Incoming,
llvm::StringRef Configuration,
const BinariesContainer &Binaries);
};
} // namespace revng::pypeline::analyses