diff options
Diffstat (limited to 'embassy-net-driver-channel/src/lib.rs')
| -rw-r--r-- | embassy-net-driver-channel/src/lib.rs | 20 |
1 files changed, 3 insertions, 17 deletions
diff --git a/embassy-net-driver-channel/src/lib.rs b/embassy-net-driver-channel/src/lib.rs index bf7ae5217..bfb2c9c03 100644 --- a/embassy-net-driver-channel/src/lib.rs +++ b/embassy-net-driver-channel/src/lib.rs | |||
| @@ -8,9 +8,8 @@ use core::cell::RefCell; | |||
| 8 | use core::mem::MaybeUninit; | 8 | use core::mem::MaybeUninit; |
| 9 | use core::task::{Context, Poll}; | 9 | use core::task::{Context, Poll}; |
| 10 | 10 | ||
| 11 | use driver::HardwareAddress; | ||
| 12 | pub use embassy_net_driver as driver; | 11 | pub use embassy_net_driver as driver; |
| 13 | use embassy_net_driver::{Capabilities, LinkState, Medium}; | 12 | use embassy_net_driver::{Capabilities, LinkState}; |
| 14 | use embassy_sync::blocking_mutex::raw::NoopRawMutex; | 13 | use embassy_sync::blocking_mutex::raw::NoopRawMutex; |
| 15 | use embassy_sync::blocking_mutex::Mutex; | 14 | use embassy_sync::blocking_mutex::Mutex; |
| 16 | use embassy_sync::waitqueue::WakerRegistration; | 15 | use embassy_sync::waitqueue::WakerRegistration; |
| @@ -161,18 +160,10 @@ impl<'d> StateRunner<'d> { | |||
| 161 | }); | 160 | }); |
| 162 | } | 161 | } |
| 163 | 162 | ||
| 164 | pub fn set_ethernet_address(&self, address: [u8; 6]) { | 163 | pub fn set_hardware_address(&self, address: driver::HardwareAddress) { |
| 165 | self.shared.lock(|s| { | 164 | self.shared.lock(|s| { |
| 166 | let s = &mut *s.borrow_mut(); | 165 | let s = &mut *s.borrow_mut(); |
| 167 | s.hardware_address = driver::HardwareAddress::Ethernet(address); | 166 | s.hardware_address = address; |
| 168 | s.waker.wake(); | ||
| 169 | }); | ||
| 170 | } | ||
| 171 | |||
| 172 | pub fn set_ieee802154_address(&self, address: [u8; 8]) { | ||
| 173 | self.shared.lock(|s| { | ||
| 174 | let s = &mut *s.borrow_mut(); | ||
| 175 | s.hardware_address = driver::HardwareAddress::Ieee802154(address); | ||
| 176 | s.waker.wake(); | 167 | s.waker.wake(); |
| 177 | }); | 168 | }); |
| 178 | } | 169 | } |
| @@ -232,11 +223,6 @@ pub fn new<'d, const MTU: usize, const N_RX: usize, const N_TX: usize>( | |||
| 232 | ) -> (Runner<'d, MTU>, Device<'d, MTU>) { | 223 | ) -> (Runner<'d, MTU>, Device<'d, MTU>) { |
| 233 | let mut caps = Capabilities::default(); | 224 | let mut caps = Capabilities::default(); |
| 234 | caps.max_transmission_unit = MTU; | 225 | caps.max_transmission_unit = MTU; |
| 235 | caps.medium = match &hardware_address { | ||
| 236 | HardwareAddress::Ethernet(_) => Medium::Ethernet, | ||
| 237 | HardwareAddress::Ieee802154(_) => Medium::Ieee802154, | ||
| 238 | HardwareAddress::Ip => Medium::Ip, | ||
| 239 | }; | ||
| 240 | 226 | ||
| 241 | // safety: this is a self-referential struct, however: | 227 | // safety: this is a self-referential struct, however: |
| 242 | // - it can't move while the `'d` borrow is active. | 228 | // - it can't move while the `'d` borrow is active. |
