Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-05-10 08:43:45

0001 //===- RawConstants.h -------------------------------------------*- C++ -*-===//
0002 //
0003 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
0004 // See https://llvm.org/LICENSE.txt for license information.
0005 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
0006 //
0007 //===----------------------------------------------------------------------===//
0008 
0009 #ifndef LLVM_DEBUGINFO_PDB_NATIVE_RAWCONSTANTS_H
0010 #define LLVM_DEBUGINFO_PDB_NATIVE_RAWCONSTANTS_H
0011 
0012 #include "llvm/ADT/BitmaskEnum.h"
0013 #include "llvm/DebugInfo/CodeView/CodeView.h"
0014 #include <cstdint>
0015 
0016 namespace llvm {
0017 namespace pdb {
0018 
0019 const uint16_t kInvalidStreamIndex = 0xFFFF;
0020 
0021 enum PdbRaw_ImplVer : uint32_t {
0022   PdbImplVC2 = 19941610,
0023   PdbImplVC4 = 19950623,
0024   PdbImplVC41 = 19950814,
0025   PdbImplVC50 = 19960307,
0026   PdbImplVC98 = 19970604,
0027   PdbImplVC70Dep = 19990604, // deprecated
0028   PdbImplVC70 = 20000404,
0029   PdbImplVC80 = 20030901,
0030   PdbImplVC110 = 20091201,
0031   PdbImplVC140 = 20140508,
0032 };
0033 
0034 enum class PdbRaw_SrcHeaderBlockVer : uint32_t { SrcVerOne = 19980827 };
0035 
0036 enum class PdbRaw_FeatureSig : uint32_t {
0037   VC110 = PdbImplVC110,
0038   VC140 = PdbImplVC140,
0039   NoTypeMerge = 0x4D544F4E,
0040   MinimalDebugInfo = 0x494E494D,
0041 };
0042 
0043 enum PdbRaw_Features : uint32_t {
0044   PdbFeatureNone = 0x0,
0045   PdbFeatureContainsIdStream = 0x1,
0046   PdbFeatureMinimalDebugInfo = 0x2,
0047   PdbFeatureNoTypeMerging = 0x4,
0048   LLVM_MARK_AS_BITMASK_ENUM(/* LargestValue = */ PdbFeatureNoTypeMerging)
0049 };
0050 
0051 enum PdbRaw_DbiVer : uint32_t {
0052   PdbDbiVC41 = 930803,
0053   PdbDbiV50 = 19960307,
0054   PdbDbiV60 = 19970606,
0055   PdbDbiV70 = 19990903,
0056   PdbDbiV110 = 20091201
0057 };
0058 
0059 enum PdbRaw_TpiVer : uint32_t {
0060   PdbTpiV40 = 19950410,
0061   PdbTpiV41 = 19951122,
0062   PdbTpiV50 = 19961031,
0063   PdbTpiV70 = 19990903,
0064   PdbTpiV80 = 20040203,
0065 };
0066 
0067 enum PdbRaw_DbiSecContribVer : uint32_t {
0068   DbiSecContribVer60 = 0xeffe0000 + 19970605,
0069   DbiSecContribV2 = 0xeffe0000 + 20140516
0070 };
0071 
0072 enum SpecialStream : uint32_t {
0073   // Stream 0 contains the copy of previous version of the MSF directory.
0074   // We are not currently using it, but technically if we find the main
0075   // MSF is corrupted, we could fallback to it.
0076   OldMSFDirectory = 0,
0077 
0078   StreamPDB = 1,
0079   StreamTPI = 2,
0080   StreamDBI = 3,
0081   StreamIPI = 4,
0082 
0083   kSpecialStreamCount
0084 };
0085 
0086 enum class DbgHeaderType : uint16_t {
0087   FPO,
0088   Exception,
0089   Fixup,
0090   OmapToSrc,
0091   OmapFromSrc,
0092   SectionHdr,
0093   TokenRidMap,
0094   Xdata,
0095   Pdata,
0096   NewFPO,
0097   SectionHdrOrig,
0098   Max
0099 };
0100 
0101 enum class OMFSegDescFlags : uint16_t {
0102   None = 0,
0103   Read = 1 << 0,              // Segment is readable.
0104   Write = 1 << 1,             // Segment is writable.
0105   Execute = 1 << 2,           // Segment is executable.
0106   AddressIs32Bit = 1 << 3,    // Descriptor describes a 32-bit linear address.
0107   IsSelector = 1 << 8,        // Frame represents a selector.
0108   IsAbsoluteAddress = 1 << 9, // Frame represents an absolute address.
0109   IsGroup = 1 << 10,          // If set, descriptor represents a group.
0110   LLVM_MARK_AS_BITMASK_ENUM(/* LargestValue = */ IsGroup)
0111 };
0112 
0113 LLVM_ENABLE_BITMASK_ENUMS_IN_NAMESPACE();
0114 
0115 } // end namespace pdb
0116 } // end namespace llvm
0117 
0118 #endif // LLVM_DEBUGINFO_PDB_NATIVE_RAWCONSTANTS_H