CodeViewSymbols.def 9.6 KB

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