max78000_pac/
sema.rs

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;