#[repr(C)]
#[derive(Debug)]
pub struct RegisterBlock {
cr: CR,
sr: SR,
din: DIN,
dout: DOUT,
dmacr: DMACR,
imscr: IMSCR,
risr: RISR,
misr: MISR,
key: [KEY; 4],
init: [INIT; 2],
csgcmccmr: [CSGCMCCMR; 8],
csgcmr: [CSGCMR; 8],
}
impl RegisterBlock {
#[inline(always)]
pub const fn cr(&self) -> &CR {
&self.cr
}
#[inline(always)]
pub const fn sr(&self) -> &SR {
&self.sr
}
#[inline(always)]
pub const fn din(&self) -> &DIN {
&self.din
}
#[inline(always)]
pub const fn dout(&self) -> &DOUT {
&self.dout
}
#[inline(always)]
pub const fn dmacr(&self) -> &DMACR {
&self.dmacr
}
#[inline(always)]
pub const fn imscr(&self) -> &IMSCR {
&self.imscr
}
#[inline(always)]
pub const fn risr(&self) -> &RISR {
&self.risr
}
#[inline(always)]
pub const fn misr(&self) -> &MISR {
&self.misr
}
#[inline(always)]
pub const fn key(&self, n: usize) -> &KEY {
&self.key[n]
}
#[inline(always)]
pub fn key_iter(&self) -> impl Iterator<Item = &KEY> {
self.key.iter()
}
#[inline(always)]
pub const fn init(&self, n: usize) -> &INIT {
&self.init[n]
}
#[inline(always)]
pub fn init_iter(&self) -> impl Iterator<Item = &INIT> {
self.init.iter()
}
#[inline(always)]
pub const fn csgcmccmr(&self, n: usize) -> &CSGCMCCMR {
&self.csgcmccmr[n]
}
#[inline(always)]
pub fn csgcmccmr_iter(&self) -> impl Iterator<Item = &CSGCMCCMR> {
self.csgcmccmr.iter()
}
#[inline(always)]
pub const fn csgcmccm0r(&self) -> &CSGCMCCMR {
self.csgcmccmr(0)
}
#[inline(always)]
pub const fn csgcmccm1r(&self) -> &CSGCMCCMR {
self.csgcmccmr(1)
}
#[inline(always)]
pub const fn csgcmccm2r(&self) -> &CSGCMCCMR {
self.csgcmccmr(2)
}
#[inline(always)]
pub const fn csgcmccm3r(&self) -> &CSGCMCCMR {
self.csgcmccmr(3)
}
#[inline(always)]
pub const fn csgcmccm4r(&self) -> &CSGCMCCMR {
self.csgcmccmr(4)
}
#[inline(always)]
pub const fn csgcmccm5r(&self) -> &CSGCMCCMR {
self.csgcmccmr(5)
}
#[inline(always)]
pub const fn csgcmccm6r(&self) -> &CSGCMCCMR {
self.csgcmccmr(6)
}
#[inline(always)]
pub const fn csgcmccm7r(&self) -> &CSGCMCCMR {
self.csgcmccmr(7)
}
#[inline(always)]
pub const fn csgcmr(&self, n: usize) -> &CSGCMR {
&self.csgcmr[n]
}
#[inline(always)]
pub fn csgcmr_iter(&self) -> impl Iterator<Item = &CSGCMR> {
self.csgcmr.iter()
}
#[inline(always)]
pub const fn csgcm0r(&self) -> &CSGCMR {
self.csgcmr(0)
}
#[inline(always)]
pub const fn csgcm1r(&self) -> &CSGCMR {
self.csgcmr(1)
}
#[inline(always)]
pub const fn csgcm2r(&self) -> &CSGCMR {
self.csgcmr(2)
}
#[inline(always)]
pub const fn csgcm3r(&self) -> &CSGCMR {
self.csgcmr(3)
}
#[inline(always)]
pub const fn csgcm4r(&self) -> &CSGCMR {
self.csgcmr(4)
}
#[inline(always)]
pub const fn csgcm5r(&self) -> &CSGCMR {
self.csgcmr(5)
}
#[inline(always)]
pub const fn csgcm6r(&self) -> &CSGCMR {
self.csgcmr(6)
}
#[inline(always)]
pub const fn csgcm7r(&self) -> &CSGCMR {
self.csgcmr(7)
}
}
pub type CR = crate::Reg<cr::CRrs>;
pub mod cr;
pub type SR = crate::Reg<sr::SRrs>;
pub mod sr;
pub type DIN = crate::Reg<din::DINrs>;
pub mod din;
pub type DOUT = crate::Reg<dout::DOUTrs>;
pub mod dout;
pub type DMACR = crate::Reg<dmacr::DMACRrs>;
pub mod dmacr;
pub type IMSCR = crate::Reg<imscr::IMSCRrs>;
pub mod imscr;
pub type RISR = crate::Reg<risr::RISRrs>;
pub mod risr;
pub type MISR = crate::Reg<misr::MISRrs>;
pub mod misr;
pub use self::key::KEY;
pub mod key;
pub use self::init::INIT;
pub mod init;
pub type CSGCMCCMR = crate::Reg<csgcmccmr::CSGCMCCMRrs>;
pub mod csgcmccmr;
pub type CSGCMR = crate::Reg<csgcmr::CSGCMRrs>;
pub mod csgcmr;