xref: /freebsd-src/contrib/llvm-project/llvm/tools/llvm-objdump/XCOFFDump.h (revision bdd1243df58e60e85101c09001d9812a789b6bc4)
15ffd83dbSDimitry Andric //===-- XCOFFDump.h ---------------------------------------------*- C++ -*-===//
25ffd83dbSDimitry Andric //
35ffd83dbSDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
45ffd83dbSDimitry Andric // See https://llvm.org/LICENSE.txt for license information.
55ffd83dbSDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
65ffd83dbSDimitry Andric //
75ffd83dbSDimitry Andric //===----------------------------------------------------------------------===//
85ffd83dbSDimitry Andric 
95ffd83dbSDimitry Andric #ifndef LLVM_TOOLS_LLVM_OBJDUMP_XCOFFDUMP_H
105ffd83dbSDimitry Andric #define LLVM_TOOLS_LLVM_OBJDUMP_XCOFFDUMP_H
115ffd83dbSDimitry Andric 
125ffd83dbSDimitry Andric #include "llvm/Object/XCOFFObjectFile.h"
135ffd83dbSDimitry Andric 
145ffd83dbSDimitry Andric namespace llvm {
155ffd83dbSDimitry Andric 
165ffd83dbSDimitry Andric struct SymbolInfoTy;
175ffd83dbSDimitry Andric 
185ffd83dbSDimitry Andric namespace objdump {
19*bdd1243dSDimitry Andric std::optional<XCOFF::StorageMappingClass>
20753f127fSDimitry Andric getXCOFFSymbolCsectSMC(const object::XCOFFObjectFile &Obj,
215ffd83dbSDimitry Andric                        const object::SymbolRef &Sym);
225ffd83dbSDimitry Andric 
23*bdd1243dSDimitry Andric std::optional<object::SymbolRef>
24753f127fSDimitry Andric getXCOFFSymbolContainingSymbolRef(const object::XCOFFObjectFile &Obj,
25349cc55cSDimitry Andric                                   const object::SymbolRef &Sym);
26349cc55cSDimitry Andric 
27753f127fSDimitry Andric bool isLabel(const object::XCOFFObjectFile &Obj, const object::SymbolRef &Sym);
285ffd83dbSDimitry Andric 
295ffd83dbSDimitry Andric std::string getXCOFFSymbolDescription(const SymbolInfoTy &SymbolInfo,
305ffd83dbSDimitry Andric                                       StringRef SymbolName);
315ffd83dbSDimitry Andric 
32753f127fSDimitry Andric Error getXCOFFRelocationValueString(const object::XCOFFObjectFile &Obj,
335ffd83dbSDimitry Andric                                     const object::RelocationRef &RelRef,
345ffd83dbSDimitry Andric                                     llvm::SmallVectorImpl<char> &Result);
355ffd83dbSDimitry Andric } // namespace objdump
365ffd83dbSDimitry Andric } // namespace llvm
375ffd83dbSDimitry Andric #endif
38