aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBob McWhirter <[email protected]>2021-07-12 14:53:19 -0400
committerBob McWhirter <[email protected]>2021-07-13 10:09:35 -0400
commit6534b63e01b1f7d16f62743f007a2e9c43f9ec56 (patch)
treebeef5e16abff42d74424e2a444c6bf4931290965
parent0befa103676693ebbb52a5d38a0b3bb5e4d42f71 (diff)
Simplify some macros around dmamux peripheral channels.
-rw-r--r--embassy-stm32/src/dmamux/mod.rs51
1 files changed, 19 insertions, 32 deletions
diff --git a/embassy-stm32/src/dmamux/mod.rs b/embassy-stm32/src/dmamux/mod.rs
index 0f3fb9a8f..f6625146e 100644
--- a/embassy-stm32/src/dmamux/mod.rs
+++ b/embassy-stm32/src/dmamux/mod.rs
@@ -101,53 +101,40 @@ peripherals! {
101} 101}
102 102
103#[allow(unused)] 103#[allow(unused)]
104macro_rules! impl_peripheral_channel {
105 ($channel_peri:ident, $direction:ident, $peri:ident, $request:expr) => {
106 impl sealed::PeripheralChannel<peripherals::$peri, $direction>
107 for peripherals::$channel_peri
108 {
109 fn request(&self) -> u8 {
110 $request
111 }
112 }
113
114 impl PeripheralChannel<peripherals::$peri, $direction> for peripherals::$channel_peri {}
115 };
116}
117
118#[allow(unused)]
104macro_rules! impl_usart_dma_requests { 119macro_rules! impl_usart_dma_requests {
105 ($channel_peri:ident, $dma_peri:ident, $channel_num:expr) => { 120 ($channel_peri:ident, $dma_peri:ident, $channel_num:expr) => {
106 dma_requests! { 121 dma_requests! {
107 // TODO: DRY this up.
108 (usart, $peri:ident, RX, $request:expr) => { 122 (usart, $peri:ident, RX, $request:expr) => {
109 impl sealed::PeripheralChannel<peripherals::$peri, P2M> for peripherals::$channel_peri { 123 impl_peripheral_channel($channel_peri, P2M, $peri, $request);
110 fn request(&self) -> u8 {
111 $request
112 }
113 }
114
115 impl PeripheralChannel<peripherals::$peri, P2M> for peripherals::$channel_peri { }
116
117 }; 124 };
118 125
119 (usart, $peri:ident, TX, $request:expr) => { 126 (usart, $peri:ident, TX, $request:expr) => {
120 impl sealed::PeripheralChannel<peripherals::$peri, M2P> for peripherals::$channel_peri { 127 impl_peripheral_channel($channel_peri, M2P, $peri, $request);
121 fn request(&self) -> u8 {
122 $request
123 }
124 }
125
126 impl PeripheralChannel<peripherals::$peri, M2P> for peripherals::$channel_peri { }
127
128 }; 128 };
129 129
130 (uart, $peri:ident, TX, $request:expr) => { 130 (uart, $peri:ident, TX, $request:expr) => {
131 impl sealed::PeripheralChannel<peripherals::$peri, P2M> for peripherals::$channel_peri { 131 impl_peripheral_channel($channel_peri, P2M, $peri, $request);
132 fn request(&self) -> u8 {
133 $request
134 }
135 }
136
137 impl PeripheralChannel<peripherals::$peri, P2M> for peripherals::$channel_peri { }
138 }; 132 };
139 133
140 (uart, $peri:ident, RX, $request:expr) => { 134 (uart, $peri:ident, RX, $request:expr) => {
141 impl sealed::PeripheralChannel<peripherals::$peri, M2P> for peripherals::$channel_peri { 135 impl_peripheral_channel($channel_peri, M2P, $peri, $request);
142 fn request(&self) -> u8 {
143 $request
144 }
145 }
146
147 impl PeripheralChannel<peripherals::$peri, M2P> for peripherals::$channel_peri { }
148 }; 136 };
149 } 137 }
150
151 }; 138 };
152} 139}
153 140