12
									
								
								Cargo.toml
									
									
									
									
									
								
							
							
						
						
									
										12
									
								
								Cargo.toml
									
									
									
									
									
								
							@@ -20,7 +20,7 @@ atomic-polyfill = "0.1.5"
 | 
			
		||||
defmt = { version = "0.3", optional = true }
 | 
			
		||||
log = { version = "0.4.17", optional = true }
 | 
			
		||||
 | 
			
		||||
cortex-m = "0.7.3"
 | 
			
		||||
cortex-m = "0.7.6"
 | 
			
		||||
cortex-m-rt = "0.7.0"
 | 
			
		||||
futures = { version = "0.3.17", default-features = false, features = ["async-await", "cfg-target-has-atomic", "unstable"] }
 | 
			
		||||
 | 
			
		||||
@@ -28,11 +28,11 @@ embedded-hal-1 = { package = "embedded-hal", version = "1.0.0-alpha.10" }
 | 
			
		||||
num_enum = { version = "0.5.7", default-features = false }
 | 
			
		||||
 | 
			
		||||
[patch.crates-io]
 | 
			
		||||
embassy-time = { git = "https://github.com/embassy-rs/embassy", rev = "047ea9066f0d946fd4d706577b21df38fd3b1647" }
 | 
			
		||||
embassy-futures = { git = "https://github.com/embassy-rs/embassy", rev = "047ea9066f0d946fd4d706577b21df38fd3b1647" }
 | 
			
		||||
embassy-sync = { git = "https://github.com/embassy-rs/embassy", rev = "047ea9066f0d946fd4d706577b21df38fd3b1647" }
 | 
			
		||||
embassy-net-driver-channel = { git = "https://github.com/embassy-rs/embassy", rev = "047ea9066f0d946fd4d706577b21df38fd3b1647" }
 | 
			
		||||
embassy-rp = { git = "https://github.com/embassy-rs/embassy", rev = "047ea9066f0d946fd4d706577b21df38fd3b1647" }
 | 
			
		||||
embassy-time = { git = "https://github.com/embassy-rs/embassy", rev = "03d6363d5af5dcaf21b52734994a466ca593d2b6" }
 | 
			
		||||
embassy-futures = { git = "https://github.com/embassy-rs/embassy", rev = "03d6363d5af5dcaf21b52734994a466ca593d2b6" }
 | 
			
		||||
embassy-sync = { git = "https://github.com/embassy-rs/embassy", rev = "03d6363d5af5dcaf21b52734994a466ca593d2b6" }
 | 
			
		||||
embassy-net-driver-channel = { git = "https://github.com/embassy-rs/embassy", rev = "03d6363d5af5dcaf21b52734994a466ca593d2b6" }
 | 
			
		||||
embassy-rp = { git = "https://github.com/embassy-rs/embassy", rev = "03d6363d5af5dcaf21b52734994a466ca593d2b6" }
 | 
			
		||||
 | 
			
		||||
[workspace]
 | 
			
		||||
members = ["cyw43-pio"]
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,7 @@ edition = "2021"
 | 
			
		||||
 | 
			
		||||
[dependencies]
 | 
			
		||||
cyw43 = { path = "../" }
 | 
			
		||||
embassy-rp = { version = "0.1.0",  features = ["defmt", "unstable-traits", "nightly", "unstable-pac", "time-driver", "pio"] }
 | 
			
		||||
embassy-rp = { version = "0.1.0",  features = ["defmt", "unstable-traits", "nightly", "unstable-pac", "time-driver"] }
 | 
			
		||||
pio-proc = "0.2"
 | 
			
		||||
pio = "0.2.1"
 | 
			
		||||
defmt = "0.3"
 | 
			
		||||
@@ -9,7 +9,7 @@ cyw43 = { path = "../../", features = ["defmt", "firmware-logs"] }
 | 
			
		||||
cyw43-pio = { path = "../../cyw43-pio" }
 | 
			
		||||
embassy-executor = { version = "0.1.0",  features = ["defmt", "integrated-timers", "executor-thread", "arch-cortex-m"] }
 | 
			
		||||
embassy-time = { version = "0.1.0",  features = ["defmt", "defmt-timestamp-uptime"] }
 | 
			
		||||
embassy-rp = { version = "0.1.0",  features = ["defmt", "unstable-traits", "nightly", "unstable-pac", "time-driver", "pio"] }
 | 
			
		||||
embassy-rp = { version = "0.1.0",  features = ["defmt", "unstable-traits", "nightly", "unstable-pac", "time-driver"] }
 | 
			
		||||
embassy-net = { version = "0.1.0", features = ["defmt", "tcp", "dhcpv4", "medium-ethernet", "unstable-traits", "nightly"] }
 | 
			
		||||
atomic-polyfill = "0.1.5"
 | 
			
		||||
static_cell = "1.0"
 | 
			
		||||
@@ -27,14 +27,14 @@ heapless = "0.7.15"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
[patch.crates-io]
 | 
			
		||||
embassy-executor = { git = "https://github.com/embassy-rs/embassy", rev = "047ea9066f0d946fd4d706577b21df38fd3b1647" }
 | 
			
		||||
embassy-time = { git = "https://github.com/embassy-rs/embassy", rev = "047ea9066f0d946fd4d706577b21df38fd3b1647" }
 | 
			
		||||
embassy-futures = { git = "https://github.com/embassy-rs/embassy", rev = "047ea9066f0d946fd4d706577b21df38fd3b1647" }
 | 
			
		||||
embassy-sync = { git = "https://github.com/embassy-rs/embassy", rev = "047ea9066f0d946fd4d706577b21df38fd3b1647" }
 | 
			
		||||
embassy-rp = { git = "https://github.com/embassy-rs/embassy", rev = "047ea9066f0d946fd4d706577b21df38fd3b1647" }
 | 
			
		||||
embassy-net = { git = "https://github.com/embassy-rs/embassy", rev = "047ea9066f0d946fd4d706577b21df38fd3b1647" }
 | 
			
		||||
embassy-net-driver = { git = "https://github.com/embassy-rs/embassy", rev = "047ea9066f0d946fd4d706577b21df38fd3b1647" }
 | 
			
		||||
embassy-net-driver-channel = { git = "https://github.com/embassy-rs/embassy", rev = "047ea9066f0d946fd4d706577b21df38fd3b1647" }
 | 
			
		||||
embassy-executor = { git = "https://github.com/embassy-rs/embassy", rev = "03d6363d5af5dcaf21b52734994a466ca593d2b6" }
 | 
			
		||||
embassy-time = { git = "https://github.com/embassy-rs/embassy", rev = "03d6363d5af5dcaf21b52734994a466ca593d2b6" }
 | 
			
		||||
embassy-futures = { git = "https://github.com/embassy-rs/embassy", rev = "03d6363d5af5dcaf21b52734994a466ca593d2b6" }
 | 
			
		||||
embassy-sync = { git = "https://github.com/embassy-rs/embassy", rev = "03d6363d5af5dcaf21b52734994a466ca593d2b6" }
 | 
			
		||||
embassy-rp = { git = "https://github.com/embassy-rs/embassy", rev = "03d6363d5af5dcaf21b52734994a466ca593d2b6" }
 | 
			
		||||
embassy-net = { git = "https://github.com/embassy-rs/embassy", rev = "03d6363d5af5dcaf21b52734994a466ca593d2b6" }
 | 
			
		||||
embassy-net-driver = { git = "https://github.com/embassy-rs/embassy", rev = "03d6363d5af5dcaf21b52734994a466ca593d2b6" }
 | 
			
		||||
embassy-net-driver-channel = { git = "https://github.com/embassy-rs/embassy", rev = "03d6363d5af5dcaf21b52734994a466ca593d2b6" }
 | 
			
		||||
 | 
			
		||||
[profile.dev]
 | 
			
		||||
debug = 2
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
# Before upgrading check that everything is available on all tier1 targets here:
 | 
			
		||||
# https://rust-lang.github.io/rustup-components-history
 | 
			
		||||
[toolchain]
 | 
			
		||||
channel = "nightly-2023-04-02"
 | 
			
		||||
channel = "nightly-2023-04-18"
 | 
			
		||||
components = [ "rust-src", "rustfmt" ]
 | 
			
		||||
targets = [
 | 
			
		||||
    "thumbv6m-none-eabi",
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										10
									
								
								src/ioctl.rs
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								src/ioctl.rs
									
									
									
									
									
								
							@@ -25,12 +25,20 @@ enum IoctlStateInner {
 | 
			
		||||
    Done { resp_len: usize },
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#[derive(Default)]
 | 
			
		||||
struct Wakers {
 | 
			
		||||
    control: WakerRegistration,
 | 
			
		||||
    runner: WakerRegistration,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
impl Default for Wakers {
 | 
			
		||||
    fn default() -> Self {
 | 
			
		||||
        Self {
 | 
			
		||||
            control: WakerRegistration::new(),
 | 
			
		||||
            runner: WakerRegistration::new(),
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
pub struct IoctlState {
 | 
			
		||||
    state: Cell<IoctlStateInner>,
 | 
			
		||||
    wakers: RefCell<Wakers>,
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user