diff options
| author | Dario Nieuwenhuis <[email protected]> | 2022-12-26 03:33:49 +0100 |
|---|---|---|
| committer | Dario Nieuwenhuis <[email protected]> | 2022-12-26 04:49:08 +0100 |
| commit | 1f033d509afb4e590a81896de66af683fda4e706 (patch) | |
| tree | 5c10000e08d00de221a770c81fb9127a35dd0343 /embassy-usb/src/class/cdc_ncm | |
| parent | 639b3f1d5b4b2897b326edc52f66f18caaa3bd3e (diff) | |
net: split driver trait to a separate crate.
Diffstat (limited to 'embassy-usb/src/class/cdc_ncm')
| -rw-r--r-- | embassy-usb/src/class/cdc_ncm/embassy_net.rs | 14 | ||||
| -rw-r--r-- | embassy-usb/src/class/cdc_ncm/mod.rs | 1 |
2 files changed, 7 insertions, 8 deletions
diff --git a/embassy-usb/src/class/cdc_ncm/embassy_net.rs b/embassy-usb/src/class/cdc_ncm/embassy_net.rs index 60bbfd8d4..093afeff9 100644 --- a/embassy-usb/src/class/cdc_ncm/embassy_net.rs +++ b/embassy-usb/src/class/cdc_ncm/embassy_net.rs | |||
| @@ -3,7 +3,7 @@ use core::mem::MaybeUninit; | |||
| 3 | use core::task::Context; | 3 | use core::task::Context; |
| 4 | 4 | ||
| 5 | use embassy_futures::select::{select, Either}; | 5 | use embassy_futures::select::{select, Either}; |
| 6 | use embassy_net::device::{Device as DeviceTrait, DeviceCapabilities, LinkState, Medium}; | 6 | use embassy_net_driver::{Capabilities, LinkState, Medium}; |
| 7 | use embassy_sync::blocking_mutex::raw::NoopRawMutex; | 7 | use embassy_sync::blocking_mutex::raw::NoopRawMutex; |
| 8 | use embassy_sync::blocking_mutex::Mutex; | 8 | use embassy_sync::blocking_mutex::Mutex; |
| 9 | use embassy_sync::waitqueue::WakerRegistration; | 9 | use embassy_sync::waitqueue::WakerRegistration; |
| @@ -108,7 +108,7 @@ impl<'d, D: Driver<'d>> CdcNcmClass<'d, D> { | |||
| 108 | ) -> (Runner<'d, D, MTU>, Device<'d, MTU>) { | 108 | ) -> (Runner<'d, D, MTU>, Device<'d, MTU>) { |
| 109 | let (tx_usb, rx_usb) = self.split(); | 109 | let (tx_usb, rx_usb) = self.split(); |
| 110 | 110 | ||
| 111 | let mut caps = DeviceCapabilities::default(); | 111 | let mut caps = Capabilities::default(); |
| 112 | caps.max_transmission_unit = 1514; // 1500 IP + 14 ethernet header | 112 | caps.max_transmission_unit = 1514; // 1500 IP + 14 ethernet header |
| 113 | caps.medium = Medium::Ethernet; | 113 | caps.medium = Medium::Ethernet; |
| 114 | 114 | ||
| @@ -158,11 +158,11 @@ pub struct Device<'d, const MTU: usize> { | |||
| 158 | rx: zerocopy_channel::Receiver<'d, NoopRawMutex, PacketBuf<MTU>>, | 158 | rx: zerocopy_channel::Receiver<'d, NoopRawMutex, PacketBuf<MTU>>, |
| 159 | tx: zerocopy_channel::Sender<'d, NoopRawMutex, PacketBuf<MTU>>, | 159 | tx: zerocopy_channel::Sender<'d, NoopRawMutex, PacketBuf<MTU>>, |
| 160 | link_state: &'d Mutex<NoopRawMutex, RefCell<LinkStateState>>, | 160 | link_state: &'d Mutex<NoopRawMutex, RefCell<LinkStateState>>, |
| 161 | caps: DeviceCapabilities, | 161 | caps: Capabilities, |
| 162 | ethernet_address: [u8; 6], | 162 | ethernet_address: [u8; 6], |
| 163 | } | 163 | } |
| 164 | 164 | ||
| 165 | impl<'d, const MTU: usize> DeviceTrait for Device<'d, MTU> { | 165 | impl<'d, const MTU: usize> embassy_net_driver::Driver for Device<'d, MTU> { |
| 166 | type RxToken<'a> = RxToken<'a, MTU> where Self: 'a ; | 166 | type RxToken<'a> = RxToken<'a, MTU> where Self: 'a ; |
| 167 | type TxToken<'a> = TxToken<'a, MTU> where Self: 'a ; | 167 | type TxToken<'a> = TxToken<'a, MTU> where Self: 'a ; |
| 168 | 168 | ||
| @@ -184,7 +184,7 @@ impl<'d, const MTU: usize> DeviceTrait for Device<'d, MTU> { | |||
| 184 | } | 184 | } |
| 185 | 185 | ||
| 186 | /// Get a description of device capabilities. | 186 | /// Get a description of device capabilities. |
| 187 | fn capabilities(&self) -> DeviceCapabilities { | 187 | fn capabilities(&self) -> Capabilities { |
| 188 | self.caps.clone() | 188 | self.caps.clone() |
| 189 | } | 189 | } |
| 190 | 190 | ||
| @@ -205,7 +205,7 @@ pub struct RxToken<'a, const MTU: usize> { | |||
| 205 | rx: zerocopy_channel::Receiver<'a, NoopRawMutex, PacketBuf<MTU>>, | 205 | rx: zerocopy_channel::Receiver<'a, NoopRawMutex, PacketBuf<MTU>>, |
| 206 | } | 206 | } |
| 207 | 207 | ||
| 208 | impl<'a, const MTU: usize> embassy_net::device::RxToken for RxToken<'a, MTU> { | 208 | impl<'a, const MTU: usize> embassy_net_driver::RxToken for RxToken<'a, MTU> { |
| 209 | fn consume<R, F>(mut self, f: F) -> R | 209 | fn consume<R, F>(mut self, f: F) -> R |
| 210 | where | 210 | where |
| 211 | F: FnOnce(&mut [u8]) -> R, | 211 | F: FnOnce(&mut [u8]) -> R, |
| @@ -222,7 +222,7 @@ pub struct TxToken<'a, const MTU: usize> { | |||
| 222 | tx: zerocopy_channel::Sender<'a, NoopRawMutex, PacketBuf<MTU>>, | 222 | tx: zerocopy_channel::Sender<'a, NoopRawMutex, PacketBuf<MTU>>, |
| 223 | } | 223 | } |
| 224 | 224 | ||
| 225 | impl<'a, const MTU: usize> embassy_net::device::TxToken for TxToken<'a, MTU> { | 225 | impl<'a, const MTU: usize> embassy_net_driver::TxToken for TxToken<'a, MTU> { |
| 226 | fn consume<R, F>(mut self, len: usize, f: F) -> R | 226 | fn consume<R, F>(mut self, len: usize, f: F) -> R |
| 227 | where | 227 | where |
| 228 | F: FnOnce(&mut [u8]) -> R, | 228 | F: FnOnce(&mut [u8]) -> R, |
diff --git a/embassy-usb/src/class/cdc_ncm/mod.rs b/embassy-usb/src/class/cdc_ncm/mod.rs index 2ee47f68c..4954a65bc 100644 --- a/embassy-usb/src/class/cdc_ncm/mod.rs +++ b/embassy-usb/src/class/cdc_ncm/mod.rs | |||
| @@ -21,7 +21,6 @@ use crate::driver::{Driver, Endpoint, EndpointError, EndpointIn, EndpointOut}; | |||
| 21 | use crate::types::*; | 21 | use crate::types::*; |
| 22 | use crate::Builder; | 22 | use crate::Builder; |
| 23 | 23 | ||
| 24 | #[cfg(feature = "embassy-net")] | ||
| 25 | pub mod embassy_net; | 24 | pub mod embassy_net; |
| 26 | 25 | ||
| 27 | /// This should be used as `device_class` when building the `UsbDevice`. | 26 | /// This should be used as `device_class` when building the `UsbDevice`. |
