From f5db0e06f4c940c8c1e3dba7e6796937ad8ed492 Mon Sep 17 00:00:00 2001 From: Sebastien Bourdeauducq Date: Sun, 19 Jul 2020 16:16:39 +0800 Subject: [PATCH] update dependencies, use new libasync smoltcp recv API --- src/Cargo.lock | 43 ++++++++++++++++++++-------------- src/runtime/src/proto_async.rs | 21 ++++++++--------- 2 files changed, 36 insertions(+), 28 deletions(-) diff --git a/src/Cargo.lock b/src/Cargo.lock index cf18eb51..bd5c453e 100644 --- a/src/Cargo.lock +++ b/src/Cargo.lock @@ -37,9 +37,9 @@ checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de" [[package]] name = "cc" -version = "1.0.57" +version = "1.0.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fde55d2a2bfaa4c9668bbc63f531fbdeee3ffe188f4662511ce2c22b3eedebe" +checksum = "f9a06fb2e53271d7c279ec1efea6ab691c35a2ae67ec0d91d7acec0caf13b518" [[package]] name = "cfg-if" @@ -105,7 +105,7 @@ version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fa998ce59ec9765d15216393af37a58961ddcefb14c753b4816ba2191d865fcb" dependencies = [ - "nb", + "nb 0.1.3", "void", ] @@ -200,11 +200,11 @@ dependencies = [ [[package]] name = "libasync" version = "0.0.0" -source = "git+https://git.m-labs.hk/M-Labs/zc706.git#074438c3c7becd30a08a59490754f3120a0650f0" +source = "git+https://git.m-labs.hk/M-Labs/zc706.git#84f1380f4830055bfe69ca14b5ade527a5edef6b" dependencies = [ "embedded-hal", "libcortex_a9", - "nb", + "nb 0.1.3", "pin-utils", "smoltcp", ] @@ -212,14 +212,14 @@ dependencies = [ [[package]] name = "libboard_zynq" version = "0.0.0" -source = "git+https://git.m-labs.hk/M-Labs/zc706.git#074438c3c7becd30a08a59490754f3120a0650f0" +source = "git+https://git.m-labs.hk/M-Labs/zc706.git#84f1380f4830055bfe69ca14b5ade527a5edef6b" dependencies = [ "bit_field", "embedded-hal", "libcortex_a9", "libregister", "log", - "nb", + "nb 0.1.3", "smoltcp", "void", "volatile-register", @@ -236,7 +236,7 @@ dependencies = [ [[package]] name = "libcortex_a9" version = "0.0.0" -source = "git+https://git.m-labs.hk/M-Labs/zc706.git#074438c3c7becd30a08a59490754f3120a0650f0" +source = "git+https://git.m-labs.hk/M-Labs/zc706.git#84f1380f4830055bfe69ca14b5ade527a5edef6b" dependencies = [ "bit_field", "libregister", @@ -245,7 +245,7 @@ dependencies = [ [[package]] name = "libregister" version = "0.0.0" -source = "git+https://git.m-labs.hk/M-Labs/zc706.git#074438c3c7becd30a08a59490754f3120a0650f0" +source = "git+https://git.m-labs.hk/M-Labs/zc706.git#84f1380f4830055bfe69ca14b5ade527a5edef6b" dependencies = [ "bit_field", "vcell", @@ -255,7 +255,7 @@ dependencies = [ [[package]] name = "libsupport_zynq" version = "0.0.0" -source = "git+https://git.m-labs.hk/M-Labs/zc706.git#074438c3c7becd30a08a59490754f3120a0650f0" +source = "git+https://git.m-labs.hk/M-Labs/zc706.git#84f1380f4830055bfe69ca14b5ade527a5edef6b" dependencies = [ "compiler_builtins", "libboard_zynq", @@ -273,9 +273,9 @@ checksum = "e70e46c13c0e8374c26cec5752e3347ca1087d9711de8f45aa513a7700efd73d" [[package]] name = "log" -version = "0.4.8" +version = "0.4.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14b6052be84e6b71ab17edffc2eeabf5c2c3ae1fdb464aae35ac50c67a44e1f7" +checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b" dependencies = [ "cfg-if", ] @@ -300,9 +300,18 @@ checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400" [[package]] name = "nb" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1411551beb3c11dedfb0a90a0fa256b47d28b9ec2cdff34c25a2fa59e45dbdc" +checksum = "801d31da0513b6ec5214e9bf433a77966320625a37860f910be265be6e18d06f" +dependencies = [ + "nb 1.0.0", +] + +[[package]] +name = "nb" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "546c37ac5d9e56f55e73b677106873d9d9f5190605e41a856503623648488cae" [[package]] name = "num-derive" @@ -407,7 +416,7 @@ dependencies = [ "libsupport_zynq", "log", "log_buffer", - "nb", + "nb 0.1.3", "num-derive", "num-traits", "unwind", @@ -427,9 +436,9 @@ dependencies = [ [[package]] name = "syn" -version = "1.0.33" +version = "1.0.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8d5d96e8cbb005d6959f119f773bfaebb5684296108fb32600c00cde305b2cd" +checksum = "936cae2873c940d92e697597c5eee105fb570cd5689c695806f672883653349b" dependencies = [ "proc-macro2", "quote", diff --git a/src/runtime/src/proto_async.rs b/src/runtime/src/proto_async.rs index f02e8c1c..16d2ada8 100644 --- a/src/runtime/src/proto_async.rs +++ b/src/runtime/src/proto_async.rs @@ -1,4 +1,3 @@ -use core::task::Poll; use core::cmp::min; use core::cell::RefCell; @@ -22,14 +21,14 @@ pub async fn expect(stream: &TcpStream, pattern: &[u8]) -> Result { consumed += 1; if *b == pattern[cur_index] { if cur_index + 1 == pattern.len() { - return Poll::Ready((consumed, RecvState::Completed(true))); + return (consumed, RecvState::Completed(true)); } } else { - return Poll::Ready((consumed, RecvState::Completed(false))); + return (consumed, RecvState::Completed(false)); } cur_index += 1; } - Poll::Ready((consumed, RecvState::NeedsMore(cur_index, true))) + (consumed, RecvState::NeedsMore(cur_index, true)) } else { unreachable!(); } @@ -42,13 +41,13 @@ pub async fn expect(stream: &TcpStream, pattern: &[u8]) -> Result { pub async fn read_bool(stream: &TcpStream) -> Result { Ok(stream.recv(|buf| { - Poll::Ready((1, buf[0] != 0)) + (1, buf[0] != 0) }).await?) } pub async fn read_i8(stream: &TcpStream) -> Result { Ok(stream.recv(|buf| { - Poll::Ready((1, buf[0] as i8)) + (1, buf[0] as i8) }).await?) } @@ -64,10 +63,10 @@ pub async fn read_i32(stream: &TcpStream) -> Result { cur_value <<= 8; cur_value |= *b as i32; if cur_index == 4 { - return Poll::Ready((consumed, RecvState::Completed(cur_value))); + return (consumed, RecvState::Completed(cur_value)); } } - Poll::Ready((consumed, RecvState::NeedsMore(cur_index, cur_value))) + (consumed, RecvState::NeedsMore(cur_index, cur_value)) } else { unreachable!(); } @@ -90,10 +89,10 @@ pub async fn read_i64(stream: &TcpStream) -> Result { cur_value <<= 8; cur_value |= *b as i64; if cur_index == 8 { - return Poll::Ready((consumed, RecvState::Completed(cur_value))); + return (consumed, RecvState::Completed(cur_value)); } } - Poll::Ready((consumed, RecvState::NeedsMore(cur_index, cur_value))) + (consumed, RecvState::NeedsMore(cur_index, cur_value)) } else { unreachable!(); } @@ -113,7 +112,7 @@ pub async fn read_chunk(stream: &TcpStream, destination: &mut [u8]) -> Result<() let mut destination = destination.borrow_mut(); let count = min(total - done, buf.len()); destination[done..done + count].copy_from_slice(&buf[..count]); - Poll::Ready((count, count)) + (count, count) }).await?; done += count; }