Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. //===- PublicsStream.h - PDB Public Symbol Stream -------- ------*- 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_DEBUGINFO_PDB_NATIVE_PUBLICSSTREAM_H
  10. #define LLVM_DEBUGINFO_PDB_NATIVE_PUBLICSSTREAM_H
  11.  
  12. #include "llvm/DebugInfo/PDB/Native/GlobalsStream.h"
  13. #include "llvm/Support/BinaryStreamArray.h"
  14. #include "llvm/Support/Error.h"
  15.  
  16. namespace llvm {
  17. namespace msf {
  18. class MappedBlockStream;
  19. }
  20. namespace pdb {
  21. struct PublicsStreamHeader;
  22. struct SectionOffset;
  23.  
  24. class PublicsStream {
  25. public:
  26.   PublicsStream(std::unique_ptr<msf::MappedBlockStream> Stream);
  27.   ~PublicsStream();
  28.   Error reload();
  29.  
  30.   uint32_t getSymHash() const;
  31.   uint16_t getThunkTableSection() const;
  32.   uint32_t getThunkTableOffset() const;
  33.   const GSIHashTable &getPublicsTable() const { return PublicsTable; }
  34.   FixedStreamArray<support::ulittle32_t> getAddressMap() const {
  35.     return AddressMap;
  36.   }
  37.   FixedStreamArray<support::ulittle32_t> getThunkMap() const {
  38.     return ThunkMap;
  39.   }
  40.   FixedStreamArray<SectionOffset> getSectionOffsets() const {
  41.     return SectionOffsets;
  42.   }
  43.  
  44. private:
  45.   std::unique_ptr<msf::MappedBlockStream> Stream;
  46.   GSIHashTable PublicsTable;
  47.   FixedStreamArray<support::ulittle32_t> AddressMap;
  48.   FixedStreamArray<support::ulittle32_t> ThunkMap;
  49.   FixedStreamArray<SectionOffset> SectionOffsets;
  50.  
  51.   const PublicsStreamHeader *Header;
  52. };
  53. }
  54. }
  55.  
  56. #endif
  57.