Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/contrib/llvm-project/llvm/lib/ObjCopy/XCOFF/XCOFFObject.h
35269 views
1
//===- XCOFFObject.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_LIB_OBJCOPY_XCOFF_XCOFFOBJECT_H
10
#define LLVM_LIB_OBJCOPY_XCOFF_XCOFFOBJECT_H
11
12
#include "llvm/ADT/ArrayRef.h"
13
#include "llvm/ADT/StringRef.h"
14
#include "llvm/Object/XCOFFObjectFile.h"
15
#include <vector>
16
17
namespace llvm {
18
namespace objcopy {
19
namespace xcoff {
20
21
using namespace object;
22
23
struct Section {
24
XCOFFSectionHeader32 SectionHeader;
25
ArrayRef<uint8_t> Contents;
26
std::vector<XCOFFRelocation32> Relocations;
27
};
28
29
struct Symbol {
30
XCOFFSymbolEntry32 Sym;
31
// For now, each auxiliary symbol is only an opaque binary blob with no
32
// distinction.
33
StringRef AuxSymbolEntries;
34
};
35
36
struct Object {
37
XCOFFFileHeader32 FileHeader;
38
XCOFFAuxiliaryHeader32 OptionalFileHeader;
39
std::vector<Section> Sections;
40
std::vector<Symbol> Symbols;
41
StringRef StringTable;
42
};
43
44
} // end namespace xcoff
45
} // end namespace objcopy
46
} // end namespace llvm
47
48
#endif // LLVM_LIB_OBJCOPY_XCOFF_XCOFFOBJECT_H
49
50