Parent Directory | Revision Log
import upstream CVS
1 | dpavlin | 1 | #ifndef EVALTYPE_H |
2 | #define EVALTYPE_H | ||
3 | |||
4 | #define MAX_EVALFUNC_PARAMS 8 | ||
5 | |||
6 | #include "system/types.h" | ||
7 | |||
8 | /* | ||
9 | * Types | ||
10 | */ | ||
11 | |||
12 | typedef enum { | ||
13 | TYPE_UNKNOWN, | ||
14 | TYPE_BYTE, | ||
15 | TYPE_HALF, | ||
16 | TYPE_WORD, | ||
17 | TYPE_DWORD, | ||
18 | } eval_inttype; | ||
19 | |||
20 | typedef enum { | ||
21 | REG_GPR, | ||
22 | REG_FPR, | ||
23 | REG_PC, | ||
24 | REG_CR, | ||
25 | REG_LR, | ||
26 | REG_CTR, | ||
27 | REG_XER, | ||
28 | REG_MSR, | ||
29 | REG_SRR0, | ||
30 | REG_SRR1, | ||
31 | } eval_regtype; | ||
32 | |||
33 | struct eval_int { | ||
34 | sint64 value; | ||
35 | eval_inttype type; | ||
36 | }; | ||
37 | |||
38 | struct eval_float { | ||
39 | double value; | ||
40 | }; | ||
41 | |||
42 | struct eval_str { | ||
43 | char *value; | ||
44 | int len; | ||
45 | }; | ||
46 | |||
47 | struct eval_reg { | ||
48 | eval_regtype type; | ||
49 | int num; | ||
50 | }; | ||
51 | |||
52 | struct eval_scalar; | ||
53 | |||
54 | struct eval_function { | ||
55 | char *name; | ||
56 | int param_count; | ||
57 | struct eval_scalar *params; | ||
58 | }; | ||
59 | |||
60 | typedef enum { | ||
61 | SCALAR_EMPTY = 0, | ||
62 | SCALAR_INT, | ||
63 | SCALAR_REG, | ||
64 | SCALAR_STR, | ||
65 | SCALAR_FLOAT, | ||
66 | SCALAR_FUNCTION, | ||
67 | SCALAR_ANY, | ||
68 | SCALAR_VARARGS, | ||
69 | } eval_scalartype; | ||
70 | |||
71 | typedef union { | ||
72 | struct eval_int integer; | ||
73 | struct eval_str str; | ||
74 | struct eval_reg reg; | ||
75 | struct eval_float floatnum; | ||
76 | struct eval_function function; | ||
77 | } eval_scalarbody; | ||
78 | |||
79 | struct eval_scalar { | ||
80 | eval_scalartype type; | ||
81 | eval_scalarbody scalar; | ||
82 | }; | ||
83 | |||
84 | struct eval_scalarlist { | ||
85 | int count; | ||
86 | struct eval_scalar *scalars; | ||
87 | }; | ||
88 | |||
89 | typedef enum { | ||
90 | COMMAND_NOP = 0, | ||
91 | COMMAND_PRINT, | ||
92 | COMMAND_REGS, | ||
93 | COMMAND_FLOATS, | ||
94 | COMMAND_SETREG, | ||
95 | COMMAND_BREAK, | ||
96 | COMMAND_LIST_BREAK, | ||
97 | COMMAND_STEP, | ||
98 | COMMAND_NEXT, | ||
99 | COMMAND_CONTINUE, | ||
100 | COMMAND_QUIT, | ||
101 | COMMAND_E2P, | ||
102 | COMMAND_INSPECT_BYTE, | ||
103 | COMMAND_INSPECT_HALF, | ||
104 | COMMAND_INSPECT_WORD, | ||
105 | COMMAND_INSPECT_DWORD, | ||
106 | COMMAND_INSPECT_STRING, | ||
107 | COMMAND_INSPECT_MEM, | ||
108 | COMMAND_WATCH, | ||
109 | COMMAND_WATCH_BYTE, | ||
110 | COMMAND_WATCH_HALF, | ||
111 | COMMAND_WATCH_WORD, | ||
112 | COMMAND_WATCH_DWORD, | ||
113 | COMMAND_DELETE_WATCH, | ||
114 | COMMAND_DUMP, | ||
115 | COMMAND_DISASM, | ||
116 | COMMAND_HELP, | ||
117 | } eval_commandtype; | ||
118 | |||
119 | struct eval_command { | ||
120 | eval_commandtype type; | ||
121 | int paramcount; | ||
122 | struct eval_scalar param[3]; /* 3 ought to be enough for everybody ;) */ | ||
123 | }; | ||
124 | |||
125 | #endif /* EVALTYPE_H */ |
ViewVC Help | |
Powered by ViewVC 1.1.26 |