#ifndef LLVM_LIB_OBJCOPY_ELF_ELFOBJECT_H
#define LLVM_LIB_OBJCOPY_ELF_ELFOBJECT_H
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/Twine.h"
#include "llvm/BinaryFormat/ELF.h"
#include "llvm/MC/StringTableBuilder.h"
#include "llvm/ObjCopy/CommonConfig.h"
#include "llvm/Object/ELFObjectFile.h"
#include "llvm/Support/Errc.h"
#include "llvm/Support/FileOutputBuffer.h"
#include "llvm/Support/MemoryBuffer.h"
#include <cstddef>
#include <cstdint>
#include <functional>
#include <memory>
#include <set>
#include <vector>
namespace llvm {
enum class DebugCompressionType;
namespace objcopy {
namespace elf {
class SectionBase;
class Section;
class OwnedDataSection;
class StringTableSection;
class SymbolTableSection;
class RelocationSection;
class DynamicRelocationSection;
class GnuDebugLinkSection;
class GroupSection;
class SectionIndexSection;
class CompressedSection;
class DecompressedSection;
class Segment;
class Object;
struct Symbol;
class SectionTableRef { … };
enum ElfType { … };
class SectionVisitor { … };
class MutableSectionVisitor { … };
class SectionWriter : public SectionVisitor { … };
template <class ELFT> class ELFSectionWriter : public SectionWriter { … };
template <class ELFT> class ELFSectionSizer : public MutableSectionVisitor { … };
#define MAKE_SEC_WRITER_FRIEND …
class BinarySectionWriter : public SectionWriter { … };
IHexLineData;
struct IHexRecord { … };
class IHexSectionWriterBase : public BinarySectionWriter { … };
class IHexSectionWriter : public IHexSectionWriterBase { … };
class Writer { … };
template <class ELFT> class ELFWriter : public Writer { … };
class BinaryWriter : public Writer { … };
class ASCIIHexWriter : public Writer { … };
class IHexWriter : public ASCIIHexWriter { … };
class SRECWriter : public ASCIIHexWriter { … };
SRecLineData;
struct SRecord { … };
class SRECSectionWriterBase : public BinarySectionWriter { … };
class SRECSizeCalculator : public SRECSectionWriterBase { … };
class SRECSectionWriter : public SRECSectionWriterBase { … };
class SectionBase { … };
class Segment { … };
class Section : public SectionBase { … };
class OwnedDataSection : public SectionBase { … };
class CompressedSection : public SectionBase { … };
class DecompressedSection : public SectionBase { … };
class StringTableSection : public SectionBase { … };
enum SymbolShndxType { … };
struct Symbol { … };
class SectionIndexSection : public SectionBase { … };
class SymbolTableSection : public SectionBase { … };
struct Relocation { … };
class RelocationSectionBase : public SectionBase { … };
template <class SymTabType>
class RelocSectionWithSymtabBase : public RelocationSectionBase { … };
class RelocationSection
: public RelocSectionWithSymtabBase<SymbolTableSection> { … };
class GroupSection : public SectionBase { … };
class DynamicSymbolTableSection : public Section { … };
class DynamicSection : public Section { … };
class DynamicRelocationSection
: public RelocSectionWithSymtabBase<DynamicSymbolTableSection> { … };
class GnuDebugLinkSection : public SectionBase { … };
class Reader { … };
Binary;
ELFFile;
ELFObjectFile;
OwningBinary;
class BasicELFBuilder { … };
class BinaryELFBuilder : public BasicELFBuilder { … };
class IHexELFBuilder : public BasicELFBuilder { … };
template <class ELFT> class ELFBuilder { … };
class BinaryReader : public Reader { … };
class IHexReader : public Reader { … };
class ELFReader : public Reader { … };
class Object { … };
}
}
}
#endif