1#[repr(C)]
2#[doc = "Register block"]
3pub struct RegisterBlock {
4 semaphores: [Semaphores; 8],
5 _reserved1: [u8; 0x20],
6 irq0: Irq0,
7 mail0: Mail0,
8 irq1: Irq1,
9 mail1: Mail1,
10 _reserved5: [u8; 0xb0],
11 status: Status,
12}
13impl RegisterBlock {
14 #[doc = "0x00..0x20 - Read to test and set, returns prior value. Write 0 to clear semaphore."]
15 #[inline(always)]
16 pub const fn semaphores(&self, n: usize) -> &Semaphores {
17 &self.semaphores[n]
18 }
19 #[doc = "Iterator for array of:"]
20 #[doc = "0x00..0x20 - Read to test and set, returns prior value. Write 0 to clear semaphore."]
21 #[inline(always)]
22 pub fn semaphores_iter(&self) -> impl Iterator<Item = &Semaphores> {
23 self.semaphores.iter()
24 }
25 #[doc = "0x40 - Semaphore IRQ0 register."]
26 #[inline(always)]
27 pub const fn irq0(&self) -> &Irq0 {
28 &self.irq0
29 }
30 #[doc = "0x44 - Semaphore Mailbox 0 register."]
31 #[inline(always)]
32 pub const fn mail0(&self) -> &Mail0 {
33 &self.mail0
34 }
35 #[doc = "0x48 - Semaphore IRQ1 register."]
36 #[inline(always)]
37 pub const fn irq1(&self) -> &Irq1 {
38 &self.irq1
39 }
40 #[doc = "0x4c - Semaphore Mailbox 1 register."]
41 #[inline(always)]
42 pub const fn mail1(&self) -> &Mail1 {
43 &self.mail1
44 }
45 #[doc = "0x100 - Semaphore status bits. 0 indicates the semaphore is free, 1 indicates taken."]
46 #[inline(always)]
47 pub const fn status(&self) -> &Status {
48 &self.status
49 }
50}
51#[doc = "SEMAPHORES (rw) register accessor: Read to test and set, returns prior value. Write 0 to clear semaphore.\n\nYou can [`read`](crate::Reg::read) this register and get [`semaphores::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`semaphores::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@semaphores`]
52module"]
53#[doc(alias = "SEMAPHORES")]
54pub type Semaphores = crate::Reg<semaphores::SemaphoresSpec>;
55#[doc = "Read to test and set, returns prior value. Write 0 to clear semaphore."]
56pub mod semaphores;
57#[doc = "irq0 (rw) register accessor: Semaphore IRQ0 register.\n\nYou can [`read`](crate::Reg::read) this register and get [`irq0::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`irq0::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@irq0`]
58module"]
59#[doc(alias = "irq0")]
60pub type Irq0 = crate::Reg<irq0::Irq0Spec>;
61#[doc = "Semaphore IRQ0 register."]
62pub mod irq0;
63#[doc = "mail0 (rw) register accessor: Semaphore Mailbox 0 register.\n\nYou can [`read`](crate::Reg::read) this register and get [`mail0::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`mail0::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@mail0`]
64module"]
65#[doc(alias = "mail0")]
66pub type Mail0 = crate::Reg<mail0::Mail0Spec>;
67#[doc = "Semaphore Mailbox 0 register."]
68pub mod mail0;
69#[doc = "irq1 (rw) register accessor: Semaphore IRQ1 register.\n\nYou can [`read`](crate::Reg::read) this register and get [`irq1::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`irq1::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@irq1`]
70module"]
71#[doc(alias = "irq1")]
72pub type Irq1 = crate::Reg<irq1::Irq1Spec>;
73#[doc = "Semaphore IRQ1 register."]
74pub mod irq1;
75#[doc = "mail1 (rw) register accessor: Semaphore Mailbox 1 register.\n\nYou can [`read`](crate::Reg::read) this register and get [`mail1::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`mail1::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@mail1`]
76module"]
77#[doc(alias = "mail1")]
78pub type Mail1 = crate::Reg<mail1::Mail1Spec>;
79#[doc = "Semaphore Mailbox 1 register."]
80pub mod mail1;
81#[doc = "status (rw) register accessor: Semaphore status bits. 0 indicates the semaphore is free, 1 indicates taken.\n\nYou can [`read`](crate::Reg::read) this register and get [`status::R`]. You can [`reset`](crate::Reg::reset), [`write`](crate::Reg::write), [`write_with_zero`](crate::Reg::write_with_zero) this register using [`status::W`]. You can also [`modify`](crate::Reg::modify) this register. See [API](https://docs.rs/svd2rust/#read--modify--write-api).\n\nFor information about available fields see [`mod@status`]
82module"]
83#[doc(alias = "status")]
84pub type Status = crate::Reg<status::StatusSpec>;
85#[doc = "Semaphore status bits. 0 indicates the semaphore is free, 1 indicates taken."]
86pub mod status;