mirror of
https://github.com/revng/revng
synced 2026-06-21 14:07:57 +00:00
51 lines
1.3 KiB
C++
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
|