xref: /freebsd-src/contrib/llvm-project/llvm/tools/llvm-objdump/XCOFFDump.h (revision 5ffd83dbcc34f10e07f6d3e968ae6365869615f4)
1*5ffd83dbSDimitry Andric //===-- XCOFFDump.h ---------------------------------------------*- C++ -*-===//
2*5ffd83dbSDimitry Andric //
3*5ffd83dbSDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*5ffd83dbSDimitry Andric // See https://llvm.org/LICENSE.txt for license information.
5*5ffd83dbSDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*5ffd83dbSDimitry Andric //
7*5ffd83dbSDimitry Andric //===----------------------------------------------------------------------===//
8*5ffd83dbSDimitry Andric 
9*5ffd83dbSDimitry Andric #ifndef LLVM_TOOLS_LLVM_OBJDUMP_XCOFFDUMP_H
10*5ffd83dbSDimitry Andric #define LLVM_TOOLS_LLVM_OBJDUMP_XCOFFDUMP_H
11*5ffd83dbSDimitry Andric 
12*5ffd83dbSDimitry Andric #include "llvm/Object/XCOFFObjectFile.h"
13*5ffd83dbSDimitry Andric 
14*5ffd83dbSDimitry Andric namespace llvm {
15*5ffd83dbSDimitry Andric 
16*5ffd83dbSDimitry Andric struct SymbolInfoTy;
17*5ffd83dbSDimitry Andric 
18*5ffd83dbSDimitry Andric namespace objdump {
19*5ffd83dbSDimitry Andric Optional<XCOFF::StorageMappingClass>
20*5ffd83dbSDimitry Andric getXCOFFSymbolCsectSMC(const object::XCOFFObjectFile *Obj,
21*5ffd83dbSDimitry Andric                        const object::SymbolRef &Sym);
22*5ffd83dbSDimitry Andric 
23*5ffd83dbSDimitry Andric bool isLabel(const object::XCOFFObjectFile *Obj, const object::SymbolRef &Sym);
24*5ffd83dbSDimitry Andric 
25*5ffd83dbSDimitry Andric std::string getXCOFFSymbolDescription(const SymbolInfoTy &SymbolInfo,
26*5ffd83dbSDimitry Andric                                       StringRef SymbolName);
27*5ffd83dbSDimitry Andric 
28*5ffd83dbSDimitry Andric Error getXCOFFRelocationValueString(const object::XCOFFObjectFile *Obj,
29*5ffd83dbSDimitry Andric                                     const object::RelocationRef &RelRef,
30*5ffd83dbSDimitry Andric                                     llvm::SmallVectorImpl<char> &Result);
31*5ffd83dbSDimitry Andric } // namespace objdump
32*5ffd83dbSDimitry Andric } // namespace llvm
33*5ffd83dbSDimitry Andric #endif
34