Subversion Repositories QNX 8.QNX8 LLVM/Clang compiler suite

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
14 pmbaty 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