2 * File cvconst.h - MS debug information
4 * Copyright (C) 2004, Eric Pouech
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
21 /* information in this file is highly derivated from MSDN DIA information pages */
23 /* symbols & types enumeration */
29 SymTagCompilandDetails,
46 SymTagFunctionArgType,
90 /* where a SymTagData is */
106 /* kind of SymTagData */
121 /* values for registers (on different CPUs) */
124 /* those values are common to all supported CPUs (and CPU independant) */
125 CV_ALLREG_ERR = 30000,
126 CV_ALLREG_TEB = 30001,
127 CV_ALLREG_TIMER = 30002,
128 CV_ALLREG_EFAD1 = 30003,
129 CV_ALLREG_EFAD2 = 30004,
130 CV_ALLREG_EFAD3 = 30005,
131 CV_ALLREG_VFRAME = 30006,
132 CV_ALLREG_HANDLE = 30007,
133 CV_ALLREG_PARAMS = 30008,
134 CV_ALLREG_LOCALS = 30009,
177 CV_REG_PCDR3 = 43, /* this includes PCDR4 to PCDR7 */
178 CV_REG_CR0 = 80, /* this includes CR1 to CR4 */
179 CV_REG_DR0 = 90, /* this includes DR1 to DR7 */
189 CV_REG_PSEUDO1 = 116, /* this includes Pseudo02 to Pseuso09 */
190 CV_REG_ST0 = 128, /* this includes ST1 to ST7 */
201 CV_REG_MM0 = 146, /* this includes MM1 to MM7 */
202 CV_REG_XMM0 = 154, /* this includes XMM1 to XMM7 */
204 CV_REG_XMM0L = 194, /* this includes XMM1L to XMM7L */
205 CV_REG_XMM0H = 202, /* this includes XMM1H to XMM7H */
227 /* Motorola 68K CPU */
228 CV_R68_D0 = 0, /* this includes D1 to D7 too */
229 CV_R68_A0 = 8, /* this includes A1 to A7 too */
244 CV_R68_FP0 = 32, /* this includes FP1 to FP7 */
245 CV_R68_MMUSR030 = 41,
264 CV_R68_BAD0 = 64, /* this includes BAD1 to BAD7 */
265 CV_R68_BAC0 = 72, /* this includes BAC1 to BAC7 */
268 CV_M4_NOREG = CV_REG_NONE,
273 CV_M4_IntA0 = 14, /* this includes IntA1 to IntA3 */
274 CV_M4_IntT0 = 18, /* this includes IntT1 to IntT7 */
275 CV_M4_IntS0 = 26, /* this includes IntS1 to IntS7 */
288 CV_M4_FltF0 = 60, /* this includes FltF1 to Flt31 */
292 CV_ALPHA_NOREG = CV_REG_NONE,
293 CV_ALPHA_FltF0 = 10, /* this includes FltF1 to FltF31 */
295 CV_ALPHA_IntT0 = 43, /* this includes T1 to T7 */
296 CV_ALPHA_IntS0 = 51, /* this includes S1 to S5 */
298 CV_ALPHA_IntA0 = 58, /* this includes A1 to A5 */
301 CV_ALPHA_IntT10 = 66,
302 CV_ALPHA_IntT11 = 67,
304 CV_ALPHA_IntT12 = 69,
308 CV_ALPHA_IntZERO = 73,
312 CV_ALPHA_FltFsr = 77,
313 CV_ALPHA_SoftFpcr = 78,
315 /* Motorola & IBM PowerPC CPU */
316 CV_PPC_GPR0 = 1, /* this includes GPR1 to GPR31 */
318 CV_PPC_CR0 = 34, /* this includes CR1 to CR7 */
319 CV_PPC_FPR0 = 42, /* this includes FPR1 to FPR31 */
323 CV_PPC_SR0 = 76, /* this includes SR1 to SR15 */
324 /* some PPC registers missing */
326 /* Hitachi SH3 CPU */
327 CV_SH3_NOREG = CV_REG_NONE,
328 CV_SH3_IntR0 = 10, /* this include R1 to R13 */
350 CV_SH_FpR0 = 80, /* this includes FpR1 to FpR15 */
351 CV_SH_XFpR0 = 96, /* this includes XFpR1 to XXFpR15 */
354 CV_ARM_NOREG = CV_REG_NONE,
355 CV_ARM_R0 = 10, /* this includes R1 to R12 */
362 CV_IA64_NOREG = CV_REG_NONE,
363 CV_IA64_Br0 = 512, /* this includes Br1 to Br7 */
364 CV_IA64_P0 = 704, /* this includes P1 to P63 */
366 CV_IA64_IntH0 = 832, /* this includes H1 to H15 */
368 CV_IA64_Umask = 1017,
372 CV_IA64_Nats2 = 1021,
373 CV_IA64_Nats3 = 1022,
374 CV_IA64_IntR0 = 1024, /* this includes R1 to R127 */
375 CV_IA64_FltF0 = 2048, /* this includes FltF1 to FltF127 */
376 /* some IA64 registers missing */
379 CV_TRI_NOREG = CV_REG_NONE,
380 CV_TRI_D0 = 10, /* includes D1 to D15 */
381 CV_TRI_A0 = 26, /* includes A1 to A15 */
398 /* some TriCode registers missing */
400 /* AM33 (and the likes) CPU */
401 CV_AM33_NOREG = CV_REG_NONE,
402 CV_AM33_E0 = 10, /* this includes E1 to E7 */
403 CV_AM33_A0 = 20, /* this includes A1 to A3 */
404 CV_AM33_D0 = 30, /* this includes D1 to D3 */
405 CV_AM33_FS0 = 40, /* this includes FS1 to FS31 */
407 /* Mitsubishi M32R CPU */
408 CV_M32R_NOREG = CV_REG_NONE,
409 CV_M32R_R0 = 10, /* this includes R1 to R11 */
427 THUNK_ORDINAL_NOTYPE,
428 THUNK_ORDINAL_ADJUSTOR,
434 typedef enum CV_call_e