File indexing completed on 2026-05-10 08:43:45
0001
0002
0003
0004
0005
0006
0007
0008
0009 #ifndef LLVM_DEBUGINFO_PDB_NATIVE_PUBLICSSTREAM_H
0010 #define LLVM_DEBUGINFO_PDB_NATIVE_PUBLICSSTREAM_H
0011
0012 #include "llvm/DebugInfo/PDB/Native/GlobalsStream.h"
0013 #include "llvm/Support/BinaryStreamArray.h"
0014 #include "llvm/Support/Error.h"
0015
0016 namespace llvm {
0017 namespace msf {
0018 class MappedBlockStream;
0019 }
0020 namespace pdb {
0021 struct PublicsStreamHeader;
0022 struct SectionOffset;
0023
0024 class PublicsStream {
0025 public:
0026 PublicsStream(std::unique_ptr<msf::MappedBlockStream> Stream);
0027 ~PublicsStream();
0028 Error reload();
0029
0030 uint32_t getSymHash() const;
0031 uint16_t getThunkTableSection() const;
0032 uint32_t getThunkTableOffset() const;
0033 const GSIHashTable &getPublicsTable() const { return PublicsTable; }
0034 FixedStreamArray<support::ulittle32_t> getAddressMap() const {
0035 return AddressMap;
0036 }
0037 FixedStreamArray<support::ulittle32_t> getThunkMap() const {
0038 return ThunkMap;
0039 }
0040 FixedStreamArray<SectionOffset> getSectionOffsets() const {
0041 return SectionOffsets;
0042 }
0043
0044 private:
0045 std::unique_ptr<msf::MappedBlockStream> Stream;
0046 GSIHashTable PublicsTable;
0047 FixedStreamArray<support::ulittle32_t> AddressMap;
0048 FixedStreamArray<support::ulittle32_t> ThunkMap;
0049 FixedStreamArray<SectionOffset> SectionOffsets;
0050
0051 const PublicsStreamHeader *Header;
0052 };
0053 }
0054 }
0055
0056 #endif