IPDBSectionContrib.h 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. //==- IPDBSectionContrib.h - Interfaces for PDB SectionContribs --*- 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. #ifndef LLVM_DEBUGINFO_PDB_IPDBSECTIONCONTRIB_H
  9. #define LLVM_DEBUGINFO_PDB_IPDBSECTIONCONTRIB_H
  10. #include "PDBTypes.h"
  11. namespace llvm {
  12. namespace pdb {
  13. /// IPDBSectionContrib defines an interface used to represent section
  14. /// contributions whose information are stored in the PDB.
  15. class IPDBSectionContrib {
  16. public:
  17. virtual ~IPDBSectionContrib();
  18. virtual std::unique_ptr<PDBSymbolCompiland> getCompiland() const = 0;
  19. virtual uint32_t getAddressSection() const = 0;
  20. virtual uint32_t getAddressOffset() const = 0;
  21. virtual uint32_t getRelativeVirtualAddress() const = 0;
  22. virtual uint64_t getVirtualAddress() const = 0;
  23. virtual uint32_t getLength() const = 0;
  24. virtual bool isNotPaged() const = 0;
  25. virtual bool hasCode() const = 0;
  26. virtual bool hasCode16Bit() const = 0;
  27. virtual bool hasInitializedData() const = 0;
  28. virtual bool hasUninitializedData() const = 0;
  29. virtual bool isRemoved() const = 0;
  30. virtual bool hasComdat() const = 0;
  31. virtual bool isDiscardable() const = 0;
  32. virtual bool isNotCached() const = 0;
  33. virtual bool isShared() const = 0;
  34. virtual bool isExecutable() const = 0;
  35. virtual bool isReadable() const = 0;
  36. virtual bool isWritable() const = 0;
  37. virtual uint32_t getDataCrc32() const = 0;
  38. virtual uint32_t getRelocationsCrc32() const = 0;
  39. virtual uint32_t getCompilandId() const = 0;
  40. };
  41. }
  42. }
  43. #endif // LLVM_DEBUGINFO_PDB_IPDBSECTIONCONTRIB_H