1 //===-- CodeViewSymbols.def
- All CodeView leaf types
-----------*- C
++ -*-===//
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
7 //===----------------------------------------------------------------------===//
9 // See LEAF_ENUM_e in cvinfo.h. This should match the constants there.
11 //===----------------------------------------------------------------------===//
14 #define
CV_SYMBOL(ename
, value
)
18 #define
SYMBOL_RECORD(lf_ename
, value
, name
) CV_SYMBOL(lf_ename
, value
)
21 #ifndef SYMBOL_RECORD_ALIAS
22 #define
SYMBOL_RECORD_ALIAS(lf_ename
, value
, name
, alias_name
) \
23 SYMBOL_RECORD(lf_ename
, value
, name
)
26 // 16 bit symbol types. Not very useful
, provided only for reference.
27 CV_SYMBOL(S_COMPILE
, 0x0001)
28 CV_SYMBOL(S_REGISTER_16t
, 0x0002)
29 CV_SYMBOL(S_CONSTANT_16t
, 0x0003)
30 CV_SYMBOL(S_UDT_16t
, 0x0004)
31 CV_SYMBOL(S_SSEARCH
, 0x0005)
32 CV_SYMBOL(S_SKIP
, 0x0007)
33 CV_SYMBOL(S_CVRESERVE
, 0x0008)
34 CV_SYMBOL(S_OBJNAME_ST
, 0x0009)
35 CV_SYMBOL(S_ENDARG
, 0x000a)
36 CV_SYMBOL(S_COBOLUDT_16t
, 0x000b)
37 CV_SYMBOL(S_MANYREG_16t
, 0x000c)
38 CV_SYMBOL(S_RETURN
, 0x000d)
39 CV_SYMBOL(S_ENTRYTHIS
, 0x000e)
40 CV_SYMBOL(S_BPREL16
, 0x0100)
41 CV_SYMBOL(S_LDATA16
, 0x0101)
42 CV_SYMBOL(S_GDATA16
, 0x0102)
43 CV_SYMBOL(S_PUB16
, 0x0103)
44 CV_SYMBOL(S_LPROC16
, 0x0104)
45 CV_SYMBOL(S_GPROC16
, 0x0105)
46 CV_SYMBOL(S_THUNK16
, 0x0106)
47 CV_SYMBOL(S_BLOCK16
, 0x0107)
48 CV_SYMBOL(S_WITH16
, 0x0108)
49 CV_SYMBOL(S_LABEL16
, 0x0109)
50 CV_SYMBOL(S_CEXMODEL16
, 0x010a)
51 CV_SYMBOL(S_VFTABLE16
, 0x010b)
52 CV_SYMBOL(S_REGREL16
, 0x010c)
53 CV_SYMBOL(S_BPREL32_16t
, 0x0200)
54 CV_SYMBOL(S_LDATA32_16t
, 0x0201)
55 CV_SYMBOL(S_GDATA32_16t
, 0x0202)
56 CV_SYMBOL(S_PUB32_16t
, 0x0203)
57 CV_SYMBOL(S_LPROC32_16t
, 0x0204)
58 CV_SYMBOL(S_GPROC32_16t
, 0x0205)
59 CV_SYMBOL(S_THUNK32_ST
, 0x0206)
60 CV_SYMBOL(S_BLOCK32_ST
, 0x0207)
61 CV_SYMBOL(S_WITH32_ST
, 0x0208)
62 CV_SYMBOL(S_LABEL32_ST
, 0x0209)
63 CV_SYMBOL(S_CEXMODEL32
, 0x020a)
64 CV_SYMBOL(S_VFTABLE32_16t
, 0x020b)
65 CV_SYMBOL(S_REGREL32_16t
, 0x020c)
66 CV_SYMBOL(S_LTHREAD32_16t
, 0x020d)
67 CV_SYMBOL(S_GTHREAD32_16t
, 0x020e)
68 CV_SYMBOL(S_SLINK32
, 0x020f)
69 CV_SYMBOL(S_LPROCMIPS_16t
, 0x0300)
70 CV_SYMBOL(S_GPROCMIPS_16t
, 0x0301)
71 CV_SYMBOL(S_PROCREF_ST
, 0x0400)
72 CV_SYMBOL(S_DATAREF_ST
, 0x0401)
73 CV_SYMBOL(S_ALIGN
, 0x0402)
74 CV_SYMBOL(S_LPROCREF_ST
, 0x0403)
75 CV_SYMBOL(S_OEM
, 0x0404)
77 // All post
16 bit symbol types have the
0x1000 bit set.
78 CV_SYMBOL(S_TI16_MAX
, 0x1000)
80 // Mostly unused
"start" symbol types.
81 CV_SYMBOL(S_REGISTER_ST
, 0x1001)
82 CV_SYMBOL(S_CONSTANT_ST
, 0x1002)
83 CV_SYMBOL(S_UDT_ST
, 0x1003)
84 CV_SYMBOL(S_COBOLUDT_ST
, 0x1004)
85 CV_SYMBOL(S_MANYREG_ST
, 0x1005)
86 CV_SYMBOL(S_BPREL32_ST
, 0x1006)
87 CV_SYMBOL(S_LDATA32_ST
, 0x1007)
88 CV_SYMBOL(S_GDATA32_ST
, 0x1008)
89 CV_SYMBOL(S_PUB32_ST
, 0x1009)
90 CV_SYMBOL(S_LPROC32_ST
, 0x100a)
91 CV_SYMBOL(S_GPROC32_ST
, 0x100b)
92 CV_SYMBOL(S_VFTABLE32
, 0x100c)
93 CV_SYMBOL(S_REGREL32_ST
, 0x100d)
94 CV_SYMBOL(S_LTHREAD32_ST
, 0x100e)
95 CV_SYMBOL(S_GTHREAD32_ST
, 0x100f)
96 CV_SYMBOL(S_LPROCMIPS_ST
, 0x1010)
97 CV_SYMBOL(S_GPROCMIPS_ST
, 0x1011)
99 CV_SYMBOL(S_COMPILE2_ST
, 0x1013)
100 CV_SYMBOL(S_MANYREG2_ST
, 0x1014)
101 CV_SYMBOL(S_LPROCIA64_ST
, 0x1015)
102 CV_SYMBOL(S_GPROCIA64_ST
, 0x1016)
103 CV_SYMBOL(S_LOCALSLOT_ST
, 0x1017)
104 CV_SYMBOL(S_PARAMSLOT_ST
, 0x1018)
105 CV_SYMBOL(S_GMANPROC_ST
, 0x101a)
106 CV_SYMBOL(S_LMANPROC_ST
, 0x101b)
107 CV_SYMBOL(S_RESERVED1
, 0x101c)
108 CV_SYMBOL(S_RESERVED2
, 0x101d)
109 CV_SYMBOL(S_RESERVED3
, 0x101e)
110 CV_SYMBOL(S_RESERVED4
, 0x101f)
111 CV_SYMBOL(S_LMANDATA_ST
, 0x1020)
112 CV_SYMBOL(S_GMANDATA_ST
, 0x1021)
113 CV_SYMBOL(S_MANFRAMEREL_ST
, 0x1022)
114 CV_SYMBOL(S_MANREGISTER_ST
, 0x1023)
115 CV_SYMBOL(S_MANSLOT_ST
, 0x1024)
116 CV_SYMBOL(S_MANMANYREG_ST
, 0x1025)
117 CV_SYMBOL(S_MANREGREL_ST
, 0x1026)
118 CV_SYMBOL(S_MANMANYREG2_ST
, 0x1027)
119 CV_SYMBOL(S_MANTYPREF
, 0x1028)
120 CV_SYMBOL(S_UNAMESPACE_ST
, 0x1029)
122 // End of S_
*_ST symbols
, which do not appear to be generated by modern
124 CV_SYMBOL(S_ST_MAX
, 0x1100)
127 CV_SYMBOL(S_WITH32
, 0x1104)
128 CV_SYMBOL(S_MANYREG
, 0x110a)
129 CV_SYMBOL(S_LPROCMIPS
, 0x1114)
130 CV_SYMBOL(S_GPROCMIPS
, 0x1115)
131 CV_SYMBOL(S_MANYREG2
, 0x1117)
132 CV_SYMBOL(S_LPROCIA64
, 0x1118)
133 CV_SYMBOL(S_GPROCIA64
, 0x1119)
134 CV_SYMBOL(S_LOCALSLOT
, 0x111a)
135 CV_SYMBOL(S_PARAMSLOT
, 0x111b)
137 // Managed code symbols.
138 CV_SYMBOL(S_MANFRAMEREL
, 0x111e)
139 CV_SYMBOL(S_MANREGISTER
, 0x111f)
140 CV_SYMBOL(S_MANSLOT
, 0x1120)
141 CV_SYMBOL(S_MANMANYREG
, 0x1121)
142 CV_SYMBOL(S_MANREGREL
, 0x1122)
143 CV_SYMBOL(S_MANMANYREG2
, 0x1123)
144 CV_SYMBOL(S_DATAREF
, 0x1126)
145 CV_SYMBOL(S_ANNOTATIONREF
, 0x1128)
146 CV_SYMBOL(S_TOKENREF
, 0x1129)
147 CV_SYMBOL(S_GMANPROC
, 0x112a)
148 CV_SYMBOL(S_LMANPROC
, 0x112b)
149 CV_SYMBOL(S_ATTR_FRAMEREL
, 0x112e)
150 CV_SYMBOL(S_ATTR_REGISTER
, 0x112f)
151 CV_SYMBOL(S_ATTR_REGREL
, 0x1130)
152 CV_SYMBOL(S_ATTR_MANYREG
, 0x1131)
155 CV_SYMBOL(S_SEPCODE
, 0x1132)
156 CV_SYMBOL(S_LOCAL_2005
, 0x1133)
157 CV_SYMBOL(S_DEFRANGE_2005
, 0x1134)
158 CV_SYMBOL(S_DEFRANGE2_2005
, 0x1135)
159 CV_SYMBOL(S_DISCARDED
, 0x113b)
161 // Current symbol types for most procedures as of this writing.
162 CV_SYMBOL(S_LPROCMIPS_ID
, 0x1148)
163 CV_SYMBOL(S_GPROCMIPS_ID
, 0x1149)
164 CV_SYMBOL(S_LPROCIA64_ID
, 0x114a)
165 CV_SYMBOL(S_GPROCIA64_ID
, 0x114b)
167 CV_SYMBOL(S_DEFRANGE_HLSL
, 0x1150)
168 CV_SYMBOL(S_GDATA_HLSL
, 0x1151)
169 CV_SYMBOL(S_LDATA_HLSL
, 0x1152)
170 CV_SYMBOL(S_LOCAL_DPC_GROUPSHARED
, 0x1154)
171 CV_SYMBOL(S_DEFRANGE_DPC_PTR_TAG
, 0x1157)
172 CV_SYMBOL(S_DPC_SYM_TAG_MAP
, 0x1158)
173 CV_SYMBOL(S_ARMSWITCHTABLE
, 0x1159)
174 CV_SYMBOL(S_POGODATA
, 0x115c)
175 CV_SYMBOL(S_INLINESITE2
, 0x115d)
176 CV_SYMBOL(S_MOD_TYPEREF
, 0x115f)
177 CV_SYMBOL(S_REF_MINIPDB
, 0x1160)
178 CV_SYMBOL(S_PDBMAP
, 0x1161)
179 CV_SYMBOL(S_GDATA_HLSL32
, 0x1162)
180 CV_SYMBOL(S_LDATA_HLSL32
, 0x1163)
181 CV_SYMBOL(S_GDATA_HLSL32_EX
, 0x1164)
182 CV_SYMBOL(S_LDATA_HLSL32_EX
, 0x1165)
184 CV_SYMBOL(S_FASTLINK
, 0x1167) // Undocumented
185 SYMBOL_RECORD_ALIAS(S_INLINEES
, 0x1168, InlineesSym
, CallerSym
) // Undocumented
187 // Known symbol types
188 SYMBOL_RECORD(S_END
, 0x0006, ScopeEndSym
)
189 SYMBOL_RECORD_ALIAS(S_INLINESITE_END
, 0x114e, InlineSiteEnd
, ScopeEndSym
)
190 SYMBOL_RECORD_ALIAS(S_PROC_ID_END
, 0x114f, ProcEnd
, ScopeEndSym
)
192 SYMBOL_RECORD(S_THUNK32
, 0x1102, Thunk32Sym
)
193 SYMBOL_RECORD(S_TRAMPOLINE
, 0x112c, TrampolineSym
)
194 SYMBOL_RECORD(S_SECTION
, 0x1136, SectionSym
)
195 SYMBOL_RECORD(S_COFFGROUP
, 0x1137, CoffGroupSym
)
196 SYMBOL_RECORD(S_EXPORT
, 0x1138, ExportSym
)
198 SYMBOL_RECORD(S_LPROC32
, 0x110f, ProcSym
)
199 SYMBOL_RECORD_ALIAS(S_GPROC32
, 0x1110, GlobalProcSym
, ProcSym
)
200 SYMBOL_RECORD_ALIAS(S_LPROC32_ID
, 0x1146, ProcIdSym
, ProcSym
)
201 SYMBOL_RECORD_ALIAS(S_GPROC32_ID
, 0x1147, GlobalProcIdSym
, ProcSym
)
202 SYMBOL_RECORD_ALIAS(S_LPROC32_DPC
, 0x1155, DPCProcSym
, ProcSym
)
203 SYMBOL_RECORD_ALIAS(S_LPROC32_DPC_ID
, 0x1156, DPCProcIdSym
, ProcSym
)
205 SYMBOL_RECORD(S_REGISTER
, 0x1106, RegisterSym
)
206 SYMBOL_RECORD(S_PUB32
, 0x110e, PublicSym32
)
208 SYMBOL_RECORD(S_PROCREF
, 0x1125, ProcRefSym
)
209 SYMBOL_RECORD_ALIAS(S_LPROCREF
, 0x1127, LocalProcRef
, ProcRefSym
)
212 SYMBOL_RECORD(S_ENVBLOCK
, 0x113d, EnvBlockSym
)
214 SYMBOL_RECORD(S_INLINESITE
, 0x114d, InlineSiteSym
)
215 SYMBOL_RECORD(S_LOCAL
, 0x113e, LocalSym
)
216 SYMBOL_RECORD(S_DEFRANGE
, 0x113f, DefRangeSym
)
217 SYMBOL_RECORD(S_DEFRANGE_SUBFIELD
, 0x1140, DefRangeSubfieldSym
)
218 SYMBOL_RECORD(S_DEFRANGE_REGISTER
, 0x1141, DefRangeRegisterSym
)
219 SYMBOL_RECORD(S_DEFRANGE_FRAMEPOINTER_REL
, 0x1142, DefRangeFramePointerRelSym
)
220 SYMBOL_RECORD(S_DEFRANGE_SUBFIELD_REGISTER
, 0x1143, DefRangeSubfieldRegisterSym
)
221 SYMBOL_RECORD(S_DEFRANGE_FRAMEPOINTER_REL_FULL_SCOPE
, 0x1144, DefRangeFramePointerRelFullScopeSym
)
222 SYMBOL_RECORD(S_DEFRANGE_REGISTER_REL
, 0x1145, DefRangeRegisterRelSym
)
223 SYMBOL_RECORD(S_BLOCK32
, 0x1103, BlockSym
)
224 SYMBOL_RECORD(S_LABEL32
, 0x1105, LabelSym
)
225 SYMBOL_RECORD(S_OBJNAME
, 0x1101, ObjNameSym
)
226 SYMBOL_RECORD(S_COMPILE2
, 0x1116, Compile2Sym
)
227 SYMBOL_RECORD(S_COMPILE3
, 0x113c, Compile3Sym
)
228 SYMBOL_RECORD(S_FRAMEPROC
, 0x1012, FrameProcSym
)
229 SYMBOL_RECORD(S_CALLSITEINFO
, 0x1139, CallSiteInfoSym
)
230 SYMBOL_RECORD(S_FILESTATIC
, 0x1153, FileStaticSym
)
231 SYMBOL_RECORD(S_HEAPALLOCSITE
, 0x115e, HeapAllocationSiteSym
)
232 SYMBOL_RECORD(S_FRAMECOOKIE
, 0x113a, FrameCookieSym
)
234 SYMBOL_RECORD(S_CALLEES
, 0x115a, CallerSym
)
235 SYMBOL_RECORD_ALIAS(S_CALLERS
, 0x115b, CalleeSym
, CallerSym
)
237 SYMBOL_RECORD(S_UDT
, 0x1108, UDTSym
)
238 SYMBOL_RECORD_ALIAS(S_COBOLUDT
, 0x1109, CobolUDT
, UDTSym
)
240 SYMBOL_RECORD(S_BUILDINFO
, 0x114c, BuildInfoSym
)
241 SYMBOL_RECORD(S_BPREL32
, 0x110b, BPRelativeSym
)
242 SYMBOL_RECORD(S_REGREL32
, 0x1111, RegRelativeSym
)
244 SYMBOL_RECORD(S_CONSTANT
, 0x1107, ConstantSym
)
245 SYMBOL_RECORD_ALIAS(S_MANCONSTANT
, 0x112d, ManagedConstant
, ConstantSym
)
247 SYMBOL_RECORD(S_LDATA32
, 0x110c, DataSym
)
248 SYMBOL_RECORD_ALIAS(S_GDATA32
, 0x110d, GlobalData
, DataSym
)
249 SYMBOL_RECORD_ALIAS(S_LMANDATA
, 0x111c, ManagedLocalData
, DataSym
)
250 SYMBOL_RECORD_ALIAS(S_GMANDATA
, 0x111d, ManagedGlobalData
, DataSym
)
252 SYMBOL_RECORD(S_LTHREAD32
, 0x1112, ThreadLocalDataSym
)
253 SYMBOL_RECORD_ALIAS(S_GTHREAD32
, 0x1113, GlobalTLS
, ThreadLocalDataSym
)
255 SYMBOL_RECORD(S_UNAMESPACE
, 0x1124, UsingNamespaceSym
)
256 SYMBOL_RECORD(S_ANNOTATION
, 0x1019, AnnotationSym
)
260 #undef SYMBOL_RECORD_ALIAS