From e0e201a131c1a6418edecec6768de04b52f42c29 Mon Sep 17 00:00:00 2001 From: Yu Chen Date: Sat, 31 Dec 2022 10:36:35 +0800 Subject: [PATCH] fix rust-analyzer warning --- .vscode/settings.json | 6 +++--- easy-fs-fuse/Cargo.toml | 6 +++--- user/Cargo.toml | 6 +++--- user/src/bin/stackful_coroutine.rs | 9 +++++---- 4 files changed, 14 insertions(+), 13 deletions(-) diff --git a/.vscode/settings.json b/.vscode/settings.json index bf81ab53..6a406554 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -7,7 +7,7 @@ // For Rust Analyzer plugin users: "rust-analyzer.cargo.target": "riscv64gc-unknown-none-elf", "rust-analyzer.checkOnSave.allTargets": false, - "rust-analyzer.cargo.features": [ - "board_qemu" - ] + // "rust-analyzer.cargo.features": [ + // "board_qemu" + // ] } \ No newline at end of file diff --git a/easy-fs-fuse/Cargo.toml b/easy-fs-fuse/Cargo.toml index 0527e9b8..5c5e68d5 100644 --- a/easy-fs-fuse/Cargo.toml +++ b/easy-fs-fuse/Cargo.toml @@ -11,6 +11,6 @@ clap = "2.33.3" easy-fs = { path = "../easy-fs" } rand = "0.8.0" -[features] -board_qemu = [] -board_k210 = [] \ No newline at end of file +# [features] +# board_qemu = [] +# board_k210 = [] \ No newline at end of file diff --git a/user/Cargo.toml b/user/Cargo.toml index 18634c3c..a609f4de 100644 --- a/user/Cargo.toml +++ b/user/Cargo.toml @@ -14,6 +14,6 @@ riscv = { git = "https://github.com/rcore-os/riscv", features = ["inline-asm"] } [profile.release] debug = true -[features] -board_qemu = [] -board_k210 = [] \ No newline at end of file +# [features] +# board_qemu = [] +# board_k210 = [] \ No newline at end of file diff --git a/user/src/bin/stackful_coroutine.rs b/user/src/bin/stackful_coroutine.rs index 83eceb73..d9f3b947 100644 --- a/user/src/bin/stackful_coroutine.rs +++ b/user/src/bin/stackful_coroutine.rs @@ -4,7 +4,7 @@ #![no_std] #![no_main] #![feature(naked_functions)] -#![feature(asm)] +//#![feature(asm)] extern crate alloc; #[macro_use] @@ -12,7 +12,7 @@ extern crate user_lib; use core::arch::asm; -#[macro_use] +//#[macro_use] use alloc::vec; use alloc::vec::Vec; @@ -69,7 +69,7 @@ impl Task { // we can allocate memory for it later, but it keeps complexity down and lets us focus on more interesting parts // to do it here. The important part is that once allocated it MUST NOT move in memory. Task { - id, + id:id, stack: vec![0_u8; DEFAULT_STACK_SIZE], ctx: TaskContext::default(), state: State::Available, @@ -185,6 +185,7 @@ impl Runtime { .find(|t| t.state == State::Available) .expect("no available task."); + println!("RUNTIME: spawning task {}\n", available.id); let size = available.stack.len(); unsafe { let s_ptr = available.stack.as_mut_ptr().offset(size as isize); @@ -259,7 +260,7 @@ pub fn yield_task() { /// see: https://doc.rust-lang.org/nightly/rust-by-example/unsafe/asm.html #[naked] #[no_mangle] -unsafe fn switch(old: *mut TaskContext, new: *const TaskContext) { +unsafe extern "C" fn switch(old: *mut TaskContext, new: *const TaskContext) { // a0: _old, a1: _new asm!( "