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