1use crate::{
7 Amcfgr, AmcfgrEl0, Amcgcr, AmcgcrEl0, Amcntenclr0, Amcntenclr0El0, Amcntenclr1, Amcntenclr1El0,
8 Amcntenset0, Amcntenset0El0, Amcntenset1, Amcntenset1El0, Amcr, AmcrEl0, Amevcntr00,
9 Amevcntr00El0, Amevcntr01, Amevcntr01El0, Amevcntr02, Amevcntr02El0, Amevcntr03, Amevcntr03El0,
10 Amevcntr10El0, Amevcntr11El0, Amevcntr12El0, Amevcntr13El0, Amevcntr14El0, Amevcntr15El0,
11 Amevcntr16El0, Amevcntr17El0, Amevcntr18El0, Amevcntr19El0, Amevcntr110El0, Amevcntr111El0,
12 Amevcntr112El0, Amevcntr113El0, Amevcntr114El0, Amevcntr115El0, Amuserenr, AmuserenrEl0,
13 Ccsidr, Ccsidr2, Clidr, Cntfrq, CntfrqEl0, Cnthctl, CnthpCtl, CnthpCval, CnthpTval, CnthpsCtl,
14 CnthpsCval, CnthpsTval, CnthvCtl, CnthvCval, CnthvTval, CnthvsCtl, CnthvsCval, CnthvsTval,
15 Cntkctl, CntpCtl, CntpCtlEl0, CntpCval, CntpCvalEl0, CntpTval, CntpTvalEl0, Cntpct, CntpctEl0,
16 Cntpctss, CntpctssEl0, CntvCtl, CntvCtlEl0, CntvCval, CntvCvalEl0, CntvTval, CntvTvalEl0,
17 Cntvct, CntvctEl0, Cntvctss, CntvctssEl0, Cntvoff, Contextidr, Cpacr, Csselr, Ctr, CtrEl0,
18 Currentel, Dacr, Dbgauthstatus, Dbgclaimclr, Dbgclaimset, Dbgdccint, Dbgdevid, Dbgdevid1,
19 Dbgdidr, Dbgdrar, Dbgdscrext, Dbgdscrint, Dbgdtrrxext, Dbgdtrrxint, Dbgdtrtxext, Dbgdtrtxint,
20 Dbgosdlr, Dbgoseccr, Dbgoslar, Dbgoslsr, Dbgprcr, Dbgvcr, Dfar, Dfsr, Disr, Dit, Dlr, Dspsr,
21 Dspsr2, Erridr, Errselr, Erxaddr, Erxaddr2, Erxctlr, Erxctlr2, Erxfr, Erxfr2, Erxmisc0,
22 Erxmisc1, Erxmisc2, Erxmisc3, Erxmisc4, Erxmisc5, Erxmisc6, Erxmisc7, Erxstatus, Hcptr, Hcr,
23 Hcr2, Hdcr, Hdfar, Hifar, Hmair0, Hmair1, Hpfar, Hrmr, Hsctlr, Hsr, Htcr, Htpidr, Htrfcr,
24 Httbr, Hvbar, IccAsgi1r, IccBpr0, IccBpr1, IccCtlr, IccDir, IccEoir0, IccEoir1, IccHppir0,
25 IccHppir1, IccHsre, IccIar0, IccIar1, IccIgrpen0, IccIgrpen1, IccMctlr, IccMgrpen1, IccMsre,
26 IccPmr, IccRpr, IccSgi0r, IccSgi1r, IccSre, IdDfr0, IdDfr1, IdIsar0, IdIsar1, IdIsar2, IdIsar3,
27 IdIsar4, IdIsar5, IdIsar6, IdMmfr0, IdMmfr1, IdMmfr2, IdMmfr3, IdMmfr4, IdMmfr5, IdPfr0,
28 IdPfr1, IdPfr2, Ifar, Ifsr, Isr, Mair0, Mair1, Midr, Mpidr, Mvbar, Nmrr, Nsacr, Par, Pmccfiltr,
29 Pmccntr, Pmceid0, Pmceid1, Pmceid2, Pmceid3, Pmcntenclr, Pmcntenset, Pmcr, PmcrEl0, Pmintenclr,
30 Pmintenset, Pmmir, Pmovsr, Pmovsset, Pmselr, Pmswinc, Pmuserenr, Pmxevtyper, Prrr, Rmr, Rvbar,
31 Scr, Sctlr, Sdcr, Sder, Svcr, Tlbtr, TpidrEl0, Tpidrprw, TpidrroEl0, Tpidruro, Tpidrurw, Trfcr,
32 Ttbcr, Ttbcr2, Ttbr0, Ttbr1, Vbar, Vdfsr, Vdisr, Vmpidr, Vpidr, Vtcr, Vttbr,
33};
34#[cfg(feature = "el1")]
35use crate::{
36 ApiakeyhiEl1, ApiakeyloEl1, CcsidrEl1, ClidrEl1, CntkctlEl1, CntpsCtlEl1, CntpsCvalEl1,
37 CntpsTvalEl1, ContextidrEl1, CpacrEl1, CsselrEl1, DisrEl1, ElrEl1, EsrEl1, FarEl1, GcrEl1,
38 GcscrEl1, IccAp1r0El1, IccAsgi1rEl1, IccBpr0El1, IccBpr1El1, IccCtlrEl1, IccDirEl1,
39 IccEoir0El1, IccEoir1El1, IccHppir0El1, IccHppir1El1, IccIar0El1, IccIar1El1, IccIgrpen0El1,
40 IccIgrpen1El1, IccNmiar1El1, IccPmrEl1, IccRprEl1, IccSgi0rEl1, IccSgi1rEl1, IccSreEl1,
41 IdAa64dfr0El1, IdAa64dfr1El1, IdAa64isar1El1, IdAa64isar2El1, IdAa64mmfr0El1, IdAa64mmfr1El1,
42 IdAa64mmfr2El1, IdAa64mmfr3El1, IdAa64pfr0El1, IdAa64pfr1El1, IdAa64smfr0El1, IsrEl1, MairEl1,
43 MdccintEl1, MdscrEl1, MidrEl1, MpamidrEl1, MpidrEl1, ParEl1, RgsrEl1, SctlrEl1, SpEl1, SpsrEl1,
44 Tcr2El1, TcrEl1, TfsrEl1, Tfsre0El1, TpidrEl1, Ttbr0El1, Ttbr1El1, VbarEl1,
45};
46#[cfg(feature = "el2")]
47use crate::{
48 CnthctlEl2, CnthpCtlEl2, CnthpCvalEl2, CnthpTvalEl2, CnthpsCtlEl2, CnthpsCvalEl2,
49 CnthpsTvalEl2, CnthvCtlEl2, CnthvCvalEl2, CnthvTvalEl2, CnthvsCtlEl2, CnthvsCvalEl2,
50 CnthvsTvalEl2, CntpoffEl2, CntvoffEl2, ContextidrEl2, CptrEl2, ElrEl2, ElrHyp, EsrEl2, FarEl2,
51 GcscrEl2, HafgrtrEl2, HcrEl2, HcrxEl2, Hdfgrtr2El2, HdfgrtrEl2, Hdfgwtr2El2, HdfgwtrEl2,
52 Hfgitr2El2, HfgitrEl2, Hfgrtr2El2, HfgrtrEl2, Hfgwtr2El2, HfgwtrEl2, HpfarEl2, IccSreEl2,
53 IchHcrEl2, IchVmcrEl2, MairEl2, MdcrEl2, Mpam2El2, MpamhcrEl2, Mpamvpm0El2, Mpamvpm1El2,
54 Mpamvpm2El2, Mpamvpm3El2, Mpamvpm4El2, Mpamvpm5El2, Mpamvpm6El2, Mpamvpm7El2, MpamvpmvEl2,
55 SctlrEl2, SpEl2, SpsrEl2, Tcr2El2, TcrEl2, TfsrEl2, TpidrEl2, Ttbr0El2, Ttbr1El2, VbarEl2,
56 VdisrEl2, VmpidrEl2, VpidrEl2, VsesrEl2, VtcrEl2, VttbrEl2,
57};
58#[cfg(feature = "el3")]
59use crate::{
60 CptrEl3, EsrEl3, GpccrEl3, GptbrEl3, IccCtlrEl3, IccIgrpen1El3, IccSreEl3, MairEl3, MdcrEl3,
61 Mpam3El3, ScrEl3, Sctlr2El3, SctlrEl3, SmcrEl3, SpsrEl3, TcrEl3, TpidrEl3, Ttbr0El3, ZcrEl3,
62};
63
64#[derive(Clone, Debug, Eq, PartialEq)]
66#[non_exhaustive]
67pub struct SystemRegisters {
68 pub actlr: u32,
70 pub actlr2: u32,
72 #[cfg(feature = "el1")]
73 pub actlr_el1: u64,
75 #[cfg(feature = "el2")]
76 pub actlr_el2: u64,
78 pub adfsr: u32,
80 #[cfg(feature = "el1")]
81 pub afsr0_el1: u64,
83 #[cfg(feature = "el2")]
84 pub afsr0_el2: u64,
86 #[cfg(feature = "el1")]
87 pub afsr1_el1: u64,
89 #[cfg(feature = "el2")]
90 pub afsr1_el2: u64,
92 pub aidr: u32,
94 pub aifsr: u32,
96 pub amair0: u32,
98 pub amair1: u32,
100 #[cfg(feature = "el1")]
101 pub amair_el1: u64,
103 #[cfg(feature = "el2")]
104 pub amair_el2: u64,
106 pub amcfgr: Amcfgr,
108 pub amcfgr_el0: AmcfgrEl0,
110 pub amcgcr: Amcgcr,
112 pub amcgcr_el0: AmcgcrEl0,
114 pub amcntenclr0: Amcntenclr0,
116 pub amcntenclr0_el0: Amcntenclr0El0,
118 pub amcntenclr1: Amcntenclr1,
120 pub amcntenclr1_el0: Amcntenclr1El0,
122 pub amcntenset0: Amcntenset0,
124 pub amcntenset0_el0: Amcntenset0El0,
126 pub amcntenset1: Amcntenset1,
128 pub amcntenset1_el0: Amcntenset1El0,
130 pub amcr: Amcr,
132 pub amcr_el0: AmcrEl0,
134 pub amevcntr00: Amevcntr00,
136 pub amevcntr00_el0: Amevcntr00El0,
138 pub amevcntr01: Amevcntr01,
140 pub amevcntr01_el0: Amevcntr01El0,
142 pub amevcntr02: Amevcntr02,
144 pub amevcntr02_el0: Amevcntr02El0,
146 pub amevcntr03: Amevcntr03,
148 pub amevcntr03_el0: Amevcntr03El0,
150 pub amevcntr10_el0: Amevcntr10El0,
152 pub amevcntr110_el0: Amevcntr110El0,
154 pub amevcntr111_el0: Amevcntr111El0,
156 pub amevcntr112_el0: Amevcntr112El0,
158 pub amevcntr113_el0: Amevcntr113El0,
160 pub amevcntr114_el0: Amevcntr114El0,
162 pub amevcntr115_el0: Amevcntr115El0,
164 pub amevcntr11_el0: Amevcntr11El0,
166 pub amevcntr12_el0: Amevcntr12El0,
168 pub amevcntr13_el0: Amevcntr13El0,
170 pub amevcntr14_el0: Amevcntr14El0,
172 pub amevcntr15_el0: Amevcntr15El0,
174 pub amevcntr16_el0: Amevcntr16El0,
176 pub amevcntr17_el0: Amevcntr17El0,
178 pub amevcntr18_el0: Amevcntr18El0,
180 pub amevcntr19_el0: Amevcntr19El0,
182 pub amuserenr: Amuserenr,
184 pub amuserenr_el0: AmuserenrEl0,
186 #[cfg(feature = "el1")]
187 pub apiakeyhi_el1: ApiakeyhiEl1,
189 #[cfg(feature = "el1")]
190 pub apiakeylo_el1: ApiakeyloEl1,
192 pub ccsidr: Ccsidr,
194 pub ccsidr2: Ccsidr2,
196 #[cfg(feature = "el1")]
197 pub ccsidr_el1: CcsidrEl1,
199 pub clidr: Clidr,
201 #[cfg(feature = "el1")]
202 pub clidr_el1: ClidrEl1,
204 pub cntfrq: Cntfrq,
206 pub cntfrq_el0: CntfrqEl0,
208 pub cnthctl: Cnthctl,
210 #[cfg(feature = "el2")]
211 pub cnthctl_el2: CnthctlEl2,
213 pub cnthps_ctl: CnthpsCtl,
215 #[cfg(feature = "el2")]
216 pub cnthps_ctl_el2: CnthpsCtlEl2,
218 pub cnthps_cval: CnthpsCval,
220 #[cfg(feature = "el2")]
221 pub cnthps_cval_el2: CnthpsCvalEl2,
223 pub cnthps_tval: CnthpsTval,
225 #[cfg(feature = "el2")]
226 pub cnthps_tval_el2: CnthpsTvalEl2,
228 pub cnthp_ctl: CnthpCtl,
230 #[cfg(feature = "el2")]
231 pub cnthp_ctl_el2: CnthpCtlEl2,
233 pub cnthp_cval: CnthpCval,
235 #[cfg(feature = "el2")]
236 pub cnthp_cval_el2: CnthpCvalEl2,
238 pub cnthp_tval: CnthpTval,
240 #[cfg(feature = "el2")]
241 pub cnthp_tval_el2: CnthpTvalEl2,
243 pub cnthvs_ctl: CnthvsCtl,
245 #[cfg(feature = "el2")]
246 pub cnthvs_ctl_el2: CnthvsCtlEl2,
248 pub cnthvs_cval: CnthvsCval,
250 #[cfg(feature = "el2")]
251 pub cnthvs_cval_el2: CnthvsCvalEl2,
253 pub cnthvs_tval: CnthvsTval,
255 #[cfg(feature = "el2")]
256 pub cnthvs_tval_el2: CnthvsTvalEl2,
258 pub cnthv_ctl: CnthvCtl,
260 #[cfg(feature = "el2")]
261 pub cnthv_ctl_el2: CnthvCtlEl2,
263 pub cnthv_cval: CnthvCval,
265 #[cfg(feature = "el2")]
266 pub cnthv_cval_el2: CnthvCvalEl2,
268 pub cnthv_tval: CnthvTval,
270 #[cfg(feature = "el2")]
271 pub cnthv_tval_el2: CnthvTvalEl2,
273 pub cntkctl: Cntkctl,
275 #[cfg(feature = "el1")]
276 pub cntkctl_el1: CntkctlEl1,
278 pub cntpct: Cntpct,
280 pub cntpctss: Cntpctss,
282 pub cntpctss_el0: CntpctssEl0,
284 pub cntpct_el0: CntpctEl0,
286 #[cfg(feature = "el2")]
287 pub cntpoff_el2: CntpoffEl2,
289 #[cfg(feature = "el1")]
290 pub cntps_ctl_el1: CntpsCtlEl1,
292 #[cfg(feature = "el1")]
293 pub cntps_cval_el1: CntpsCvalEl1,
295 #[cfg(feature = "el1")]
296 pub cntps_tval_el1: CntpsTvalEl1,
298 pub cntp_ctl: CntpCtl,
300 pub cntp_ctl_el0: CntpCtlEl0,
302 pub cntp_cval: CntpCval,
304 pub cntp_cval_el0: CntpCvalEl0,
306 pub cntp_tval: CntpTval,
308 pub cntp_tval_el0: CntpTvalEl0,
310 pub cntvct: Cntvct,
312 pub cntvctss: Cntvctss,
314 pub cntvctss_el0: CntvctssEl0,
316 pub cntvct_el0: CntvctEl0,
318 pub cntvoff: Cntvoff,
320 #[cfg(feature = "el2")]
321 pub cntvoff_el2: CntvoffEl2,
323 pub cntv_ctl: CntvCtl,
325 pub cntv_ctl_el0: CntvCtlEl0,
327 pub cntv_cval: CntvCval,
329 pub cntv_cval_el0: CntvCvalEl0,
331 pub cntv_tval: CntvTval,
333 pub cntv_tval_el0: CntvTvalEl0,
335 pub contextidr: Contextidr,
337 #[cfg(feature = "el1")]
338 pub contextidr_el1: ContextidrEl1,
340 #[cfg(feature = "el2")]
341 pub contextidr_el2: ContextidrEl2,
343 pub cpacr: Cpacr,
345 #[cfg(feature = "el1")]
346 pub cpacr_el1: CpacrEl1,
348 #[cfg(feature = "el2")]
349 pub cptr_el2: CptrEl2,
351 #[cfg(feature = "el3")]
352 pub cptr_el3: CptrEl3,
354 pub csselr: Csselr,
356 #[cfg(feature = "el1")]
357 pub csselr_el1: CsselrEl1,
359 pub ctr: Ctr,
361 pub ctr_el0: CtrEl0,
363 pub currentel: Currentel,
365 pub dacr: Dacr,
367 pub dbgauthstatus: Dbgauthstatus,
369 pub dbgclaimclr: Dbgclaimclr,
371 pub dbgclaimset: Dbgclaimset,
373 pub dbgdccint: Dbgdccint,
375 pub dbgdevid: Dbgdevid,
377 pub dbgdevid1: Dbgdevid1,
379 pub dbgdevid2: u32,
381 pub dbgdidr: Dbgdidr,
383 pub dbgdrar: Dbgdrar,
385 pub dbgdsar: u64,
387 pub dbgdscrext: Dbgdscrext,
389 pub dbgdscrint: Dbgdscrint,
391 pub dbgdtrrxext: Dbgdtrrxext,
393 pub dbgdtrrxint: Dbgdtrrxint,
395 pub dbgdtrtxext: Dbgdtrtxext,
397 pub dbgdtrtxint: Dbgdtrtxint,
399 pub dbgosdlr: Dbgosdlr,
401 pub dbgoseccr: Dbgoseccr,
403 pub dbgoslar: Dbgoslar,
405 pub dbgoslsr: Dbgoslsr,
407 pub dbgprcr: Dbgprcr,
409 pub dbgvcr: Dbgvcr,
411 pub dbgwfar: u32,
413 pub dfar: Dfar,
415 pub dfsr: Dfsr,
417 pub disr: Disr,
419 #[cfg(feature = "el1")]
420 pub disr_el1: DisrEl1,
422 pub dit: Dit,
424 pub dlr: Dlr,
426 pub dspsr: Dspsr,
428 pub dspsr2: Dspsr2,
430 #[cfg(feature = "el1")]
431 pub elr_el1: ElrEl1,
433 #[cfg(feature = "el2")]
434 pub elr_el2: ElrEl2,
436 #[cfg(feature = "el2")]
437 pub elr_hyp: ElrHyp,
439 pub erridr: Erridr,
441 pub errselr: Errselr,
443 pub erxaddr: Erxaddr,
445 pub erxaddr2: Erxaddr2,
447 pub erxctlr: Erxctlr,
449 pub erxctlr2: Erxctlr2,
451 pub erxfr: Erxfr,
453 pub erxfr2: Erxfr2,
455 pub erxmisc0: Erxmisc0,
457 pub erxmisc1: Erxmisc1,
459 pub erxmisc2: Erxmisc2,
461 pub erxmisc3: Erxmisc3,
463 pub erxmisc4: Erxmisc4,
465 pub erxmisc5: Erxmisc5,
467 pub erxmisc6: Erxmisc6,
469 pub erxmisc7: Erxmisc7,
471 pub erxstatus: Erxstatus,
473 #[cfg(feature = "el1")]
474 pub esr_el1: EsrEl1,
476 #[cfg(feature = "el2")]
477 pub esr_el2: EsrEl2,
479 #[cfg(feature = "el3")]
480 pub esr_el3: EsrEl3,
482 #[cfg(feature = "el1")]
483 pub far_el1: FarEl1,
485 #[cfg(feature = "el2")]
486 pub far_el2: FarEl2,
488 pub fcseidr: u32,
490 #[cfg(feature = "el1")]
491 pub gcr_el1: GcrEl1,
493 #[cfg(feature = "el1")]
494 pub gcscr_el1: GcscrEl1,
496 #[cfg(feature = "el2")]
497 pub gcscr_el2: GcscrEl2,
499 #[cfg(feature = "el3")]
500 pub gpccr_el3: GpccrEl3,
502 #[cfg(feature = "el3")]
503 pub gptbr_el3: GptbrEl3,
505 pub hacr: u32,
507 #[cfg(feature = "el2")]
508 pub hacr_el2: u64,
510 pub hactlr: u32,
512 pub hactlr2: u32,
514 pub hadfsr: u32,
516 #[cfg(feature = "el2")]
517 pub hafgrtr_el2: HafgrtrEl2,
519 pub haifsr: u32,
521 pub hamair0: u32,
523 pub hamair1: u32,
525 pub hcptr: Hcptr,
527 pub hcr: Hcr,
529 pub hcr2: Hcr2,
531 #[cfg(feature = "el2")]
532 pub hcrx_el2: HcrxEl2,
534 #[cfg(feature = "el2")]
535 pub hcr_el2: HcrEl2,
537 pub hdcr: Hdcr,
539 pub hdfar: Hdfar,
541 #[cfg(feature = "el2")]
542 pub hdfgrtr2_el2: Hdfgrtr2El2,
544 #[cfg(feature = "el2")]
545 pub hdfgrtr_el2: HdfgrtrEl2,
547 #[cfg(feature = "el2")]
548 pub hdfgwtr2_el2: Hdfgwtr2El2,
550 #[cfg(feature = "el2")]
551 pub hdfgwtr_el2: HdfgwtrEl2,
553 #[cfg(feature = "el2")]
554 pub hfgitr2_el2: Hfgitr2El2,
556 #[cfg(feature = "el2")]
557 pub hfgitr_el2: HfgitrEl2,
559 #[cfg(feature = "el2")]
560 pub hfgrtr2_el2: Hfgrtr2El2,
562 #[cfg(feature = "el2")]
563 pub hfgrtr_el2: HfgrtrEl2,
565 #[cfg(feature = "el2")]
566 pub hfgwtr2_el2: Hfgwtr2El2,
568 #[cfg(feature = "el2")]
569 pub hfgwtr_el2: HfgwtrEl2,
571 pub hifar: Hifar,
573 pub hmair0: Hmair0,
575 pub hmair1: Hmair1,
577 pub hpfar: Hpfar,
579 #[cfg(feature = "el2")]
580 pub hpfar_el2: HpfarEl2,
582 pub hrmr: Hrmr,
584 pub hsctlr: Hsctlr,
586 pub hsr: Hsr,
588 pub hstr: u32,
590 #[cfg(feature = "el2")]
591 pub hstr_el2: u64,
593 pub htcr: Htcr,
595 pub htpidr: Htpidr,
597 pub htrfcr: Htrfcr,
599 pub httbr: Httbr,
601 pub hvbar: Hvbar,
603 #[cfg(feature = "el1")]
604 pub icc_ap0r0_el1: u64,
606 #[cfg(feature = "el1")]
607 pub icc_ap0r1_el1: u64,
609 #[cfg(feature = "el1")]
610 pub icc_ap0r2_el1: u64,
612 #[cfg(feature = "el1")]
613 pub icc_ap0r3_el1: u64,
615 #[cfg(feature = "el1")]
616 pub icc_ap1r0_el1: IccAp1r0El1,
618 #[cfg(feature = "el1")]
619 pub icc_ap1r1_el1: u64,
621 #[cfg(feature = "el1")]
622 pub icc_ap1r2_el1: u64,
624 #[cfg(feature = "el1")]
625 pub icc_ap1r3_el1: u64,
627 pub icc_asgi1r: IccAsgi1r,
629 #[cfg(feature = "el1")]
630 pub icc_asgi1r_el1: IccAsgi1rEl1,
632 pub icc_bpr0: IccBpr0,
634 #[cfg(feature = "el1")]
635 pub icc_bpr0_el1: IccBpr0El1,
637 pub icc_bpr1: IccBpr1,
639 #[cfg(feature = "el1")]
640 pub icc_bpr1_el1: IccBpr1El1,
642 pub icc_ctlr: IccCtlr,
644 #[cfg(feature = "el1")]
645 pub icc_ctlr_el1: IccCtlrEl1,
647 #[cfg(feature = "el3")]
648 pub icc_ctlr_el3: IccCtlrEl3,
650 pub icc_dir: IccDir,
652 #[cfg(feature = "el1")]
653 pub icc_dir_el1: IccDirEl1,
655 pub icc_eoir0: IccEoir0,
657 #[cfg(feature = "el1")]
658 pub icc_eoir0_el1: IccEoir0El1,
660 pub icc_eoir1: IccEoir1,
662 #[cfg(feature = "el1")]
663 pub icc_eoir1_el1: IccEoir1El1,
665 pub icc_hppir0: IccHppir0,
667 #[cfg(feature = "el1")]
668 pub icc_hppir0_el1: IccHppir0El1,
670 pub icc_hppir1: IccHppir1,
672 #[cfg(feature = "el1")]
673 pub icc_hppir1_el1: IccHppir1El1,
675 pub icc_hsre: IccHsre,
677 pub icc_iar0: IccIar0,
679 #[cfg(feature = "el1")]
680 pub icc_iar0_el1: IccIar0El1,
682 pub icc_iar1: IccIar1,
684 #[cfg(feature = "el1")]
685 pub icc_iar1_el1: IccIar1El1,
687 pub icc_igrpen0: IccIgrpen0,
689 #[cfg(feature = "el1")]
690 pub icc_igrpen0_el1: IccIgrpen0El1,
692 pub icc_igrpen1: IccIgrpen1,
694 #[cfg(feature = "el1")]
695 pub icc_igrpen1_el1: IccIgrpen1El1,
697 #[cfg(feature = "el3")]
698 pub icc_igrpen1_el3: IccIgrpen1El3,
700 pub icc_mctlr: IccMctlr,
702 pub icc_mgrpen1: IccMgrpen1,
704 pub icc_msre: IccMsre,
706 #[cfg(feature = "el1")]
707 pub icc_nmiar1_el1: IccNmiar1El1,
709 pub icc_pmr: IccPmr,
711 #[cfg(feature = "el1")]
712 pub icc_pmr_el1: IccPmrEl1,
714 pub icc_rpr: IccRpr,
716 #[cfg(feature = "el1")]
717 pub icc_rpr_el1: IccRprEl1,
719 pub icc_sgi0r: IccSgi0r,
721 #[cfg(feature = "el1")]
722 pub icc_sgi0r_el1: IccSgi0rEl1,
724 pub icc_sgi1r: IccSgi1r,
726 #[cfg(feature = "el1")]
727 pub icc_sgi1r_el1: IccSgi1rEl1,
729 pub icc_sre: IccSre,
731 #[cfg(feature = "el1")]
732 pub icc_sre_el1: IccSreEl1,
734 #[cfg(feature = "el2")]
735 pub icc_sre_el2: IccSreEl2,
737 #[cfg(feature = "el3")]
738 pub icc_sre_el3: IccSreEl3,
740 #[cfg(feature = "el2")]
741 pub ich_hcr_el2: IchHcrEl2,
743 #[cfg(feature = "el2")]
744 pub ich_vmcr_el2: IchVmcrEl2,
746 #[cfg(feature = "el1")]
747 pub id_aa64dfr0_el1: IdAa64dfr0El1,
749 #[cfg(feature = "el1")]
750 pub id_aa64dfr1_el1: IdAa64dfr1El1,
752 #[cfg(feature = "el1")]
753 pub id_aa64isar1_el1: IdAa64isar1El1,
755 #[cfg(feature = "el1")]
756 pub id_aa64isar2_el1: IdAa64isar2El1,
758 #[cfg(feature = "el1")]
759 pub id_aa64mmfr0_el1: IdAa64mmfr0El1,
761 #[cfg(feature = "el1")]
762 pub id_aa64mmfr1_el1: IdAa64mmfr1El1,
764 #[cfg(feature = "el1")]
765 pub id_aa64mmfr2_el1: IdAa64mmfr2El1,
767 #[cfg(feature = "el1")]
768 pub id_aa64mmfr3_el1: IdAa64mmfr3El1,
770 #[cfg(feature = "el1")]
771 pub id_aa64pfr0_el1: IdAa64pfr0El1,
773 #[cfg(feature = "el1")]
774 pub id_aa64pfr1_el1: IdAa64pfr1El1,
776 #[cfg(feature = "el1")]
777 pub id_aa64smfr0_el1: IdAa64smfr0El1,
779 pub id_afr0: u32,
781 pub id_dfr0: IdDfr0,
783 pub id_dfr1: IdDfr1,
785 pub id_isar0: IdIsar0,
787 pub id_isar1: IdIsar1,
789 pub id_isar2: IdIsar2,
791 pub id_isar3: IdIsar3,
793 pub id_isar4: IdIsar4,
795 pub id_isar5: IdIsar5,
797 pub id_isar6: IdIsar6,
799 pub id_mmfr0: IdMmfr0,
801 pub id_mmfr1: IdMmfr1,
803 pub id_mmfr2: IdMmfr2,
805 pub id_mmfr3: IdMmfr3,
807 pub id_mmfr4: IdMmfr4,
809 pub id_mmfr5: IdMmfr5,
811 pub id_pfr0: IdPfr0,
813 pub id_pfr1: IdPfr1,
815 pub id_pfr2: IdPfr2,
817 pub ifar: Ifar,
819 pub ifsr: Ifsr,
821 pub isr: Isr,
823 #[cfg(feature = "el1")]
824 pub isr_el1: IsrEl1,
826 pub jidr: u32,
828 pub jmcr: u32,
830 pub joscr: u32,
832 pub mair0: Mair0,
834 pub mair1: Mair1,
836 #[cfg(feature = "el1")]
837 pub mair_el1: MairEl1,
839 #[cfg(feature = "el2")]
840 pub mair_el2: MairEl2,
842 #[cfg(feature = "el3")]
843 pub mair_el3: MairEl3,
845 #[cfg(feature = "el1")]
846 pub mdccint_el1: MdccintEl1,
848 #[cfg(feature = "el2")]
849 pub mdcr_el2: MdcrEl2,
851 #[cfg(feature = "el3")]
852 pub mdcr_el3: MdcrEl3,
854 #[cfg(feature = "el1")]
855 pub mdscr_el1: MdscrEl1,
857 pub midr: Midr,
859 #[cfg(feature = "el1")]
860 pub midr_el1: MidrEl1,
862 #[cfg(feature = "el2")]
863 pub mpam2_el2: Mpam2El2,
865 #[cfg(feature = "el3")]
866 pub mpam3_el3: Mpam3El3,
868 #[cfg(feature = "el2")]
869 pub mpamhcr_el2: MpamhcrEl2,
871 #[cfg(feature = "el1")]
872 pub mpamidr_el1: MpamidrEl1,
874 #[cfg(feature = "el2")]
875 pub mpamvpm0_el2: Mpamvpm0El2,
877 #[cfg(feature = "el2")]
878 pub mpamvpm1_el2: Mpamvpm1El2,
880 #[cfg(feature = "el2")]
881 pub mpamvpm2_el2: Mpamvpm2El2,
883 #[cfg(feature = "el2")]
884 pub mpamvpm3_el2: Mpamvpm3El2,
886 #[cfg(feature = "el2")]
887 pub mpamvpm4_el2: Mpamvpm4El2,
889 #[cfg(feature = "el2")]
890 pub mpamvpm5_el2: Mpamvpm5El2,
892 #[cfg(feature = "el2")]
893 pub mpamvpm6_el2: Mpamvpm6El2,
895 #[cfg(feature = "el2")]
896 pub mpamvpm7_el2: Mpamvpm7El2,
898 #[cfg(feature = "el2")]
899 pub mpamvpmv_el2: MpamvpmvEl2,
901 pub mpidr: Mpidr,
903 #[cfg(feature = "el1")]
904 pub mpidr_el1: MpidrEl1,
906 pub mvbar: Mvbar,
908 pub nmrr: Nmrr,
910 pub nsacr: Nsacr,
912 pub par: Par,
914 #[cfg(feature = "el1")]
915 pub par_el1: ParEl1,
917 pub pmccfiltr: Pmccfiltr,
919 pub pmccntr: Pmccntr,
921 pub pmceid0: Pmceid0,
923 pub pmceid1: Pmceid1,
925 pub pmceid2: Pmceid2,
927 pub pmceid3: Pmceid3,
929 pub pmcntenclr: Pmcntenclr,
931 pub pmcntenset: Pmcntenset,
933 pub pmcr: Pmcr,
935 pub pmcr_el0: PmcrEl0,
937 pub pmintenclr: Pmintenclr,
939 pub pmintenset: Pmintenset,
941 pub pmmir: Pmmir,
943 pub pmovsr: Pmovsr,
945 pub pmovsset: Pmovsset,
947 pub pmselr: Pmselr,
949 pub pmswinc: Pmswinc,
951 pub pmuserenr: Pmuserenr,
953 pub pmxevtyper: Pmxevtyper,
955 pub prrr: Prrr,
957 pub revidr: u32,
959 #[cfg(feature = "el1")]
960 pub rgsr_el1: RgsrEl1,
962 pub rmr: Rmr,
964 pub rvbar: Rvbar,
966 pub scr: Scr,
968 #[cfg(feature = "el3")]
969 pub scr_el3: ScrEl3,
971 pub sctlr: Sctlr,
973 #[cfg(feature = "el3")]
974 pub sctlr2_el3: Sctlr2El3,
976 #[cfg(feature = "el1")]
977 pub sctlr_el1: SctlrEl1,
979 #[cfg(feature = "el2")]
980 pub sctlr_el2: SctlrEl2,
982 #[cfg(feature = "el3")]
983 pub sctlr_el3: SctlrEl3,
985 pub sdcr: Sdcr,
987 pub sder: Sder,
989 #[cfg(feature = "el3")]
990 pub smcr_el3: SmcrEl3,
992 #[cfg(feature = "el1")]
993 pub spsr_el1: SpsrEl1,
995 #[cfg(feature = "el2")]
996 pub spsr_el2: SpsrEl2,
998 #[cfg(feature = "el3")]
999 pub spsr_el3: SpsrEl3,
1001 #[cfg(feature = "el1")]
1002 pub sp_el1: SpEl1,
1004 #[cfg(feature = "el2")]
1005 pub sp_el2: SpEl2,
1007 pub svcr: Svcr,
1009 pub tcmtr: u32,
1011 #[cfg(feature = "el1")]
1012 pub tcr2_el1: Tcr2El1,
1014 #[cfg(feature = "el2")]
1015 pub tcr2_el2: Tcr2El2,
1017 #[cfg(feature = "el1")]
1018 pub tcr_el1: TcrEl1,
1020 #[cfg(feature = "el2")]
1021 pub tcr_el2: TcrEl2,
1023 #[cfg(feature = "el3")]
1024 pub tcr_el3: TcrEl3,
1026 #[cfg(feature = "el1")]
1027 pub tfsre0_el1: Tfsre0El1,
1029 #[cfg(feature = "el1")]
1030 pub tfsr_el1: TfsrEl1,
1032 #[cfg(feature = "el2")]
1033 pub tfsr_el2: TfsrEl2,
1035 pub tlbtr: Tlbtr,
1037 pub tpidrprw: Tpidrprw,
1039 pub tpidrro_el0: TpidrroEl0,
1041 pub tpidruro: Tpidruro,
1043 pub tpidrurw: Tpidrurw,
1045 pub tpidr_el0: TpidrEl0,
1047 #[cfg(feature = "el1")]
1048 pub tpidr_el1: TpidrEl1,
1050 #[cfg(feature = "el2")]
1051 pub tpidr_el2: TpidrEl2,
1053 #[cfg(feature = "el3")]
1054 pub tpidr_el3: TpidrEl3,
1056 pub trfcr: Trfcr,
1058 pub ttbcr: Ttbcr,
1060 pub ttbcr2: Ttbcr2,
1062 pub ttbr0: Ttbr0,
1064 #[cfg(feature = "el1")]
1065 pub ttbr0_el1: Ttbr0El1,
1067 #[cfg(feature = "el2")]
1068 pub ttbr0_el2: Ttbr0El2,
1070 #[cfg(feature = "el3")]
1071 pub ttbr0_el3: Ttbr0El3,
1073 pub ttbr1: Ttbr1,
1075 #[cfg(feature = "el1")]
1076 pub ttbr1_el1: Ttbr1El1,
1078 #[cfg(feature = "el2")]
1079 pub ttbr1_el2: Ttbr1El2,
1081 pub vbar: Vbar,
1083 #[cfg(feature = "el1")]
1084 pub vbar_el1: VbarEl1,
1086 #[cfg(feature = "el2")]
1087 pub vbar_el2: VbarEl2,
1089 pub vdfsr: Vdfsr,
1091 pub vdisr: Vdisr,
1093 #[cfg(feature = "el2")]
1094 pub vdisr_el2: VdisrEl2,
1096 pub vmpidr: Vmpidr,
1098 #[cfg(feature = "el2")]
1099 pub vmpidr_el2: VmpidrEl2,
1101 pub vpidr: Vpidr,
1103 #[cfg(feature = "el2")]
1104 pub vpidr_el2: VpidrEl2,
1106 #[cfg(feature = "el2")]
1107 pub vsesr_el2: VsesrEl2,
1109 pub vtcr: Vtcr,
1111 #[cfg(feature = "el2")]
1112 pub vtcr_el2: VtcrEl2,
1114 pub vttbr: Vttbr,
1116 #[cfg(feature = "el2")]
1117 pub vttbr_el2: VttbrEl2,
1119 #[cfg(feature = "el3")]
1120 pub zcr_el3: ZcrEl3,
1122}
1123
1124impl SystemRegisters {
1125 pub(crate) const fn new() -> Self {
1126 Self {
1127 actlr: 0,
1128 actlr2: 0,
1129 #[cfg(feature = "el1")]
1130 actlr_el1: 0,
1131 #[cfg(feature = "el2")]
1132 actlr_el2: 0,
1133 adfsr: 0,
1134 #[cfg(feature = "el1")]
1135 afsr0_el1: 0,
1136 #[cfg(feature = "el2")]
1137 afsr0_el2: 0,
1138 #[cfg(feature = "el1")]
1139 afsr1_el1: 0,
1140 #[cfg(feature = "el2")]
1141 afsr1_el2: 0,
1142 aidr: 0,
1143 aifsr: 0,
1144 amair0: 0,
1145 amair1: 0,
1146 #[cfg(feature = "el1")]
1147 amair_el1: 0,
1148 #[cfg(feature = "el2")]
1149 amair_el2: 0,
1150 amcfgr: Amcfgr::empty(),
1151 amcfgr_el0: AmcfgrEl0::empty(),
1152 amcgcr: Amcgcr::empty(),
1153 amcgcr_el0: AmcgcrEl0::empty(),
1154 amcntenclr0: Amcntenclr0::empty(),
1155 amcntenclr0_el0: Amcntenclr0El0::empty(),
1156 amcntenclr1: Amcntenclr1::empty(),
1157 amcntenclr1_el0: Amcntenclr1El0::empty(),
1158 amcntenset0: Amcntenset0::empty(),
1159 amcntenset0_el0: Amcntenset0El0::empty(),
1160 amcntenset1: Amcntenset1::empty(),
1161 amcntenset1_el0: Amcntenset1El0::empty(),
1162 amcr: Amcr::empty(),
1163 amcr_el0: AmcrEl0::empty(),
1164 amevcntr00: Amevcntr00::empty(),
1165 amevcntr00_el0: Amevcntr00El0::empty(),
1166 amevcntr01: Amevcntr01::empty(),
1167 amevcntr01_el0: Amevcntr01El0::empty(),
1168 amevcntr02: Amevcntr02::empty(),
1169 amevcntr02_el0: Amevcntr02El0::empty(),
1170 amevcntr03: Amevcntr03::empty(),
1171 amevcntr03_el0: Amevcntr03El0::empty(),
1172 amevcntr10_el0: Amevcntr10El0::empty(),
1173 amevcntr110_el0: Amevcntr110El0::empty(),
1174 amevcntr111_el0: Amevcntr111El0::empty(),
1175 amevcntr112_el0: Amevcntr112El0::empty(),
1176 amevcntr113_el0: Amevcntr113El0::empty(),
1177 amevcntr114_el0: Amevcntr114El0::empty(),
1178 amevcntr115_el0: Amevcntr115El0::empty(),
1179 amevcntr11_el0: Amevcntr11El0::empty(),
1180 amevcntr12_el0: Amevcntr12El0::empty(),
1181 amevcntr13_el0: Amevcntr13El0::empty(),
1182 amevcntr14_el0: Amevcntr14El0::empty(),
1183 amevcntr15_el0: Amevcntr15El0::empty(),
1184 amevcntr16_el0: Amevcntr16El0::empty(),
1185 amevcntr17_el0: Amevcntr17El0::empty(),
1186 amevcntr18_el0: Amevcntr18El0::empty(),
1187 amevcntr19_el0: Amevcntr19El0::empty(),
1188 amuserenr: Amuserenr::empty(),
1189 amuserenr_el0: AmuserenrEl0::empty(),
1190 #[cfg(feature = "el1")]
1191 apiakeyhi_el1: ApiakeyhiEl1::empty(),
1192 #[cfg(feature = "el1")]
1193 apiakeylo_el1: ApiakeyloEl1::empty(),
1194 ccsidr: Ccsidr::empty(),
1195 ccsidr2: Ccsidr2::empty(),
1196 #[cfg(feature = "el1")]
1197 ccsidr_el1: CcsidrEl1::empty(),
1198 clidr: Clidr::empty(),
1199 #[cfg(feature = "el1")]
1200 clidr_el1: ClidrEl1::empty(),
1201 cntfrq: Cntfrq::empty(),
1202 cntfrq_el0: CntfrqEl0::empty(),
1203 cnthctl: Cnthctl::empty(),
1204 #[cfg(feature = "el2")]
1205 cnthctl_el2: CnthctlEl2::empty(),
1206 cnthps_ctl: CnthpsCtl::empty(),
1207 #[cfg(feature = "el2")]
1208 cnthps_ctl_el2: CnthpsCtlEl2::empty(),
1209 cnthps_cval: CnthpsCval::empty(),
1210 #[cfg(feature = "el2")]
1211 cnthps_cval_el2: CnthpsCvalEl2::empty(),
1212 cnthps_tval: CnthpsTval::empty(),
1213 #[cfg(feature = "el2")]
1214 cnthps_tval_el2: CnthpsTvalEl2::empty(),
1215 cnthp_ctl: CnthpCtl::empty(),
1216 #[cfg(feature = "el2")]
1217 cnthp_ctl_el2: CnthpCtlEl2::empty(),
1218 cnthp_cval: CnthpCval::empty(),
1219 #[cfg(feature = "el2")]
1220 cnthp_cval_el2: CnthpCvalEl2::empty(),
1221 cnthp_tval: CnthpTval::empty(),
1222 #[cfg(feature = "el2")]
1223 cnthp_tval_el2: CnthpTvalEl2::empty(),
1224 cnthvs_ctl: CnthvsCtl::empty(),
1225 #[cfg(feature = "el2")]
1226 cnthvs_ctl_el2: CnthvsCtlEl2::empty(),
1227 cnthvs_cval: CnthvsCval::empty(),
1228 #[cfg(feature = "el2")]
1229 cnthvs_cval_el2: CnthvsCvalEl2::empty(),
1230 cnthvs_tval: CnthvsTval::empty(),
1231 #[cfg(feature = "el2")]
1232 cnthvs_tval_el2: CnthvsTvalEl2::empty(),
1233 cnthv_ctl: CnthvCtl::empty(),
1234 #[cfg(feature = "el2")]
1235 cnthv_ctl_el2: CnthvCtlEl2::empty(),
1236 cnthv_cval: CnthvCval::empty(),
1237 #[cfg(feature = "el2")]
1238 cnthv_cval_el2: CnthvCvalEl2::empty(),
1239 cnthv_tval: CnthvTval::empty(),
1240 #[cfg(feature = "el2")]
1241 cnthv_tval_el2: CnthvTvalEl2::empty(),
1242 cntkctl: Cntkctl::empty(),
1243 #[cfg(feature = "el1")]
1244 cntkctl_el1: CntkctlEl1::empty(),
1245 cntpct: Cntpct::empty(),
1246 cntpctss: Cntpctss::empty(),
1247 cntpctss_el0: CntpctssEl0::empty(),
1248 cntpct_el0: CntpctEl0::empty(),
1249 #[cfg(feature = "el2")]
1250 cntpoff_el2: CntpoffEl2::empty(),
1251 #[cfg(feature = "el1")]
1252 cntps_ctl_el1: CntpsCtlEl1::empty(),
1253 #[cfg(feature = "el1")]
1254 cntps_cval_el1: CntpsCvalEl1::empty(),
1255 #[cfg(feature = "el1")]
1256 cntps_tval_el1: CntpsTvalEl1::empty(),
1257 cntp_ctl: CntpCtl::empty(),
1258 cntp_ctl_el0: CntpCtlEl0::empty(),
1259 cntp_cval: CntpCval::empty(),
1260 cntp_cval_el0: CntpCvalEl0::empty(),
1261 cntp_tval: CntpTval::empty(),
1262 cntp_tval_el0: CntpTvalEl0::empty(),
1263 cntvct: Cntvct::empty(),
1264 cntvctss: Cntvctss::empty(),
1265 cntvctss_el0: CntvctssEl0::empty(),
1266 cntvct_el0: CntvctEl0::empty(),
1267 cntvoff: Cntvoff::empty(),
1268 #[cfg(feature = "el2")]
1269 cntvoff_el2: CntvoffEl2::empty(),
1270 cntv_ctl: CntvCtl::empty(),
1271 cntv_ctl_el0: CntvCtlEl0::empty(),
1272 cntv_cval: CntvCval::empty(),
1273 cntv_cval_el0: CntvCvalEl0::empty(),
1274 cntv_tval: CntvTval::empty(),
1275 cntv_tval_el0: CntvTvalEl0::empty(),
1276 contextidr: Contextidr::empty(),
1277 #[cfg(feature = "el1")]
1278 contextidr_el1: ContextidrEl1::empty(),
1279 #[cfg(feature = "el2")]
1280 contextidr_el2: ContextidrEl2::empty(),
1281 cpacr: Cpacr::empty(),
1282 #[cfg(feature = "el1")]
1283 cpacr_el1: CpacrEl1::empty(),
1284 #[cfg(feature = "el2")]
1285 cptr_el2: CptrEl2::empty(),
1286 #[cfg(feature = "el3")]
1287 cptr_el3: CptrEl3::empty(),
1288 csselr: Csselr::empty(),
1289 #[cfg(feature = "el1")]
1290 csselr_el1: CsselrEl1::empty(),
1291 ctr: Ctr::empty(),
1292 ctr_el0: CtrEl0::empty(),
1293 currentel: Currentel::empty(),
1294 dacr: Dacr::empty(),
1295 dbgauthstatus: Dbgauthstatus::empty(),
1296 dbgclaimclr: Dbgclaimclr::empty(),
1297 dbgclaimset: Dbgclaimset::empty(),
1298 dbgdccint: Dbgdccint::empty(),
1299 dbgdevid: Dbgdevid::empty(),
1300 dbgdevid1: Dbgdevid1::empty(),
1301 dbgdevid2: 0,
1302 dbgdidr: Dbgdidr::empty(),
1303 dbgdrar: Dbgdrar::empty(),
1304 dbgdsar: 0,
1305 dbgdscrext: Dbgdscrext::empty(),
1306 dbgdscrint: Dbgdscrint::empty(),
1307 dbgdtrrxext: Dbgdtrrxext::empty(),
1308 dbgdtrrxint: Dbgdtrrxint::empty(),
1309 dbgdtrtxext: Dbgdtrtxext::empty(),
1310 dbgdtrtxint: Dbgdtrtxint::empty(),
1311 dbgosdlr: Dbgosdlr::empty(),
1312 dbgoseccr: Dbgoseccr::empty(),
1313 dbgoslar: Dbgoslar::empty(),
1314 dbgoslsr: Dbgoslsr::empty(),
1315 dbgprcr: Dbgprcr::empty(),
1316 dbgvcr: Dbgvcr::empty(),
1317 dbgwfar: 0,
1318 dfar: Dfar::empty(),
1319 dfsr: Dfsr::empty(),
1320 disr: Disr::empty(),
1321 #[cfg(feature = "el1")]
1322 disr_el1: DisrEl1::empty(),
1323 dit: Dit::empty(),
1324 dlr: Dlr::empty(),
1325 dspsr: Dspsr::empty(),
1326 dspsr2: Dspsr2::empty(),
1327 #[cfg(feature = "el1")]
1328 elr_el1: ElrEl1::empty(),
1329 #[cfg(feature = "el2")]
1330 elr_el2: ElrEl2::empty(),
1331 #[cfg(feature = "el2")]
1332 elr_hyp: ElrHyp::empty(),
1333 erridr: Erridr::empty(),
1334 errselr: Errselr::empty(),
1335 erxaddr: Erxaddr::empty(),
1336 erxaddr2: Erxaddr2::empty(),
1337 erxctlr: Erxctlr::empty(),
1338 erxctlr2: Erxctlr2::empty(),
1339 erxfr: Erxfr::empty(),
1340 erxfr2: Erxfr2::empty(),
1341 erxmisc0: Erxmisc0::empty(),
1342 erxmisc1: Erxmisc1::empty(),
1343 erxmisc2: Erxmisc2::empty(),
1344 erxmisc3: Erxmisc3::empty(),
1345 erxmisc4: Erxmisc4::empty(),
1346 erxmisc5: Erxmisc5::empty(),
1347 erxmisc6: Erxmisc6::empty(),
1348 erxmisc7: Erxmisc7::empty(),
1349 erxstatus: Erxstatus::empty(),
1350 #[cfg(feature = "el1")]
1351 esr_el1: EsrEl1::empty(),
1352 #[cfg(feature = "el2")]
1353 esr_el2: EsrEl2::empty(),
1354 #[cfg(feature = "el3")]
1355 esr_el3: EsrEl3::empty(),
1356 #[cfg(feature = "el1")]
1357 far_el1: FarEl1::empty(),
1358 #[cfg(feature = "el2")]
1359 far_el2: FarEl2::empty(),
1360 fcseidr: 0,
1361 #[cfg(feature = "el1")]
1362 gcr_el1: GcrEl1::empty(),
1363 #[cfg(feature = "el1")]
1364 gcscr_el1: GcscrEl1::empty(),
1365 #[cfg(feature = "el2")]
1366 gcscr_el2: GcscrEl2::empty(),
1367 #[cfg(feature = "el3")]
1368 gpccr_el3: GpccrEl3::empty(),
1369 #[cfg(feature = "el3")]
1370 gptbr_el3: GptbrEl3::empty(),
1371 hacr: 0,
1372 #[cfg(feature = "el2")]
1373 hacr_el2: 0,
1374 hactlr: 0,
1375 hactlr2: 0,
1376 hadfsr: 0,
1377 #[cfg(feature = "el2")]
1378 hafgrtr_el2: HafgrtrEl2::empty(),
1379 haifsr: 0,
1380 hamair0: 0,
1381 hamair1: 0,
1382 hcptr: Hcptr::empty(),
1383 hcr: Hcr::empty(),
1384 hcr2: Hcr2::empty(),
1385 #[cfg(feature = "el2")]
1386 hcrx_el2: HcrxEl2::empty(),
1387 #[cfg(feature = "el2")]
1388 hcr_el2: HcrEl2::empty(),
1389 hdcr: Hdcr::empty(),
1390 hdfar: Hdfar::empty(),
1391 #[cfg(feature = "el2")]
1392 hdfgrtr2_el2: Hdfgrtr2El2::empty(),
1393 #[cfg(feature = "el2")]
1394 hdfgrtr_el2: HdfgrtrEl2::empty(),
1395 #[cfg(feature = "el2")]
1396 hdfgwtr2_el2: Hdfgwtr2El2::empty(),
1397 #[cfg(feature = "el2")]
1398 hdfgwtr_el2: HdfgwtrEl2::empty(),
1399 #[cfg(feature = "el2")]
1400 hfgitr2_el2: Hfgitr2El2::empty(),
1401 #[cfg(feature = "el2")]
1402 hfgitr_el2: HfgitrEl2::empty(),
1403 #[cfg(feature = "el2")]
1404 hfgrtr2_el2: Hfgrtr2El2::empty(),
1405 #[cfg(feature = "el2")]
1406 hfgrtr_el2: HfgrtrEl2::empty(),
1407 #[cfg(feature = "el2")]
1408 hfgwtr2_el2: Hfgwtr2El2::empty(),
1409 #[cfg(feature = "el2")]
1410 hfgwtr_el2: HfgwtrEl2::empty(),
1411 hifar: Hifar::empty(),
1412 hmair0: Hmair0::empty(),
1413 hmair1: Hmair1::empty(),
1414 hpfar: Hpfar::empty(),
1415 #[cfg(feature = "el2")]
1416 hpfar_el2: HpfarEl2::empty(),
1417 hrmr: Hrmr::empty(),
1418 hsctlr: Hsctlr::empty(),
1419 hsr: Hsr::empty(),
1420 hstr: 0,
1421 #[cfg(feature = "el2")]
1422 hstr_el2: 0,
1423 htcr: Htcr::empty(),
1424 htpidr: Htpidr::empty(),
1425 htrfcr: Htrfcr::empty(),
1426 httbr: Httbr::empty(),
1427 hvbar: Hvbar::empty(),
1428 #[cfg(feature = "el1")]
1429 icc_ap0r0_el1: 0,
1430 #[cfg(feature = "el1")]
1431 icc_ap0r1_el1: 0,
1432 #[cfg(feature = "el1")]
1433 icc_ap0r2_el1: 0,
1434 #[cfg(feature = "el1")]
1435 icc_ap0r3_el1: 0,
1436 #[cfg(feature = "el1")]
1437 icc_ap1r0_el1: IccAp1r0El1::empty(),
1438 #[cfg(feature = "el1")]
1439 icc_ap1r1_el1: 0,
1440 #[cfg(feature = "el1")]
1441 icc_ap1r2_el1: 0,
1442 #[cfg(feature = "el1")]
1443 icc_ap1r3_el1: 0,
1444 icc_asgi1r: IccAsgi1r::empty(),
1445 #[cfg(feature = "el1")]
1446 icc_asgi1r_el1: IccAsgi1rEl1::empty(),
1447 icc_bpr0: IccBpr0::empty(),
1448 #[cfg(feature = "el1")]
1449 icc_bpr0_el1: IccBpr0El1::empty(),
1450 icc_bpr1: IccBpr1::empty(),
1451 #[cfg(feature = "el1")]
1452 icc_bpr1_el1: IccBpr1El1::empty(),
1453 icc_ctlr: IccCtlr::empty(),
1454 #[cfg(feature = "el1")]
1455 icc_ctlr_el1: IccCtlrEl1::empty(),
1456 #[cfg(feature = "el3")]
1457 icc_ctlr_el3: IccCtlrEl3::empty(),
1458 icc_dir: IccDir::empty(),
1459 #[cfg(feature = "el1")]
1460 icc_dir_el1: IccDirEl1::empty(),
1461 icc_eoir0: IccEoir0::empty(),
1462 #[cfg(feature = "el1")]
1463 icc_eoir0_el1: IccEoir0El1::empty(),
1464 icc_eoir1: IccEoir1::empty(),
1465 #[cfg(feature = "el1")]
1466 icc_eoir1_el1: IccEoir1El1::empty(),
1467 icc_hppir0: IccHppir0::empty(),
1468 #[cfg(feature = "el1")]
1469 icc_hppir0_el1: IccHppir0El1::empty(),
1470 icc_hppir1: IccHppir1::empty(),
1471 #[cfg(feature = "el1")]
1472 icc_hppir1_el1: IccHppir1El1::empty(),
1473 icc_hsre: IccHsre::empty(),
1474 icc_iar0: IccIar0::empty(),
1475 #[cfg(feature = "el1")]
1476 icc_iar0_el1: IccIar0El1::empty(),
1477 icc_iar1: IccIar1::empty(),
1478 #[cfg(feature = "el1")]
1479 icc_iar1_el1: IccIar1El1::empty(),
1480 icc_igrpen0: IccIgrpen0::empty(),
1481 #[cfg(feature = "el1")]
1482 icc_igrpen0_el1: IccIgrpen0El1::empty(),
1483 icc_igrpen1: IccIgrpen1::empty(),
1484 #[cfg(feature = "el1")]
1485 icc_igrpen1_el1: IccIgrpen1El1::empty(),
1486 #[cfg(feature = "el3")]
1487 icc_igrpen1_el3: IccIgrpen1El3::empty(),
1488 icc_mctlr: IccMctlr::empty(),
1489 icc_mgrpen1: IccMgrpen1::empty(),
1490 icc_msre: IccMsre::empty(),
1491 #[cfg(feature = "el1")]
1492 icc_nmiar1_el1: IccNmiar1El1::empty(),
1493 icc_pmr: IccPmr::empty(),
1494 #[cfg(feature = "el1")]
1495 icc_pmr_el1: IccPmrEl1::empty(),
1496 icc_rpr: IccRpr::empty(),
1497 #[cfg(feature = "el1")]
1498 icc_rpr_el1: IccRprEl1::empty(),
1499 icc_sgi0r: IccSgi0r::empty(),
1500 #[cfg(feature = "el1")]
1501 icc_sgi0r_el1: IccSgi0rEl1::empty(),
1502 icc_sgi1r: IccSgi1r::empty(),
1503 #[cfg(feature = "el1")]
1504 icc_sgi1r_el1: IccSgi1rEl1::empty(),
1505 icc_sre: IccSre::empty(),
1506 #[cfg(feature = "el1")]
1507 icc_sre_el1: IccSreEl1::empty(),
1508 #[cfg(feature = "el2")]
1509 icc_sre_el2: IccSreEl2::empty(),
1510 #[cfg(feature = "el3")]
1511 icc_sre_el3: IccSreEl3::empty(),
1512 #[cfg(feature = "el2")]
1513 ich_hcr_el2: IchHcrEl2::empty(),
1514 #[cfg(feature = "el2")]
1515 ich_vmcr_el2: IchVmcrEl2::empty(),
1516 #[cfg(feature = "el1")]
1517 id_aa64dfr0_el1: IdAa64dfr0El1::empty(),
1518 #[cfg(feature = "el1")]
1519 id_aa64dfr1_el1: IdAa64dfr1El1::empty(),
1520 #[cfg(feature = "el1")]
1521 id_aa64isar1_el1: IdAa64isar1El1::empty(),
1522 #[cfg(feature = "el1")]
1523 id_aa64isar2_el1: IdAa64isar2El1::empty(),
1524 #[cfg(feature = "el1")]
1525 id_aa64mmfr0_el1: IdAa64mmfr0El1::empty(),
1526 #[cfg(feature = "el1")]
1527 id_aa64mmfr1_el1: IdAa64mmfr1El1::empty(),
1528 #[cfg(feature = "el1")]
1529 id_aa64mmfr2_el1: IdAa64mmfr2El1::empty(),
1530 #[cfg(feature = "el1")]
1531 id_aa64mmfr3_el1: IdAa64mmfr3El1::empty(),
1532 #[cfg(feature = "el1")]
1533 id_aa64pfr0_el1: IdAa64pfr0El1::empty(),
1534 #[cfg(feature = "el1")]
1535 id_aa64pfr1_el1: IdAa64pfr1El1::empty(),
1536 #[cfg(feature = "el1")]
1537 id_aa64smfr0_el1: IdAa64smfr0El1::empty(),
1538 id_afr0: 0,
1539 id_dfr0: IdDfr0::empty(),
1540 id_dfr1: IdDfr1::empty(),
1541 id_isar0: IdIsar0::empty(),
1542 id_isar1: IdIsar1::empty(),
1543 id_isar2: IdIsar2::empty(),
1544 id_isar3: IdIsar3::empty(),
1545 id_isar4: IdIsar4::empty(),
1546 id_isar5: IdIsar5::empty(),
1547 id_isar6: IdIsar6::empty(),
1548 id_mmfr0: IdMmfr0::empty(),
1549 id_mmfr1: IdMmfr1::empty(),
1550 id_mmfr2: IdMmfr2::empty(),
1551 id_mmfr3: IdMmfr3::empty(),
1552 id_mmfr4: IdMmfr4::empty(),
1553 id_mmfr5: IdMmfr5::empty(),
1554 id_pfr0: IdPfr0::empty(),
1555 id_pfr1: IdPfr1::empty(),
1556 id_pfr2: IdPfr2::empty(),
1557 ifar: Ifar::empty(),
1558 ifsr: Ifsr::empty(),
1559 isr: Isr::empty(),
1560 #[cfg(feature = "el1")]
1561 isr_el1: IsrEl1::empty(),
1562 jidr: 0,
1563 jmcr: 0,
1564 joscr: 0,
1565 mair0: Mair0::empty(),
1566 mair1: Mair1::empty(),
1567 #[cfg(feature = "el1")]
1568 mair_el1: MairEl1::empty(),
1569 #[cfg(feature = "el2")]
1570 mair_el2: MairEl2::empty(),
1571 #[cfg(feature = "el3")]
1572 mair_el3: MairEl3::empty(),
1573 #[cfg(feature = "el1")]
1574 mdccint_el1: MdccintEl1::empty(),
1575 #[cfg(feature = "el2")]
1576 mdcr_el2: MdcrEl2::empty(),
1577 #[cfg(feature = "el3")]
1578 mdcr_el3: MdcrEl3::empty(),
1579 #[cfg(feature = "el1")]
1580 mdscr_el1: MdscrEl1::empty(),
1581 midr: Midr::empty(),
1582 #[cfg(feature = "el1")]
1583 midr_el1: MidrEl1::empty(),
1584 #[cfg(feature = "el2")]
1585 mpam2_el2: Mpam2El2::empty(),
1586 #[cfg(feature = "el3")]
1587 mpam3_el3: Mpam3El3::empty(),
1588 #[cfg(feature = "el2")]
1589 mpamhcr_el2: MpamhcrEl2::empty(),
1590 #[cfg(feature = "el1")]
1591 mpamidr_el1: MpamidrEl1::empty(),
1592 #[cfg(feature = "el2")]
1593 mpamvpm0_el2: Mpamvpm0El2::empty(),
1594 #[cfg(feature = "el2")]
1595 mpamvpm1_el2: Mpamvpm1El2::empty(),
1596 #[cfg(feature = "el2")]
1597 mpamvpm2_el2: Mpamvpm2El2::empty(),
1598 #[cfg(feature = "el2")]
1599 mpamvpm3_el2: Mpamvpm3El2::empty(),
1600 #[cfg(feature = "el2")]
1601 mpamvpm4_el2: Mpamvpm4El2::empty(),
1602 #[cfg(feature = "el2")]
1603 mpamvpm5_el2: Mpamvpm5El2::empty(),
1604 #[cfg(feature = "el2")]
1605 mpamvpm6_el2: Mpamvpm6El2::empty(),
1606 #[cfg(feature = "el2")]
1607 mpamvpm7_el2: Mpamvpm7El2::empty(),
1608 #[cfg(feature = "el2")]
1609 mpamvpmv_el2: MpamvpmvEl2::empty(),
1610 mpidr: Mpidr::empty(),
1611 #[cfg(feature = "el1")]
1612 mpidr_el1: MpidrEl1::empty(),
1613 mvbar: Mvbar::empty(),
1614 nmrr: Nmrr::empty(),
1615 nsacr: Nsacr::empty(),
1616 par: Par::empty(),
1617 #[cfg(feature = "el1")]
1618 par_el1: ParEl1::empty(),
1619 pmccfiltr: Pmccfiltr::empty(),
1620 pmccntr: Pmccntr::empty(),
1621 pmceid0: Pmceid0::empty(),
1622 pmceid1: Pmceid1::empty(),
1623 pmceid2: Pmceid2::empty(),
1624 pmceid3: Pmceid3::empty(),
1625 pmcntenclr: Pmcntenclr::empty(),
1626 pmcntenset: Pmcntenset::empty(),
1627 pmcr: Pmcr::empty(),
1628 pmcr_el0: PmcrEl0::empty(),
1629 pmintenclr: Pmintenclr::empty(),
1630 pmintenset: Pmintenset::empty(),
1631 pmmir: Pmmir::empty(),
1632 pmovsr: Pmovsr::empty(),
1633 pmovsset: Pmovsset::empty(),
1634 pmselr: Pmselr::empty(),
1635 pmswinc: Pmswinc::empty(),
1636 pmuserenr: Pmuserenr::empty(),
1637 pmxevtyper: Pmxevtyper::empty(),
1638 prrr: Prrr::empty(),
1639 revidr: 0,
1640 #[cfg(feature = "el1")]
1641 rgsr_el1: RgsrEl1::empty(),
1642 rmr: Rmr::empty(),
1643 rvbar: Rvbar::empty(),
1644 scr: Scr::empty(),
1645 #[cfg(feature = "el3")]
1646 scr_el3: ScrEl3::empty(),
1647 sctlr: Sctlr::empty(),
1648 #[cfg(feature = "el3")]
1649 sctlr2_el3: Sctlr2El3::empty(),
1650 #[cfg(feature = "el1")]
1651 sctlr_el1: SctlrEl1::empty(),
1652 #[cfg(feature = "el2")]
1653 sctlr_el2: SctlrEl2::empty(),
1654 #[cfg(feature = "el3")]
1655 sctlr_el3: SctlrEl3::empty(),
1656 sdcr: Sdcr::empty(),
1657 sder: Sder::empty(),
1658 #[cfg(feature = "el3")]
1659 smcr_el3: SmcrEl3::empty(),
1660 #[cfg(feature = "el1")]
1661 spsr_el1: SpsrEl1::empty(),
1662 #[cfg(feature = "el2")]
1663 spsr_el2: SpsrEl2::empty(),
1664 #[cfg(feature = "el3")]
1665 spsr_el3: SpsrEl3::empty(),
1666 #[cfg(feature = "el1")]
1667 sp_el1: SpEl1::empty(),
1668 #[cfg(feature = "el2")]
1669 sp_el2: SpEl2::empty(),
1670 svcr: Svcr::empty(),
1671 tcmtr: 0,
1672 #[cfg(feature = "el1")]
1673 tcr2_el1: Tcr2El1::empty(),
1674 #[cfg(feature = "el2")]
1675 tcr2_el2: Tcr2El2::empty(),
1676 #[cfg(feature = "el1")]
1677 tcr_el1: TcrEl1::empty(),
1678 #[cfg(feature = "el2")]
1679 tcr_el2: TcrEl2::empty(),
1680 #[cfg(feature = "el3")]
1681 tcr_el3: TcrEl3::empty(),
1682 #[cfg(feature = "el1")]
1683 tfsre0_el1: Tfsre0El1::empty(),
1684 #[cfg(feature = "el1")]
1685 tfsr_el1: TfsrEl1::empty(),
1686 #[cfg(feature = "el2")]
1687 tfsr_el2: TfsrEl2::empty(),
1688 tlbtr: Tlbtr::empty(),
1689 tpidrprw: Tpidrprw::empty(),
1690 tpidrro_el0: TpidrroEl0::empty(),
1691 tpidruro: Tpidruro::empty(),
1692 tpidrurw: Tpidrurw::empty(),
1693 tpidr_el0: TpidrEl0::empty(),
1694 #[cfg(feature = "el1")]
1695 tpidr_el1: TpidrEl1::empty(),
1696 #[cfg(feature = "el2")]
1697 tpidr_el2: TpidrEl2::empty(),
1698 #[cfg(feature = "el3")]
1699 tpidr_el3: TpidrEl3::empty(),
1700 trfcr: Trfcr::empty(),
1701 ttbcr: Ttbcr::empty(),
1702 ttbcr2: Ttbcr2::empty(),
1703 ttbr0: Ttbr0::empty(),
1704 #[cfg(feature = "el1")]
1705 ttbr0_el1: Ttbr0El1::empty(),
1706 #[cfg(feature = "el2")]
1707 ttbr0_el2: Ttbr0El2::empty(),
1708 #[cfg(feature = "el3")]
1709 ttbr0_el3: Ttbr0El3::empty(),
1710 ttbr1: Ttbr1::empty(),
1711 #[cfg(feature = "el1")]
1712 ttbr1_el1: Ttbr1El1::empty(),
1713 #[cfg(feature = "el2")]
1714 ttbr1_el2: Ttbr1El2::empty(),
1715 vbar: Vbar::empty(),
1716 #[cfg(feature = "el1")]
1717 vbar_el1: VbarEl1::empty(),
1718 #[cfg(feature = "el2")]
1719 vbar_el2: VbarEl2::empty(),
1720 vdfsr: Vdfsr::empty(),
1721 vdisr: Vdisr::empty(),
1722 #[cfg(feature = "el2")]
1723 vdisr_el2: VdisrEl2::empty(),
1724 vmpidr: Vmpidr::empty(),
1725 #[cfg(feature = "el2")]
1726 vmpidr_el2: VmpidrEl2::empty(),
1727 vpidr: Vpidr::empty(),
1728 #[cfg(feature = "el2")]
1729 vpidr_el2: VpidrEl2::empty(),
1730 #[cfg(feature = "el2")]
1731 vsesr_el2: VsesrEl2::empty(),
1732 vtcr: Vtcr::empty(),
1733 #[cfg(feature = "el2")]
1734 vtcr_el2: VtcrEl2::empty(),
1735 vttbr: Vttbr::empty(),
1736 #[cfg(feature = "el2")]
1737 vttbr_el2: VttbrEl2::empty(),
1738 #[cfg(feature = "el3")]
1739 zcr_el3: ZcrEl3::empty(),
1740 }
1741 }
1742}