46 lines · c
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-exception6//7//===----------------------------------------------------------------------===//8 9#ifndef LLVM_TOOLS_LLVM_OBJDUMP_XCOFFDUMP_H10#define LLVM_TOOLS_LLVM_OBJDUMP_XCOFFDUMP_H11 12#include "llvm/Object/XCOFFObjectFile.h"13 14namespace llvm {15 16class formatted_raw_ostream;17class MCSubtargetInfo;18struct SymbolInfoTy;19 20namespace objdump {21std::optional<XCOFF::StorageMappingClass>22getXCOFFSymbolCsectSMC(const object::XCOFFObjectFile &Obj,23 const object::SymbolRef &Sym);24 25std::optional<object::SymbolRef>26getXCOFFSymbolContainingSymbolRef(const object::XCOFFObjectFile &Obj,27 const object::SymbolRef &Sym);28 29bool isLabel(const object::XCOFFObjectFile &Obj, const object::SymbolRef &Sym);30 31std::string getXCOFFSymbolDescription(const SymbolInfoTy &SymbolInfo,32 StringRef SymbolName);33 34Error getXCOFFRelocationValueString(const object::XCOFFObjectFile &Obj,35 const object::RelocationRef &RelRef,36 bool SymbolDescription,37 llvm::SmallVectorImpl<char> &Result);38 39void dumpTracebackTable(ArrayRef<uint8_t> Bytes, uint64_t Address,40 formatted_raw_ostream &OS, uint64_t End,41 const MCSubtargetInfo &STI,42 const object::XCOFFObjectFile *Obj);43} // namespace objdump44} // namespace llvm45#endif46