将 io 移动至 vfs 目录,并修正引用路径 (#339)

* 将 io 移动至 vfs 目录,并修正引用路径

* fix bug in makefile
This commit is contained in:
Xshine 2023-08-27 15:54:19 +08:00 committed by GitHub
parent e92d022810
commit ddb9d91712
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
22 changed files with 23 additions and 23 deletions

View File

@ -17,7 +17,7 @@ export ASFLAGS := --64
LD_LIST := head.o LD_LIST := head.o
kernel_subdirs := common driver process debug arch exception smp sched syscall ktest libs ipc io time kernel_subdirs := common driver process debug arch exception smp sched syscall ktest libs ipc time

View File

@ -1,10 +1,10 @@
use crate::filesystem::devfs::{DevFS, DeviceINode}; use crate::filesystem::devfs::{DevFS, DeviceINode};
use crate::filesystem::vfs::file::FileMode; use crate::filesystem::vfs::file::FileMode;
use crate::filesystem::vfs::io::device::BlockDevice;
use crate::filesystem::vfs::{ use crate::filesystem::vfs::{
core::generate_inode_id, make_rawdev, FilePrivateData, FileSystem, FileType, IndexNode, core::generate_inode_id, make_rawdev, FilePrivateData, FileSystem, FileType, IndexNode,
Metadata, PollStatus, Metadata, PollStatus,
}; };
use crate::io::device::BlockDevice;
use crate::syscall::SystemError; use crate::syscall::SystemError;
use crate::{libs::spinlock::SpinLock, time::TimeSpec}; use crate::{libs::spinlock::SpinLock, time::TimeSpec};
use alloc::{ use alloc::{

View File

@ -1,8 +1,8 @@
use super::{_port, hba::HbaCmdTable, virt_2_phys}; use super::{_port, hba::HbaCmdTable, virt_2_phys};
use crate::driver::disk::ahci::HBA_PxIS_TFES; use crate::driver::disk::ahci::HBA_PxIS_TFES;
use crate::filesystem::mbr::MbrDiskPartionTable; use crate::filesystem::mbr::MbrDiskPartionTable;
use crate::filesystem::vfs::io::{device::BlockDevice, disk_info::Partition, SeekFrom};
use crate::include::bindings::bindings::verify_area; use crate::include::bindings::bindings::verify_area;
use crate::io::{device::BlockDevice, disk_info::Partition, SeekFrom};
use crate::libs::{spinlock::SpinLock, vec_cursor::VecCursor}; use crate::libs::{spinlock::SpinLock, vec_cursor::VecCursor};
use crate::mm::phys_2_virt; use crate::mm::phys_2_virt;
@ -52,8 +52,8 @@ impl Debug for AhciDisk {
impl AhciDisk { impl AhciDisk {
fn read_at( fn read_at(
&self, &self,
lba_id_start: crate::io::device::BlockId, // 起始lba编号 lba_id_start: crate::filesystem::vfs::io::device::BlockId, // 起始lba编号
count: usize, // 读取lba的数量 count: usize, // 读取lba的数量
buf: &mut [u8], buf: &mut [u8],
) -> Result<usize, SystemError> { ) -> Result<usize, SystemError> {
compiler_fence(core::sync::atomic::Ordering::SeqCst); compiler_fence(core::sync::atomic::Ordering::SeqCst);
@ -211,7 +211,7 @@ impl AhciDisk {
fn write_at( fn write_at(
&self, &self,
lba_id_start: crate::io::device::BlockId, lba_id_start: crate::filesystem::vfs::io::device::BlockId,
count: usize, count: usize,
buf: &[u8], buf: &[u8],
) -> Result<usize, SystemError> { ) -> Result<usize, SystemError> {
@ -449,7 +449,7 @@ impl BlockDevice for LockedAhciDisk {
#[inline] #[inline]
fn read_at( fn read_at(
&self, &self,
lba_id_start: crate::io::device::BlockId, lba_id_start: crate::filesystem::vfs::io::device::BlockId,
count: usize, count: usize,
buf: &mut [u8], buf: &mut [u8],
) -> Result<usize, SystemError> { ) -> Result<usize, SystemError> {
@ -463,7 +463,7 @@ impl BlockDevice for LockedAhciDisk {
#[inline] #[inline]
fn write_at( fn write_at(
&self, &self,
lba_id_start: crate::io::device::BlockId, lba_id_start: crate::filesystem::vfs::io::device::BlockId,
count: usize, count: usize,
buf: &[u8], buf: &[u8],
) -> Result<usize, SystemError> { ) -> Result<usize, SystemError> {
@ -475,7 +475,7 @@ impl BlockDevice for LockedAhciDisk {
} }
#[inline] #[inline]
fn device(&self) -> Arc<dyn crate::io::device::Device> { fn device(&self) -> Arc<dyn crate::filesystem::vfs::io::device::Device> {
return self.0.lock().self_ref.upgrade().unwrap(); return self.0.lock().self_ref.upgrade().unwrap();
} }

View File

@ -3,10 +3,10 @@ pub mod ahci_inode;
pub mod ahcidisk; pub mod ahcidisk;
pub mod hba; pub mod hba;
use crate::io::device::BlockDevice; use crate::filesystem::vfs::io::device::BlockDevice;
// 依赖的rust工具包 // 依赖的rust工具包
use crate::filesystem::devfs::devfs_register; use crate::filesystem::devfs::devfs_register;
use crate::io::disk_info::BLK_GF_AHCI; use crate::filesystem::vfs::io::disk_info::BLK_GF_AHCI;
use crate::kerror; use crate::kerror;
use crate::libs::spinlock::{SpinLock, SpinLockGuard}; use crate::libs::spinlock::{SpinLock, SpinLockGuard};
use crate::mm::virt_2_phys; use crate::mm::virt_2_phys;

View File

@ -2,7 +2,7 @@
use alloc::{sync::Arc, vec::Vec}; use alloc::{sync::Arc, vec::Vec};
use crate::{ use crate::{
io::{device::LBA_SIZE, disk_info::Partition, SeekFrom}, filesystem::vfs::io::{device::LBA_SIZE, disk_info::Partition, SeekFrom},
kerror, kerror,
libs::vec_cursor::VecCursor, libs::vec_cursor::VecCursor,
syscall::SystemError, syscall::SystemError,

View File

@ -2,7 +2,7 @@
use core::{cmp::min, intrinsics::unlikely}; use core::{cmp::min, intrinsics::unlikely};
use crate::{ use crate::{
io::{device::LBA_SIZE, SeekFrom}, filesystem::vfs::io::{device::LBA_SIZE, SeekFrom},
kwarn, kwarn,
libs::vec_cursor::VecCursor, libs::vec_cursor::VecCursor,
syscall::SystemError, syscall::SystemError,

View File

@ -9,12 +9,12 @@ use alloc::{
}; };
use crate::{ use crate::{
filesystem::vfs::io::{device::LBA_SIZE, disk_info::Partition, SeekFrom},
filesystem::vfs::{ filesystem::vfs::{
core::generate_inode_id, core::generate_inode_id,
file::{FileMode, FilePrivateData}, file::{FileMode, FilePrivateData},
FileSystem, FileType, IndexNode, InodeId, Metadata, PollStatus, FileSystem, FileType, IndexNode, InodeId, Metadata, PollStatus,
}, },
io::{device::LBA_SIZE, disk_info::Partition, SeekFrom},
kerror, kerror,
libs::{ libs::{
spinlock::{SpinLock, SpinLockGuard}, spinlock::{SpinLock, SpinLockGuard},

View File

@ -168,7 +168,7 @@ fn migrate_virtual_filesystem(new_fs: Arc<dyn FileSystem>) -> Result<(), SystemE
#[no_mangle] #[no_mangle]
pub extern "C" fn mount_root_fs() -> i32 { pub extern "C" fn mount_root_fs() -> i32 {
kinfo!("Try to mount FAT32 as root fs..."); kinfo!("Try to mount FAT32 as root fs...");
let partiton: Arc<crate::io::disk_info::Partition> = let partiton: Arc<crate::filesystem::vfs::io::disk_info::Partition> =
ahci::get_disks_by_name("ahci_disk_0".to_string()) ahci::get_disks_by_name("ahci_disk_0".to_string())
.unwrap() .unwrap()
.0 .0

View File

@ -4,8 +4,8 @@ use alloc::{boxed::Box, string::String, sync::Arc, vec::Vec};
use crate::{ use crate::{
arch::asm::current::current_pcb, driver::tty::TtyFilePrivateData, arch::asm::current::current_pcb, driver::tty::TtyFilePrivateData,
filesystem::procfs::ProcfsFilePrivateData, include::bindings::bindings::process_control_block, filesystem::procfs::ProcfsFilePrivateData, filesystem::vfs::io::SeekFrom,
io::SeekFrom, kerror, syscall::SystemError, include::bindings::bindings::process_control_block, kerror, syscall::SystemError,
}; };
use super::{Dirent, FileType, IndexNode, Metadata}; use super::{Dirent, FileType, IndexNode, Metadata};

View File

@ -3,6 +3,7 @@
pub mod core; pub mod core;
pub mod fcntl; pub mod fcntl;
pub mod file; pub mod file;
pub mod io;
pub mod mount; pub mod mount;
pub mod syscall; pub mod syscall;
mod utils; mod utils;

View File

@ -3,8 +3,8 @@ use alloc::{boxed::Box, sync::Arc, vec::Vec};
use crate::{ use crate::{
arch::asm::current::current_pcb, arch::asm::current::current_pcb,
filesystem::vfs::file::FileDescriptorVec, filesystem::vfs::file::FileDescriptorVec,
filesystem::vfs::io::SeekFrom,
include::bindings::bindings::{verify_area, AT_REMOVEDIR, PAGE_4K_SIZE, PROC_MAX_FD_NUM}, include::bindings::bindings::{verify_area, AT_REMOVEDIR, PAGE_4K_SIZE, PROC_MAX_FD_NUM},
io::SeekFrom,
kerror, kerror,
syscall::{Syscall, SystemError}, syscall::{Syscall, SystemError},
time::TimeSpec, time::TimeSpec,

View File

@ -29,7 +29,6 @@ mod include;
mod driver; // 如果driver依赖了libs应该在libs后面导出 mod driver; // 如果driver依赖了libs应该在libs后面导出
mod exception; mod exception;
mod filesystem; mod filesystem;
mod io;
mod ipc; mod ipc;
mod mm; mod mm;
mod net; mod net;

View File

@ -10,7 +10,7 @@ use elf::{endian::AnyEndian, file::FileHeader, segment::ProgramHeader};
use crate::{ use crate::{
arch::MMArch, arch::MMArch,
current_pcb, current_pcb,
io::SeekFrom, filesystem::vfs::io::SeekFrom,
kerror, kerror,
libs::align::page_align_up, libs::align::page_align_up,
mm::{ mm::{

View File

@ -4,7 +4,7 @@ use core::mem::size_of;
use alloc::vec::Vec; use alloc::vec::Vec;
use crate::{io::SeekFrom, syscall::SystemError}; use crate::{filesystem::vfs::io::SeekFrom, syscall::SystemError};
/// @brief 本模块用于为数组提供游标的功能,以简化其操作。 /// @brief 本模块用于为数组提供游标的功能,以简化其操作。
#[derive(Debug)] #[derive(Debug)]

View File

@ -3,11 +3,11 @@ use core::{fmt::Debug, ptr::null};
use alloc::{collections::BTreeMap, string::String, sync::Arc, vec::Vec}; use alloc::{collections::BTreeMap, string::String, sync::Arc, vec::Vec};
use crate::{ use crate::{
filesystem::vfs::io::SeekFrom,
filesystem::vfs::{ filesystem::vfs::{
file::{File, FileMode}, file::{File, FileMode},
ROOT_INODE, ROOT_INODE,
}, },
io::SeekFrom,
libs::elf::ELF_LOADER, libs::elf::ELF_LOADER,
mm::{ mm::{
ucontext::{AddressSpace, UserStack}, ucontext::{AddressSpace, UserStack},

View File

@ -7,6 +7,7 @@ use num_traits::{FromPrimitive, ToPrimitive};
use crate::{ use crate::{
arch::{cpu::cpu_reset, MMArch}, arch::{cpu::cpu_reset, MMArch},
filesystem::vfs::io::SeekFrom,
filesystem::vfs::{ filesystem::vfs::{
fcntl::FcntlCommand, fcntl::FcntlCommand,
file::FileMode, file::FileMode,
@ -14,7 +15,6 @@ use crate::{
MAX_PATHLEN, MAX_PATHLEN,
}, },
include::bindings::bindings::{pid_t, PAGE_2M_SIZE, PAGE_4K_SIZE}, include::bindings::bindings::{pid_t, PAGE_2M_SIZE, PAGE_4K_SIZE},
io::SeekFrom,
kinfo, kinfo,
libs::align::page_align_up, libs::align::page_align_up,
mm::{verify_area, MemoryManagementArch, VirtAddr}, mm::{verify_area, MemoryManagementArch, VirtAddr},