Skip to main content

arm_sysregs/fake/
generated.rs

1// SPDX-FileCopyrightText: Copyright The arm-sysregs Contributors.
2// SPDX-License-Identifier: MIT OR Apache-2.0
3
4use crate::{
5    Amcfgr, Amcgcr, Amcntenclr0, Amcntenclr1, Amcntenset0, Amcntenset1, Amcr, Amuserenr, Ccsidr,
6    Ccsidr2, Clidr, Cntfrq, CntfrqEl0, Cnthctl, CnthpCtl, CnthpCval, CnthpTval, CnthpsCtl,
7    CnthpsCval, CnthpsTval, CnthvCtl, CnthvCval, CnthvTval, CnthvsCtl, CnthvsCval, CnthvsTval,
8    Cntkctl, CntpCtl, CntpCval, CntpTval, Cntpct, CntpctEl0, Cntpctss, CntvCtl, CntvCval, CntvTval,
9    Cntvct, Cntvctss, Cntvoff, Contextidr, Cpacr, Csselr, Ctr, CtrEl0, Currentel, Dacr,
10    Dbgauthstatus, Dbgclaimclr, Dbgclaimset, Dbgdccint, Dbgdevid, Dbgdevid1, Dbgdidr, Dbgdrar,
11    Dbgdscrext, Dbgdscrint, Dbgdtrrxext, Dbgdtrrxint, Dbgdtrtxext, Dbgdtrtxint, Dbgosdlr,
12    Dbgoseccr, Dbgoslar, Dbgoslsr, Dbgprcr, Dbgvcr, Dfar, Dfsr, Disr, Dit, Dlr, Dspsr, Dspsr2,
13    Erridr, Errselr, Erxaddr, Erxaddr2, Erxctlr, Erxctlr2, Erxfr, Erxfr2, Erxmisc0, Erxmisc1,
14    Erxmisc2, Erxmisc3, Erxmisc4, Erxmisc5, Erxmisc6, Erxmisc7, Erxstatus, Hcptr, Hcr, Hcr2, Hdcr,
15    Hdfar, Hifar, Hmair0, Hmair1, Hpfar, Hrmr, Hsctlr, Hsr, Htcr, Htpidr, Htrfcr, Httbr, Hvbar,
16    IdDfr0, IdDfr1, IdIsar0, IdIsar1, IdIsar2, IdIsar3, IdIsar4, IdIsar5, IdIsar6, IdMmfr0,
17    IdMmfr1, IdMmfr2, IdMmfr3, IdMmfr4, IdMmfr5, IdPfr0, IdPfr1, IdPfr2, Ifar, Ifsr, Isr, Mair0,
18    Mair1, Midr, Mpidr, Mvbar, Nmrr, Nsacr, Par, Pmccfiltr, Pmccntr, Pmceid0, Pmceid1, Pmceid2,
19    Pmceid3, Pmcntenclr, Pmcntenset, Pmcr, PmcrEl0, Pmintenclr, Pmintenset, Pmmir, Pmovsr,
20    Pmovsset, Pmselr, Pmswinc, Pmuserenr, Pmxevtyper, Prrr, Rmr, Rvbar, Scr, Sctlr, Sdcr, Sder,
21    Tlbtr, TpidrEl0, Tpidrprw, TpidrroEl0, Tpidruro, Tpidrurw, Trfcr, Ttbcr, Ttbcr2, Ttbr0, Ttbr1,
22    Vbar, Vdfsr, Vdisr, Vmpidr, Vpidr, Vtcr, Vttbr,
23};
24#[cfg(feature = "el1")]
25use crate::{
26    ApiakeyhiEl1, ApiakeyloEl1, CcsidrEl1, ClidrEl1, ContextidrEl1, CpacrEl1, CsselrEl1, DisrEl1,
27    ElrEl1, EsrEl1, FarEl1, GcrEl1, GcscrEl1, IccSreEl1, IdAa64dfr0El1, IdAa64dfr1El1,
28    IdAa64isar1El1, IdAa64isar2El1, IdAa64mmfr0El1, IdAa64mmfr1El1, IdAa64mmfr2El1, IdAa64mmfr3El1,
29    IdAa64pfr0El1, IdAa64pfr1El1, IdAa64smfr0El1, IsrEl1, MairEl1, MdccintEl1, MdscrEl1, MidrEl1,
30    MpamidrEl1, MpidrEl1, ParEl1, RgsrEl1, SctlrEl1, SpEl1, SpsrEl1, Tcr2El1, TcrEl1, TfsrEl1,
31    Tfsre0El1, TpidrEl1, Ttbr0El1, Ttbr1El1, VbarEl1,
32};
33#[cfg(feature = "el2")]
34use crate::{
35    CnthctlEl2, CntvoffEl2, ContextidrEl2, CptrEl2, ElrEl2, ElrHyp, EsrEl2, FarEl2, GcscrEl2,
36    HcrEl2, HcrxEl2, Hdfgrtr2El2, Hdfgwtr2El2, Hfgitr2El2, Hfgrtr2El2, Hfgwtr2El2, HfgwtrEl2,
37    HpfarEl2, IccSreEl2, IchHcrEl2, IchVmcrEl2, MairEl2, MdcrEl2, Mpam2El2, MpamhcrEl2,
38    Mpamvpm0El2, Mpamvpm1El2, Mpamvpm2El2, Mpamvpm3El2, Mpamvpm4El2, Mpamvpm5El2, Mpamvpm6El2,
39    Mpamvpm7El2, MpamvpmvEl2, SctlrEl2, SpEl2, SpsrEl2, Tcr2El2, TcrEl2, TfsrEl2, TpidrEl2,
40    Ttbr0El2, Ttbr1El2, VbarEl2, VdisrEl2, VmpidrEl2, VpidrEl2, VsesrEl2, VtcrEl2, VttbrEl2,
41};
42#[cfg(feature = "el3")]
43use crate::{
44    CptrEl3, EsrEl3, GpccrEl3, GptbrEl3, IccSreEl3, MairEl3, MdcrEl3, Mpam3El3, ScrEl3, Sctlr2El3,
45    SctlrEl3, SmcrEl3, SpsrEl3, TcrEl3, Ttbr0El3, ZcrEl3,
46};
47
48/// A set of fake system registers.
49#[derive(Clone, Debug, Eq, PartialEq)]
50#[non_exhaustive]
51pub struct SystemRegisters {
52    /// Fake value for the `ACTLR` system register.
53    pub actlr: u32,
54    /// Fake value for the `ACTLR2` system register.
55    pub actlr2: u32,
56    #[cfg(feature = "el1")]
57    /// Fake value for the `ACTLR_EL1` system register.
58    pub actlr_el1: u64,
59    #[cfg(feature = "el2")]
60    /// Fake value for the `ACTLR_EL2` system register.
61    pub actlr_el2: u64,
62    /// Fake value for the `ADFSR` system register.
63    pub adfsr: u32,
64    #[cfg(feature = "el1")]
65    /// Fake value for the `AFSR0_EL1` system register.
66    pub afsr0_el1: u64,
67    #[cfg(feature = "el2")]
68    /// Fake value for the `AFSR0_EL2` system register.
69    pub afsr0_el2: u64,
70    #[cfg(feature = "el1")]
71    /// Fake value for the `AFSR1_EL1` system register.
72    pub afsr1_el1: u64,
73    #[cfg(feature = "el2")]
74    /// Fake value for the `AFSR1_EL2` system register.
75    pub afsr1_el2: u64,
76    /// Fake value for the `AIDR` system register.
77    pub aidr: u32,
78    /// Fake value for the `AIFSR` system register.
79    pub aifsr: u32,
80    /// Fake value for the `AMAIR0` system register.
81    pub amair0: u32,
82    /// Fake value for the `AMAIR1` system register.
83    pub amair1: u32,
84    #[cfg(feature = "el1")]
85    /// Fake value for the `AMAIR_EL1` system register.
86    pub amair_el1: u64,
87    #[cfg(feature = "el2")]
88    /// Fake value for the `AMAIR_EL2` system register.
89    pub amair_el2: u64,
90    /// Fake value for the `AMCFGR` system register.
91    pub amcfgr: Amcfgr,
92    /// Fake value for the `AMCGCR` system register.
93    pub amcgcr: Amcgcr,
94    /// Fake value for the `AMCNTENCLR0` system register.
95    pub amcntenclr0: Amcntenclr0,
96    /// Fake value for the `AMCNTENCLR1` system register.
97    pub amcntenclr1: Amcntenclr1,
98    /// Fake value for the `AMCNTENSET0` system register.
99    pub amcntenset0: Amcntenset0,
100    /// Fake value for the `AMCNTENSET1` system register.
101    pub amcntenset1: Amcntenset1,
102    /// Fake value for the `AMCR` system register.
103    pub amcr: Amcr,
104    /// Fake value for the `AMUSERENR` system register.
105    pub amuserenr: Amuserenr,
106    #[cfg(feature = "el1")]
107    /// Fake value for the `APIAKeyHi_EL1` system register.
108    pub apiakeyhi_el1: ApiakeyhiEl1,
109    #[cfg(feature = "el1")]
110    /// Fake value for the `APIAKeyLo_EL1` system register.
111    pub apiakeylo_el1: ApiakeyloEl1,
112    /// Fake value for the `CCSIDR` system register.
113    pub ccsidr: Ccsidr,
114    /// Fake value for the `CCSIDR2` system register.
115    pub ccsidr2: Ccsidr2,
116    #[cfg(feature = "el1")]
117    /// Fake value for the `CCSIDR_EL1` system register.
118    pub ccsidr_el1: CcsidrEl1,
119    /// Fake value for the `CLIDR` system register.
120    pub clidr: Clidr,
121    #[cfg(feature = "el1")]
122    /// Fake value for the `CLIDR_EL1` system register.
123    pub clidr_el1: ClidrEl1,
124    /// Fake value for the `CNTFRQ` system register.
125    pub cntfrq: Cntfrq,
126    /// Fake value for the `CNTFRQ_EL0` system register.
127    pub cntfrq_el0: CntfrqEl0,
128    /// Fake value for the `CNTHCTL` system register.
129    pub cnthctl: Cnthctl,
130    #[cfg(feature = "el2")]
131    /// Fake value for the `CNTHCTL_EL2` system register.
132    pub cnthctl_el2: CnthctlEl2,
133    /// Fake value for the `CNTHPS_CTL` system register.
134    pub cnthps_ctl: CnthpsCtl,
135    /// Fake value for the `CNTHPS_CVAL` system register.
136    pub cnthps_cval: CnthpsCval,
137    /// Fake value for the `CNTHPS_TVAL` system register.
138    pub cnthps_tval: CnthpsTval,
139    /// Fake value for the `CNTHP_CTL` system register.
140    pub cnthp_ctl: CnthpCtl,
141    /// Fake value for the `CNTHP_CVAL` system register.
142    pub cnthp_cval: CnthpCval,
143    /// Fake value for the `CNTHP_TVAL` system register.
144    pub cnthp_tval: CnthpTval,
145    /// Fake value for the `CNTHVS_CTL` system register.
146    pub cnthvs_ctl: CnthvsCtl,
147    /// Fake value for the `CNTHVS_CVAL` system register.
148    pub cnthvs_cval: CnthvsCval,
149    /// Fake value for the `CNTHVS_TVAL` system register.
150    pub cnthvs_tval: CnthvsTval,
151    /// Fake value for the `CNTHV_CTL` system register.
152    pub cnthv_ctl: CnthvCtl,
153    /// Fake value for the `CNTHV_CVAL` system register.
154    pub cnthv_cval: CnthvCval,
155    /// Fake value for the `CNTHV_TVAL` system register.
156    pub cnthv_tval: CnthvTval,
157    /// Fake value for the `CNTKCTL` system register.
158    pub cntkctl: Cntkctl,
159    /// Fake value for the `CNTPCT` system register.
160    pub cntpct: Cntpct,
161    /// Fake value for the `CNTPCTSS` system register.
162    pub cntpctss: Cntpctss,
163    /// Fake value for the `CNTPCT_EL0` system register.
164    pub cntpct_el0: CntpctEl0,
165    /// Fake value for the `CNTP_CTL` system register.
166    pub cntp_ctl: CntpCtl,
167    /// Fake value for the `CNTP_CVAL` system register.
168    pub cntp_cval: CntpCval,
169    /// Fake value for the `CNTP_TVAL` system register.
170    pub cntp_tval: CntpTval,
171    /// Fake value for the `CNTVCT` system register.
172    pub cntvct: Cntvct,
173    /// Fake value for the `CNTVCTSS` system register.
174    pub cntvctss: Cntvctss,
175    /// Fake value for the `CNTVOFF` system register.
176    pub cntvoff: Cntvoff,
177    #[cfg(feature = "el2")]
178    /// Fake value for the `CNTVOFF_EL2` system register.
179    pub cntvoff_el2: CntvoffEl2,
180    /// Fake value for the `CNTV_CTL` system register.
181    pub cntv_ctl: CntvCtl,
182    /// Fake value for the `CNTV_CVAL` system register.
183    pub cntv_cval: CntvCval,
184    /// Fake value for the `CNTV_TVAL` system register.
185    pub cntv_tval: CntvTval,
186    /// Fake value for the `CONTEXTIDR` system register.
187    pub contextidr: Contextidr,
188    #[cfg(feature = "el1")]
189    /// Fake value for the `CONTEXTIDR_EL1` system register.
190    pub contextidr_el1: ContextidrEl1,
191    #[cfg(feature = "el2")]
192    /// Fake value for the `CONTEXTIDR_EL2` system register.
193    pub contextidr_el2: ContextidrEl2,
194    /// Fake value for the `CPACR` system register.
195    pub cpacr: Cpacr,
196    #[cfg(feature = "el1")]
197    /// Fake value for the `CPACR_EL1` system register.
198    pub cpacr_el1: CpacrEl1,
199    #[cfg(feature = "el2")]
200    /// Fake value for the `CPTR_EL2` system register.
201    pub cptr_el2: CptrEl2,
202    #[cfg(feature = "el3")]
203    /// Fake value for the `CPTR_EL3` system register.
204    pub cptr_el3: CptrEl3,
205    /// Fake value for the `CSSELR` system register.
206    pub csselr: Csselr,
207    #[cfg(feature = "el1")]
208    /// Fake value for the `CSSELR_EL1` system register.
209    pub csselr_el1: CsselrEl1,
210    /// Fake value for the `CTR` system register.
211    pub ctr: Ctr,
212    /// Fake value for the `CTR_EL0` system register.
213    pub ctr_el0: CtrEl0,
214    /// Fake value for the `CurrentEL` system register.
215    pub currentel: Currentel,
216    /// Fake value for the `DACR` system register.
217    pub dacr: Dacr,
218    /// Fake value for the `DBGAUTHSTATUS` system register.
219    pub dbgauthstatus: Dbgauthstatus,
220    /// Fake value for the `DBGCLAIMCLR` system register.
221    pub dbgclaimclr: Dbgclaimclr,
222    /// Fake value for the `DBGCLAIMSET` system register.
223    pub dbgclaimset: Dbgclaimset,
224    /// Fake value for the `DBGDCCINT` system register.
225    pub dbgdccint: Dbgdccint,
226    /// Fake value for the `DBGDEVID` system register.
227    pub dbgdevid: Dbgdevid,
228    /// Fake value for the `DBGDEVID1` system register.
229    pub dbgdevid1: Dbgdevid1,
230    /// Fake value for the `DBGDEVID2` system register.
231    pub dbgdevid2: u32,
232    /// Fake value for the `DBGDIDR` system register.
233    pub dbgdidr: Dbgdidr,
234    /// Fake value for the `DBGDRAR` system register.
235    pub dbgdrar: Dbgdrar,
236    /// Fake value for the `DBGDSAR` system register.
237    pub dbgdsar: u64,
238    /// Fake value for the `DBGDSCRext` system register.
239    pub dbgdscrext: Dbgdscrext,
240    /// Fake value for the `DBGDSCRint` system register.
241    pub dbgdscrint: Dbgdscrint,
242    /// Fake value for the `DBGDTRRXext` system register.
243    pub dbgdtrrxext: Dbgdtrrxext,
244    /// Fake value for the `DBGDTRRXint` system register.
245    pub dbgdtrrxint: Dbgdtrrxint,
246    /// Fake value for the `DBGDTRTXext` system register.
247    pub dbgdtrtxext: Dbgdtrtxext,
248    /// Fake value for the `DBGDTRTXint` system register.
249    pub dbgdtrtxint: Dbgdtrtxint,
250    /// Fake value for the `DBGOSDLR` system register.
251    pub dbgosdlr: Dbgosdlr,
252    /// Fake value for the `DBGOSECCR` system register.
253    pub dbgoseccr: Dbgoseccr,
254    /// Fake value for the `DBGOSLAR` system register.
255    pub dbgoslar: Dbgoslar,
256    /// Fake value for the `DBGOSLSR` system register.
257    pub dbgoslsr: Dbgoslsr,
258    /// Fake value for the `DBGPRCR` system register.
259    pub dbgprcr: Dbgprcr,
260    /// Fake value for the `DBGVCR` system register.
261    pub dbgvcr: Dbgvcr,
262    /// Fake value for the `DBGWFAR` system register.
263    pub dbgwfar: u32,
264    /// Fake value for the `DFAR` system register.
265    pub dfar: Dfar,
266    /// Fake value for the `DFSR` system register.
267    pub dfsr: Dfsr,
268    /// Fake value for the `DISR` system register.
269    pub disr: Disr,
270    #[cfg(feature = "el1")]
271    /// Fake value for the `DISR_EL1` system register.
272    pub disr_el1: DisrEl1,
273    /// Fake value for the `DIT` system register.
274    pub dit: Dit,
275    /// Fake value for the `DLR` system register.
276    pub dlr: Dlr,
277    /// Fake value for the `DSPSR` system register.
278    pub dspsr: Dspsr,
279    /// Fake value for the `DSPSR2` system register.
280    pub dspsr2: Dspsr2,
281    #[cfg(feature = "el1")]
282    /// Fake value for the `ELR_EL1` system register.
283    pub elr_el1: ElrEl1,
284    #[cfg(feature = "el2")]
285    /// Fake value for the `ELR_EL2` system register.
286    pub elr_el2: ElrEl2,
287    #[cfg(feature = "el2")]
288    /// Fake value for the `ELR_hyp` system register.
289    pub elr_hyp: ElrHyp,
290    /// Fake value for the `ERRIDR` system register.
291    pub erridr: Erridr,
292    /// Fake value for the `ERRSELR` system register.
293    pub errselr: Errselr,
294    /// Fake value for the `ERXADDR` system register.
295    pub erxaddr: Erxaddr,
296    /// Fake value for the `ERXADDR2` system register.
297    pub erxaddr2: Erxaddr2,
298    /// Fake value for the `ERXCTLR` system register.
299    pub erxctlr: Erxctlr,
300    /// Fake value for the `ERXCTLR2` system register.
301    pub erxctlr2: Erxctlr2,
302    /// Fake value for the `ERXFR` system register.
303    pub erxfr: Erxfr,
304    /// Fake value for the `ERXFR2` system register.
305    pub erxfr2: Erxfr2,
306    /// Fake value for the `ERXMISC0` system register.
307    pub erxmisc0: Erxmisc0,
308    /// Fake value for the `ERXMISC1` system register.
309    pub erxmisc1: Erxmisc1,
310    /// Fake value for the `ERXMISC2` system register.
311    pub erxmisc2: Erxmisc2,
312    /// Fake value for the `ERXMISC3` system register.
313    pub erxmisc3: Erxmisc3,
314    /// Fake value for the `ERXMISC4` system register.
315    pub erxmisc4: Erxmisc4,
316    /// Fake value for the `ERXMISC5` system register.
317    pub erxmisc5: Erxmisc5,
318    /// Fake value for the `ERXMISC6` system register.
319    pub erxmisc6: Erxmisc6,
320    /// Fake value for the `ERXMISC7` system register.
321    pub erxmisc7: Erxmisc7,
322    /// Fake value for the `ERXSTATUS` system register.
323    pub erxstatus: Erxstatus,
324    #[cfg(feature = "el1")]
325    /// Fake value for the `ESR_EL1` system register.
326    pub esr_el1: EsrEl1,
327    #[cfg(feature = "el2")]
328    /// Fake value for the `ESR_EL2` system register.
329    pub esr_el2: EsrEl2,
330    #[cfg(feature = "el3")]
331    /// Fake value for the `ESR_EL3` system register.
332    pub esr_el3: EsrEl3,
333    #[cfg(feature = "el1")]
334    /// Fake value for the `FAR_EL1` system register.
335    pub far_el1: FarEl1,
336    #[cfg(feature = "el2")]
337    /// Fake value for the `FAR_EL2` system register.
338    pub far_el2: FarEl2,
339    /// Fake value for the `FCSEIDR` system register.
340    pub fcseidr: u32,
341    #[cfg(feature = "el1")]
342    /// Fake value for the `GCR_EL1` system register.
343    pub gcr_el1: GcrEl1,
344    #[cfg(feature = "el1")]
345    /// Fake value for the `GCSCR_EL1` system register.
346    pub gcscr_el1: GcscrEl1,
347    #[cfg(feature = "el2")]
348    /// Fake value for the `GCSCR_EL2` system register.
349    pub gcscr_el2: GcscrEl2,
350    #[cfg(feature = "el3")]
351    /// Fake value for the `GPCCR_EL3` system register.
352    pub gpccr_el3: GpccrEl3,
353    #[cfg(feature = "el3")]
354    /// Fake value for the `GPTBR_EL3` system register.
355    pub gptbr_el3: GptbrEl3,
356    /// Fake value for the `HACR` system register.
357    pub hacr: u32,
358    #[cfg(feature = "el2")]
359    /// Fake value for the `HACR_EL2` system register.
360    pub hacr_el2: u64,
361    /// Fake value for the `HACTLR` system register.
362    pub hactlr: u32,
363    /// Fake value for the `HACTLR2` system register.
364    pub hactlr2: u32,
365    /// Fake value for the `HADFSR` system register.
366    pub hadfsr: u32,
367    /// Fake value for the `HAIFSR` system register.
368    pub haifsr: u32,
369    /// Fake value for the `HAMAIR0` system register.
370    pub hamair0: u32,
371    /// Fake value for the `HAMAIR1` system register.
372    pub hamair1: u32,
373    /// Fake value for the `HCPTR` system register.
374    pub hcptr: Hcptr,
375    /// Fake value for the `HCR` system register.
376    pub hcr: Hcr,
377    /// Fake value for the `HCR2` system register.
378    pub hcr2: Hcr2,
379    #[cfg(feature = "el2")]
380    /// Fake value for the `HCRX_EL2` system register.
381    pub hcrx_el2: HcrxEl2,
382    #[cfg(feature = "el2")]
383    /// Fake value for the `HCR_EL2` system register.
384    pub hcr_el2: HcrEl2,
385    /// Fake value for the `HDCR` system register.
386    pub hdcr: Hdcr,
387    /// Fake value for the `HDFAR` system register.
388    pub hdfar: Hdfar,
389    #[cfg(feature = "el2")]
390    /// Fake value for the `HDFGRTR2_EL2` system register.
391    pub hdfgrtr2_el2: Hdfgrtr2El2,
392    #[cfg(feature = "el2")]
393    /// Fake value for the `HDFGWTR2_EL2` system register.
394    pub hdfgwtr2_el2: Hdfgwtr2El2,
395    #[cfg(feature = "el2")]
396    /// Fake value for the `HFGITR2_EL2` system register.
397    pub hfgitr2_el2: Hfgitr2El2,
398    #[cfg(feature = "el2")]
399    /// Fake value for the `HFGRTR2_EL2` system register.
400    pub hfgrtr2_el2: Hfgrtr2El2,
401    #[cfg(feature = "el2")]
402    /// Fake value for the `HFGWTR2_EL2` system register.
403    pub hfgwtr2_el2: Hfgwtr2El2,
404    #[cfg(feature = "el2")]
405    /// Fake value for the `HFGWTR_EL2` system register.
406    pub hfgwtr_el2: HfgwtrEl2,
407    /// Fake value for the `HIFAR` system register.
408    pub hifar: Hifar,
409    /// Fake value for the `HMAIR0` system register.
410    pub hmair0: Hmair0,
411    /// Fake value for the `HMAIR1` system register.
412    pub hmair1: Hmair1,
413    /// Fake value for the `HPFAR` system register.
414    pub hpfar: Hpfar,
415    #[cfg(feature = "el2")]
416    /// Fake value for the `HPFAR_EL2` system register.
417    pub hpfar_el2: HpfarEl2,
418    /// Fake value for the `HRMR` system register.
419    pub hrmr: Hrmr,
420    /// Fake value for the `HSCTLR` system register.
421    pub hsctlr: Hsctlr,
422    /// Fake value for the `HSR` system register.
423    pub hsr: Hsr,
424    /// Fake value for the `HSTR` system register.
425    pub hstr: u32,
426    #[cfg(feature = "el2")]
427    /// Fake value for the `HSTR_EL2` system register.
428    pub hstr_el2: u64,
429    /// Fake value for the `HTCR` system register.
430    pub htcr: Htcr,
431    /// Fake value for the `HTPIDR` system register.
432    pub htpidr: Htpidr,
433    /// Fake value for the `HTRFCR` system register.
434    pub htrfcr: Htrfcr,
435    /// Fake value for the `HTTBR` system register.
436    pub httbr: Httbr,
437    /// Fake value for the `HVBAR` system register.
438    pub hvbar: Hvbar,
439    #[cfg(feature = "el1")]
440    /// Fake value for the `ICC_SRE_EL1` system register.
441    pub icc_sre_el1: IccSreEl1,
442    #[cfg(feature = "el2")]
443    /// Fake value for the `ICC_SRE_EL2` system register.
444    pub icc_sre_el2: IccSreEl2,
445    #[cfg(feature = "el3")]
446    /// Fake value for the `ICC_SRE_EL3` system register.
447    pub icc_sre_el3: IccSreEl3,
448    #[cfg(feature = "el2")]
449    /// Fake value for the `ICH_HCR_EL2` system register.
450    pub ich_hcr_el2: IchHcrEl2,
451    #[cfg(feature = "el2")]
452    /// Fake value for the `ICH_VMCR_EL2` system register.
453    pub ich_vmcr_el2: IchVmcrEl2,
454    #[cfg(feature = "el1")]
455    /// Fake value for the `ID_AA64DFR0_EL1` system register.
456    pub id_aa64dfr0_el1: IdAa64dfr0El1,
457    #[cfg(feature = "el1")]
458    /// Fake value for the `ID_AA64DFR1_EL1` system register.
459    pub id_aa64dfr1_el1: IdAa64dfr1El1,
460    #[cfg(feature = "el1")]
461    /// Fake value for the `ID_AA64ISAR1_EL1` system register.
462    pub id_aa64isar1_el1: IdAa64isar1El1,
463    #[cfg(feature = "el1")]
464    /// Fake value for the `ID_AA64ISAR2_EL1` system register.
465    pub id_aa64isar2_el1: IdAa64isar2El1,
466    #[cfg(feature = "el1")]
467    /// Fake value for the `ID_AA64MMFR0_EL1` system register.
468    pub id_aa64mmfr0_el1: IdAa64mmfr0El1,
469    #[cfg(feature = "el1")]
470    /// Fake value for the `ID_AA64MMFR1_EL1` system register.
471    pub id_aa64mmfr1_el1: IdAa64mmfr1El1,
472    #[cfg(feature = "el1")]
473    /// Fake value for the `ID_AA64MMFR2_EL1` system register.
474    pub id_aa64mmfr2_el1: IdAa64mmfr2El1,
475    #[cfg(feature = "el1")]
476    /// Fake value for the `ID_AA64MMFR3_EL1` system register.
477    pub id_aa64mmfr3_el1: IdAa64mmfr3El1,
478    #[cfg(feature = "el1")]
479    /// Fake value for the `ID_AA64PFR0_EL1` system register.
480    pub id_aa64pfr0_el1: IdAa64pfr0El1,
481    #[cfg(feature = "el1")]
482    /// Fake value for the `ID_AA64PFR1_EL1` system register.
483    pub id_aa64pfr1_el1: IdAa64pfr1El1,
484    #[cfg(feature = "el1")]
485    /// Fake value for the `ID_AA64SMFR0_EL1` system register.
486    pub id_aa64smfr0_el1: IdAa64smfr0El1,
487    /// Fake value for the `ID_AFR0` system register.
488    pub id_afr0: u32,
489    /// Fake value for the `ID_DFR0` system register.
490    pub id_dfr0: IdDfr0,
491    /// Fake value for the `ID_DFR1` system register.
492    pub id_dfr1: IdDfr1,
493    /// Fake value for the `ID_ISAR0` system register.
494    pub id_isar0: IdIsar0,
495    /// Fake value for the `ID_ISAR1` system register.
496    pub id_isar1: IdIsar1,
497    /// Fake value for the `ID_ISAR2` system register.
498    pub id_isar2: IdIsar2,
499    /// Fake value for the `ID_ISAR3` system register.
500    pub id_isar3: IdIsar3,
501    /// Fake value for the `ID_ISAR4` system register.
502    pub id_isar4: IdIsar4,
503    /// Fake value for the `ID_ISAR5` system register.
504    pub id_isar5: IdIsar5,
505    /// Fake value for the `ID_ISAR6` system register.
506    pub id_isar6: IdIsar6,
507    /// Fake value for the `ID_MMFR0` system register.
508    pub id_mmfr0: IdMmfr0,
509    /// Fake value for the `ID_MMFR1` system register.
510    pub id_mmfr1: IdMmfr1,
511    /// Fake value for the `ID_MMFR2` system register.
512    pub id_mmfr2: IdMmfr2,
513    /// Fake value for the `ID_MMFR3` system register.
514    pub id_mmfr3: IdMmfr3,
515    /// Fake value for the `ID_MMFR4` system register.
516    pub id_mmfr4: IdMmfr4,
517    /// Fake value for the `ID_MMFR5` system register.
518    pub id_mmfr5: IdMmfr5,
519    /// Fake value for the `ID_PFR0` system register.
520    pub id_pfr0: IdPfr0,
521    /// Fake value for the `ID_PFR1` system register.
522    pub id_pfr1: IdPfr1,
523    /// Fake value for the `ID_PFR2` system register.
524    pub id_pfr2: IdPfr2,
525    /// Fake value for the `IFAR` system register.
526    pub ifar: Ifar,
527    /// Fake value for the `IFSR` system register.
528    pub ifsr: Ifsr,
529    /// Fake value for the `ISR` system register.
530    pub isr: Isr,
531    #[cfg(feature = "el1")]
532    /// Fake value for the `ISR_EL1` system register.
533    pub isr_el1: IsrEl1,
534    /// Fake value for the `JIDR` system register.
535    pub jidr: u32,
536    /// Fake value for the `JMCR` system register.
537    pub jmcr: u32,
538    /// Fake value for the `JOSCR` system register.
539    pub joscr: u32,
540    /// Fake value for the `MAIR0` system register.
541    pub mair0: Mair0,
542    /// Fake value for the `MAIR1` system register.
543    pub mair1: Mair1,
544    #[cfg(feature = "el1")]
545    /// Fake value for the `MAIR_EL1` system register.
546    pub mair_el1: MairEl1,
547    #[cfg(feature = "el2")]
548    /// Fake value for the `MAIR_EL2` system register.
549    pub mair_el2: MairEl2,
550    #[cfg(feature = "el3")]
551    /// Fake value for the `MAIR_EL3` system register.
552    pub mair_el3: MairEl3,
553    #[cfg(feature = "el1")]
554    /// Fake value for the `MDCCINT_EL1` system register.
555    pub mdccint_el1: MdccintEl1,
556    #[cfg(feature = "el2")]
557    /// Fake value for the `MDCR_EL2` system register.
558    pub mdcr_el2: MdcrEl2,
559    #[cfg(feature = "el3")]
560    /// Fake value for the `MDCR_EL3` system register.
561    pub mdcr_el3: MdcrEl3,
562    #[cfg(feature = "el1")]
563    /// Fake value for the `MDSCR_EL1` system register.
564    pub mdscr_el1: MdscrEl1,
565    /// Fake value for the `MIDR` system register.
566    pub midr: Midr,
567    #[cfg(feature = "el1")]
568    /// Fake value for the `MIDR_EL1` system register.
569    pub midr_el1: MidrEl1,
570    #[cfg(feature = "el2")]
571    /// Fake value for the `MPAM2_EL2` system register.
572    pub mpam2_el2: Mpam2El2,
573    #[cfg(feature = "el3")]
574    /// Fake value for the `MPAM3_EL3` system register.
575    pub mpam3_el3: Mpam3El3,
576    #[cfg(feature = "el2")]
577    /// Fake value for the `MPAMHCR_EL2` system register.
578    pub mpamhcr_el2: MpamhcrEl2,
579    #[cfg(feature = "el1")]
580    /// Fake value for the `MPAMIDR_EL1` system register.
581    pub mpamidr_el1: MpamidrEl1,
582    #[cfg(feature = "el2")]
583    /// Fake value for the `MPAMVPM0_EL2` system register.
584    pub mpamvpm0_el2: Mpamvpm0El2,
585    #[cfg(feature = "el2")]
586    /// Fake value for the `MPAMVPM1_EL2` system register.
587    pub mpamvpm1_el2: Mpamvpm1El2,
588    #[cfg(feature = "el2")]
589    /// Fake value for the `MPAMVPM2_EL2` system register.
590    pub mpamvpm2_el2: Mpamvpm2El2,
591    #[cfg(feature = "el2")]
592    /// Fake value for the `MPAMVPM3_EL2` system register.
593    pub mpamvpm3_el2: Mpamvpm3El2,
594    #[cfg(feature = "el2")]
595    /// Fake value for the `MPAMVPM4_EL2` system register.
596    pub mpamvpm4_el2: Mpamvpm4El2,
597    #[cfg(feature = "el2")]
598    /// Fake value for the `MPAMVPM5_EL2` system register.
599    pub mpamvpm5_el2: Mpamvpm5El2,
600    #[cfg(feature = "el2")]
601    /// Fake value for the `MPAMVPM6_EL2` system register.
602    pub mpamvpm6_el2: Mpamvpm6El2,
603    #[cfg(feature = "el2")]
604    /// Fake value for the `MPAMVPM7_EL2` system register.
605    pub mpamvpm7_el2: Mpamvpm7El2,
606    #[cfg(feature = "el2")]
607    /// Fake value for the `MPAMVPMV_EL2` system register.
608    pub mpamvpmv_el2: MpamvpmvEl2,
609    /// Fake value for the `MPIDR` system register.
610    pub mpidr: Mpidr,
611    #[cfg(feature = "el1")]
612    /// Fake value for the `MPIDR_EL1` system register.
613    pub mpidr_el1: MpidrEl1,
614    /// Fake value for the `MVBAR` system register.
615    pub mvbar: Mvbar,
616    /// Fake value for the `NMRR` system register.
617    pub nmrr: Nmrr,
618    /// Fake value for the `NSACR` system register.
619    pub nsacr: Nsacr,
620    /// Fake value for the `PAR` system register.
621    pub par: Par,
622    #[cfg(feature = "el1")]
623    /// Fake value for the `PAR_EL1` system register.
624    pub par_el1: ParEl1,
625    /// Fake value for the `PMCCFILTR` system register.
626    pub pmccfiltr: Pmccfiltr,
627    /// Fake value for the `PMCCNTR` system register.
628    pub pmccntr: Pmccntr,
629    /// Fake value for the `PMCEID0` system register.
630    pub pmceid0: Pmceid0,
631    /// Fake value for the `PMCEID1` system register.
632    pub pmceid1: Pmceid1,
633    /// Fake value for the `PMCEID2` system register.
634    pub pmceid2: Pmceid2,
635    /// Fake value for the `PMCEID3` system register.
636    pub pmceid3: Pmceid3,
637    /// Fake value for the `PMCNTENCLR` system register.
638    pub pmcntenclr: Pmcntenclr,
639    /// Fake value for the `PMCNTENSET` system register.
640    pub pmcntenset: Pmcntenset,
641    /// Fake value for the `PMCR` system register.
642    pub pmcr: Pmcr,
643    /// Fake value for the `PMCR_EL0` system register.
644    pub pmcr_el0: PmcrEl0,
645    /// Fake value for the `PMINTENCLR` system register.
646    pub pmintenclr: Pmintenclr,
647    /// Fake value for the `PMINTENSET` system register.
648    pub pmintenset: Pmintenset,
649    /// Fake value for the `PMMIR` system register.
650    pub pmmir: Pmmir,
651    /// Fake value for the `PMOVSR` system register.
652    pub pmovsr: Pmovsr,
653    /// Fake value for the `PMOVSSET` system register.
654    pub pmovsset: Pmovsset,
655    /// Fake value for the `PMSELR` system register.
656    pub pmselr: Pmselr,
657    /// Fake value for the `PMSWINC` system register.
658    pub pmswinc: Pmswinc,
659    /// Fake value for the `PMUSERENR` system register.
660    pub pmuserenr: Pmuserenr,
661    /// Fake value for the `PMXEVTYPER` system register.
662    pub pmxevtyper: Pmxevtyper,
663    /// Fake value for the `PRRR` system register.
664    pub prrr: Prrr,
665    /// Fake value for the `REVIDR` system register.
666    pub revidr: u32,
667    #[cfg(feature = "el1")]
668    /// Fake value for the `RGSR_EL1` system register.
669    pub rgsr_el1: RgsrEl1,
670    /// Fake value for the `RMR` system register.
671    pub rmr: Rmr,
672    /// Fake value for the `RVBAR` system register.
673    pub rvbar: Rvbar,
674    /// Fake value for the `SCR` system register.
675    pub scr: Scr,
676    #[cfg(feature = "el3")]
677    /// Fake value for the `SCR_EL3` system register.
678    pub scr_el3: ScrEl3,
679    /// Fake value for the `SCTLR` system register.
680    pub sctlr: Sctlr,
681    #[cfg(feature = "el3")]
682    /// Fake value for the `SCTLR2_EL3` system register.
683    pub sctlr2_el3: Sctlr2El3,
684    #[cfg(feature = "el1")]
685    /// Fake value for the `SCTLR_EL1` system register.
686    pub sctlr_el1: SctlrEl1,
687    #[cfg(feature = "el2")]
688    /// Fake value for the `SCTLR_EL2` system register.
689    pub sctlr_el2: SctlrEl2,
690    #[cfg(feature = "el3")]
691    /// Fake value for the `SCTLR_EL3` system register.
692    pub sctlr_el3: SctlrEl3,
693    /// Fake value for the `SDCR` system register.
694    pub sdcr: Sdcr,
695    /// Fake value for the `SDER` system register.
696    pub sder: Sder,
697    #[cfg(feature = "el3")]
698    /// Fake value for the `SMCR_EL3` system register.
699    pub smcr_el3: SmcrEl3,
700    #[cfg(feature = "el1")]
701    /// Fake value for the `SPSR_EL1` system register.
702    pub spsr_el1: SpsrEl1,
703    #[cfg(feature = "el2")]
704    /// Fake value for the `SPSR_EL2` system register.
705    pub spsr_el2: SpsrEl2,
706    #[cfg(feature = "el3")]
707    /// Fake value for the `SPSR_EL3` system register.
708    pub spsr_el3: SpsrEl3,
709    #[cfg(feature = "el1")]
710    /// Fake value for the `SP_EL1` system register.
711    pub sp_el1: SpEl1,
712    #[cfg(feature = "el2")]
713    /// Fake value for the `SP_EL2` system register.
714    pub sp_el2: SpEl2,
715    /// Fake value for the `TCMTR` system register.
716    pub tcmtr: u32,
717    #[cfg(feature = "el1")]
718    /// Fake value for the `TCR2_EL1` system register.
719    pub tcr2_el1: Tcr2El1,
720    #[cfg(feature = "el2")]
721    /// Fake value for the `TCR2_EL2` system register.
722    pub tcr2_el2: Tcr2El2,
723    #[cfg(feature = "el1")]
724    /// Fake value for the `TCR_EL1` system register.
725    pub tcr_el1: TcrEl1,
726    #[cfg(feature = "el2")]
727    /// Fake value for the `TCR_EL2` system register.
728    pub tcr_el2: TcrEl2,
729    #[cfg(feature = "el3")]
730    /// Fake value for the `TCR_EL3` system register.
731    pub tcr_el3: TcrEl3,
732    #[cfg(feature = "el1")]
733    /// Fake value for the `TFSRE0_EL1` system register.
734    pub tfsre0_el1: Tfsre0El1,
735    #[cfg(feature = "el1")]
736    /// Fake value for the `TFSR_EL1` system register.
737    pub tfsr_el1: TfsrEl1,
738    #[cfg(feature = "el2")]
739    /// Fake value for the `TFSR_EL2` system register.
740    pub tfsr_el2: TfsrEl2,
741    /// Fake value for the `TLBTR` system register.
742    pub tlbtr: Tlbtr,
743    /// Fake value for the `TPIDRPRW` system register.
744    pub tpidrprw: Tpidrprw,
745    /// Fake value for the `TPIDRRO_EL0` system register.
746    pub tpidrro_el0: TpidrroEl0,
747    /// Fake value for the `TPIDRURO` system register.
748    pub tpidruro: Tpidruro,
749    /// Fake value for the `TPIDRURW` system register.
750    pub tpidrurw: Tpidrurw,
751    /// Fake value for the `TPIDR_EL0` system register.
752    pub tpidr_el0: TpidrEl0,
753    #[cfg(feature = "el1")]
754    /// Fake value for the `TPIDR_EL1` system register.
755    pub tpidr_el1: TpidrEl1,
756    #[cfg(feature = "el2")]
757    /// Fake value for the `TPIDR_EL2` system register.
758    pub tpidr_el2: TpidrEl2,
759    /// Fake value for the `TRFCR` system register.
760    pub trfcr: Trfcr,
761    /// Fake value for the `TTBCR` system register.
762    pub ttbcr: Ttbcr,
763    /// Fake value for the `TTBCR2` system register.
764    pub ttbcr2: Ttbcr2,
765    /// Fake value for the `TTBR0` system register.
766    pub ttbr0: Ttbr0,
767    #[cfg(feature = "el1")]
768    /// Fake value for the `TTBR0_EL1` system register.
769    pub ttbr0_el1: Ttbr0El1,
770    #[cfg(feature = "el2")]
771    /// Fake value for the `TTBR0_EL2` system register.
772    pub ttbr0_el2: Ttbr0El2,
773    #[cfg(feature = "el3")]
774    /// Fake value for the `TTBR0_EL3` system register.
775    pub ttbr0_el3: Ttbr0El3,
776    /// Fake value for the `TTBR1` system register.
777    pub ttbr1: Ttbr1,
778    #[cfg(feature = "el1")]
779    /// Fake value for the `TTBR1_EL1` system register.
780    pub ttbr1_el1: Ttbr1El1,
781    #[cfg(feature = "el2")]
782    /// Fake value for the `TTBR1_EL2` system register.
783    pub ttbr1_el2: Ttbr1El2,
784    /// Fake value for the `VBAR` system register.
785    pub vbar: Vbar,
786    #[cfg(feature = "el1")]
787    /// Fake value for the `VBAR_EL1` system register.
788    pub vbar_el1: VbarEl1,
789    #[cfg(feature = "el2")]
790    /// Fake value for the `VBAR_EL2` system register.
791    pub vbar_el2: VbarEl2,
792    /// Fake value for the `VDFSR` system register.
793    pub vdfsr: Vdfsr,
794    /// Fake value for the `VDISR` system register.
795    pub vdisr: Vdisr,
796    #[cfg(feature = "el2")]
797    /// Fake value for the `VDISR_EL2` system register.
798    pub vdisr_el2: VdisrEl2,
799    /// Fake value for the `VMPIDR` system register.
800    pub vmpidr: Vmpidr,
801    #[cfg(feature = "el2")]
802    /// Fake value for the `VMPIDR_EL2` system register.
803    pub vmpidr_el2: VmpidrEl2,
804    /// Fake value for the `VPIDR` system register.
805    pub vpidr: Vpidr,
806    #[cfg(feature = "el2")]
807    /// Fake value for the `VPIDR_EL2` system register.
808    pub vpidr_el2: VpidrEl2,
809    #[cfg(feature = "el2")]
810    /// Fake value for the `VSESR_EL2` system register.
811    pub vsesr_el2: VsesrEl2,
812    /// Fake value for the `VTCR` system register.
813    pub vtcr: Vtcr,
814    #[cfg(feature = "el2")]
815    /// Fake value for the `VTCR_EL2` system register.
816    pub vtcr_el2: VtcrEl2,
817    /// Fake value for the `VTTBR` system register.
818    pub vttbr: Vttbr,
819    #[cfg(feature = "el2")]
820    /// Fake value for the `VTTBR_EL2` system register.
821    pub vttbr_el2: VttbrEl2,
822    #[cfg(feature = "el3")]
823    /// Fake value for the `ZCR_EL3` system register.
824    pub zcr_el3: ZcrEl3,
825}
826
827impl SystemRegisters {
828    pub(crate) const fn new() -> Self {
829        Self {
830            actlr: 0,
831            actlr2: 0,
832            #[cfg(feature = "el1")]
833            actlr_el1: 0,
834            #[cfg(feature = "el2")]
835            actlr_el2: 0,
836            adfsr: 0,
837            #[cfg(feature = "el1")]
838            afsr0_el1: 0,
839            #[cfg(feature = "el2")]
840            afsr0_el2: 0,
841            #[cfg(feature = "el1")]
842            afsr1_el1: 0,
843            #[cfg(feature = "el2")]
844            afsr1_el2: 0,
845            aidr: 0,
846            aifsr: 0,
847            amair0: 0,
848            amair1: 0,
849            #[cfg(feature = "el1")]
850            amair_el1: 0,
851            #[cfg(feature = "el2")]
852            amair_el2: 0,
853            amcfgr: Amcfgr::empty(),
854            amcgcr: Amcgcr::empty(),
855            amcntenclr0: Amcntenclr0::empty(),
856            amcntenclr1: Amcntenclr1::empty(),
857            amcntenset0: Amcntenset0::empty(),
858            amcntenset1: Amcntenset1::empty(),
859            amcr: Amcr::empty(),
860            amuserenr: Amuserenr::empty(),
861            #[cfg(feature = "el1")]
862            apiakeyhi_el1: ApiakeyhiEl1::empty(),
863            #[cfg(feature = "el1")]
864            apiakeylo_el1: ApiakeyloEl1::empty(),
865            ccsidr: Ccsidr::empty(),
866            ccsidr2: Ccsidr2::empty(),
867            #[cfg(feature = "el1")]
868            ccsidr_el1: CcsidrEl1::empty(),
869            clidr: Clidr::empty(),
870            #[cfg(feature = "el1")]
871            clidr_el1: ClidrEl1::empty(),
872            cntfrq: Cntfrq::empty(),
873            cntfrq_el0: CntfrqEl0::empty(),
874            cnthctl: Cnthctl::empty(),
875            #[cfg(feature = "el2")]
876            cnthctl_el2: CnthctlEl2::empty(),
877            cnthps_ctl: CnthpsCtl::empty(),
878            cnthps_cval: CnthpsCval::empty(),
879            cnthps_tval: CnthpsTval::empty(),
880            cnthp_ctl: CnthpCtl::empty(),
881            cnthp_cval: CnthpCval::empty(),
882            cnthp_tval: CnthpTval::empty(),
883            cnthvs_ctl: CnthvsCtl::empty(),
884            cnthvs_cval: CnthvsCval::empty(),
885            cnthvs_tval: CnthvsTval::empty(),
886            cnthv_ctl: CnthvCtl::empty(),
887            cnthv_cval: CnthvCval::empty(),
888            cnthv_tval: CnthvTval::empty(),
889            cntkctl: Cntkctl::empty(),
890            cntpct: Cntpct::empty(),
891            cntpctss: Cntpctss::empty(),
892            cntpct_el0: CntpctEl0::empty(),
893            cntp_ctl: CntpCtl::empty(),
894            cntp_cval: CntpCval::empty(),
895            cntp_tval: CntpTval::empty(),
896            cntvct: Cntvct::empty(),
897            cntvctss: Cntvctss::empty(),
898            cntvoff: Cntvoff::empty(),
899            #[cfg(feature = "el2")]
900            cntvoff_el2: CntvoffEl2::empty(),
901            cntv_ctl: CntvCtl::empty(),
902            cntv_cval: CntvCval::empty(),
903            cntv_tval: CntvTval::empty(),
904            contextidr: Contextidr::empty(),
905            #[cfg(feature = "el1")]
906            contextidr_el1: ContextidrEl1::empty(),
907            #[cfg(feature = "el2")]
908            contextidr_el2: ContextidrEl2::empty(),
909            cpacr: Cpacr::empty(),
910            #[cfg(feature = "el1")]
911            cpacr_el1: CpacrEl1::empty(),
912            #[cfg(feature = "el2")]
913            cptr_el2: CptrEl2::empty(),
914            #[cfg(feature = "el3")]
915            cptr_el3: CptrEl3::empty(),
916            csselr: Csselr::empty(),
917            #[cfg(feature = "el1")]
918            csselr_el1: CsselrEl1::empty(),
919            ctr: Ctr::empty(),
920            ctr_el0: CtrEl0::empty(),
921            currentel: Currentel::empty(),
922            dacr: Dacr::empty(),
923            dbgauthstatus: Dbgauthstatus::empty(),
924            dbgclaimclr: Dbgclaimclr::empty(),
925            dbgclaimset: Dbgclaimset::empty(),
926            dbgdccint: Dbgdccint::empty(),
927            dbgdevid: Dbgdevid::empty(),
928            dbgdevid1: Dbgdevid1::empty(),
929            dbgdevid2: 0,
930            dbgdidr: Dbgdidr::empty(),
931            dbgdrar: Dbgdrar::empty(),
932            dbgdsar: 0,
933            dbgdscrext: Dbgdscrext::empty(),
934            dbgdscrint: Dbgdscrint::empty(),
935            dbgdtrrxext: Dbgdtrrxext::empty(),
936            dbgdtrrxint: Dbgdtrrxint::empty(),
937            dbgdtrtxext: Dbgdtrtxext::empty(),
938            dbgdtrtxint: Dbgdtrtxint::empty(),
939            dbgosdlr: Dbgosdlr::empty(),
940            dbgoseccr: Dbgoseccr::empty(),
941            dbgoslar: Dbgoslar::empty(),
942            dbgoslsr: Dbgoslsr::empty(),
943            dbgprcr: Dbgprcr::empty(),
944            dbgvcr: Dbgvcr::empty(),
945            dbgwfar: 0,
946            dfar: Dfar::empty(),
947            dfsr: Dfsr::empty(),
948            disr: Disr::empty(),
949            #[cfg(feature = "el1")]
950            disr_el1: DisrEl1::empty(),
951            dit: Dit::empty(),
952            dlr: Dlr::empty(),
953            dspsr: Dspsr::empty(),
954            dspsr2: Dspsr2::empty(),
955            #[cfg(feature = "el1")]
956            elr_el1: ElrEl1::empty(),
957            #[cfg(feature = "el2")]
958            elr_el2: ElrEl2::empty(),
959            #[cfg(feature = "el2")]
960            elr_hyp: ElrHyp::empty(),
961            erridr: Erridr::empty(),
962            errselr: Errselr::empty(),
963            erxaddr: Erxaddr::empty(),
964            erxaddr2: Erxaddr2::empty(),
965            erxctlr: Erxctlr::empty(),
966            erxctlr2: Erxctlr2::empty(),
967            erxfr: Erxfr::empty(),
968            erxfr2: Erxfr2::empty(),
969            erxmisc0: Erxmisc0::empty(),
970            erxmisc1: Erxmisc1::empty(),
971            erxmisc2: Erxmisc2::empty(),
972            erxmisc3: Erxmisc3::empty(),
973            erxmisc4: Erxmisc4::empty(),
974            erxmisc5: Erxmisc5::empty(),
975            erxmisc6: Erxmisc6::empty(),
976            erxmisc7: Erxmisc7::empty(),
977            erxstatus: Erxstatus::empty(),
978            #[cfg(feature = "el1")]
979            esr_el1: EsrEl1::empty(),
980            #[cfg(feature = "el2")]
981            esr_el2: EsrEl2::empty(),
982            #[cfg(feature = "el3")]
983            esr_el3: EsrEl3::empty(),
984            #[cfg(feature = "el1")]
985            far_el1: FarEl1::empty(),
986            #[cfg(feature = "el2")]
987            far_el2: FarEl2::empty(),
988            fcseidr: 0,
989            #[cfg(feature = "el1")]
990            gcr_el1: GcrEl1::empty(),
991            #[cfg(feature = "el1")]
992            gcscr_el1: GcscrEl1::empty(),
993            #[cfg(feature = "el2")]
994            gcscr_el2: GcscrEl2::empty(),
995            #[cfg(feature = "el3")]
996            gpccr_el3: GpccrEl3::empty(),
997            #[cfg(feature = "el3")]
998            gptbr_el3: GptbrEl3::empty(),
999            hacr: 0,
1000            #[cfg(feature = "el2")]
1001            hacr_el2: 0,
1002            hactlr: 0,
1003            hactlr2: 0,
1004            hadfsr: 0,
1005            haifsr: 0,
1006            hamair0: 0,
1007            hamair1: 0,
1008            hcptr: Hcptr::empty(),
1009            hcr: Hcr::empty(),
1010            hcr2: Hcr2::empty(),
1011            #[cfg(feature = "el2")]
1012            hcrx_el2: HcrxEl2::empty(),
1013            #[cfg(feature = "el2")]
1014            hcr_el2: HcrEl2::empty(),
1015            hdcr: Hdcr::empty(),
1016            hdfar: Hdfar::empty(),
1017            #[cfg(feature = "el2")]
1018            hdfgrtr2_el2: Hdfgrtr2El2::empty(),
1019            #[cfg(feature = "el2")]
1020            hdfgwtr2_el2: Hdfgwtr2El2::empty(),
1021            #[cfg(feature = "el2")]
1022            hfgitr2_el2: Hfgitr2El2::empty(),
1023            #[cfg(feature = "el2")]
1024            hfgrtr2_el2: Hfgrtr2El2::empty(),
1025            #[cfg(feature = "el2")]
1026            hfgwtr2_el2: Hfgwtr2El2::empty(),
1027            #[cfg(feature = "el2")]
1028            hfgwtr_el2: HfgwtrEl2::empty(),
1029            hifar: Hifar::empty(),
1030            hmair0: Hmair0::empty(),
1031            hmair1: Hmair1::empty(),
1032            hpfar: Hpfar::empty(),
1033            #[cfg(feature = "el2")]
1034            hpfar_el2: HpfarEl2::empty(),
1035            hrmr: Hrmr::empty(),
1036            hsctlr: Hsctlr::empty(),
1037            hsr: Hsr::empty(),
1038            hstr: 0,
1039            #[cfg(feature = "el2")]
1040            hstr_el2: 0,
1041            htcr: Htcr::empty(),
1042            htpidr: Htpidr::empty(),
1043            htrfcr: Htrfcr::empty(),
1044            httbr: Httbr::empty(),
1045            hvbar: Hvbar::empty(),
1046            #[cfg(feature = "el1")]
1047            icc_sre_el1: IccSreEl1::empty(),
1048            #[cfg(feature = "el2")]
1049            icc_sre_el2: IccSreEl2::empty(),
1050            #[cfg(feature = "el3")]
1051            icc_sre_el3: IccSreEl3::empty(),
1052            #[cfg(feature = "el2")]
1053            ich_hcr_el2: IchHcrEl2::empty(),
1054            #[cfg(feature = "el2")]
1055            ich_vmcr_el2: IchVmcrEl2::empty(),
1056            #[cfg(feature = "el1")]
1057            id_aa64dfr0_el1: IdAa64dfr0El1::empty(),
1058            #[cfg(feature = "el1")]
1059            id_aa64dfr1_el1: IdAa64dfr1El1::empty(),
1060            #[cfg(feature = "el1")]
1061            id_aa64isar1_el1: IdAa64isar1El1::empty(),
1062            #[cfg(feature = "el1")]
1063            id_aa64isar2_el1: IdAa64isar2El1::empty(),
1064            #[cfg(feature = "el1")]
1065            id_aa64mmfr0_el1: IdAa64mmfr0El1::empty(),
1066            #[cfg(feature = "el1")]
1067            id_aa64mmfr1_el1: IdAa64mmfr1El1::empty(),
1068            #[cfg(feature = "el1")]
1069            id_aa64mmfr2_el1: IdAa64mmfr2El1::empty(),
1070            #[cfg(feature = "el1")]
1071            id_aa64mmfr3_el1: IdAa64mmfr3El1::empty(),
1072            #[cfg(feature = "el1")]
1073            id_aa64pfr0_el1: IdAa64pfr0El1::empty(),
1074            #[cfg(feature = "el1")]
1075            id_aa64pfr1_el1: IdAa64pfr1El1::empty(),
1076            #[cfg(feature = "el1")]
1077            id_aa64smfr0_el1: IdAa64smfr0El1::empty(),
1078            id_afr0: 0,
1079            id_dfr0: IdDfr0::empty(),
1080            id_dfr1: IdDfr1::empty(),
1081            id_isar0: IdIsar0::empty(),
1082            id_isar1: IdIsar1::empty(),
1083            id_isar2: IdIsar2::empty(),
1084            id_isar3: IdIsar3::empty(),
1085            id_isar4: IdIsar4::empty(),
1086            id_isar5: IdIsar5::empty(),
1087            id_isar6: IdIsar6::empty(),
1088            id_mmfr0: IdMmfr0::empty(),
1089            id_mmfr1: IdMmfr1::empty(),
1090            id_mmfr2: IdMmfr2::empty(),
1091            id_mmfr3: IdMmfr3::empty(),
1092            id_mmfr4: IdMmfr4::empty(),
1093            id_mmfr5: IdMmfr5::empty(),
1094            id_pfr0: IdPfr0::empty(),
1095            id_pfr1: IdPfr1::empty(),
1096            id_pfr2: IdPfr2::empty(),
1097            ifar: Ifar::empty(),
1098            ifsr: Ifsr::empty(),
1099            isr: Isr::empty(),
1100            #[cfg(feature = "el1")]
1101            isr_el1: IsrEl1::empty(),
1102            jidr: 0,
1103            jmcr: 0,
1104            joscr: 0,
1105            mair0: Mair0::empty(),
1106            mair1: Mair1::empty(),
1107            #[cfg(feature = "el1")]
1108            mair_el1: MairEl1::empty(),
1109            #[cfg(feature = "el2")]
1110            mair_el2: MairEl2::empty(),
1111            #[cfg(feature = "el3")]
1112            mair_el3: MairEl3::empty(),
1113            #[cfg(feature = "el1")]
1114            mdccint_el1: MdccintEl1::empty(),
1115            #[cfg(feature = "el2")]
1116            mdcr_el2: MdcrEl2::empty(),
1117            #[cfg(feature = "el3")]
1118            mdcr_el3: MdcrEl3::empty(),
1119            #[cfg(feature = "el1")]
1120            mdscr_el1: MdscrEl1::empty(),
1121            midr: Midr::empty(),
1122            #[cfg(feature = "el1")]
1123            midr_el1: MidrEl1::empty(),
1124            #[cfg(feature = "el2")]
1125            mpam2_el2: Mpam2El2::empty(),
1126            #[cfg(feature = "el3")]
1127            mpam3_el3: Mpam3El3::empty(),
1128            #[cfg(feature = "el2")]
1129            mpamhcr_el2: MpamhcrEl2::empty(),
1130            #[cfg(feature = "el1")]
1131            mpamidr_el1: MpamidrEl1::empty(),
1132            #[cfg(feature = "el2")]
1133            mpamvpm0_el2: Mpamvpm0El2::empty(),
1134            #[cfg(feature = "el2")]
1135            mpamvpm1_el2: Mpamvpm1El2::empty(),
1136            #[cfg(feature = "el2")]
1137            mpamvpm2_el2: Mpamvpm2El2::empty(),
1138            #[cfg(feature = "el2")]
1139            mpamvpm3_el2: Mpamvpm3El2::empty(),
1140            #[cfg(feature = "el2")]
1141            mpamvpm4_el2: Mpamvpm4El2::empty(),
1142            #[cfg(feature = "el2")]
1143            mpamvpm5_el2: Mpamvpm5El2::empty(),
1144            #[cfg(feature = "el2")]
1145            mpamvpm6_el2: Mpamvpm6El2::empty(),
1146            #[cfg(feature = "el2")]
1147            mpamvpm7_el2: Mpamvpm7El2::empty(),
1148            #[cfg(feature = "el2")]
1149            mpamvpmv_el2: MpamvpmvEl2::empty(),
1150            mpidr: Mpidr::empty(),
1151            #[cfg(feature = "el1")]
1152            mpidr_el1: MpidrEl1::empty(),
1153            mvbar: Mvbar::empty(),
1154            nmrr: Nmrr::empty(),
1155            nsacr: Nsacr::empty(),
1156            par: Par::empty(),
1157            #[cfg(feature = "el1")]
1158            par_el1: ParEl1::empty(),
1159            pmccfiltr: Pmccfiltr::empty(),
1160            pmccntr: Pmccntr::empty(),
1161            pmceid0: Pmceid0::empty(),
1162            pmceid1: Pmceid1::empty(),
1163            pmceid2: Pmceid2::empty(),
1164            pmceid3: Pmceid3::empty(),
1165            pmcntenclr: Pmcntenclr::empty(),
1166            pmcntenset: Pmcntenset::empty(),
1167            pmcr: Pmcr::empty(),
1168            pmcr_el0: PmcrEl0::empty(),
1169            pmintenclr: Pmintenclr::empty(),
1170            pmintenset: Pmintenset::empty(),
1171            pmmir: Pmmir::empty(),
1172            pmovsr: Pmovsr::empty(),
1173            pmovsset: Pmovsset::empty(),
1174            pmselr: Pmselr::empty(),
1175            pmswinc: Pmswinc::empty(),
1176            pmuserenr: Pmuserenr::empty(),
1177            pmxevtyper: Pmxevtyper::empty(),
1178            prrr: Prrr::empty(),
1179            revidr: 0,
1180            #[cfg(feature = "el1")]
1181            rgsr_el1: RgsrEl1::empty(),
1182            rmr: Rmr::empty(),
1183            rvbar: Rvbar::empty(),
1184            scr: Scr::empty(),
1185            #[cfg(feature = "el3")]
1186            scr_el3: ScrEl3::empty(),
1187            sctlr: Sctlr::empty(),
1188            #[cfg(feature = "el3")]
1189            sctlr2_el3: Sctlr2El3::empty(),
1190            #[cfg(feature = "el1")]
1191            sctlr_el1: SctlrEl1::empty(),
1192            #[cfg(feature = "el2")]
1193            sctlr_el2: SctlrEl2::empty(),
1194            #[cfg(feature = "el3")]
1195            sctlr_el3: SctlrEl3::empty(),
1196            sdcr: Sdcr::empty(),
1197            sder: Sder::empty(),
1198            #[cfg(feature = "el3")]
1199            smcr_el3: SmcrEl3::empty(),
1200            #[cfg(feature = "el1")]
1201            spsr_el1: SpsrEl1::empty(),
1202            #[cfg(feature = "el2")]
1203            spsr_el2: SpsrEl2::empty(),
1204            #[cfg(feature = "el3")]
1205            spsr_el3: SpsrEl3::empty(),
1206            #[cfg(feature = "el1")]
1207            sp_el1: SpEl1::empty(),
1208            #[cfg(feature = "el2")]
1209            sp_el2: SpEl2::empty(),
1210            tcmtr: 0,
1211            #[cfg(feature = "el1")]
1212            tcr2_el1: Tcr2El1::empty(),
1213            #[cfg(feature = "el2")]
1214            tcr2_el2: Tcr2El2::empty(),
1215            #[cfg(feature = "el1")]
1216            tcr_el1: TcrEl1::empty(),
1217            #[cfg(feature = "el2")]
1218            tcr_el2: TcrEl2::empty(),
1219            #[cfg(feature = "el3")]
1220            tcr_el3: TcrEl3::empty(),
1221            #[cfg(feature = "el1")]
1222            tfsre0_el1: Tfsre0El1::empty(),
1223            #[cfg(feature = "el1")]
1224            tfsr_el1: TfsrEl1::empty(),
1225            #[cfg(feature = "el2")]
1226            tfsr_el2: TfsrEl2::empty(),
1227            tlbtr: Tlbtr::empty(),
1228            tpidrprw: Tpidrprw::empty(),
1229            tpidrro_el0: TpidrroEl0::empty(),
1230            tpidruro: Tpidruro::empty(),
1231            tpidrurw: Tpidrurw::empty(),
1232            tpidr_el0: TpidrEl0::empty(),
1233            #[cfg(feature = "el1")]
1234            tpidr_el1: TpidrEl1::empty(),
1235            #[cfg(feature = "el2")]
1236            tpidr_el2: TpidrEl2::empty(),
1237            trfcr: Trfcr::empty(),
1238            ttbcr: Ttbcr::empty(),
1239            ttbcr2: Ttbcr2::empty(),
1240            ttbr0: Ttbr0::empty(),
1241            #[cfg(feature = "el1")]
1242            ttbr0_el1: Ttbr0El1::empty(),
1243            #[cfg(feature = "el2")]
1244            ttbr0_el2: Ttbr0El2::empty(),
1245            #[cfg(feature = "el3")]
1246            ttbr0_el3: Ttbr0El3::empty(),
1247            ttbr1: Ttbr1::empty(),
1248            #[cfg(feature = "el1")]
1249            ttbr1_el1: Ttbr1El1::empty(),
1250            #[cfg(feature = "el2")]
1251            ttbr1_el2: Ttbr1El2::empty(),
1252            vbar: Vbar::empty(),
1253            #[cfg(feature = "el1")]
1254            vbar_el1: VbarEl1::empty(),
1255            #[cfg(feature = "el2")]
1256            vbar_el2: VbarEl2::empty(),
1257            vdfsr: Vdfsr::empty(),
1258            vdisr: Vdisr::empty(),
1259            #[cfg(feature = "el2")]
1260            vdisr_el2: VdisrEl2::empty(),
1261            vmpidr: Vmpidr::empty(),
1262            #[cfg(feature = "el2")]
1263            vmpidr_el2: VmpidrEl2::empty(),
1264            vpidr: Vpidr::empty(),
1265            #[cfg(feature = "el2")]
1266            vpidr_el2: VpidrEl2::empty(),
1267            #[cfg(feature = "el2")]
1268            vsesr_el2: VsesrEl2::empty(),
1269            vtcr: Vtcr::empty(),
1270            #[cfg(feature = "el2")]
1271            vtcr_el2: VtcrEl2::empty(),
1272            vttbr: Vttbr::empty(),
1273            #[cfg(feature = "el2")]
1274            vttbr_el2: VttbrEl2::empty(),
1275            #[cfg(feature = "el3")]
1276            zcr_el3: ZcrEl3::empty(),
1277        }
1278    }
1279}