* nlm/gdbserve.c: conditionalize header file inclusion for either
[binutils-gdb.git] / gdb / nlm / altdebug.h
1 typedef short int16_t;
2 typedef unsigned short uint16_t;
3
4 typedef int int32_t;
5 typedef unsigned int uint32_t;
6
7 typedef struct int64_s {
8 uint32_t lo;
9 uint32_t hi;
10 } int64_t;
11
12 /* Define indexes into register array in StackFrame */
13 #define SF_REG_PC 0
14
15 #define SF_IREG_OFFSET 1 /* int regs start at index 1 */
16 #define SF_REG_V0 (0+SF_IREG_OFFSET)
17 #define SF_REG_T0 (1+SF_IREG_OFFSET)
18 #define SF_REG_T1 (2+SF_IREG_OFFSET)
19 #define SF_REG_T2 (3+SF_IREG_OFFSET)
20 #define SF_REG_T3 (4+SF_IREG_OFFSET)
21 #define SF_REG_T4 (5+SF_IREG_OFFSET)
22 #define SF_REG_T5 (6+SF_IREG_OFFSET)
23 #define SF_REG_T6 (7+SF_IREG_OFFSET)
24 #define SF_REG_T7 (8+SF_IREG_OFFSET)
25 #define SF_REG_S0 (9+SF_IREG_OFFSET)
26 #define SF_REG_S1 (10+SF_IREG_OFFSET)
27 #define SF_REG_S2 (11+SF_IREG_OFFSET)
28 #define SF_REG_S3 (12+SF_IREG_OFFSET)
29 #define SF_REG_S4 (13+SF_IREG_OFFSET)
30 #define SF_REG_S5 (14+SF_IREG_OFFSET)
31 #define SF_REG_S6 (15+SF_IREG_OFFSET)
32 #define SF_REG_FP SF_REG_S6
33 #define SF_REG_A0 (16+SF_IREG_OFFSET)
34 #define SF_REG_A1 (17+SF_IREG_OFFSET)
35 #define SF_REG_A2 (18+SF_IREG_OFFSET)
36 #define SF_REG_A3 (19+SF_IREG_OFFSET)
37 #define SF_REG_A4 (20+SF_IREG_OFFSET)
38 #define SF_REG_A5 (21+SF_IREG_OFFSET)
39 #define SF_REG_T8 (22+SF_IREG_OFFSET)
40 #define SF_REG_T9 (23+SF_IREG_OFFSET)
41 #define SF_REG_T10 (24+SF_IREG_OFFSET)
42 #define SF_REG_T11 (25+SF_IREG_OFFSET)
43 #define SF_REG_RA (26+SF_IREG_OFFSET)
44 #define SF_REG_PV (27+SF_IREG_OFFSET)
45 #define SF_REG_T12 SF_REG_PV
46 #define SF_REG_AT (28+SF_IREG_OFFSET)
47 #define SF_REG_GP (29+SF_IREG_OFFSET)
48 #define SF_REG_SP (30+SF_IREG_OFFSET)
49 #define SF_REG_ZERO (31+SF_IREG_OFFSET)
50 #define NUMBER_OF_INT_REGS 32
51
52 #define SF_FREG_OFFSET (SF_IREG_OFFSET+NUMBER_OF_INT_REGS)
53 #define SF_REG_F0 (0+SF_FREG_OFFSET)
54 #define SF_REG_F1 (1+SF_FREG_OFFSET)
55 #define SF_REG_F2 (2+SF_FREG_OFFSET)
56 #define SF_REG_F3 (3+SF_FREG_OFFSET)
57 #define SF_REG_F4 (4+SF_FREG_OFFSET)
58 #define SF_REG_F5 (5+SF_FREG_OFFSET)
59 #define SF_REG_F6 (6+SF_FREG_OFFSET)
60 #define SF_REG_F7 (7+SF_FREG_OFFSET)
61 #define SF_REG_F8 (8+SF_FREG_OFFSET)
62 #define SF_REG_F9 (9+SF_FREG_OFFSET)
63 #define SF_REG_F10 (10+SF_FREG_OFFSET)
64 #define SF_REG_F11 (11+SF_FREG_OFFSET)
65 #define SF_REG_F12 (12+SF_FREG_OFFSET)
66 #define SF_REG_F13 (13+SF_FREG_OFFSET)
67 #define SF_REG_F14 (14+SF_FREG_OFFSET)
68 #define SF_REG_F15 (15+SF_FREG_OFFSET)
69 #define SF_REG_F16 (16+SF_FREG_OFFSET)
70 #define SF_REG_F17 (17+SF_FREG_OFFSET)
71 #define SF_REG_F18 (18+SF_FREG_OFFSET)
72 #define SF_REG_F19 (19+SF_FREG_OFFSET)
73 #define SF_REG_F20 (20+SF_FREG_OFFSET)
74 #define SF_REG_F21 (21+SF_FREG_OFFSET)
75 #define SF_REG_F22 (22+SF_FREG_OFFSET)
76 #define SF_REG_F23 (23+SF_FREG_OFFSET)
77 #define SF_REG_F24 (24+SF_FREG_OFFSET)
78 #define SF_REG_F25 (25+SF_FREG_OFFSET)
79 #define SF_REG_F26 (26+SF_FREG_OFFSET)
80 #define SF_REG_F27 (27+SF_FREG_OFFSET)
81 #define SF_REG_F28 (28+SF_FREG_OFFSET)
82 #define SF_REG_F29 (29+SF_FREG_OFFSET)
83 #define SF_REG_F30 (30+SF_FREG_OFFSET)
84 #define SF_REG_FZERO (31+SF_FREG_OFFSET)
85
86 #define NUMBER_OF_FLOAT_REGS 32
87
88 struct StackFrame
89 {
90 struct DomainStructure *ExceptionDomainID;
91 struct ProcessorStructure *ExceptionProcessorID;
92 BYTE *ExceptionDescription;
93 LONG ExceptionFlags;
94 LONG ExceptionErrorCode;
95 LONG ExceptionNumber;
96
97 int64_t ExceptionAddress; /* Address at which exception occured */
98 int64_t ExceptionRegs[1+NUMBER_OF_INT_REGS+NUMBER_OF_FLOAT_REGS];
99 /* First entry is for PC */
100 int ExceptionBrkptNum; /* Set by the NSI debug exception handler
101 if the exception was caused by a
102 NID breakpoint */
103 int ExceptionBrkptFlags; /* Flags for the breakpoint. See nsibrkpt.c
104 for details */
105 };