1 //===------ utils/obj2yaml.hpp - obj2yaml conversion tool -------*- C++ -*-===//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 // This file declares some helper routines, and also the format-specific
9 // writers. To add a new format, add the declaration here, and, in a separate
10 // source file, implement it.
11 //===----------------------------------------------------------------------===//
12 
13 #ifndef LLVM_TOOLS_OBJ2YAML_OBJ2YAML_H
14 #define LLVM_TOOLS_OBJ2YAML_OBJ2YAML_H
15 
16 #include "llvm/Object/COFF.h"
17 #include "llvm/Object/Wasm.h"
18 #include "llvm/Support/raw_ostream.h"
19 #include <system_error>
20 
21 std::error_code coff2yaml(llvm::raw_ostream &Out,
22                           const llvm::object::COFFObjectFile &Obj);
23 std::error_code elf2yaml(llvm::raw_ostream &Out,
24                          const llvm::object::ObjectFile &Obj);
25 std::error_code macho2yaml(llvm::raw_ostream &Out,
26                            const llvm::object::Binary &Obj);
27 std::error_code wasm2yaml(llvm::raw_ostream &Out,
28                           const llvm::object::WasmObjectFile &Obj);
29 
30 // Forward decls for dwarf2yaml
31 namespace llvm {
32 class DWARFContext;
33 namespace DWARFYAML {
34 struct Data;
35 }
36 }
37 
38 std::error_code dwarf2yaml(llvm::DWARFContext &DCtx, llvm::DWARFYAML::Data &Y);
39 
40 #endif
41