diff options
Diffstat (limited to 'tools/llvm-readobj/ObjDumper.h')
| -rw-r--r-- | tools/llvm-readobj/ObjDumper.h | 60 | 
1 files changed, 60 insertions, 0 deletions
| diff --git a/tools/llvm-readobj/ObjDumper.h b/tools/llvm-readobj/ObjDumper.h new file mode 100644 index 000000000000..8d191cbe07de --- /dev/null +++ b/tools/llvm-readobj/ObjDumper.h @@ -0,0 +1,60 @@ +//===-- ObjDumper.h -------------------------------------------------------===// +// +//                     The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_READOBJ_OBJDUMPER_H +#define LLVM_READOBJ_OBJDUMPER_H + +namespace llvm { + +namespace object { +  class ObjectFile; +} + +class error_code; + +template<typename T> +class OwningPtr; + +class StreamWriter; + +class ObjDumper { +public: +  ObjDumper(StreamWriter& Writer); +  virtual ~ObjDumper(); + +  virtual void printFileHeaders() = 0; +  virtual void printSections() = 0; +  virtual void printRelocations() = 0; +  virtual void printSymbols() = 0; +  virtual void printDynamicSymbols() = 0; +  virtual void printUnwindInfo() = 0; + +  // Only implemented for ELF at this time. +  virtual void printDynamicTable() { } +  virtual void printNeededLibraries() { } + +protected: +  StreamWriter& W; +}; + +error_code createCOFFDumper(const object::ObjectFile *Obj, +                            StreamWriter& Writer, +                            OwningPtr<ObjDumper> &Result); + +error_code createELFDumper(const object::ObjectFile *Obj, +                           StreamWriter& Writer, +                           OwningPtr<ObjDumper> &Result); + +error_code createMachODumper(const object::ObjectFile *Obj, +                             StreamWriter& Writer, +                             OwningPtr<ObjDumper> &Result); + +} // namespace llvm + +#endif | 
