Path: blob/main/contrib/llvm-project/llvm/lib/ObjCopy/XCOFF/XCOFFObject.h
35269 views
//===- XCOFFObject.h --------------------------------------------*- C++ -*-===//1//2// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.3// See https://llvm.org/LICENSE.txt for license information.4// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception5//6//===----------------------------------------------------------------------===//78#ifndef LLVM_LIB_OBJCOPY_XCOFF_XCOFFOBJECT_H9#define LLVM_LIB_OBJCOPY_XCOFF_XCOFFOBJECT_H1011#include "llvm/ADT/ArrayRef.h"12#include "llvm/ADT/StringRef.h"13#include "llvm/Object/XCOFFObjectFile.h"14#include <vector>1516namespace llvm {17namespace objcopy {18namespace xcoff {1920using namespace object;2122struct Section {23XCOFFSectionHeader32 SectionHeader;24ArrayRef<uint8_t> Contents;25std::vector<XCOFFRelocation32> Relocations;26};2728struct Symbol {29XCOFFSymbolEntry32 Sym;30// For now, each auxiliary symbol is only an opaque binary blob with no31// distinction.32StringRef AuxSymbolEntries;33};3435struct Object {36XCOFFFileHeader32 FileHeader;37XCOFFAuxiliaryHeader32 OptionalFileHeader;38std::vector<Section> Sections;39std::vector<Symbol> Symbols;40StringRef StringTable;41};4243} // end namespace xcoff44} // end namespace objcopy45} // end namespace llvm4647#endif // LLVM_LIB_OBJCOPY_XCOFF_XCOFFOBJECT_H484950