]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - tools/yaml2obj/yaml2obj.h
Vendor import of llvm release_40 branch r292009:
[FreeBSD/FreeBSD.git] / tools / yaml2obj / yaml2obj.h
1 //===--- yaml2obj.h - -------------------------------------------*- 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 //===----------------------------------------------------------------------===//
9 /// \file
10 /// \brief Common declarations for yaml2obj
11 //===----------------------------------------------------------------------===//
12 #ifndef LLVM_TOOLS_YAML2OBJ_YAML2OBJ_H
13 #define LLVM_TOOLS_YAML2OBJ_YAML2OBJ_H
14
15 namespace llvm {
16 class raw_ostream;
17
18 namespace COFFYAML {
19 struct Object;
20 }
21
22 namespace ELFYAML {
23 struct Object;
24 }
25
26 namespace DWARFYAML {
27 struct Data;
28 struct PubSection;
29 }
30
31 namespace yaml {
32 class Input;
33 struct YamlObjectFile;
34 }
35 }
36
37 int yaml2coff(llvm::COFFYAML::Object &Doc, llvm::raw_ostream &Out);
38 int yaml2elf(llvm::ELFYAML::Object &Doc, llvm::raw_ostream &Out);
39 int yaml2macho(llvm::yaml::YamlObjectFile &Doc, llvm::raw_ostream &Out);
40
41 void yaml2debug_abbrev(llvm::raw_ostream &OS, const llvm::DWARFYAML::Data &DI);
42 void yaml2debug_str(llvm::raw_ostream &OS, const llvm::DWARFYAML::Data &DI);
43
44 void yaml2debug_aranges(llvm::raw_ostream &OS, const llvm::DWARFYAML::Data &DI);
45 void yaml2pubsection(llvm::raw_ostream &OS,
46                      const llvm::DWARFYAML::PubSection &Sect,
47                      bool IsLittleEndian);
48 void yaml2debug_info(llvm::raw_ostream &OS, const llvm::DWARFYAML::Data &DI);
49 void yaml2debug_line(llvm::raw_ostream &OS, const llvm::DWARFYAML::Data &DI);
50
51 #endif