From 974c5a887a9ba0d1dd15b371956ee04ac0925b45 Mon Sep 17 00:00:00 2001 From: DeathWish5 Date: Thu, 24 Mar 2022 17:50:34 +0800 Subject: [PATCH] delete unused comments/output --- Cargo.toml | 8 +------- Makefile | 2 +- drivers/src/builder/devicetree.rs | 2 +- drivers/src/input/mouse.rs | 1 - drivers/src/net/loopback.rs | 6 ++++-- kernel-hal/Cargo.toml | 11 +++++------ kernel-hal/src/bare/arch/riscv/drivers.rs | 4 ++-- kernel-hal/src/bare/arch/riscv/interrupt.rs | 1 - kernel-hal/src/bare/arch/x86_64/interrupt.rs | 6 +++++- kernel-hal/src/bare/arch/x86_64/timer.rs | 2 -- kernel-hal/src/bare/arch/x86_64/trap.rs | 5 ++++- kernel-hal/src/bare/net.rs | 4 ++-- kernel-hal/src/bare/timer.rs | 2 +- linux-syscall/src/lib.rs | 1 - linux-syscall/src/syscall.h.in | 2 ++ linux-syscall/src/time.rs | 6 ++++-- loader/Cargo.toml | 3 +-- zCore/Cargo.toml | 3 +-- zCore/Makefile | 12 +++++++++--- zCore/src/logging.rs | 6 ++---- zCore/src/main.rs | 2 -- zCore/src/utils.rs | 3 +-- zircon-object/src/dev/interrupt/event_interrupt.rs | 2 +- zircon-object/src/ipc/socket.rs | 2 +- zircon-object/src/object/mod.rs | 2 +- zircon-object/src/task/job.rs | 2 +- zircon-object/src/vm/stream.rs | 10 +++++----- zircon-object/src/vm/vmo/mod.rs | 2 +- zircon-object/src/vm/vmo/physical.rs | 4 ++-- zircon-syscall/src/channel.rs | 2 +- 30 files changed, 59 insertions(+), 59 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 702b9c51..67d1b207 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -16,10 +16,4 @@ exclude = [ ] [profile.release] -lto = true - -[patch.'https://github.com/DeathWish5/kernel-sync'] -lock = { path = "../../ASYNC/kernel-sync" } - -# [patch.'https://github.com/rcore-os/executor'] -# executor = { path = "../../ASYNC/PreemptiveScheduler" } \ No newline at end of file +lto = true \ No newline at end of file diff --git a/Makefile b/Makefile index 89ac850e..a47365da 100644 --- a/Makefile +++ b/Makefile @@ -4,7 +4,7 @@ ROOTFS_URL := http://dl-cdn.alpinelinux.org/alpine/v3.12/releases/x86_64/$(ROOTF RISCV64_ROOTFS_TAR := prebuild.tar.xz RISCV64_ROOTFS_URL := https://github.com/rcore-os/libc-test-prebuilt/releases/download/0.1/$(RISCV64_ROOTFS_TAR) -ARCH ?= riscv64 +ARCH ?= x86_64 rcore_fs_fuse_revision := 7f5eeac OUT_IMG := zCore/$(ARCH).img TMP_ROOTFS := /tmp/rootfs diff --git a/drivers/src/builder/devicetree.rs b/drivers/src/builder/devicetree.rs index c2ad917d..3b51a2ef 100644 --- a/drivers/src/builder/devicetree.rs +++ b/drivers/src/builder/devicetree.rs @@ -89,7 +89,7 @@ impl DevicetreeDriverBuilder { match comp { #[cfg(feature = "virtio")] c if c.contains("virtio,mmio") => self.parse_virtio(node, props), - // c if c.contains("allwinner,sunxi-gmac") => self.parse_ethernet(node, comp, props), + c if c.contains("allwinner,sunxi-gmac") => self.parse_ethernet(node, comp, props), c if c.contains("ns16550a") => self.parse_uart(node, comp, props), c if c.contains("allwinner,sun20i-uart") => self.parse_uart(node, comp, props), _ => Err(DeviceError::NotSupported), diff --git a/drivers/src/input/mouse.rs b/drivers/src/input/mouse.rs index 63db0831..18919b1c 100644 --- a/drivers/src/input/mouse.rs +++ b/drivers/src/input/mouse.rs @@ -1,6 +1,5 @@ use alloc::{boxed::Box, sync::Arc}; -// use spin::Mutex; use lock::mutex::Mutex; use crate::prelude::{CapabilityType, InputEvent, InputEventType}; diff --git a/drivers/src/net/loopback.rs b/drivers/src/net/loopback.rs index 644f53f3..ab083530 100644 --- a/drivers/src/net/loopback.rs +++ b/drivers/src/net/loopback.rs @@ -5,8 +5,10 @@ use crate::net::get_sockets; use alloc::sync::Arc; use alloc::string::String; -// use spin::Mutex; -use lock::mutex::Mutex; +use spin::Mutex; + +// TODO: fix this, should use no-irq lock, but can't pass build of libos +// use lock::mutex::Mutex; use crate::scheme::{NetScheme, Scheme}; use crate::{DeviceError, DeviceResult}; diff --git a/kernel-hal/Cargo.toml b/kernel-hal/Cargo.toml index 0c4c1ab6..dc2c7e14 100644 --- a/kernel-hal/Cargo.toml +++ b/kernel-hal/Cargo.toml @@ -19,7 +19,7 @@ spin = "0.9" lock = { git = "https://github.com/DeathWish5/kernel-sync" } cfg-if = "1.0" bitflags = "1.3" -trapframe = "0.9" +trapframe = "0.9.0" git-version = "0.3" numeric-enum-macro = "0.2" lazy_static = { version = "1.4", features = ["spin_no_std"] } @@ -36,21 +36,20 @@ bitmap-allocator = { git = "https://github.com/rcore-os/bitmap-allocator", rev = # Bare-metal mode [target.'cfg(target_os = "none")'.dependencies] -executor = { path = "../../../ASYNC/PreemptiveScheduler" } -# executor = { git = "https://github.com/rcore-os/executor.git", rev = "85b9335" } +executor = { git = "https://github.com/DeathWish5/PreemptiveScheduler" } naive-timer = "0.2.0" # All mode on x86_64 [target.'cfg(target_arch = "x86_64")'.dependencies] -x86 = "0.46" +x86 = "0.47" x86_64 = "0.14" # Bare-metal mode on x86_64 [target.'cfg(all(target_os = "none", target_arch = "x86_64"))'.dependencies] uefi = "0.11" raw-cpuid = "9.0" -x86-smpboot = { git = "https://github.com/rcore-os/x86-smpboot", rev = "1069df3" } +x86-smpboot = { git = "https://github.com/rcore-os/x86-smpboot", rev = "43ffedf" } # Bare-metal mode on riscv64 [target.'cfg(all(target_os = "none", target_arch = "riscv64"))'.dependencies] -riscv = { git = "https://github.com/rust-embedded/riscv", rev = "cd31989", features = ["inline-asm"] } +riscv = { git = "https://github.com/rust-embedded/riscv", rev = "cd31989ba1", features = ["inline-asm"] } \ No newline at end of file diff --git a/kernel-hal/src/bare/arch/riscv/drivers.rs b/kernel-hal/src/bare/arch/riscv/drivers.rs index 5195bb4b..1be9cc7a 100644 --- a/kernel-hal/src/bare/arch/riscv/drivers.rs +++ b/kernel-hal/src/bare/arch/riscv/drivers.rs @@ -91,6 +91,6 @@ pub(super) fn intc_init() -> DeviceResult { Box::new(super::trap::super_timer), )?; irq.unmask(ScauseIntCode::SupervisorSoft as _)?; - irq.unmask(ScauseIntCode::SupervisorTimer as _)?; + irq.unmask(ScauseIntCode::SupervisorTimer as _)?; Ok(()) -} \ No newline at end of file +} diff --git a/kernel-hal/src/bare/arch/riscv/interrupt.rs b/kernel-hal/src/bare/arch/riscv/interrupt.rs index 4cf0a37a..93426b05 100644 --- a/kernel-hal/src/bare/arch/riscv/interrupt.rs +++ b/kernel-hal/src/bare/arch/riscv/interrupt.rs @@ -17,7 +17,6 @@ hal_fn_impl! { fn handle_irq(cause: usize) { trace!("Handle irq cause: {}", cause); - warn!("Handle irq cause: {}", cause); crate::drivers::all_irq().first_unwrap().handle_irq(cause) } diff --git a/kernel-hal/src/bare/arch/x86_64/interrupt.rs b/kernel-hal/src/bare/arch/x86_64/interrupt.rs index 256d7f65..126433b7 100644 --- a/kernel-hal/src/bare/arch/x86_64/interrupt.rs +++ b/kernel-hal/src/bare/arch/x86_64/interrupt.rs @@ -10,7 +10,11 @@ use x86_64::instructions::interrupts; hal_fn_impl! { impl mod crate::hal_fn::interrupt { fn wait_for_interrupt() { - interrupts::hlt(); + let enable = interrupts::are_enabled(); + interrupts::enable_and_hlt(); + if !enable { + interrupts::disable(); + } } fn is_valid_irq(gsi: usize) -> bool { diff --git a/kernel-hal/src/bare/arch/x86_64/timer.rs b/kernel-hal/src/bare/arch/x86_64/timer.rs index 7d464ba1..08e2e631 100644 --- a/kernel-hal/src/bare/arch/x86_64/timer.rs +++ b/kernel-hal/src/bare/arch/x86_64/timer.rs @@ -4,5 +4,3 @@ pub fn timer_now() -> Duration { let cycle = unsafe { core::arch::x86_64::_rdtsc() }; Duration::from_nanos(cycle * 1000 / super::cpu::cpu_frequency() as u64) } - -pub fn timer_init \ No newline at end of file diff --git a/kernel-hal/src/bare/arch/x86_64/trap.rs b/kernel-hal/src/bare/arch/x86_64/trap.rs index 08e1a446..bfbd5ebc 100644 --- a/kernel-hal/src/bare/arch/x86_64/trap.rs +++ b/kernel-hal/src/bare/arch/x86_64/trap.rs @@ -32,7 +32,10 @@ pub extern "C" fn trap_handler(tf: &mut TrapFrame) { super::cpu::cpu_id() ); - trace!("trap happened: {:?}", TrapReason::from(tf.trap_num, tf.error_code)); + trace!( + "trap happened: {:?}", + TrapReason::from(tf.trap_num, tf.error_code) + ); match TrapReason::from(tf.trap_num, tf.error_code) { TrapReason::HardwareBreakpoint | TrapReason::SoftwareBreakpoint => breakpoint(), diff --git a/kernel-hal/src/bare/net.rs b/kernel-hal/src/bare/net.rs index 7d105666..6165f546 100644 --- a/kernel-hal/src/bare/net.rs +++ b/kernel-hal/src/bare/net.rs @@ -11,8 +11,8 @@ use alloc::vec::Vec; use alloc::sync::Arc; use alloc::string::String; -// use spin::Mutex; -use lock::mutex::Mutex; +use spin::Mutex; +// use lock::mutex::Mutex; use crate::drivers::add_device; use crate::drivers::all_net; diff --git a/kernel-hal/src/bare/timer.rs b/kernel-hal/src/bare/timer.rs index 4890ad73..5207d19e 100644 --- a/kernel-hal/src/bare/timer.rs +++ b/kernel-hal/src/bare/timer.rs @@ -5,8 +5,8 @@ use core::time::Duration; use naive_timer::Timer; // use spin::Mutex; -use lock::mutex::Mutex; use core::sync::atomic::{AtomicBool, Ordering}; +use lock::mutex::Mutex; #[allow(dead_code)] pub(super) const TICKS_PER_SEC: u64 = 100; diff --git a/linux-syscall/src/lib.rs b/linux-syscall/src/lib.rs index 50cdad34..d4777c8f 100644 --- a/linux-syscall/src/lib.rs +++ b/linux-syscall/src/lib.rs @@ -463,7 +463,6 @@ impl Syscall<'_> { // Sys::INIT_MODULE => self.sys_init_module(a0.into(), a1 as usize, a2.into()), Sys::FINIT_MODULE => self.unimplemented("finit_module", Err(LxError::ENOSYS)), // Sys::DELETE_MODULE => self.sys_delete_module(a0.into(), a1 as u32), - Sys::BLOCK_IN_KERNEL => self.sys_block_in_kernel(), #[cfg(target_arch = "x86_64")] diff --git a/linux-syscall/src/syscall.h.in b/linux-syscall/src/syscall.h.in index 6a646ad3..600d7b9a 100644 --- a/linux-syscall/src/syscall.h.in +++ b/linux-syscall/src/syscall.h.in @@ -346,3 +346,5 @@ #define __NR_pidfd_open 434 #define __NR_clone3 435 +// JUST FOR TEST +#define __NR_block_in_kernel 600 \ No newline at end of file diff --git a/linux-syscall/src/time.rs b/linux-syscall/src/time.rs index 23af3799..de56872d 100644 --- a/linux-syscall/src/time.rs +++ b/linux-syscall/src/time.rs @@ -64,7 +64,10 @@ impl Syscall<'_> { continue; } old = sec; - warn!("1 seconds past intr = {}", kernel_hal::interrupt::intr_get()); + warn!( + "1 seconds past intr = {}", + kernel_hal::interrupt::intr_get() + ); } } @@ -104,4 +107,3 @@ impl Syscall<'_> { Ok(tick as usize) } } - diff --git a/loader/Cargo.toml b/loader/Cargo.toml index 3cf64b6a..2df23729 100644 --- a/loader/Cargo.toml +++ b/loader/Cargo.toml @@ -16,8 +16,7 @@ zircon-object = { path = "../zircon-object", features = ["elf"] } linux-object = { path = "../linux-object", optional = true } zircon-syscall = { path = "../zircon-syscall", optional = true } linux-syscall = { path = "../linux-syscall", optional = true } -# executor = { git = "https://github.com/rcore-os/executor.git", rev = "04b6b7b" } -executor = { path = "../../../ASYNC/PreemptiveScheduler" } +executor = { git = "https://github.com/DeathWish5/PreemptiveScheduler" } [features] default = ["libos", "linux", "zircon"] diff --git a/zCore/Cargo.toml b/zCore/Cargo.toml index 25be4c6c..81650972 100644 --- a/zCore/Cargo.toml +++ b/zCore/Cargo.toml @@ -65,8 +65,7 @@ rcore-fs-hostfs = { git = "https://github.com/rcore-os/rcore-fs", rev = "7c232ec # Bare-metal mode [target.'cfg(target_os = "none")'.dependencies] buddy_system_allocator = "0.7" -# executor = { git = "https://github.com/rcore-os/executor.git", rev = "85b9335" } -executor = { path = "../../../ASYNC/PreemptiveScheduler" } +executor = { git = "https://github.com/DeathWish5/PreemptiveScheduler" } # Bare-metal mode on x86_64 [target.'cfg(all(target_os = "none", target_arch = "x86_64"))'.dependencies] diff --git a/zCore/Makefile b/zCore/Makefile index 2db362f9..f3b7136b 100644 --- a/zCore/Makefile +++ b/zCore/Makefile @@ -4,7 +4,7 @@ ARCH ?= x86_64 PLATFORM ?= qemu MODE ?= release LOG ?= warn -LINUX ?= 1 +LINUX ?= LIBOS ?= TEST ?= GRAPHIC ?= @@ -18,10 +18,16 @@ ZBI ?= bringup SMP ?= 1 ACCEL ?= -# OBJDUMP ?= rust-objdump --print-imm-hex --x86-asm-syntax=intel -OBJDUMP ?= riscv64-linux-musl-objdump + +OBJDUMP := OBJCOPY ?= rust-objcopy --binary-architecture=$(ARCH) +ifeq ($(ARCH), x86_64) + OBJDUMP := rust-objdump --print-imm-hex --x86-asm-syntax=intel +else ifeq ($(ARCH), riscv64) + OBJDUMP := riscv64-linux-musl-objdump +endif + ifeq ($(LINUX), 1) CMDLINE ?= LOG=$(LOG) else diff --git a/zCore/src/logging.rs b/zCore/src/logging.rs index ac7d4294..a42ab159 100644 --- a/zCore/src/logging.rs +++ b/zCore/src/logging.rs @@ -5,13 +5,11 @@ use log::{self, Level, LevelFilter, Log, Metadata, Record}; pub fn init() { static LOGGER: SimpleLogger = SimpleLogger; log::set_logger(&LOGGER).unwrap(); - log::set_max_level(LevelFilter::Info); + log::set_max_level(LevelFilter::Warn); } /// Reset max log level. -pub fn set_max_level(_level: &str) { - // log::set_max_level(LevelFilter::Off); - // log::set_max_level(LevelFilter::Info); +pub fn set_max_level(level: &str) { log::set_max_level(level.parse().unwrap_or(LevelFilter::Warn)); } diff --git a/zCore/src/main.rs b/zCore/src/main.rs index cf8b44b8..10f4b135 100644 --- a/zCore/src/main.rs +++ b/zCore/src/main.rs @@ -39,8 +39,6 @@ fn primary_main(config: kernel_hal::KernelConfig) { STARTED.store(true, Ordering::SeqCst); kernel_hal::interrupt::intr_on(); - // info!("wait for time interrupt"); - // kernel_hal::interrupt::wait_for_interrupt(); cfg_if! { if #[cfg(all(feature = "linux", feature = "zircon"))] { diff --git a/zCore/src/utils.rs b/zCore/src/utils.rs index 602cfbef..28a581fb 100644 --- a/zCore/src/utils.rs +++ b/zCore/src/utils.rs @@ -120,11 +120,10 @@ pub fn wait_for_exit(proc: Option>) -> ! { pub fn wait_for_exit(proc: Option>) -> ! { kernel_hal::timer::timer_set_first(); loop { - executor::run_until_idle(); + let has_task = executor::run_until_idle(); if cfg!(feature = "baremetal-test") && !has_task { proc.map(check_exit_code); kernel_hal::cpu::reset(); } - kernel_hal::interrupt::wait_for_interrupt(); } } diff --git a/zircon-object/src/dev/interrupt/event_interrupt.rs b/zircon-object/src/dev/interrupt/event_interrupt.rs index b3a0025d..80e9bb14 100644 --- a/zircon-object/src/dev/interrupt/event_interrupt.rs +++ b/zircon-object/src/dev/interrupt/event_interrupt.rs @@ -1,6 +1,6 @@ use kernel_hal::interrupt; use { - super::*, + super::*, spin::Mutex, // lock::mutex::Mutex, }; diff --git a/zircon-object/src/ipc/socket.rs b/zircon-object/src/ipc/socket.rs index 47d7e70f..0c50348d 100644 --- a/zircon-object/src/ipc/socket.rs +++ b/zircon-object/src/ipc/socket.rs @@ -3,7 +3,7 @@ use { alloc::collections::VecDeque, alloc::sync::{Arc, Weak}, bitflags::bitflags, - // lock::mutex::Mutex, + // lock::mutex::Mutex, spin::Mutex, }; diff --git a/zircon-object/src/object/mod.rs b/zircon-object/src/object/mod.rs index b0b4a084..ee7b446f 100644 --- a/zircon-object/src/object/mod.rs +++ b/zircon-object/src/object/mod.rs @@ -105,7 +105,7 @@ use { task::{Context, Poll}, }, downcast_rs::{impl_downcast, DowncastSync}, - // lock::mutex::Mutex, + // lock::mutex::Mutex, spin::Mutex, }; diff --git a/zircon-object/src/task/job.rs b/zircon-object/src/task/job.rs index ce2d34a2..7d21975e 100644 --- a/zircon-object/src/task/job.rs +++ b/zircon-object/src/task/job.rs @@ -6,7 +6,7 @@ use { crate::task::Task, alloc::sync::{Arc, Weak}, alloc::vec::Vec, - // lock::mutex::Mutex, + // lock::mutex::Mutex, spin::Mutex, }; diff --git a/zircon-object/src/vm/stream.rs b/zircon-object/src/vm/stream.rs index a5e36e00..74389f59 100644 --- a/zircon-object/src/vm/stream.rs +++ b/zircon-object/src/vm/stream.rs @@ -1,10 +1,10 @@ use { - super::*, - crate::object::*, - alloc::sync::Arc, - // lock::mutex::Mutex, - spin::Mutex, + super::*, + crate::object::*, + alloc::sync::Arc, numeric_enum_macro::numeric_enum, + // lock::mutex::Mutex, + spin::Mutex, }; /// A readable, writable, seekable interface to some underlying storage diff --git a/zircon-object/src/vm/vmo/mod.rs b/zircon-object/src/vm/vmo/mod.rs index 9e53622c..7a14d891 100644 --- a/zircon-object/src/vm/vmo/mod.rs +++ b/zircon-object/src/vm/vmo/mod.rs @@ -9,7 +9,7 @@ use { bitflags::bitflags, core::ops::Deref, kernel_hal::CachePolicy, - // lock::mutex::Mutex, + // lock::mutex::Mutex, spin::Mutex, }; diff --git a/zircon-object/src/vm/vmo/physical.rs b/zircon-object/src/vm/vmo/physical.rs index 1451da4c..9dd8c34f 100644 --- a/zircon-object/src/vm/vmo/physical.rs +++ b/zircon-object/src/vm/vmo/physical.rs @@ -1,6 +1,6 @@ use { - super::*, - alloc::sync::Arc, + super::*, + alloc::sync::Arc, lock::mutex::Mutex, // spin::Mutex, }; diff --git a/zircon-syscall/src/channel.rs b/zircon-syscall/src/channel.rs index 2273216c..e837398b 100644 --- a/zircon-syscall/src/channel.rs +++ b/zircon-syscall/src/channel.rs @@ -1,7 +1,7 @@ use { super::*, alloc::{string::String, vec::Vec}, - // lock::mutex::Mutex, + // lock::mutex::Mutex, spin::Mutex, zircon_object::{ ipc::{Channel, MessagePacket},