diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index b991d6b9..0cc90111 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -9,12 +9,7 @@ jobs: check: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: stable - components: rustfmt, clippy + - uses: actions/checkout@v4 - name: Check code format uses: actions-rs/cargo@v1 with: @@ -28,11 +23,7 @@ jobs: build: runs-on: ubuntu-latest steps: - - uses: actions/checkout@v2 - - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: stable + - uses: actions/checkout@v4 - name: Build with no features uses: actions-rs/cargo@v1 with: @@ -69,27 +60,15 @@ jobs: - x86_64 include: - example: aarch64 - toolchain: stable - target: aarch64-unknown-none packages: qemu-system-arm gcc-aarch64-linux-gnu - example: riscv - toolchain: nightly-2022-11-03 - target: riscv64imac-unknown-none-elf packages: qemu-system-misc - example: x86_64 - toolchain: nightly - target: x86_64-unknown-none packages: qemu-system-x86 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v4 - name: Install QEMU run: sudo apt update && sudo apt install ${{ matrix.packages }} && sudo chmod 666 /dev/vhost-vsock - - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: ${{ matrix.toolchain }} - target: ${{ matrix.target }} - components: llvm-tools-preview, rustfmt - name: Check code format working-directory: examples/${{ matrix.example }} run: cargo fmt --all -- --check diff --git a/examples/aarch64/rust-toolchain.toml b/examples/aarch64/rust-toolchain.toml new file mode 100644 index 00000000..b041d83b --- /dev/null +++ b/examples/aarch64/rust-toolchain.toml @@ -0,0 +1,5 @@ +[toolchain] +channel = "stable" +components = ["rustfmt", "llvm-tools"] +targets = ["aarch64-unknown-none"] +profile = "minimal" diff --git a/examples/riscv/Makefile b/examples/riscv/Makefile index debb82f5..02f23601 100644 --- a/examples/riscv/Makefile +++ b/examples/riscv/Makefile @@ -4,7 +4,7 @@ mode := release kernel := target/$(target)/$(mode)/riscv img := target/$(target)/$(mode)/img -tcp ?= off +tcp ?= on sysroot := $(shell rustc --print sysroot) objdump := $(shell find $(sysroot) -name llvm-objdump) --arch-name=$(arch) diff --git a/examples/riscv/rust-toolchain b/examples/riscv/rust-toolchain deleted file mode 100644 index 762dae8c..00000000 --- a/examples/riscv/rust-toolchain +++ /dev/null @@ -1 +0,0 @@ -nightly-2022-11-03 \ No newline at end of file diff --git a/examples/riscv/rust-toolchain.toml b/examples/riscv/rust-toolchain.toml new file mode 100644 index 00000000..b88b0979 --- /dev/null +++ b/examples/riscv/rust-toolchain.toml @@ -0,0 +1,5 @@ +[toolchain] +channel = "nightly" +components = ["rustfmt", "llvm-tools"] +targets = ["riscv64imac-unknown-none-elf"] +profile = "minimal" diff --git a/examples/riscv/src/tcp.rs b/examples/riscv/src/tcp.rs index 5f6623c3..b4fe7552 100644 --- a/examples/riscv/src/tcp.rs +++ b/examples/riscv/src/tcp.rs @@ -9,7 +9,7 @@ use smoltcp::iface::{Config, Interface, SocketSet}; use smoltcp::phy::{Device, DeviceCapabilities, Medium, RxToken, TxToken}; use smoltcp::wire::{EthernetAddress, IpAddress, IpCidr, Ipv4Address}; use smoltcp::{socket::tcp, time::Instant}; -use virtio_drivers::device::net::{NetBuffer, VirtIONet}; +use virtio_drivers::device::net::{RxBuffer, VirtIONet}; use virtio_drivers::{transport::Transport, Error}; use super::{HalImpl, NET_QUEUE_SIZE}; @@ -64,7 +64,7 @@ impl Device for DeviceWrapper { } } -struct VirtioRxToken(Rc>>, NetBuffer); +struct VirtioRxToken(Rc>>, RxBuffer); struct VirtioTxToken(Rc>>); impl RxToken for VirtioRxToken { @@ -175,6 +175,7 @@ pub fn test_echo_server(dev: DeviceImpl) { } else if socket.may_send() { info!("tcp:{} close", PORT); socket.close(); + break; } } } diff --git a/examples/x86_64/Makefile b/examples/x86_64/Makefile index bad89bae..01db00d5 100644 --- a/examples/x86_64/Makefile +++ b/examples/x86_64/Makefile @@ -4,7 +4,7 @@ mode := release kernel := target/$(target)/$(mode)/$(arch) img := target/$(target)/$(mode)/img accel ?= on -tcp ?= off +tcp ?= on sysroot := $(shell rustc --print sysroot) objdump := $(shell find $(sysroot) -name llvm-objdump) --arch-name=$(arch) diff --git a/examples/x86_64/rust-toolchain b/examples/x86_64/rust-toolchain deleted file mode 100644 index bf867e0a..00000000 --- a/examples/x86_64/rust-toolchain +++ /dev/null @@ -1 +0,0 @@ -nightly diff --git a/examples/x86_64/rust-toolchain.toml b/examples/x86_64/rust-toolchain.toml new file mode 100644 index 00000000..8389052f --- /dev/null +++ b/examples/x86_64/rust-toolchain.toml @@ -0,0 +1,5 @@ +[toolchain] +channel = "nightly" +components = ["rustfmt", "llvm-tools"] +targets = ["x86_64-unknown-none"] +profile = "minimal" diff --git a/examples/x86_64/src/tcp.rs b/examples/x86_64/src/tcp.rs index 07c2c3f6..71b4a52f 100644 --- a/examples/x86_64/src/tcp.rs +++ b/examples/x86_64/src/tcp.rs @@ -93,7 +93,7 @@ impl TxToken for VirtioTxToken { let mut tx_buf = dev.new_tx_buffer(len); let result = f(tx_buf.packet_mut()); trace!("SEND {} bytes: {:02X?}", len, tx_buf.packet()); - dev.transmit(tx_buf).unwrap(); + dev.send(tx_buf).unwrap(); result } } @@ -176,6 +176,7 @@ pub fn test_echo_server(dev: DeviceImpl) { } else if socket.may_send() { info!("tcp:{} close", PORT); socket.close(); + break; } } } diff --git a/rust-toolchain.toml b/rust-toolchain.toml new file mode 100644 index 00000000..85f36062 --- /dev/null +++ b/rust-toolchain.toml @@ -0,0 +1,4 @@ +[toolchain] +channel = "stable" +components = ["rustfmt", "clippy"] +profile = "minimal"