aboutsummaryrefslogtreecommitdiff
path: root/embassy-net-driver-channel/src/lib.rs
diff options
context:
space:
mode:
Diffstat (limited to 'embassy-net-driver-channel/src/lib.rs')
-rw-r--r--embassy-net-driver-channel/src/lib.rs20
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;
8use core::mem::MaybeUninit; 8use core::mem::MaybeUninit;
9use core::task::{Context, Poll}; 9use core::task::{Context, Poll};
10 10
11use driver::HardwareAddress;
12pub use embassy_net_driver as driver; 11pub use embassy_net_driver as driver;
13use embassy_net_driver::{Capabilities, LinkState, Medium}; 12use embassy_net_driver::{Capabilities, LinkState};
14use embassy_sync::blocking_mutex::raw::NoopRawMutex; 13use embassy_sync::blocking_mutex::raw::NoopRawMutex;
15use embassy_sync::blocking_mutex::Mutex; 14use embassy_sync::blocking_mutex::Mutex;
16use embassy_sync::waitqueue::WakerRegistration; 15use 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.