1#![allow(non_camel_case_types)]
2
3#[repr(C)]
5#[derive(PartialEq, Debug, Clone, Copy)]
6pub enum RegisterARM64 {
7 INVALID = 0,
8 X29 = 1,
9 X30 = 2,
10 NZCV = 3,
11 SP = 4,
12 WSP = 5,
13 WZR = 6,
14 XZR = 7,
15 B0 = 8,
16 B1 = 9,
17 B2 = 10,
18 B3 = 11,
19 B4 = 12,
20 B5 = 13,
21 B6 = 14,
22 B7 = 15,
23 B8 = 16,
24 B9 = 17,
25 B10 = 18,
26 B11 = 19,
27 B12 = 20,
28 B13 = 21,
29 B14 = 22,
30 B15 = 23,
31 B16 = 24,
32 B17 = 25,
33 B18 = 26,
34 B19 = 27,
35 B20 = 28,
36 B21 = 29,
37 B22 = 30,
38 B23 = 31,
39 B24 = 32,
40 B25 = 33,
41 B26 = 34,
42 B27 = 35,
43 B28 = 36,
44 B29 = 37,
45 B30 = 38,
46 B31 = 39,
47 D0 = 40,
48 D1 = 41,
49 D2 = 42,
50 D3 = 43,
51 D4 = 44,
52 D5 = 45,
53 D6 = 46,
54 D7 = 47,
55 D8 = 48,
56 D9 = 49,
57 D10 = 50,
58 D11 = 51,
59 D12 = 52,
60 D13 = 53,
61 D14 = 54,
62 D15 = 55,
63 D16 = 56,
64 D17 = 57,
65 D18 = 58,
66 D19 = 59,
67 D20 = 60,
68 D21 = 61,
69 D22 = 62,
70 D23 = 63,
71 D24 = 64,
72 D25 = 65,
73 D26 = 66,
74 D27 = 67,
75 D28 = 68,
76 D29 = 69,
77 D30 = 70,
78 D31 = 71,
79 H0 = 72,
80 H1 = 73,
81 H2 = 74,
82 H3 = 75,
83 H4 = 76,
84 H5 = 77,
85 H6 = 78,
86 H7 = 79,
87 H8 = 80,
88 H9 = 81,
89 H10 = 82,
90 H11 = 83,
91 H12 = 84,
92 H13 = 85,
93 H14 = 86,
94 H15 = 87,
95 H16 = 88,
96 H17 = 89,
97 H18 = 90,
98 H19 = 91,
99 H20 = 92,
100 H21 = 93,
101 H22 = 94,
102 H23 = 95,
103 H24 = 96,
104 H25 = 97,
105 H26 = 98,
106 H27 = 99,
107 H28 = 100,
108 H29 = 101,
109 H30 = 102,
110 H31 = 103,
111 Q0 = 104,
112 Q1 = 105,
113 Q2 = 106,
114 Q3 = 107,
115 Q4 = 108,
116 Q5 = 109,
117 Q6 = 110,
118 Q7 = 111,
119 Q8 = 112,
120 Q9 = 113,
121 Q10 = 114,
122 Q11 = 115,
123 Q12 = 116,
124 Q13 = 117,
125 Q14 = 118,
126 Q15 = 119,
127 Q16 = 120,
128 Q17 = 121,
129 Q18 = 122,
130 Q19 = 123,
131 Q20 = 124,
132 Q21 = 125,
133 Q22 = 126,
134 Q23 = 127,
135 Q24 = 128,
136 Q25 = 129,
137 Q26 = 130,
138 Q27 = 131,
139 Q28 = 132,
140 Q29 = 133,
141 Q30 = 134,
142 Q31 = 135,
143 S0 = 136,
144 S1 = 137,
145 S2 = 138,
146 S3 = 139,
147 S4 = 140,
148 S5 = 141,
149 S6 = 142,
150 S7 = 143,
151 S8 = 144,
152 S9 = 145,
153 S10 = 146,
154 S11 = 147,
155 S12 = 148,
156 S13 = 149,
157 S14 = 150,
158 S15 = 151,
159 S16 = 152,
160 S17 = 153,
161 S18 = 154,
162 S19 = 155,
163 S20 = 156,
164 S21 = 157,
165 S22 = 158,
166 S23 = 159,
167 S24 = 160,
168 S25 = 161,
169 S26 = 162,
170 S27 = 163,
171 S28 = 164,
172 S29 = 165,
173 S30 = 166,
174 S31 = 167,
175 W0 = 168,
176 W1 = 169,
177 W2 = 170,
178 W3 = 171,
179 W4 = 172,
180 W5 = 173,
181 W6 = 174,
182 W7 = 175,
183 W8 = 176,
184 W9 = 177,
185 W10 = 178,
186 W11 = 179,
187 W12 = 180,
188 W13 = 181,
189 W14 = 182,
190 W15 = 183,
191 W16 = 184,
192 W17 = 185,
193 W18 = 186,
194 W19 = 187,
195 W20 = 188,
196 W21 = 189,
197 W22 = 190,
198 W23 = 191,
199 W24 = 192,
200 W25 = 193,
201 W26 = 194,
202 W27 = 195,
203 W28 = 196,
204 W29 = 197,
205 W30 = 198,
206 X0 = 199,
207 X1 = 200,
208 X2 = 201,
209 X3 = 202,
210 X4 = 203,
211 X5 = 204,
212 X6 = 205,
213 X7 = 206,
214 X8 = 207,
215 X9 = 208,
216 X10 = 209,
217 X11 = 210,
218 X12 = 211,
219 X13 = 212,
220 X14 = 213,
221 X15 = 214,
222 X16 = 215,
223 X17 = 216,
224 X18 = 217,
225 X19 = 218,
226 X20 = 219,
227 X21 = 220,
228 X22 = 221,
229 X23 = 222,
230 X24 = 223,
231 X25 = 224,
232 X26 = 225,
233 X27 = 226,
234 X28 = 227,
235 V0 = 228,
236 V1 = 229,
237 V2 = 230,
238 V3 = 231,
239 V4 = 232,
240 V5 = 233,
241 V6 = 234,
242 V7 = 235,
243 V8 = 236,
244 V9 = 237,
245 V10 = 238,
246 V11 = 239,
247 V12 = 240,
248 V13 = 241,
249 V14 = 242,
250 V15 = 243,
251 V16 = 244,
252 V17 = 245,
253 V18 = 246,
254 V19 = 247,
255 V20 = 248,
256 V21 = 249,
257 V22 = 250,
258 V23 = 251,
259 V24 = 252,
260 V25 = 253,
261 V26 = 254,
262 V27 = 255,
263 V28 = 256,
264 V29 = 257,
265 V30 = 258,
266 V31 = 259,
267
268 PC = 260,
270 CPACR_EL1 = 261,
271
272 TPIDR_EL0 = 262,
274 TPIDRRO_EL0 = 263,
275 TPIDR_EL1 = 264,
276 PSTATE = 265,
277
278 ELR_EL0 = 266,
280 ELR_EL1 = 267,
281 ELR_EL2 = 268,
282 ELR_EL3 = 269,
283
284 SP_EL0 = 270,
286 SP_EL1 = 271,
287 SP_EL2 = 272,
288 SP_EL3 = 273,
289
290 TTBR0_EL1 = 274,
292 TTBR1_EL1 = 275,
293 ESR_EL0 = 276,
294 ESR_EL1 = 277,
295 ESR_EL2 = 278,
296 ESR_EL3 = 279,
297 FAR_EL0 = 280,
298 FAR_EL1 = 281,
299 FAR_EL2 = 282,
300 FAR_EL3 = 283,
301 PAR_EL1 = 284,
302 MAIR_EL1 = 285,
303 VBAR_EL0 = 286,
304 VBAR_EL1 = 287,
305 VBAR_EL2 = 288,
306 VBAR_EL3 = 289,
307 CP_REG = 290,
308 ENDING = 291,
309}
310
311impl RegisterARM64 {
312 pub const IP0: RegisterARM64 = RegisterARM64::X16;
318 pub const IP1: RegisterARM64 = RegisterARM64::X17;
319 pub const FP: RegisterARM64 = RegisterARM64::X29;
320 pub const LR: RegisterARM64 = RegisterARM64::X30;
321}
322
323impl From<RegisterARM64> for i32 {
324 fn from(r: RegisterARM64) -> Self {
325 r as i32
326 }
327}
328
329#[repr(i32)]
330#[derive(Debug, Copy, Clone, PartialEq, Eq)]
331pub enum Arm64CpuModel {
332 UC_CPU_ARM64_A57 = 0,
333 UC_CPU_ARM64_A53 = 1,
334 UC_CPU_ARM64_A72 = 2,
335 UC_CPU_ARM64_MAX = 3,
336}
337
338impl From<Arm64CpuModel> for i32 {
339 fn from(value: Arm64CpuModel) -> Self {
340 value as i32
341 }
342}
343
344impl From<&Arm64CpuModel> for i32 {
345 fn from(value: &Arm64CpuModel) -> Self {
346 (*value) as i32
347 }
348}