diff --git a/drivers/Cargo.toml b/drivers/Cargo.toml index bf406f73..a4cf8386 100644 --- a/drivers/Cargo.toml +++ b/drivers/Cargo.toml @@ -15,7 +15,6 @@ virtio = ["virtio-drivers"] [dependencies] log = "0.4" spin = "0.9" -lock = { git = "https://github.com/DeathWish5/kernel-sync" } cfg-if = "1.0" bitflags = "1.3" lazy_static = "1.4" @@ -27,10 +26,13 @@ rcore-console = { git = "https://github.com/rcore-os/rcore-console", default-fea # smoltcp = { git = "https://github.com/smoltcp-rs/smoltcp", rev = "35e833e3", default-features = false, features = ["log", "alloc", "verbose", "proto-ipv4", "proto-ipv6", "proto-igmp", "medium-ip", "medium-ethernet", "socket-raw", "socket-udp", "socket-tcp", "socket-icmp"] } smoltcp = { git = "https://gitee.com/gcyyfun/smoltcp", rev="043eb60", default-features = false, features = ["alloc","log", "async", "medium-ethernet","proto-ipv4", "proto-igmp", "socket-icmp", "socket-udp", "socket-tcp", "socket-raw"] } +# LibOS mode [target.'cfg(not(target_os = "none"))'.dependencies] async-std = { version = "1.10", optional = true } sdl2 = { version = "0.34", optional = true } +[target.'cfg(target_os = "none")'.dependencies] + [target.'cfg(target_arch = "x86_64")'.dependencies] acpi = "4.1" x2apic = "0.4" diff --git a/drivers/src/input/mouse.rs b/drivers/src/input/mouse.rs index 18919b1c..fabecd50 100644 --- a/drivers/src/input/mouse.rs +++ b/drivers/src/input/mouse.rs @@ -1,6 +1,6 @@ use alloc::{boxed::Box, sync::Arc}; -use lock::mutex::Mutex; +use lock::Mutex; use crate::prelude::{CapabilityType, InputEvent, InputEventType}; use crate::scheme::{impl_event_scheme, InputScheme}; diff --git a/drivers/src/irq/riscv_intc.rs b/drivers/src/irq/riscv_intc.rs index 046a5706..acc5738f 100644 --- a/drivers/src/irq/riscv_intc.rs +++ b/drivers/src/irq/riscv_intc.rs @@ -1,6 +1,6 @@ use riscv::register::sie; // use spin::Mutex; -// use lock::mutex::Mutex; +// use lock::Mutex; use spin::Once; use crate::prelude::IrqHandler; diff --git a/drivers/src/irq/riscv_plic.rs b/drivers/src/irq/riscv_plic.rs index 9f110515..8e70021c 100644 --- a/drivers/src/irq/riscv_plic.rs +++ b/drivers/src/irq/riscv_plic.rs @@ -2,7 +2,7 @@ use core::arch::asm; use core::ops::Range; // use spin::Mutex; -use lock::mutex::Mutex; +use lock::Mutex; use crate::io::{Io, Mmio}; use crate::prelude::IrqHandler; diff --git a/drivers/src/irq/x86_apic/ioapic.rs b/drivers/src/irq/x86_apic/ioapic.rs index f22520bc..2257902b 100644 --- a/drivers/src/irq/x86_apic/ioapic.rs +++ b/drivers/src/irq/x86_apic/ioapic.rs @@ -4,7 +4,7 @@ use core::{fmt, ptr::NonNull}; use acpi::platform::interrupt::InterruptModel; use acpi::{AcpiHandler, AcpiTables, PhysicalMapping}; // use spin::Mutex; -use lock::mutex::Mutex; +use lock::Mutex; use x2apic::ioapic::{IoApic as IoApicInner, IrqFlags, IrqMode}; use super::{IrqPolarity, IrqTriggerMode, Phys2VirtFn}; diff --git a/drivers/src/irq/x86_apic/mod.rs b/drivers/src/irq/x86_apic/mod.rs index dabd64d2..403078a4 100644 --- a/drivers/src/irq/x86_apic/mod.rs +++ b/drivers/src/irq/x86_apic/mod.rs @@ -5,7 +5,7 @@ mod lapic; use core::ops::Range; // use spin::Mutex; -use lock::mutex::Mutex; +use lock::Mutex; use self::consts::{X86_INT_BASE, X86_INT_LOCAL_APIC_BASE}; use self::ioapic::{IoApic, IoApicList}; diff --git a/drivers/src/mock/uart.rs b/drivers/src/mock/uart.rs index 5fb29457..853db128 100644 --- a/drivers/src/mock/uart.rs +++ b/drivers/src/mock/uart.rs @@ -2,7 +2,7 @@ use std::collections::VecDeque; use async_std::{io, io::prelude::*, task}; // use spin::Mutex; -use lock::mutex::Mutex; +use lock::Mutex; use crate::scheme::{impl_event_scheme, Scheme, UartScheme}; use crate::utils::EventListener; diff --git a/drivers/src/net/loopback.rs b/drivers/src/net/loopback.rs index fac3a91b..df9893e8 100644 --- a/drivers/src/net/loopback.rs +++ b/drivers/src/net/loopback.rs @@ -8,7 +8,7 @@ use alloc::string::String; use spin::Mutex; // TODO: fix this, should use no-irq lock, but can't pass build of libos -// use lock::mutex::Mutex; +// use lock::Mutex; use crate::scheme::{NetScheme, Scheme}; use crate::{DeviceError, DeviceResult}; diff --git a/drivers/src/net/mod.rs b/drivers/src/net/mod.rs index 373e279e..f547dfe6 100644 --- a/drivers/src/net/mod.rs +++ b/drivers/src/net/mod.rs @@ -64,7 +64,7 @@ pub use loopback::LoopbackInterface; use alloc::sync::Arc; use alloc::vec; // use spin::Mutex; -use lock::mutex::Mutex; +use lock::Mutex; use smoltcp::socket::SocketSet; diff --git a/drivers/src/net/rtlx.rs b/drivers/src/net/rtlx.rs index ef52e97f..68b9d93f 100644 --- a/drivers/src/net/rtlx.rs +++ b/drivers/src/net/rtlx.rs @@ -4,7 +4,7 @@ use alloc::sync::Arc; use alloc::vec; use alloc::vec::Vec; // use spin::Mutex; -use lock::mutex::Mutex; +use lock::Mutex; use smoltcp::iface::*; use smoltcp::phy::{self, Device, DeviceCapabilities, Medium}; diff --git a/drivers/src/uart/buffered.rs b/drivers/src/uart/buffered.rs index 0e04464b..2f40a389 100644 --- a/drivers/src/uart/buffered.rs +++ b/drivers/src/uart/buffered.rs @@ -1,7 +1,7 @@ use alloc::{boxed::Box, collections::VecDeque, string::String, sync::Arc}; // use spin::Mutex; -use lock::mutex::Mutex; +use lock::Mutex; use crate::scheme::{impl_event_scheme, Scheme, UartScheme}; use crate::utils::EventListener; diff --git a/drivers/src/uart/uart_16550.rs b/drivers/src/uart/uart_16550.rs index 7ca224b9..41587f99 100644 --- a/drivers/src/uart/uart_16550.rs +++ b/drivers/src/uart/uart_16550.rs @@ -3,7 +3,7 @@ use core::ops::{BitAnd, BitOr, Not}; use bitflags::bitflags; // use spin::Mutex; -use lock::mutex::Mutex; +use lock::Mutex; use crate::io::{Io, Mmio, ReadOnly}; use crate::scheme::{impl_event_scheme, Scheme, UartScheme}; diff --git a/drivers/src/utils/event_listener.rs b/drivers/src/utils/event_listener.rs index 728a022d..4b556f3d 100644 --- a/drivers/src/utils/event_listener.rs +++ b/drivers/src/utils/event_listener.rs @@ -1,7 +1,7 @@ use alloc::{boxed::Box, vec::Vec}; // use spin::Mutex; -use lock::mutex::Mutex; +use lock::Mutex; pub type EventHandler = Box; diff --git a/drivers/src/virtio/blk.rs b/drivers/src/virtio/blk.rs index ff7aeea0..12a27157 100644 --- a/drivers/src/virtio/blk.rs +++ b/drivers/src/virtio/blk.rs @@ -1,5 +1,5 @@ // use spin::Mutex; -use lock::mutex::Mutex; +use lock::Mutex; use virtio_drivers::{VirtIOBlk as InnerDriver, VirtIOHeader}; use crate::scheme::{BlockScheme, Scheme}; diff --git a/drivers/src/virtio/console.rs b/drivers/src/virtio/console.rs index 7425bdb6..5ee78de0 100644 --- a/drivers/src/virtio/console.rs +++ b/drivers/src/virtio/console.rs @@ -1,7 +1,7 @@ use core::fmt::{Result, Write}; // use spin::Mutex; -use lock::mutex::Mutex; +use lock::Mutex; use virtio_drivers::{VirtIOConsole as InnerDriver, VirtIOHeader}; use crate::prelude::DeviceResult; diff --git a/drivers/src/virtio/gpu.rs b/drivers/src/virtio/gpu.rs index e33c9901..8d7ffcef 100644 --- a/drivers/src/virtio/gpu.rs +++ b/drivers/src/virtio/gpu.rs @@ -1,5 +1,5 @@ // use spin::Mutex; -use lock::mutex::Mutex; +use lock::Mutex; use virtio_drivers::{VirtIOGpu as InnerDriver, VirtIOHeader}; use crate::prelude::{ColorFormat, DisplayInfo, FrameBuffer}; diff --git a/drivers/src/virtio/input.rs b/drivers/src/virtio/input.rs index 39605700..a7592208 100644 --- a/drivers/src/virtio/input.rs +++ b/drivers/src/virtio/input.rs @@ -1,7 +1,7 @@ use core::convert::TryFrom; // use spin::Mutex; -use lock::mutex::Mutex; +use lock::Mutex; use virtio_drivers::{InputConfigSelect, VirtIOHeader, VirtIOInput as InnerDriver}; use crate::prelude::{CapabilityType, InputCapability, InputEvent, InputEventType}; diff --git a/kernel-hal/Cargo.toml b/kernel-hal/Cargo.toml index aef6da22..8e97f417 100644 --- a/kernel-hal/Cargo.toml +++ b/kernel-hal/Cargo.toml @@ -16,7 +16,6 @@ graphic = ["zcore-drivers/graphic"] [dependencies] log = "0.4" spin = "0.9" -lock = { git = "https://github.com/DeathWish5/kernel-sync" } cfg-if = "1.0" bitflags = "1.3" trapframe = "0.9.0" @@ -33,11 +32,13 @@ nix = { version = "0.23", optional = true } tempfile = { version = "3", optional = true } async-std = { version = "1.10", optional = true } bitmap-allocator = { git = "https://github.com/rcore-os/bitmap-allocator", rev = "b3f9f51", optional = true } +lock = { git = "https://github.com/DeathWish5/kernel-sync", features = ["libos"] } # Bare-metal mode [target.'cfg(target_os = "none")'.dependencies] executor = { git = "https://github.com/DeathWish5/PreemptiveScheduler" } naive-timer = "0.2.0" +lock = { git = "https://github.com/DeathWish5/kernel-sync" } # All mode on x86_64 [target.'cfg(target_arch = "x86_64")'.dependencies] diff --git a/kernel-hal/src/bare/arch/riscv/vm.rs b/kernel-hal/src/bare/arch/riscv/vm.rs index cf23a0f7..938ee245 100644 --- a/kernel-hal/src/bare/arch/riscv/vm.rs +++ b/kernel-hal/src/bare/arch/riscv/vm.rs @@ -5,7 +5,7 @@ use core::slice; use riscv::{asm, register::satp}; // use spin::Mutex; -use lock::mutex::Mutex; +use lock::Mutex; use crate::utils::page_table::{GenericPTE, PageTableImpl, PageTableLevel3}; use crate::{mem::phys_to_virt, MMUFlags, PhysAddr, VirtAddr, KCONFIG}; diff --git a/kernel-hal/src/bare/net.rs b/kernel-hal/src/bare/net.rs index 6165f546..206d515f 100644 --- a/kernel-hal/src/bare/net.rs +++ b/kernel-hal/src/bare/net.rs @@ -12,7 +12,7 @@ use alloc::sync::Arc; use alloc::string::String; use spin::Mutex; -// use lock::mutex::Mutex; +// use lock::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 5207d19e..ccd02e3b 100644 --- a/kernel-hal/src/bare/timer.rs +++ b/kernel-hal/src/bare/timer.rs @@ -6,7 +6,7 @@ use core::time::Duration; use naive_timer::Timer; // use spin::Mutex; use core::sync::atomic::{AtomicBool, Ordering}; -use lock::mutex::Mutex; +use lock::Mutex; #[allow(dead_code)] pub(super) const TICKS_PER_SEC: u64 = 100; diff --git a/kernel-hal/src/common/console.rs b/kernel-hal/src/common/console.rs index 83ed089b..f71daef7 100644 --- a/kernel-hal/src/common/console.rs +++ b/kernel-hal/src/common/console.rs @@ -3,7 +3,7 @@ use crate::drivers; use core::fmt::{Arguments, Result, Write}; // use spin::Mutex; -use lock::mutex::Mutex; +use lock::Mutex; struct SerialWriter; diff --git a/kernel-hal/src/drivers.rs b/kernel-hal/src/drivers.rs index d5588420..e485f7be 100644 --- a/kernel-hal/src/drivers.rs +++ b/kernel-hal/src/drivers.rs @@ -4,7 +4,7 @@ use alloc::{sync::Arc, vec::Vec}; use core::convert::From; // use spin::{RwLock, RwLockReadGuard}; -use lock::rwlock::{RwLock, RwLockReadGuard}; +use lock::{RwLock, RwLockReadGuard}; use zcore_drivers::scheme::{ BlockScheme, DisplayScheme, InputScheme, IrqScheme, NetScheme, Scheme, UartScheme, diff --git a/kernel-hal/src/libos/mem.rs b/kernel-hal/src/libos/mem.rs index 7be6b1f7..865eead9 100644 --- a/kernel-hal/src/libos/mem.rs +++ b/kernel-hal/src/libos/mem.rs @@ -5,7 +5,7 @@ use core::ops::Range; use bitmap_allocator::BitAlloc; use spin::Mutex; -// use lock::mutex::Mutex; +// use lock::Mutex; use super::mock_mem::MockMemory; use crate::{PhysAddr, VirtAddr, PAGE_SIZE}; diff --git a/kernel-hal/src/libos/net.rs b/kernel-hal/src/libos/net.rs index 6165f546..206d515f 100644 --- a/kernel-hal/src/libos/net.rs +++ b/kernel-hal/src/libos/net.rs @@ -12,7 +12,7 @@ use alloc::sync::Arc; use alloc::string::String; use spin::Mutex; -// use lock::mutex::Mutex; +// use lock::Mutex; use crate::drivers::add_device; use crate::drivers::all_net; diff --git a/kernel-hal/src/utils/page_table.rs b/kernel-hal/src/utils/page_table.rs index 77853dea..fd96d81f 100644 --- a/kernel-hal/src/utils/page_table.rs +++ b/kernel-hal/src/utils/page_table.rs @@ -7,7 +7,7 @@ use crate::common::vm::*; use crate::{mem::PhysFrame, MMUFlags, PhysAddr, VirtAddr}; // use spin::Mutex; -use lock::mutex::Mutex; +use lock::Mutex; pub trait PageTableLevel: Sync + Send { const LEVEL: usize; diff --git a/linux-object/Cargo.toml b/linux-object/Cargo.toml index c4340547..6e92f514 100644 --- a/linux-object/Cargo.toml +++ b/linux-object/Cargo.toml @@ -11,7 +11,6 @@ description = "Linux kernel objects" async-trait = "0.1" log = "0.4" spin = "0.9" -lock = { git = "https://github.com/DeathWish5/kernel-sync" } xmas-elf = "0.7" bitflags = "1.3" hashbrown = "0.9" diff --git a/linux-object/src/fs/devfs/input/event.rs b/linux-object/src/fs/devfs/input/event.rs index 2a6dd8cc..c4129bd2 100644 --- a/linux-object/src/fs/devfs/input/event.rs +++ b/linux-object/src/fs/devfs/input/event.rs @@ -3,7 +3,7 @@ use core::task::{Context, Poll}; use core::{any::Any, future::Future, mem::size_of, pin::Pin}; use spin::Mutex; -// use lock::mutex::Mutex; +// use lock::Mutex; use kernel_hal::drivers::prelude::{InputEvent, InputEventType}; use kernel_hal::drivers::scheme::InputScheme; diff --git a/linux-object/src/fs/devfs/input/mice.rs b/linux-object/src/fs/devfs/input/mice.rs index fc681328..70e9e5a2 100644 --- a/linux-object/src/fs/devfs/input/mice.rs +++ b/linux-object/src/fs/devfs/input/mice.rs @@ -3,7 +3,7 @@ use core::task::{Context, Poll}; use core::{any::Any, future::Future, pin::Pin}; use spin::Mutex; -// use lock::mutex::Mutex; +// use lock::Mutex; use kernel_hal::drivers::prelude::input::{Mouse, MouseFlags, MouseState}; use kernel_hal::drivers::scheme::{EventScheme, InputScheme}; diff --git a/linux-object/src/fs/devfs/random.rs b/linux-object/src/fs/devfs/random.rs index f034a350..cfa0f1b5 100644 --- a/linux-object/src/fs/devfs/random.rs +++ b/linux-object/src/fs/devfs/random.rs @@ -6,7 +6,7 @@ use core::any::Any; use rcore_fs::vfs::*; use rcore_fs_devfs::DevFS; use spin::Mutex; -// use lock::mutex::Mutex; +// use lock::Mutex; /// random INode data struct pub struct RandomINodeData { diff --git a/linux-object/src/fs/device.rs b/linux-object/src/fs/device.rs index e7f73e29..82000342 100644 --- a/linux-object/src/fs/device.rs +++ b/linux-object/src/fs/device.rs @@ -2,7 +2,7 @@ use rcore_fs::dev::{Device, Result}; // use spin::RwLock; -use lock::rwlock::RwLock; +use lock::RwLock; /// memory buffer for device pub struct MemBuf(RwLock<&'static mut [u8]>); diff --git a/linux-object/src/fs/file.rs b/linux-object/src/fs/file.rs index 7623a939..3bffa1fe 100644 --- a/linux-object/src/fs/file.rs +++ b/linux-object/src/fs/file.rs @@ -4,7 +4,7 @@ use alloc::{boxed::Box, string::String, sync::Arc}; use async_trait::async_trait; use spin::RwLock; -// use lock::rwlock::RwLock; +// use lock::RwLock; use rcore_fs::vfs::{FileType, FsError, INode, Metadata, PollStatus}; use zircon_object::object::*; diff --git a/linux-object/src/fs/pipe.rs b/linux-object/src/fs/pipe.rs index f38c4615..21afe0ab 100644 --- a/linux-object/src/fs/pipe.rs +++ b/linux-object/src/fs/pipe.rs @@ -11,7 +11,7 @@ use core::{ }; use rcore_fs::vfs::*; use spin::Mutex; -// use lock::mutex::Mutex; +// use lock::Mutex; #[derive(Clone, PartialEq)] #[allow(dead_code)] diff --git a/linux-object/src/fs/rcore_fs_wrapper.rs b/linux-object/src/fs/rcore_fs_wrapper.rs index e0eb6676..abd9ba06 100644 --- a/linux-object/src/fs/rcore_fs_wrapper.rs +++ b/linux-object/src/fs/rcore_fs_wrapper.rs @@ -8,7 +8,7 @@ extern crate rcore_fs; use kernel_hal::drivers::scheme::BlockScheme; use rcore_fs::dev::{BlockDevice, DevError, Device, Result}; use spin::RwLock; -// use lock::rwlock::RwLock; +// use lock::RwLock; /// A naive LRU cache layer for `BlockDevice`, re-exported from `rcore-fs`. pub use rcore_fs::dev::block_cache::BlockCache; diff --git a/linux-object/src/fs/stdio.rs b/linux-object/src/fs/stdio.rs index 3c07ed14..55525158 100644 --- a/linux-object/src/fs/stdio.rs +++ b/linux-object/src/fs/stdio.rs @@ -14,7 +14,7 @@ use kernel_hal::console::{self, ConsoleWinSize}; use lazy_static::lazy_static; use rcore_fs::vfs::*; // use spin::Mutex; -use lock::mutex::Mutex; +use lock::Mutex; lazy_static! { /// STDIN global reference diff --git a/linux-object/src/ipc/mod.rs b/linux-object/src/ipc/mod.rs index 9229ebe3..345ac2a7 100644 --- a/linux-object/src/ipc/mod.rs +++ b/linux-object/src/ipc/mod.rs @@ -9,7 +9,7 @@ use alloc::collections::BTreeMap; use alloc::sync::Arc; use bitflags::*; use spin::Mutex; -// use lock::mutex::Mutex; +// use lock::Mutex; /// Semaphore table in a process #[derive(Default)] diff --git a/linux-object/src/net/mod.rs b/linux-object/src/net/mod.rs index 7fe5e2de..bf9b2f41 100644 --- a/linux-object/src/net/mod.rs +++ b/linux-object/src/net/mod.rs @@ -14,7 +14,7 @@ pub mod udp; pub use udp::*; use spin::Mutex; -// use lock::mutex::Mutex; +// use lock::Mutex; /// missing documentation // pub mod raw; diff --git a/linux-object/src/net/tcp.rs b/linux-object/src/net/tcp.rs index 9233fc98..8a143b4f 100644 --- a/linux-object/src/net/tcp.rs +++ b/linux-object/src/net/tcp.rs @@ -16,7 +16,7 @@ use crate::net::TCP_RECVBUF; use crate::net::TCP_SENDBUF; use alloc::sync::Arc; use spin::Mutex; -// use lock::mutex::Mutex; +// use lock::Mutex; // alloc use alloc::boxed::Box; diff --git a/linux-object/src/net/udp.rs b/linux-object/src/net/udp.rs index aa2de8aa..5cdb87bd 100644 --- a/linux-object/src/net/udp.rs +++ b/linux-object/src/net/udp.rs @@ -24,7 +24,7 @@ use crate::net::UDP_METADATA_BUF; use crate::net::UDP_RECVBUF; use crate::net::UDP_SENDBUF; use spin::Mutex; -// use lock::mutex::Mutex; +// use lock::Mutex; // alloc use alloc::boxed::Box; diff --git a/linux-object/src/sync/event_bus.rs b/linux-object/src/sync/event_bus.rs index 2ddaddf7..7fabc3c5 100644 --- a/linux-object/src/sync/event_bus.rs +++ b/linux-object/src/sync/event_bus.rs @@ -10,7 +10,7 @@ use core::{ task::{Context, Poll}, }; use spin::Mutex; -// use lock::mutex::Mutex; +// use lock::Mutex; bitflags! { #[derive(Default)] diff --git a/linux-object/src/sync/semaphore.rs b/linux-object/src/sync/semaphore.rs index 6b4b4d90..6d6f940f 100644 --- a/linux-object/src/sync/semaphore.rs +++ b/linux-object/src/sync/semaphore.rs @@ -12,7 +12,7 @@ use core::ops::Deref; use core::pin::Pin; use core::task::{Context, Poll}; use spin::Mutex; -// use lock::mutex::Mutex; +// use lock::Mutex; /// A counting, blocking, semaphore. pub struct Semaphore { diff --git a/linux-syscall/Cargo.toml b/linux-syscall/Cargo.toml index 0c388e95..08c7f210 100644 --- a/linux-syscall/Cargo.toml +++ b/linux-syscall/Cargo.toml @@ -10,7 +10,6 @@ description = "Linux syscalls implementation" [dependencies] log = "0.4" spin = "0.9" -lock = { git = "https://github.com/DeathWish5/kernel-sync" } bitflags = "1.3" numeric-enum-macro = "0.2" zircon-object = { path = "../zircon-object" } @@ -19,3 +18,11 @@ kernel-hal = { path = "../kernel-hal", default-features = false } rcore-fs = { git = "https://github.com/rcore-os/rcore-fs", rev = "7c232ec" } lazy_static = { version = "1.4", features = ["spin_no_std"] } bitvec = { version = "0.22", default-features = false, features = ["alloc"] } + +# LibOS mode +[target.'cfg(not(target_os = "none"))'.dependencies] +lock = { git = "https://github.com/DeathWish5/kernel-sync", features = ["libos"] } + +# Bare-metal mode +[target.'cfg(target_os = "none")'.dependencies] +lock = { git = "https://github.com/DeathWish5/kernel-sync" } \ No newline at end of file diff --git a/linux-syscall/src/net.rs b/linux-syscall/src/net.rs index 0ee23740..253df0f0 100644 --- a/linux-syscall/src/net.rs +++ b/linux-syscall/src/net.rs @@ -7,7 +7,7 @@ use linux_object::net::TcpSocketState; use linux_object::net::UdpSocketState; use spin::Mutex; -// use lock::mutex::Mutex; +// use lock::Mutex; impl Syscall<'_> { /// net socket diff --git a/zCore/Cargo.toml b/zCore/Cargo.toml index 81650972..4686d766 100644 --- a/zCore/Cargo.toml +++ b/zCore/Cargo.toml @@ -45,7 +45,6 @@ board-d1 = ["link-user-img"] [dependencies] log = "0.4" spin = "0.9" -lock = { git = "https://github.com/DeathWish5/kernel-sync" } cfg-if = "1.0" lazy_static = { version = "1.4", features = ["spin_no_std" ] } bitmap-allocator = { git = "https://github.com/rcore-os/bitmap-allocator", rev = "b3f9f51" } @@ -61,11 +60,13 @@ rcore-fs-sfs = { git = "https://github.com/rcore-os/rcore-fs", rev = "7c232ec", async-std = { version = "1.10", optional = true } chrono = { version = "0.4", optional = true } rcore-fs-hostfs = { git = "https://github.com/rcore-os/rcore-fs", rev = "7c232ec", optional = true } +lock = { git = "https://github.com/DeathWish5/kernel-sync", features = ["libos"]} # Bare-metal mode [target.'cfg(target_os = "none")'.dependencies] buddy_system_allocator = "0.7" executor = { git = "https://github.com/DeathWish5/PreemptiveScheduler" } +lock = { git = "https://github.com/DeathWish5/kernel-sync" } # Bare-metal mode on x86_64 [target.'cfg(all(target_os = "none", target_arch = "x86_64"))'.dependencies] diff --git a/zCore/src/memory.rs b/zCore/src/memory.rs index 7c30d155..3a33e0e7 100644 --- a/zCore/src/memory.rs +++ b/zCore/src/memory.rs @@ -5,7 +5,7 @@ use core::ops::Range; use bitmap_allocator::BitAlloc; use kernel_hal::PhysAddr; // use spin::Mutex; -use lock::mutex::Mutex; +use lock::Mutex; use super::platform::consts::*; diff --git a/zircon-object/Cargo.toml b/zircon-object/Cargo.toml index abb65f89..78c89c54 100644 --- a/zircon-object/Cargo.toml +++ b/zircon-object/Cargo.toml @@ -15,7 +15,6 @@ elf = ["xmas-elf"] [dependencies] bitflags = "1.3" spin = "0.9" -lock = { git = "https://github.com/DeathWish5/kernel-sync" } log = "0.4" hashbrown = "0.9" downcast-rs = { version = "1.2", default-features = false } @@ -30,3 +29,11 @@ cfg-if = "1.0" [dev-dependencies] async-std = { version = "1.10", features = ["attributes", "unstable"] } + +# LibOS mode +[target.'cfg(not(target_os = "none"))'.dependencies] +lock = { git = "https://github.com/DeathWish5/kernel-sync", features = ["libos"] } + +# Bare-metal mode +[target.'cfg(target_os = "none")'.dependencies] +lock = { git = "https://github.com/DeathWish5/kernel-sync" } \ No newline at end of file diff --git a/zircon-object/src/debuglog.rs b/zircon-object/src/debuglog.rs index 89a4dc90..c02ef336 100644 --- a/zircon-object/src/debuglog.rs +++ b/zircon-object/src/debuglog.rs @@ -5,7 +5,7 @@ use { alloc::{sync::Arc, vec::Vec}, lazy_static::lazy_static, spin::Mutex, - // lock::mutex::Mutex, + // lock::Mutex, }; lazy_static! { diff --git a/zircon-object/src/dev/bti.rs b/zircon-object/src/dev/bti.rs index 53807ce4..03c4e637 100644 --- a/zircon-object/src/dev/bti.rs +++ b/zircon-object/src/dev/bti.rs @@ -5,7 +5,7 @@ use { alloc::{sync::Arc, vec::Vec}, dev::Iommu, spin::Mutex, - // lock::mutex::Mutex, + // lock::Mutex, }; /// Bus Transaction Initiator. diff --git a/zircon-object/src/dev/interrupt/event_interrupt.rs b/zircon-object/src/dev/interrupt/event_interrupt.rs index 80e9bb14..9e4218c9 100644 --- a/zircon-object/src/dev/interrupt/event_interrupt.rs +++ b/zircon-object/src/dev/interrupt/event_interrupt.rs @@ -2,7 +2,7 @@ use kernel_hal::interrupt; use { super::*, spin::Mutex, - // lock::mutex::Mutex, + // lock::Mutex, }; pub struct EventInterrupt { diff --git a/zircon-object/src/dev/interrupt/mod.rs b/zircon-object/src/dev/interrupt/mod.rs index 4a01c8f7..6d9f46db 100644 --- a/zircon-object/src/dev/interrupt/mod.rs +++ b/zircon-object/src/dev/interrupt/mod.rs @@ -8,7 +8,7 @@ use { alloc::{boxed::Box, sync::Arc}, bitflags::bitflags, spin::Mutex, - // lock::mutex::Mutex, + // lock::Mutex, }; mod event_interrupt; diff --git a/zircon-object/src/dev/interrupt/pci_interrupt.rs b/zircon-object/src/dev/interrupt/pci_interrupt.rs index c4b9de1a..670c33d2 100644 --- a/zircon-object/src/dev/interrupt/pci_interrupt.rs +++ b/zircon-object/src/dev/interrupt/pci_interrupt.rs @@ -1,6 +1,6 @@ use alloc::{boxed::Box, sync::Arc}; use spin::Mutex; -// use lock::mutex::Mutex; +// use lock::Mutex; use super::InterruptTrait; use crate::dev::pci::{constants::PCIE_IRQRET_MASK, IPciNode}; diff --git a/zircon-object/src/dev/pci/bus.rs b/zircon-object/src/dev/pci/bus.rs index 18a01b2a..23616911 100644 --- a/zircon-object/src/dev/pci/bus.rs +++ b/zircon-object/src/dev/pci/bus.rs @@ -18,7 +18,7 @@ use core::marker::{Send, Sync}; use lazy_static::*; use region_alloc::RegionAllocator; use spin::Mutex; -// use lock::mutex::Mutex; +// use lock::Mutex; /// PCIE Bus Driver. pub struct PCIeBusDriver { diff --git a/zircon-object/src/dev/pci/caps.rs b/zircon-object/src/dev/pci/caps.rs index b68e00b8..25092038 100644 --- a/zircon-object/src/dev/pci/caps.rs +++ b/zircon-object/src/dev/pci/caps.rs @@ -5,7 +5,7 @@ use alloc::boxed::Box; use core::convert::TryFrom; use kernel_hal::interrupt; use spin::Mutex; -// use lock::mutex::Mutex; +// use lock::Mutex; /// Enumeration for PCI capabilities. #[derive(Debug)] diff --git a/zircon-object/src/dev/pci/pio.rs b/zircon-object/src/dev/pci/pio.rs index b29517c5..a6ffe4bf 100644 --- a/zircon-object/src/dev/pci/pio.rs +++ b/zircon-object/src/dev/pci/pio.rs @@ -14,7 +14,7 @@ cfg_if::cfg_if! { if #[cfg(all(target_arch = "x86_64", target_os = "none"))] { use kernel_hal::x86_64::{Io, Pio}; use spin::Mutex; -// use lock::mutex::Mutex; +// use lock::Mutex; static PIO_LOCK: Mutex<()> = Mutex::new(()); const PCI_CONFIG_ADDR: u16 = 0xcf8; diff --git a/zircon-object/src/hypervisor/vcpu.rs b/zircon-object/src/hypervisor/vcpu.rs index 7018aa25..b1a5adb3 100644 --- a/zircon-object/src/hypervisor/vcpu.rs +++ b/zircon-object/src/hypervisor/vcpu.rs @@ -9,7 +9,7 @@ use { core::convert::TryInto, rvm::{self, Vcpu as VcpuInner}, spin::Mutex, - // lock::mutex::Mutex, + // lock::Mutex, }; /// Virtual CPU within a Guest, which allows for execution within the virtual machine. diff --git a/zircon-object/src/ipc/channel.rs b/zircon-object/src/ipc/channel.rs index 8e8b41d4..9d5f22e6 100644 --- a/zircon-object/src/ipc/channel.rs +++ b/zircon-object/src/ipc/channel.rs @@ -8,7 +8,7 @@ use { futures::channel::oneshot::{self, Sender}, hashbrown::HashMap, spin::Mutex, - // lock::mutex::Mutex, + // lock::Mutex, }; /// Bidirectional interprocess communication diff --git a/zircon-object/src/ipc/fifo.rs b/zircon-object/src/ipc/fifo.rs index 6ca18e83..92ea49a6 100644 --- a/zircon-object/src/ipc/fifo.rs +++ b/zircon-object/src/ipc/fifo.rs @@ -3,7 +3,7 @@ use { alloc::collections::VecDeque, alloc::sync::{Arc, Weak}, spin::Mutex, - // lock::mutex::Mutex, + // lock::Mutex, }; /// First-In First-Out inter-process queue. diff --git a/zircon-object/src/ipc/socket.rs b/zircon-object/src/ipc/socket.rs index 0c50348d..a3304455 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, spin::Mutex, }; diff --git a/zircon-object/src/object/mod.rs b/zircon-object/src/object/mod.rs index ee7b446f..ce5c6db4 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, spin::Mutex, }; diff --git a/zircon-object/src/signal/futex.rs b/zircon-object/src/signal/futex.rs index 9dd3c513..d1951fba 100644 --- a/zircon-object/src/signal/futex.rs +++ b/zircon-object/src/signal/futex.rs @@ -7,7 +7,7 @@ use core::pin::Pin; use core::sync::atomic::*; use core::task::{Context, Poll, Waker}; use spin::Mutex; -// use lock::mutex::Mutex; +// use lock::Mutex; /// A primitive for creating userspace synchronization tools. /// diff --git a/zircon-object/src/signal/port.rs b/zircon-object/src/signal/port.rs index 539d24eb..4ae76db6 100644 --- a/zircon-object/src/signal/port.rs +++ b/zircon-object/src/signal/port.rs @@ -5,7 +5,7 @@ use alloc::collections::{BTreeSet, VecDeque}; use alloc::sync::Arc; use bitflags::bitflags; use spin::Mutex; -// use lock::mutex::Mutex; +// use lock::Mutex; #[path = "port_packet.rs"] mod port_packet; diff --git a/zircon-object/src/signal/timer.rs b/zircon-object/src/signal/timer.rs index 07b21389..f0c9e68a 100644 --- a/zircon-object/src/signal/timer.rs +++ b/zircon-object/src/signal/timer.rs @@ -4,7 +4,7 @@ use alloc::boxed::Box; use alloc::sync::Arc; use core::time::Duration; use spin::Mutex; -// use lock::mutex::Mutex; +// use lock::Mutex; /// An object that may be signaled at some point in the future /// diff --git a/zircon-object/src/task/exception.rs b/zircon-object/src/task/exception.rs index eaa94e71..32b88962 100644 --- a/zircon-object/src/task/exception.rs +++ b/zircon-object/src/task/exception.rs @@ -4,7 +4,7 @@ use core::mem::size_of; use futures::channel::oneshot; use kernel_hal::context::{TrapReason, UserContext}; use spin::Mutex; -// use lock::mutex::Mutex; +// use lock::Mutex; use super::{Job, Task, Thread}; use crate::ipc::{Channel, MessagePacket}; diff --git a/zircon-object/src/task/job.rs b/zircon-object/src/task/job.rs index 7d21975e..609e8353 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, spin::Mutex, }; diff --git a/zircon-object/src/task/process.rs b/zircon-object/src/task/process.rs index f21c0e62..afd03c23 100644 --- a/zircon-object/src/task/process.rs +++ b/zircon-object/src/task/process.rs @@ -4,7 +4,7 @@ use core::{any::Any, sync::atomic::AtomicI32}; use futures::channel::oneshot::{self, Receiver, Sender}; use hashbrown::HashMap; use spin::Mutex; -// use lock::mutex::Mutex; +// use lock::Mutex; use super::exception::{ExceptionChannelType, Exceptionate}; use super::job_policy::{JobPolicy, PolicyAction, PolicyCondition}; diff --git a/zircon-object/src/task/thread.rs b/zircon-object/src/task/thread.rs index 5252ce67..3ab36867 100644 --- a/zircon-object/src/task/thread.rs +++ b/zircon-object/src/task/thread.rs @@ -11,7 +11,7 @@ use bitflags::bitflags; use futures::{channel::oneshot::*, future::FutureExt, pin_mut, select_biased}; use kernel_hal::context::UserContext; use spin::Mutex; -// use lock::mutex::Mutex; +// use lock::Mutex; use self::thread_state::ContextAccessState; use super::{exception::*, Process, Task}; diff --git a/zircon-object/src/vm/stream.rs b/zircon-object/src/vm/stream.rs index 74389f59..364725e4 100644 --- a/zircon-object/src/vm/stream.rs +++ b/zircon-object/src/vm/stream.rs @@ -3,7 +3,7 @@ use { crate::object::*, alloc::sync::Arc, numeric_enum_macro::numeric_enum, - // lock::mutex::Mutex, + // lock::Mutex, spin::Mutex, }; diff --git a/zircon-object/src/vm/vmar.rs b/zircon-object/src/vm/vmar.rs index a3f3194f..9df12801 100644 --- a/zircon-object/src/vm/vmar.rs +++ b/zircon-object/src/vm/vmar.rs @@ -6,7 +6,7 @@ use { kernel_hal::vm::{ GenericPageTable, IgnoreNotMappedErr, Page, PageSize, PageTable, PagingError, PagingResult, }, - lock::mutex::Mutex, + lock::Mutex, // spin::Mutex, }; diff --git a/zircon-object/src/vm/vmo/mod.rs b/zircon-object/src/vm/vmo/mod.rs index 7a14d891..51071b96 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, spin::Mutex, }; diff --git a/zircon-object/src/vm/vmo/physical.rs b/zircon-object/src/vm/vmo/physical.rs index 9dd8c34f..ed255391 100644 --- a/zircon-object/src/vm/vmo/physical.rs +++ b/zircon-object/src/vm/vmo/physical.rs @@ -1,7 +1,7 @@ use { super::*, alloc::sync::Arc, - lock::mutex::Mutex, + lock::Mutex, // spin::Mutex, }; diff --git a/zircon-syscall/Cargo.toml b/zircon-syscall/Cargo.toml index 484c2003..ab8ed58f 100644 --- a/zircon-syscall/Cargo.toml +++ b/zircon-syscall/Cargo.toml @@ -14,10 +14,17 @@ deny-page-fault = [] [dependencies] log = "0.4" spin = "0.9" -lock = { git = "https://github.com/DeathWish5/kernel-sync" } bitflags = "1.3" numeric-enum-macro = "0.2" zircon-object = { path = "../zircon-object" } kernel-hal = { path = "../kernel-hal", default-features = false } futures = { version = "0.3", default-features = false, features = ["alloc", "async-await"] } cfg-if = "1.0" + +# LibOS mode +[target.'cfg(not(target_os = "none"))'.dependencies] +lock = { git = "https://github.com/DeathWish5/kernel-sync", features = ["libos"] } + +# Bare-metal mode +[target.'cfg(target_os = "none")'.dependencies] +lock = { git = "https://github.com/DeathWish5/kernel-sync" } \ No newline at end of file diff --git a/zircon-syscall/src/channel.rs b/zircon-syscall/src/channel.rs index e837398b..c8cec3aa 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, spin::Mutex, zircon_object::{ ipc::{Channel, MessagePacket},