Rename FileDescripter to FileDesc

This commit is contained in:
Fabing Li
2024-05-08 20:01:11 +08:00
committed by Tate, Hongliang Tian
parent 5d28f29a11
commit c2d09675b3
50 changed files with 149 additions and 205 deletions

View File

@ -26,7 +26,7 @@ use crate::{
/// event happens on the file. /// event happens on the file.
pub struct EpollFile { pub struct EpollFile {
// All interesting entries. // All interesting entries.
interest: Mutex<BTreeMap<FileDescripter, Arc<EpollEntry>>>, interest: Mutex<BTreeMap<FileDesc, Arc<EpollEntry>>>,
// Entries that are probably ready (having events happened). // Entries that are probably ready (having events happened).
ready: Mutex<VecDeque<Arc<EpollEntry>>>, ready: Mutex<VecDeque<Arc<EpollEntry>>>,
// EpollFile itself is also pollable // EpollFile itself is also pollable
@ -59,12 +59,7 @@ impl EpollFile {
} }
} }
fn add_interest( fn add_interest(&self, fd: FileDesc, ep_event: EpollEvent, ep_flags: EpollFlags) -> Result<()> {
&self,
fd: FileDescripter,
ep_event: EpollEvent,
ep_flags: EpollFlags,
) -> Result<()> {
self.warn_unsupported_flags(&ep_flags); self.warn_unsupported_flags(&ep_flags);
let current = current!(); let current = current!();
@ -96,7 +91,7 @@ impl EpollFile {
Ok(()) Ok(())
} }
fn del_interest(&self, fd: FileDescripter) -> Result<()> { fn del_interest(&self, fd: FileDesc) -> Result<()> {
let mut interest = self.interest.lock(); let mut interest = self.interest.lock();
let entry = interest let entry = interest
.remove(&fd) .remove(&fd)
@ -123,7 +118,7 @@ impl EpollFile {
fn mod_interest( fn mod_interest(
&self, &self,
fd: FileDescripter, fd: FileDesc,
new_ep_event: EpollEvent, new_ep_event: EpollEvent,
new_ep_flags: EpollFlags, new_ep_flags: EpollFlags,
) -> Result<()> { ) -> Result<()> {
@ -154,7 +149,7 @@ impl EpollFile {
Ok(()) Ok(())
} }
fn unregister_from_file_table_entry(&self, fd: FileDescripter) { fn unregister_from_file_table_entry(&self, fd: FileDesc) {
let current = current!(); let current = current!();
let file_table = current.file_table().lock(); let file_table = current.file_table().lock();
if let Ok(entry) = file_table.get_entry(fd) { if let Ok(entry) = file_table.get_entry(fd) {
@ -361,7 +356,7 @@ impl FileLike for EpollFile {
/// An epoll entry contained in an epoll file. Each epoll entry is added, modified, /// An epoll entry contained in an epoll file. Each epoll entry is added, modified,
/// or deleted by the `EpollCtl` command. /// or deleted by the `EpollCtl` command.
pub struct EpollEntry { pub struct EpollEntry {
fd: FileDescripter, fd: FileDesc,
file: Weak<dyn FileLike>, file: Weak<dyn FileLike>,
inner: Mutex<Inner>, inner: Mutex<Inner>,
// Whether the entry is in the ready list // Whether the entry is in the ready list
@ -382,7 +377,7 @@ struct Inner {
impl EpollEntry { impl EpollEntry {
/// Creates a new epoll entry associated with the given epoll file. /// Creates a new epoll entry associated with the given epoll file.
pub fn new( pub fn new(
fd: FileDescripter, fd: FileDesc,
file: Weak<dyn FileLike>, file: Weak<dyn FileLike>,
event: EpollEvent, event: EpollEvent,
flags: EpollFlags, flags: EpollFlags,
@ -482,7 +477,7 @@ impl EpollEntry {
} }
/// Get the file descriptor associated with the epoll entry. /// Get the file descriptor associated with the epoll entry.
pub fn fd(&self) -> FileDescripter { pub fn fd(&self) -> FileDesc {
self.fd self.fd
} }
} }

View File

@ -1,6 +1,6 @@
// SPDX-License-Identifier: MPL-2.0 // SPDX-License-Identifier: MPL-2.0
use super::file_table::FileDescripter; use super::file_table::FileDesc;
use crate::{events::IoEvents, prelude::*}; use crate::{events::IoEvents, prelude::*};
mod epoll_file; mod epoll_file;
@ -10,9 +10,9 @@ pub use self::epoll_file::EpollFile;
/// An epoll control command. /// An epoll control command.
#[derive(Copy, Clone, Debug, PartialEq)] #[derive(Copy, Clone, Debug, PartialEq)]
pub enum EpollCtl { pub enum EpollCtl {
Add(FileDescripter, EpollEvent, EpollFlags), Add(FileDesc, EpollEvent, EpollFlags),
Del(FileDescripter), Del(FileDesc),
Mod(FileDescripter, EpollEvent, EpollFlags), Mod(FileDesc, EpollEvent, EpollFlags),
} }
bitflags! { bitflags! {

View File

@ -15,7 +15,7 @@ use crate::{
prelude::*, prelude::*,
}; };
pub type FileDescripter = i32; pub type FileDesc = i32;
pub struct FileTable { pub struct FileTable {
table: SlotVec<FileTableEntry>, table: SlotVec<FileTableEntry>,
@ -58,12 +58,7 @@ impl FileTable {
} }
} }
pub fn dup( pub fn dup(&mut self, fd: FileDesc, new_fd: FileDesc, flags: FdFlags) -> Result<FileDesc> {
&mut self,
fd: FileDescripter,
new_fd: FileDescripter,
flags: FdFlags,
) -> Result<FileDescripter> {
let file = self let file = self
.table .table
.get(fd as usize) .get(fd as usize)
@ -88,17 +83,17 @@ impl FileTable {
let min_free_fd = get_min_free_fd(); let min_free_fd = get_min_free_fd();
let entry = FileTableEntry::new(file, flags); let entry = FileTableEntry::new(file, flags);
self.table.put_at(min_free_fd, entry); self.table.put_at(min_free_fd, entry);
Ok(min_free_fd as FileDescripter) Ok(min_free_fd as FileDesc)
} }
pub fn insert(&mut self, item: Arc<dyn FileLike>, flags: FdFlags) -> FileDescripter { pub fn insert(&mut self, item: Arc<dyn FileLike>, flags: FdFlags) -> FileDesc {
let entry = FileTableEntry::new(item, flags); let entry = FileTableEntry::new(item, flags);
self.table.put(entry) as FileDescripter self.table.put(entry) as FileDesc
} }
pub fn insert_at( pub fn insert_at(
&mut self, &mut self,
fd: FileDescripter, fd: FileDesc,
item: Arc<dyn FileLike>, item: Arc<dyn FileLike>,
flags: FdFlags, flags: FdFlags,
) -> Option<Arc<dyn FileLike>> { ) -> Option<Arc<dyn FileLike>> {
@ -112,7 +107,7 @@ impl FileTable {
entry.map(|e| e.file) entry.map(|e| e.file)
} }
pub fn close_file(&mut self, fd: FileDescripter) -> Option<Arc<dyn FileLike>> { pub fn close_file(&mut self, fd: FileDesc) -> Option<Arc<dyn FileLike>> {
let entry = self.table.remove(fd as usize); let entry = self.table.remove(fd as usize);
if entry.is_some() { if entry.is_some() {
let events = FdEvents::Close(fd); let events = FdEvents::Close(fd);
@ -124,10 +119,10 @@ impl FileTable {
pub fn close_all(&mut self) -> Vec<Arc<dyn FileLike>> { pub fn close_all(&mut self) -> Vec<Arc<dyn FileLike>> {
let mut closed_files = Vec::new(); let mut closed_files = Vec::new();
let closed_fds: Vec<FileDescripter> = self let closed_fds: Vec<FileDesc> = self
.table .table
.idxes_and_items() .idxes_and_items()
.map(|(idx, _)| idx as FileDescripter) .map(|(idx, _)| idx as FileDesc)
.collect(); .collect();
for fd in closed_fds { for fd in closed_fds {
let entry = self.table.remove(fd as usize).unwrap(); let entry = self.table.remove(fd as usize).unwrap();
@ -141,12 +136,12 @@ impl FileTable {
pub fn close_files_on_exec(&mut self) -> Vec<Arc<dyn FileLike>> { pub fn close_files_on_exec(&mut self) -> Vec<Arc<dyn FileLike>> {
let mut closed_files = Vec::new(); let mut closed_files = Vec::new();
let closed_fds: Vec<FileDescripter> = self let closed_fds: Vec<FileDesc> = self
.table .table
.idxes_and_items() .idxes_and_items()
.filter_map(|(idx, entry)| { .filter_map(|(idx, entry)| {
if entry.flags().contains(FdFlags::CLOEXEC) { if entry.flags().contains(FdFlags::CLOEXEC) {
Some(idx as FileDescripter) Some(idx as FileDesc)
} else { } else {
None None
} }
@ -162,30 +157,30 @@ impl FileTable {
closed_files closed_files
} }
pub fn get_file(&self, fd: FileDescripter) -> Result<&Arc<dyn FileLike>> { pub fn get_file(&self, fd: FileDesc) -> Result<&Arc<dyn FileLike>> {
self.table self.table
.get(fd as usize) .get(fd as usize)
.map(|entry| &entry.file) .map(|entry| &entry.file)
.ok_or(Error::with_message(Errno::EBADF, "fd not exits")) .ok_or(Error::with_message(Errno::EBADF, "fd not exits"))
} }
pub fn get_socket(&self, sockfd: FileDescripter) -> Result<Arc<dyn Socket>> { pub fn get_socket(&self, sockfd: FileDesc) -> Result<Arc<dyn Socket>> {
let file_like = self.get_file(sockfd)?.clone(); let file_like = self.get_file(sockfd)?.clone();
file_like file_like
.as_socket() .as_socket()
.ok_or_else(|| Error::with_message(Errno::ENOTSOCK, "the fd is not a socket")) .ok_or_else(|| Error::with_message(Errno::ENOTSOCK, "the fd is not a socket"))
} }
pub fn get_entry(&self, fd: FileDescripter) -> Result<&FileTableEntry> { pub fn get_entry(&self, fd: FileDesc) -> Result<&FileTableEntry> {
self.table self.table
.get(fd as usize) .get(fd as usize)
.ok_or(Error::with_message(Errno::EBADF, "fd not exits")) .ok_or(Error::with_message(Errno::EBADF, "fd not exits"))
} }
pub fn fds_and_files(&self) -> impl Iterator<Item = (FileDescripter, &'_ Arc<dyn FileLike>)> { pub fn fds_and_files(&self) -> impl Iterator<Item = (FileDesc, &'_ Arc<dyn FileLike>)> {
self.table self.table
.idxes_and_items() .idxes_and_items()
.map(|(idx, entry)| (idx as FileDescripter, &entry.file)) .map(|(idx, entry)| (idx as FileDesc, &entry.file))
} }
pub fn register_observer(&self, observer: Weak<dyn Observer<FdEvents>>) { pub fn register_observer(&self, observer: Weak<dyn Observer<FdEvents>>) {
@ -219,7 +214,7 @@ impl Drop for FileTable {
#[derive(Copy, Clone)] #[derive(Copy, Clone)]
pub enum FdEvents { pub enum FdEvents {
Close(FileDescripter), Close(FileDesc),
DropFileTable, DropFileTable,
} }

View File

@ -3,7 +3,7 @@
use alloc::str; use alloc::str;
use super::{ use super::{
file_table::FileDescripter, file_table::FileDesc,
inode_handle::InodeHandle, inode_handle::InodeHandle,
rootfs::root_mount, rootfs::root_mount,
utils::{ utils::{
@ -234,7 +234,7 @@ impl FsResolver {
} }
/// Lookup dentry from the giving fd /// Lookup dentry from the giving fd
pub fn lookup_from_fd(&self, fd: FileDescripter) -> Result<Arc<Dentry>> { pub fn lookup_from_fd(&self, fd: FileDesc) -> Result<Arc<Dentry>> {
let current = current!(); let current = current!();
let file_table = current.file_table().lock(); let file_table = current.file_table().lock();
let inode_handle = file_table let inode_handle = file_table
@ -317,7 +317,7 @@ impl FsResolver {
} }
} }
pub const AT_FDCWD: FileDescripter = -100; pub const AT_FDCWD: FileDesc = -100;
#[derive(Debug)] #[derive(Debug)]
pub struct FsPath<'a> { pub struct FsPath<'a> {
@ -333,13 +333,13 @@ enum FsPathInner<'a> {
// Cwd // Cwd
Cwd, Cwd,
// path is relative to DirFd // path is relative to DirFd
FdRelative(FileDescripter, &'a str), FdRelative(FileDesc, &'a str),
// Fd // Fd
Fd(FileDescripter), Fd(FileDesc),
} }
impl<'a> FsPath<'a> { impl<'a> FsPath<'a> {
pub fn new(dirfd: FileDescripter, path: &'a str) -> Result<Self> { pub fn new(dirfd: FileDesc, path: &'a str) -> Result<Self> {
if path.len() > PATH_MAX { if path.len() > PATH_MAX {
return_errno_with_message!(Errno::ENAMETOOLONG, "path name too long"); return_errno_with_message!(Errno::ENAMETOOLONG, "path name too long");
} }

View File

@ -1,7 +1,7 @@
// SPDX-License-Identifier: MPL-2.0 // SPDX-License-Identifier: MPL-2.0
use super::*; use super::*;
use crate::fs::{file_handle::FileLike, file_table::FileDescripter, inode_handle::InodeHandle}; use crate::fs::{file_handle::FileLike, file_table::FileDesc, inode_handle::InodeHandle};
/// Represents the inode at `/proc/[pid]/fd`. /// Represents the inode at `/proc/[pid]/fd`.
pub struct FdDirOps(Arc<Process>); pub struct FdDirOps(Arc<Process>);
@ -36,7 +36,7 @@ impl DirOps for FdDirOps {
fn lookup_child(&self, this_ptr: Weak<dyn Inode>, name: &str) -> Result<Arc<dyn Inode>> { fn lookup_child(&self, this_ptr: Weak<dyn Inode>, name: &str) -> Result<Arc<dyn Inode>> {
let file = { let file = {
let fd = name let fd = name
.parse::<FileDescripter>() .parse::<FileDesc>()
.map_err(|_| Error::new(Errno::ENOENT))?; .map_err(|_| Error::new(Errno::ENOENT))?;
let file_table = self.0.file_table().lock(); let file_table = self.0.file_table().lock();
file_table file_table

View File

@ -2,14 +2,14 @@
use super::{SyscallReturn, SYS_ACCEPT}; use super::{SyscallReturn, SYS_ACCEPT};
use crate::{ use crate::{
fs::file_table::{FdFlags, FileDescripter}, fs::file_table::{FdFlags, FileDesc},
log_syscall_entry, log_syscall_entry,
prelude::*, prelude::*,
util::net::{get_socket_from_fd, write_socket_addr_to_user}, util::net::{get_socket_from_fd, write_socket_addr_to_user},
}; };
pub fn sys_accept( pub fn sys_accept(
sockfd: FileDescripter, sockfd: FileDesc,
sockaddr_ptr: Vaddr, sockaddr_ptr: Vaddr,
addrlen_ptr: Vaddr, addrlen_ptr: Vaddr,
) -> Result<SyscallReturn> { ) -> Result<SyscallReturn> {

View File

@ -2,17 +2,13 @@
use super::{SyscallReturn, SYS_BIND}; use super::{SyscallReturn, SYS_BIND};
use crate::{ use crate::{
fs::file_table::FileDescripter, fs::file_table::FileDesc,
log_syscall_entry, log_syscall_entry,
prelude::*, prelude::*,
util::net::{get_socket_from_fd, read_socket_addr_from_user}, util::net::{get_socket_from_fd, read_socket_addr_from_user},
}; };
pub fn sys_bind( pub fn sys_bind(sockfd: FileDesc, sockaddr_ptr: Vaddr, addrlen: u32) -> Result<SyscallReturn> {
sockfd: FileDescripter,
sockaddr_ptr: Vaddr,
addrlen: u32,
) -> Result<SyscallReturn> {
log_syscall_entry!(SYS_BIND); log_syscall_entry!(SYS_BIND);
let socket_addr = read_socket_addr_from_user(sockaddr_ptr, addrlen as usize)?; let socket_addr = read_socket_addr_from_user(sockaddr_ptr, addrlen as usize)?;
debug!("sockfd = {sockfd}, socket_addr = {socket_addr:?}"); debug!("sockfd = {sockfd}, socket_addr = {socket_addr:?}");

View File

@ -2,10 +2,7 @@
use super::{SyscallReturn, SYS_CHDIR, SYS_FCHDIR}; use super::{SyscallReturn, SYS_CHDIR, SYS_FCHDIR};
use crate::{ use crate::{
fs::{ fs::{file_table::FileDesc, fs_resolver::FsPath, inode_handle::InodeHandle, utils::InodeType},
file_table::FileDescripter, fs_resolver::FsPath, inode_handle::InodeHandle,
utils::InodeType,
},
log_syscall_entry, log_syscall_entry,
prelude::*, prelude::*,
syscall::constants::MAX_FILENAME_LEN, syscall::constants::MAX_FILENAME_LEN,
@ -34,7 +31,7 @@ pub fn sys_chdir(pathname_addr: Vaddr) -> Result<SyscallReturn> {
Ok(SyscallReturn::Return(0)) Ok(SyscallReturn::Return(0))
} }
pub fn sys_fchdir(fd: FileDescripter) -> Result<SyscallReturn> { pub fn sys_fchdir(fd: FileDesc) -> Result<SyscallReturn> {
log_syscall_entry!(SYS_FCHDIR); log_syscall_entry!(SYS_FCHDIR);
debug!("fd = {}", fd); debug!("fd = {}", fd);

View File

@ -3,7 +3,7 @@
use super::{SyscallReturn, SYS_FCHMOD, SYS_FCHMODAT}; use super::{SyscallReturn, SYS_FCHMOD, SYS_FCHMODAT};
use crate::{ use crate::{
fs::{ fs::{
file_table::FileDescripter, file_table::FileDesc,
fs_resolver::{FsPath, AT_FDCWD}, fs_resolver::{FsPath, AT_FDCWD},
utils::{InodeMode, PATH_MAX}, utils::{InodeMode, PATH_MAX},
}, },
@ -12,7 +12,7 @@ use crate::{
util::read_cstring_from_user, util::read_cstring_from_user,
}; };
pub fn sys_fchmod(fd: FileDescripter, mode: u16) -> Result<SyscallReturn> { pub fn sys_fchmod(fd: FileDesc, mode: u16) -> Result<SyscallReturn> {
log_syscall_entry!(SYS_FCHMOD); log_syscall_entry!(SYS_FCHMOD);
debug!("fd = {}, mode = 0o{:o}", fd, mode); debug!("fd = {}, mode = 0o{:o}", fd, mode);
@ -29,7 +29,7 @@ pub fn sys_chmod(path_ptr: Vaddr, mode: u16) -> Result<SyscallReturn> {
// Glibc handles the `flags` argument, so we just ignore it. // Glibc handles the `flags` argument, so we just ignore it.
pub fn sys_fchmodat( pub fn sys_fchmodat(
dirfd: FileDescripter, dirfd: FileDesc,
path_ptr: Vaddr, path_ptr: Vaddr,
mode: u16, mode: u16,
/* flags: u32, */ /* flags: u32, */

View File

@ -3,7 +3,7 @@
use super::{SyscallReturn, SYS_FCHOWN, SYS_FCHOWNAT}; use super::{SyscallReturn, SYS_FCHOWN, SYS_FCHOWNAT};
use crate::{ use crate::{
fs::{ fs::{
file_table::FileDescripter, file_table::FileDesc,
fs_resolver::{FsPath, AT_FDCWD}, fs_resolver::{FsPath, AT_FDCWD},
utils::PATH_MAX, utils::PATH_MAX,
}, },
@ -13,7 +13,7 @@ use crate::{
util::read_cstring_from_user, util::read_cstring_from_user,
}; };
pub fn sys_fchown(fd: FileDescripter, uid: i32, gid: i32) -> Result<SyscallReturn> { pub fn sys_fchown(fd: FileDesc, uid: i32, gid: i32) -> Result<SyscallReturn> {
log_syscall_entry!(SYS_FCHOWN); log_syscall_entry!(SYS_FCHOWN);
debug!("fd = {}, uid = {}, gid = {}", fd, uid, gid); debug!("fd = {}, uid = {}, gid = {}", fd, uid, gid);
@ -50,7 +50,7 @@ pub fn sys_lchown(path_ptr: Vaddr, uid: i32, gid: i32) -> Result<SyscallReturn>
} }
pub fn sys_fchownat( pub fn sys_fchownat(
dirfd: FileDescripter, dirfd: FileDesc,
path_ptr: Vaddr, path_ptr: Vaddr,
uid: i32, uid: i32,
gid: i32, gid: i32,

View File

@ -1,9 +1,9 @@
// SPDX-License-Identifier: MPL-2.0 // SPDX-License-Identifier: MPL-2.0
use super::{SyscallReturn, SYS_CLOSE}; use super::{SyscallReturn, SYS_CLOSE};
use crate::{fs::file_table::FileDescripter, log_syscall_entry, prelude::*}; use crate::{fs::file_table::FileDesc, log_syscall_entry, prelude::*};
pub fn sys_close(fd: FileDescripter) -> Result<SyscallReturn> { pub fn sys_close(fd: FileDesc) -> Result<SyscallReturn> {
log_syscall_entry!(SYS_CLOSE); log_syscall_entry!(SYS_CLOSE);
debug!("fd = {}", fd); debug!("fd = {}", fd);
let current = current!(); let current = current!();

View File

@ -2,17 +2,13 @@
use super::{SyscallReturn, SYS_CONNECT}; use super::{SyscallReturn, SYS_CONNECT};
use crate::{ use crate::{
fs::file_table::FileDescripter, fs::file_table::FileDesc,
log_syscall_entry, log_syscall_entry,
prelude::*, prelude::*,
util::net::{get_socket_from_fd, read_socket_addr_from_user}, util::net::{get_socket_from_fd, read_socket_addr_from_user},
}; };
pub fn sys_connect( pub fn sys_connect(sockfd: FileDesc, sockaddr_ptr: Vaddr, addr_len: u32) -> Result<SyscallReturn> {
sockfd: FileDescripter,
sockaddr_ptr: Vaddr,
addr_len: u32,
) -> Result<SyscallReturn> {
log_syscall_entry!(SYS_CONNECT); log_syscall_entry!(SYS_CONNECT);
let socket_addr = read_socket_addr_from_user(sockaddr_ptr, addr_len as _)?; let socket_addr = read_socket_addr_from_user(sockaddr_ptr, addr_len as _)?;
debug!("fd = {sockfd}, socket_addr = {socket_addr:?}"); debug!("fd = {sockfd}, socket_addr = {socket_addr:?}");

View File

@ -2,12 +2,12 @@
use super::{SyscallReturn, SYS_DUP, SYS_DUP2}; use super::{SyscallReturn, SYS_DUP, SYS_DUP2};
use crate::{ use crate::{
fs::file_table::{FdFlags, FileDescripter}, fs::file_table::{FdFlags, FileDesc},
log_syscall_entry, log_syscall_entry,
prelude::*, prelude::*,
}; };
pub fn sys_dup(old_fd: FileDescripter) -> Result<SyscallReturn> { pub fn sys_dup(old_fd: FileDesc) -> Result<SyscallReturn> {
log_syscall_entry!(SYS_DUP); log_syscall_entry!(SYS_DUP);
debug!("old_fd = {}", old_fd); debug!("old_fd = {}", old_fd);
@ -19,7 +19,7 @@ pub fn sys_dup(old_fd: FileDescripter) -> Result<SyscallReturn> {
Ok(SyscallReturn::Return(new_fd as _)) Ok(SyscallReturn::Return(new_fd as _))
} }
pub fn sys_dup2(old_fd: FileDescripter, new_fd: FileDescripter) -> Result<SyscallReturn> { pub fn sys_dup2(old_fd: FileDesc, new_fd: FileDesc) -> Result<SyscallReturn> {
log_syscall_entry!(SYS_DUP2); log_syscall_entry!(SYS_DUP2);
debug!("old_fd = {}, new_fd = {}", old_fd, new_fd); debug!("old_fd = {}, new_fd = {}", old_fd, new_fd);

View File

@ -7,7 +7,7 @@ use crate::{
events::IoEvents, events::IoEvents,
fs::{ fs::{
epoll::{EpollCtl, EpollEvent, EpollFile, EpollFlags}, epoll::{EpollCtl, EpollEvent, EpollFile, EpollFlags},
file_table::{FdFlags, FileDescripter}, file_table::{FdFlags, FileDesc},
utils::CreationFlags, utils::CreationFlags,
}, },
log_syscall_entry, log_syscall_entry,
@ -47,9 +47,9 @@ pub fn sys_epoll_create1(flags: u32) -> Result<SyscallReturn> {
} }
pub fn sys_epoll_ctl( pub fn sys_epoll_ctl(
epfd: FileDescripter, epfd: FileDesc,
op: i32, op: i32,
fd: FileDescripter, fd: FileDesc,
event_addr: Vaddr, event_addr: Vaddr,
) -> Result<SyscallReturn> { ) -> Result<SyscallReturn> {
log_syscall_entry!(SYS_EPOLL_CTL); log_syscall_entry!(SYS_EPOLL_CTL);
@ -93,7 +93,7 @@ pub fn sys_epoll_ctl(
} }
pub fn sys_epoll_wait( pub fn sys_epoll_wait(
epfd: FileDescripter, epfd: FileDesc,
events_addr: Vaddr, events_addr: Vaddr,
max_events: i32, max_events: i32,
timeout: i32, timeout: i32,
@ -138,7 +138,7 @@ pub fn sys_epoll_wait(
} }
pub fn sys_epoll_pwait( pub fn sys_epoll_pwait(
epfd: FileDescripter, epfd: FileDesc,
events_addr: Vaddr, events_addr: Vaddr,
max_events: i32, max_events: i32,
timeout: i32, timeout: i32,

View File

@ -6,7 +6,7 @@ use aster_rights::WriteOp;
use super::{constants::*, SyscallReturn}; use super::{constants::*, SyscallReturn};
use crate::{ use crate::{
fs::{ fs::{
file_table::FileDescripter, file_table::FileDesc,
fs_resolver::{FsPath, AT_FDCWD}, fs_resolver::{FsPath, AT_FDCWD},
utils::{Dentry, InodeType}, utils::{Dentry, InodeType},
}, },
@ -38,7 +38,7 @@ pub fn sys_execve(
} }
pub fn sys_execveat( pub fn sys_execveat(
dfd: FileDescripter, dfd: FileDesc,
filename_ptr: Vaddr, filename_ptr: Vaddr,
argv_ptr_ptr: Vaddr, argv_ptr_ptr: Vaddr,
envp_ptr_ptr: Vaddr, envp_ptr_ptr: Vaddr,
@ -58,7 +58,7 @@ pub fn sys_execveat(
} }
fn lookup_executable_file( fn lookup_executable_file(
dfd: FileDescripter, dfd: FileDesc,
filename: String, filename: String,
flags: OpenFlags, flags: OpenFlags,
) -> Result<Arc<Dentry>> { ) -> Result<Arc<Dentry>> {

View File

@ -3,14 +3,14 @@
use super::{SyscallReturn, SYS_FCNTL}; use super::{SyscallReturn, SYS_FCNTL};
use crate::{ use crate::{
fs::{ fs::{
file_table::{FdFlags, FileDescripter}, file_table::{FdFlags, FileDesc},
utils::StatusFlags, utils::StatusFlags,
}, },
log_syscall_entry, log_syscall_entry,
prelude::*, prelude::*,
}; };
pub fn sys_fcntl(fd: FileDescripter, cmd: i32, arg: u64) -> Result<SyscallReturn> { pub fn sys_fcntl(fd: FileDesc, cmd: i32, arg: u64) -> Result<SyscallReturn> {
log_syscall_entry!(SYS_FCNTL); log_syscall_entry!(SYS_FCNTL);
let fcntl_cmd = FcntlCmd::try_from(cmd)?; let fcntl_cmd = FcntlCmd::try_from(cmd)?;
debug!("fd = {}, cmd = {:?}, arg = {}", fd, fcntl_cmd, arg); debug!("fd = {}, cmd = {:?}, arg = {}", fd, fcntl_cmd, arg);
@ -18,13 +18,13 @@ pub fn sys_fcntl(fd: FileDescripter, cmd: i32, arg: u64) -> Result<SyscallReturn
FcntlCmd::F_DUPFD => { FcntlCmd::F_DUPFD => {
let current = current!(); let current = current!();
let mut file_table = current.file_table().lock(); let mut file_table = current.file_table().lock();
let new_fd = file_table.dup(fd, arg as FileDescripter, FdFlags::empty())?; let new_fd = file_table.dup(fd, arg as FileDesc, FdFlags::empty())?;
Ok(SyscallReturn::Return(new_fd as _)) Ok(SyscallReturn::Return(new_fd as _))
} }
FcntlCmd::F_DUPFD_CLOEXEC => { FcntlCmd::F_DUPFD_CLOEXEC => {
let current = current!(); let current = current!();
let mut file_table = current.file_table().lock(); let mut file_table = current.file_table().lock();
let new_fd = file_table.dup(fd, arg as FileDescripter, FdFlags::CLOEXEC)?; let new_fd = file_table.dup(fd, arg as FileDesc, FdFlags::CLOEXEC)?;
Ok(SyscallReturn::Return(new_fd as _)) Ok(SyscallReturn::Return(new_fd as _))
} }
FcntlCmd::F_GETFD => { FcntlCmd::F_GETFD => {

View File

@ -2,12 +2,12 @@
use super::{SyscallReturn, SYS_FSYNC}; use super::{SyscallReturn, SYS_FSYNC};
use crate::{ use crate::{
fs::{file_table::FileDescripter, inode_handle::InodeHandle}, fs::{file_table::FileDesc, inode_handle::InodeHandle},
log_syscall_entry, log_syscall_entry,
prelude::*, prelude::*,
}; };
pub fn sys_fsync(fd: FileDescripter) -> Result<SyscallReturn> { pub fn sys_fsync(fd: FileDesc) -> Result<SyscallReturn> {
log_syscall_entry!(SYS_FSYNC); log_syscall_entry!(SYS_FSYNC);
debug!("fd = {}", fd); debug!("fd = {}", fd);

View File

@ -5,7 +5,7 @@ use core::marker::PhantomData;
use super::{SyscallReturn, SYS_GETDENTS64}; use super::{SyscallReturn, SYS_GETDENTS64};
use crate::{ use crate::{
fs::{ fs::{
file_table::FileDescripter, file_table::FileDesc,
inode_handle::InodeHandle, inode_handle::InodeHandle,
utils::{DirentVisitor, InodeType}, utils::{DirentVisitor, InodeType},
}, },
@ -14,11 +14,7 @@ use crate::{
util::write_bytes_to_user, util::write_bytes_to_user,
}; };
pub fn sys_getdents64( pub fn sys_getdents64(fd: FileDesc, buf_addr: Vaddr, buf_len: usize) -> Result<SyscallReturn> {
fd: FileDescripter,
buf_addr: Vaddr,
buf_len: usize,
) -> Result<SyscallReturn> {
log_syscall_entry!(SYS_GETDENTS64); log_syscall_entry!(SYS_GETDENTS64);
debug!( debug!(
"fd = {}, buf_addr = 0x{:x}, buf_len = 0x{:x}", "fd = {}, buf_addr = 0x{:x}, buf_len = 0x{:x}",

View File

@ -2,17 +2,13 @@
use super::{SyscallReturn, SYS_GETPEERNAME}; use super::{SyscallReturn, SYS_GETPEERNAME};
use crate::{ use crate::{
fs::file_table::FileDescripter, fs::file_table::FileDesc,
log_syscall_entry, log_syscall_entry,
prelude::*, prelude::*,
util::net::{get_socket_from_fd, write_socket_addr_to_user}, util::net::{get_socket_from_fd, write_socket_addr_to_user},
}; };
pub fn sys_getpeername( pub fn sys_getpeername(sockfd: FileDesc, addr: Vaddr, addrlen_ptr: Vaddr) -> Result<SyscallReturn> {
sockfd: FileDescripter,
addr: Vaddr,
addrlen_ptr: Vaddr,
) -> Result<SyscallReturn> {
log_syscall_entry!(SYS_GETPEERNAME); log_syscall_entry!(SYS_GETPEERNAME);
debug!("sockfd = {sockfd}, addr = 0x{addr:x}, addrlen_ptr = 0x{addrlen_ptr:x}"); debug!("sockfd = {sockfd}, addr = 0x{addr:x}, addrlen_ptr = 0x{addrlen_ptr:x}");

View File

@ -2,17 +2,13 @@
use super::{SyscallReturn, SYS_GETSOCKNAME}; use super::{SyscallReturn, SYS_GETSOCKNAME};
use crate::{ use crate::{
fs::file_table::FileDescripter, fs::file_table::FileDesc,
log_syscall_entry, log_syscall_entry,
prelude::*, prelude::*,
util::net::{get_socket_from_fd, write_socket_addr_to_user}, util::net::{get_socket_from_fd, write_socket_addr_to_user},
}; };
pub fn sys_getsockname( pub fn sys_getsockname(sockfd: FileDesc, addr: Vaddr, addrlen_ptr: Vaddr) -> Result<SyscallReturn> {
sockfd: FileDescripter,
addr: Vaddr,
addrlen_ptr: Vaddr,
) -> Result<SyscallReturn> {
log_syscall_entry!(SYS_GETSOCKNAME); log_syscall_entry!(SYS_GETSOCKNAME);
debug!("sockfd = {sockfd}, addr = 0x{addr:x}, addrlen_ptr = 0x{addrlen_ptr:x}"); debug!("sockfd = {sockfd}, addr = 0x{addr:x}, addrlen_ptr = 0x{addrlen_ptr:x}");

View File

@ -2,7 +2,7 @@
use super::{SyscallReturn, SYS_SETSOCKOPT}; use super::{SyscallReturn, SYS_SETSOCKOPT};
use crate::{ use crate::{
fs::file_table::FileDescripter, fs::file_table::FileDesc,
log_syscall_entry, log_syscall_entry,
prelude::*, prelude::*,
util::{ util::{
@ -12,7 +12,7 @@ use crate::{
}; };
pub fn sys_getsockopt( pub fn sys_getsockopt(
sockfd: FileDescripter, sockfd: FileDesc,
level: i32, level: i32,
optname: i32, optname: i32,
optval: Vaddr, optval: Vaddr,

View File

@ -2,12 +2,12 @@
use super::{SyscallReturn, SYS_IOCTL}; use super::{SyscallReturn, SYS_IOCTL};
use crate::{ use crate::{
fs::{file_table::FileDescripter, utils::IoctlCmd}, fs::{file_table::FileDesc, utils::IoctlCmd},
log_syscall_entry, log_syscall_entry,
prelude::*, prelude::*,
}; };
pub fn sys_ioctl(fd: FileDescripter, cmd: u32, arg: Vaddr) -> Result<SyscallReturn> { pub fn sys_ioctl(fd: FileDesc, cmd: u32, arg: Vaddr) -> Result<SyscallReturn> {
log_syscall_entry!(SYS_IOCTL); log_syscall_entry!(SYS_IOCTL);
let ioctl_cmd = IoctlCmd::try_from(cmd)?; let ioctl_cmd = IoctlCmd::try_from(cmd)?;
debug!( debug!(

View File

@ -3,7 +3,7 @@
use super::{SyscallReturn, SYS_LINKAT}; use super::{SyscallReturn, SYS_LINKAT};
use crate::{ use crate::{
fs::{ fs::{
file_table::FileDescripter, file_table::FileDesc,
fs_resolver::{FsPath, AT_FDCWD}, fs_resolver::{FsPath, AT_FDCWD},
}, },
log_syscall_entry, log_syscall_entry,
@ -13,9 +13,9 @@ use crate::{
}; };
pub fn sys_linkat( pub fn sys_linkat(
old_dirfd: FileDescripter, old_dirfd: FileDesc,
old_pathname_addr: Vaddr, old_pathname_addr: Vaddr,
new_dirfd: FileDescripter, new_dirfd: FileDesc,
new_pathname_addr: Vaddr, new_pathname_addr: Vaddr,
flags: u32, flags: u32,
) -> Result<SyscallReturn> { ) -> Result<SyscallReturn> {

View File

@ -2,10 +2,10 @@
use super::{SyscallReturn, SYS_LISTEN}; use super::{SyscallReturn, SYS_LISTEN};
use crate::{ use crate::{
fs::file_table::FileDescripter, log_syscall_entry, prelude::*, util::net::get_socket_from_fd, fs::file_table::FileDesc, log_syscall_entry, prelude::*, util::net::get_socket_from_fd,
}; };
pub fn sys_listen(sockfd: FileDescripter, backlog: i32) -> Result<SyscallReturn> { pub fn sys_listen(sockfd: FileDesc, backlog: i32) -> Result<SyscallReturn> {
log_syscall_entry!(SYS_LISTEN); log_syscall_entry!(SYS_LISTEN);
debug!("sockfd = {sockfd}, backlog = {backlog}"); debug!("sockfd = {sockfd}, backlog = {backlog}");

View File

@ -2,12 +2,12 @@
use super::{SyscallReturn, SYS_LSEEK}; use super::{SyscallReturn, SYS_LSEEK};
use crate::{ use crate::{
fs::{file_table::FileDescripter, utils::SeekFrom}, fs::{file_table::FileDesc, utils::SeekFrom},
log_syscall_entry, log_syscall_entry,
prelude::*, prelude::*,
}; };
pub fn sys_lseek(fd: FileDescripter, offset: isize, whence: u32) -> Result<SyscallReturn> { pub fn sys_lseek(fd: FileDesc, offset: isize, whence: u32) -> Result<SyscallReturn> {
log_syscall_entry!(SYS_LSEEK); log_syscall_entry!(SYS_LSEEK);
debug!("fd = {}, offset = {}, whence = {}", fd, offset, whence); debug!("fd = {}, offset = {}, whence = {}", fd, offset, whence);
let seek_from = match whence { let seek_from = match whence {

View File

@ -3,7 +3,7 @@
use super::{SyscallReturn, SYS_MKDIRAT}; use super::{SyscallReturn, SYS_MKDIRAT};
use crate::{ use crate::{
fs::{ fs::{
file_table::FileDescripter, file_table::FileDesc,
fs_resolver::{FsPath, AT_FDCWD}, fs_resolver::{FsPath, AT_FDCWD},
utils::{InodeMode, InodeType}, utils::{InodeMode, InodeType},
}, },
@ -13,11 +13,7 @@ use crate::{
util::read_cstring_from_user, util::read_cstring_from_user,
}; };
pub fn sys_mkdirat( pub fn sys_mkdirat(dirfd: FileDesc, pathname_addr: Vaddr, mode: u16) -> Result<SyscallReturn> {
dirfd: FileDescripter,
pathname_addr: Vaddr,
mode: u16,
) -> Result<SyscallReturn> {
log_syscall_entry!(SYS_MKDIRAT); log_syscall_entry!(SYS_MKDIRAT);
let pathname = read_cstring_from_user(pathname_addr, MAX_FILENAME_LEN)?; let pathname = read_cstring_from_user(pathname_addr, MAX_FILENAME_LEN)?;
debug!( debug!(

View File

@ -8,7 +8,7 @@ use aster_rights::Rights;
use super::SyscallReturn; use super::SyscallReturn;
use crate::{ use crate::{
fs::file_table::FileDescripter, fs::file_table::FileDesc,
log_syscall_entry, log_syscall_entry,
prelude::*, prelude::*,
syscall::SYS_MMAP, syscall::SYS_MMAP,
@ -45,7 +45,7 @@ fn do_sys_mmap(
len: usize, len: usize,
vm_perm: VmPerm, vm_perm: VmPerm,
option: MMapOptions, option: MMapOptions,
fd: FileDescripter, fd: FileDesc,
offset: usize, offset: usize,
) -> Result<Vaddr> { ) -> Result<Vaddr> {
debug!( debug!(
@ -94,7 +94,7 @@ fn alloc_anonyous_vmo(len: usize) -> Result<Vmo> {
} }
fn alloc_filebacked_vmo( fn alloc_filebacked_vmo(
fd: FileDescripter, fd: FileDesc,
len: usize, len: usize,
offset: usize, offset: usize,
option: &MMapOptions, option: &MMapOptions,

View File

@ -4,7 +4,7 @@ use super::{SyscallReturn, SYS_OPENAT};
use crate::{ use crate::{
fs::{ fs::{
file_handle::FileLike, file_handle::FileLike,
file_table::{FdFlags, FileDescripter}, file_table::{FdFlags, FileDesc},
fs_resolver::{FsPath, AT_FDCWD}, fs_resolver::{FsPath, AT_FDCWD},
utils::CreationFlags, utils::CreationFlags,
}, },
@ -15,7 +15,7 @@ use crate::{
}; };
pub fn sys_openat( pub fn sys_openat(
dirfd: FileDescripter, dirfd: FileDesc,
pathname_addr: Vaddr, pathname_addr: Vaddr,
flags: u32, flags: u32,
mode: u16, mode: u16,

View File

@ -3,7 +3,7 @@
use super::{SyscallReturn, SYS_PIPE2}; use super::{SyscallReturn, SYS_PIPE2};
use crate::{ use crate::{
fs::{ fs::{
file_table::{FdFlags, FileDescripter}, file_table::{FdFlags, FileDesc},
pipe::{PipeReader, PipeWriter}, pipe::{PipeReader, PipeWriter},
utils::{Channel, CreationFlags, StatusFlags}, utils::{Channel, CreationFlags, StatusFlags},
}, },
@ -50,8 +50,8 @@ pub fn sys_pipe(fds: Vaddr) -> Result<SyscallReturn> {
#[derive(Debug, Clone, Copy, Pod)] #[derive(Debug, Clone, Copy, Pod)]
#[repr(C)] #[repr(C)]
struct PipeFds { struct PipeFds {
reader_fd: FileDescripter, reader_fd: FileDesc,
writer_fd: FileDescripter, writer_fd: FileDesc,
} }
const PIPE_BUF_SIZE: usize = 1024 * 1024; const PIPE_BUF_SIZE: usize = 1024 * 1024;

View File

@ -5,7 +5,7 @@ use core::{cell::Cell, time::Duration};
use super::{SyscallReturn, SYS_POLL}; use super::{SyscallReturn, SYS_POLL};
use crate::{ use crate::{
events::IoEvents, events::IoEvents,
fs::file_table::FileDescripter, fs::file_table::FileDesc,
log_syscall_entry, log_syscall_entry,
prelude::*, prelude::*,
process::signal::Poller, process::signal::Poller,
@ -112,13 +112,13 @@ struct c_pollfd {
#[derive(Debug, Clone)] #[derive(Debug, Clone)]
pub struct PollFd { pub struct PollFd {
fd: Option<FileDescripter>, fd: Option<FileDesc>,
events: IoEvents, events: IoEvents,
revents: Cell<IoEvents>, revents: Cell<IoEvents>,
} }
impl PollFd { impl PollFd {
pub fn new(fd: Option<FileDescripter>, events: IoEvents) -> Self { pub fn new(fd: Option<FileDesc>, events: IoEvents) -> Self {
let revents = Cell::new(IoEvents::empty()); let revents = Cell::new(IoEvents::empty());
Self { Self {
fd, fd,
@ -127,7 +127,7 @@ impl PollFd {
} }
} }
pub fn fd(&self) -> Option<FileDescripter> { pub fn fd(&self) -> Option<FileDesc> {
self.fd self.fd
} }
@ -143,7 +143,7 @@ impl PollFd {
impl From<c_pollfd> for PollFd { impl From<c_pollfd> for PollFd {
fn from(raw: c_pollfd) -> Self { fn from(raw: c_pollfd) -> Self {
let fd = if raw.fd >= 0 { let fd = if raw.fd >= 0 {
Some(raw.fd as FileDescripter) Some(raw.fd as FileDesc)
} else { } else {
None None
}; };

View File

@ -2,18 +2,13 @@
use super::{SyscallReturn, SYS_PREAD64}; use super::{SyscallReturn, SYS_PREAD64};
use crate::{ use crate::{
fs::{file_table::FileDescripter, utils::SeekFrom}, fs::{file_table::FileDesc, utils::SeekFrom},
log_syscall_entry, log_syscall_entry,
prelude::*, prelude::*,
util::write_bytes_to_user, util::write_bytes_to_user,
}; };
pub fn sys_pread64( pub fn sys_pread64(fd: FileDesc, buf_ptr: Vaddr, count: usize, pos: i64) -> Result<SyscallReturn> {
fd: FileDescripter,
buf_ptr: Vaddr,
count: usize,
pos: i64,
) -> Result<SyscallReturn> {
log_syscall_entry!(SYS_PREAD64); log_syscall_entry!(SYS_PREAD64);
debug!( debug!(
"fd = {}, buf = 0x{:x}, count = 0x{:x}, pos = 0x{:x}", "fd = {}, buf = 0x{:x}, count = 0x{:x}, pos = 0x{:x}",

View File

@ -1,11 +1,9 @@
// SPDX-License-Identifier: MPL-2.0 // SPDX-License-Identifier: MPL-2.0
use super::{SyscallReturn, SYS_READ}; use super::{SyscallReturn, SYS_READ};
use crate::{ use crate::{fs::file_table::FileDesc, log_syscall_entry, prelude::*, util::write_bytes_to_user};
fs::file_table::FileDescripter, log_syscall_entry, prelude::*, util::write_bytes_to_user,
};
pub fn sys_read(fd: FileDescripter, user_buf_addr: Vaddr, buf_len: usize) -> Result<SyscallReturn> { pub fn sys_read(fd: FileDesc, user_buf_addr: Vaddr, buf_len: usize) -> Result<SyscallReturn> {
log_syscall_entry!(SYS_READ); log_syscall_entry!(SYS_READ);
debug!( debug!(
"fd = {}, user_buf_ptr = 0x{:x}, buf_len = 0x{:x}", "fd = {}, user_buf_ptr = 0x{:x}, buf_len = 0x{:x}",

View File

@ -3,7 +3,7 @@
use super::{SyscallReturn, SYS_READLINKAT}; use super::{SyscallReturn, SYS_READLINKAT};
use crate::{ use crate::{
fs::{ fs::{
file_table::FileDescripter, file_table::FileDesc,
fs_resolver::{FsPath, AT_FDCWD}, fs_resolver::{FsPath, AT_FDCWD},
}, },
log_syscall_entry, log_syscall_entry,
@ -13,7 +13,7 @@ use crate::{
}; };
pub fn sys_readlinkat( pub fn sys_readlinkat(
dirfd: FileDescripter, dirfd: FileDesc,
pathname_addr: Vaddr, pathname_addr: Vaddr,
usr_buf_addr: Vaddr, usr_buf_addr: Vaddr,
usr_buf_len: usize, usr_buf_len: usize,

View File

@ -2,7 +2,7 @@
use super::{SyscallReturn, SYS_RECVFROM}; use super::{SyscallReturn, SYS_RECVFROM};
use crate::{ use crate::{
fs::file_table::FileDescripter, fs::file_table::FileDesc,
log_syscall_entry, log_syscall_entry,
net::socket::SendRecvFlags, net::socket::SendRecvFlags,
prelude::*, prelude::*,
@ -13,7 +13,7 @@ use crate::{
}; };
pub fn sys_recvfrom( pub fn sys_recvfrom(
sockfd: FileDescripter, sockfd: FileDesc,
buf: Vaddr, buf: Vaddr,
len: usize, len: usize,
flags: i32, flags: i32,

View File

@ -3,7 +3,7 @@
use super::{SyscallReturn, SYS_RENAMEAT}; use super::{SyscallReturn, SYS_RENAMEAT};
use crate::{ use crate::{
fs::{ fs::{
file_table::FileDescripter, file_table::FileDesc,
fs_resolver::{FsPath, AT_FDCWD}, fs_resolver::{FsPath, AT_FDCWD},
utils::InodeType, utils::InodeType,
}, },
@ -14,9 +14,9 @@ use crate::{
}; };
pub fn sys_renameat( pub fn sys_renameat(
old_dirfd: FileDescripter, old_dirfd: FileDesc,
old_pathname_addr: Vaddr, old_pathname_addr: Vaddr,
new_dirfd: FileDescripter, new_dirfd: FileDesc,
new_pathname_addr: Vaddr, new_pathname_addr: Vaddr,
) -> Result<SyscallReturn> { ) -> Result<SyscallReturn> {
log_syscall_entry!(SYS_RENAMEAT); log_syscall_entry!(SYS_RENAMEAT);

View File

@ -3,7 +3,7 @@
use super::{SyscallReturn, SYS_RMDIR}; use super::{SyscallReturn, SYS_RMDIR};
use crate::{ use crate::{
fs::{ fs::{
file_table::FileDescripter, file_table::FileDesc,
fs_resolver::{FsPath, AT_FDCWD}, fs_resolver::{FsPath, AT_FDCWD},
}, },
log_syscall_entry, log_syscall_entry,
@ -16,7 +16,7 @@ pub fn sys_rmdir(pathname_addr: Vaddr) -> Result<SyscallReturn> {
self::sys_rmdirat(AT_FDCWD, pathname_addr) self::sys_rmdirat(AT_FDCWD, pathname_addr)
} }
pub(super) fn sys_rmdirat(dirfd: FileDescripter, pathname_addr: Vaddr) -> Result<SyscallReturn> { pub(super) fn sys_rmdirat(dirfd: FileDesc, pathname_addr: Vaddr) -> Result<SyscallReturn> {
log_syscall_entry!(SYS_RMDIR); log_syscall_entry!(SYS_RMDIR);
let pathname = read_cstring_from_user(pathname_addr, MAX_FILENAME_LEN)?; let pathname = read_cstring_from_user(pathname_addr, MAX_FILENAME_LEN)?;
debug!("dirfd = {}, pathname = {:?}", dirfd, pathname); debug!("dirfd = {}, pathname = {:?}", dirfd, pathname);

View File

@ -8,7 +8,7 @@ use super::{
}; };
use crate::{ use crate::{
events::IoEvents, events::IoEvents,
fs::file_table::FileDescripter, fs::file_table::FileDesc,
log_syscall_entry, log_syscall_entry,
prelude::*, prelude::*,
time::timeval_t, time::timeval_t,
@ -16,7 +16,7 @@ use crate::{
}; };
pub fn sys_select( pub fn sys_select(
nfds: FileDescripter, nfds: FileDesc,
readfds_addr: Vaddr, readfds_addr: Vaddr,
writefds_addr: Vaddr, writefds_addr: Vaddr,
exceptfds_addr: Vaddr, exceptfds_addr: Vaddr,
@ -76,7 +76,7 @@ pub fn sys_select(
} }
fn do_select( fn do_select(
nfds: FileDescripter, nfds: FileDesc,
mut readfds: Option<&mut FdSet>, mut readfds: Option<&mut FdSet>,
mut writefds: Option<&mut FdSet>, mut writefds: Option<&mut FdSet>,
mut exceptfds: Option<&mut FdSet>, mut exceptfds: Option<&mut FdSet>,
@ -184,7 +184,7 @@ struct FdSet {
impl FdSet { impl FdSet {
/// Equivalent to FD_SET. /// Equivalent to FD_SET.
pub fn set(&mut self, fd: FileDescripter) -> Result<()> { pub fn set(&mut self, fd: FileDesc) -> Result<()> {
let fd = fd as usize; let fd = fd as usize;
if fd >= FD_SETSIZE { if fd >= FD_SETSIZE {
return_errno_with_message!(Errno::EINVAL, "fd exceeds FD_SETSIZE"); return_errno_with_message!(Errno::EINVAL, "fd exceeds FD_SETSIZE");
@ -194,7 +194,7 @@ impl FdSet {
} }
/// Equivalent to FD_CLR. /// Equivalent to FD_CLR.
pub fn unset(&mut self, fd: FileDescripter) -> Result<()> { pub fn unset(&mut self, fd: FileDesc) -> Result<()> {
let fd = fd as usize; let fd = fd as usize;
if fd >= FD_SETSIZE { if fd >= FD_SETSIZE {
return_errno_with_message!(Errno::EINVAL, "fd exceeds FD_SETSIZE"); return_errno_with_message!(Errno::EINVAL, "fd exceeds FD_SETSIZE");
@ -204,7 +204,7 @@ impl FdSet {
} }
/// Equivalent to FD_ISSET. /// Equivalent to FD_ISSET.
pub fn is_set(&self, fd: FileDescripter) -> bool { pub fn is_set(&self, fd: FileDesc) -> bool {
let fd = fd as usize; let fd = fd as usize;
if fd >= FD_SETSIZE { if fd >= FD_SETSIZE {
return false; return false;

View File

@ -2,7 +2,7 @@
use super::{SyscallReturn, SYS_SENDTO}; use super::{SyscallReturn, SYS_SENDTO};
use crate::{ use crate::{
fs::file_table::FileDescripter, fs::file_table::FileDesc,
log_syscall_entry, log_syscall_entry,
net::socket::SendRecvFlags, net::socket::SendRecvFlags,
prelude::*, prelude::*,
@ -13,7 +13,7 @@ use crate::{
}; };
pub fn sys_sendto( pub fn sys_sendto(
sockfd: FileDescripter, sockfd: FileDesc,
buf: Vaddr, buf: Vaddr,
len: usize, len: usize,
flags: i32, flags: i32,

View File

@ -2,14 +2,14 @@
use super::{SyscallReturn, SYS_SETSOCKOPT}; use super::{SyscallReturn, SYS_SETSOCKOPT};
use crate::{ use crate::{
fs::file_table::FileDescripter, fs::file_table::FileDesc,
log_syscall_entry, log_syscall_entry,
prelude::*, prelude::*,
util::net::{get_socket_from_fd, new_raw_socket_option, CSocketOptionLevel}, util::net::{get_socket_from_fd, new_raw_socket_option, CSocketOptionLevel},
}; };
pub fn sys_setsockopt( pub fn sys_setsockopt(
sockfd: FileDescripter, sockfd: FileDesc,
level: i32, level: i32,
optname: i32, optname: i32,
optval: Vaddr, optval: Vaddr,

View File

@ -2,11 +2,11 @@
use super::{SyscallReturn, SYS_SHUTDOWN}; use super::{SyscallReturn, SYS_SHUTDOWN};
use crate::{ use crate::{
fs::file_table::FileDescripter, log_syscall_entry, net::socket::SockShutdownCmd, prelude::*, fs::file_table::FileDesc, log_syscall_entry, net::socket::SockShutdownCmd, prelude::*,
util::net::get_socket_from_fd, util::net::get_socket_from_fd,
}; };
pub fn sys_shutdown(sockfd: FileDescripter, how: i32) -> Result<SyscallReturn> { pub fn sys_shutdown(sockfd: FileDesc, how: i32) -> Result<SyscallReturn> {
log_syscall_entry!(SYS_SHUTDOWN); log_syscall_entry!(SYS_SHUTDOWN);
let shutdown_cmd = SockShutdownCmd::try_from(how)?; let shutdown_cmd = SockShutdownCmd::try_from(how)?;
debug!("sockfd = {sockfd}, cmd = {shutdown_cmd:?}"); debug!("sockfd = {sockfd}, cmd = {shutdown_cmd:?}");

View File

@ -2,7 +2,7 @@
use super::{SyscallReturn, SYS_SOCKETPAIR}; use super::{SyscallReturn, SYS_SOCKETPAIR};
use crate::{ use crate::{
fs::file_table::{FdFlags, FileDescripter}, fs::file_table::{FdFlags, FileDesc},
log_syscall_entry, log_syscall_entry,
net::socket::unix::UnixStreamSocket, net::socket::unix::UnixStreamSocket,
prelude::*, prelude::*,
@ -54,4 +54,4 @@ pub fn sys_socketpair(domain: i32, type_: i32, protocol: i32, sv: Vaddr) -> Resu
#[repr(C)] #[repr(C)]
#[derive(Debug, Clone, Copy, Pod)] #[derive(Debug, Clone, Copy, Pod)]
struct SocketFds(FileDescripter, FileDescripter); struct SocketFds(FileDesc, FileDesc);

View File

@ -3,7 +3,7 @@
use super::{SyscallReturn, SYS_FSTAT, SYS_FSTATAT}; use super::{SyscallReturn, SYS_FSTAT, SYS_FSTATAT};
use crate::{ use crate::{
fs::{ fs::{
file_table::FileDescripter, file_table::FileDesc,
fs_resolver::{FsPath, AT_FDCWD}, fs_resolver::{FsPath, AT_FDCWD},
utils::Metadata, utils::Metadata,
}, },
@ -14,7 +14,7 @@ use crate::{
util::{read_cstring_from_user, write_val_to_user}, util::{read_cstring_from_user, write_val_to_user},
}; };
pub fn sys_fstat(fd: FileDescripter, stat_buf_ptr: Vaddr) -> Result<SyscallReturn> { pub fn sys_fstat(fd: FileDesc, stat_buf_ptr: Vaddr) -> Result<SyscallReturn> {
log_syscall_entry!(SYS_FSTAT); log_syscall_entry!(SYS_FSTAT);
debug!("fd = {}, stat_buf_addr = 0x{:x}", fd, stat_buf_ptr); debug!("fd = {}, stat_buf_addr = 0x{:x}", fd, stat_buf_ptr);
@ -40,7 +40,7 @@ pub fn sys_lstat(filename_ptr: Vaddr, stat_buf_ptr: Vaddr) -> Result<SyscallRetu
} }
pub fn sys_fstatat( pub fn sys_fstatat(
dirfd: FileDescripter, dirfd: FileDesc,
filename_ptr: Vaddr, filename_ptr: Vaddr,
stat_buf_ptr: Vaddr, stat_buf_ptr: Vaddr,
flags: u32, flags: u32,

View File

@ -3,7 +3,7 @@
use super::{SyscallReturn, SYS_FSTATFS, SYS_STATFS}; use super::{SyscallReturn, SYS_FSTATFS, SYS_STATFS};
use crate::{ use crate::{
fs::{ fs::{
file_table::FileDescripter, file_table::FileDesc,
fs_resolver::FsPath, fs_resolver::FsPath,
inode_handle::InodeHandle, inode_handle::InodeHandle,
utils::{SuperBlock, PATH_MAX}, utils::{SuperBlock, PATH_MAX},
@ -29,7 +29,7 @@ pub fn sys_statfs(path_ptr: Vaddr, statfs_buf_ptr: Vaddr) -> Result<SyscallRetur
Ok(SyscallReturn::Return(0)) Ok(SyscallReturn::Return(0))
} }
pub fn sys_fstatfs(fd: FileDescripter, statfs_buf_ptr: Vaddr) -> Result<SyscallReturn> { pub fn sys_fstatfs(fd: FileDesc, statfs_buf_ptr: Vaddr) -> Result<SyscallReturn> {
log_syscall_entry!(SYS_FSTATFS); log_syscall_entry!(SYS_FSTATFS);
debug!("fd = {}, statfs_buf_addr = 0x{:x}", fd, statfs_buf_ptr); debug!("fd = {}, statfs_buf_addr = 0x{:x}", fd, statfs_buf_ptr);

View File

@ -3,7 +3,7 @@
use super::{SyscallReturn, SYS_SYMLINKAT}; use super::{SyscallReturn, SYS_SYMLINKAT};
use crate::{ use crate::{
fs::{ fs::{
file_table::FileDescripter, file_table::FileDesc,
fs_resolver::{FsPath, AT_FDCWD}, fs_resolver::{FsPath, AT_FDCWD},
utils::{InodeMode, InodeType}, utils::{InodeMode, InodeType},
}, },
@ -15,7 +15,7 @@ use crate::{
pub fn sys_symlinkat( pub fn sys_symlinkat(
target_addr: Vaddr, target_addr: Vaddr,
dirfd: FileDescripter, dirfd: FileDesc,
linkpath_addr: Vaddr, linkpath_addr: Vaddr,
) -> Result<SyscallReturn> { ) -> Result<SyscallReturn> {
log_syscall_entry!(SYS_SYMLINKAT); log_syscall_entry!(SYS_SYMLINKAT);

View File

@ -3,7 +3,7 @@
use super::{SyscallReturn, SYS_FTRUNCATE, SYS_TRUNCATE}; use super::{SyscallReturn, SYS_FTRUNCATE, SYS_TRUNCATE};
use crate::{ use crate::{
fs::{ fs::{
file_table::FileDescripter, file_table::FileDesc,
fs_resolver::{FsPath, AT_FDCWD}, fs_resolver::{FsPath, AT_FDCWD},
utils::PATH_MAX, utils::PATH_MAX,
}, },
@ -13,7 +13,7 @@ use crate::{
util::read_cstring_from_user, util::read_cstring_from_user,
}; };
pub fn sys_ftruncate(fd: FileDescripter, len: isize) -> Result<SyscallReturn> { pub fn sys_ftruncate(fd: FileDesc, len: isize) -> Result<SyscallReturn> {
log_syscall_entry!(SYS_FTRUNCATE); log_syscall_entry!(SYS_FTRUNCATE);
debug!("fd = {}, lentgh = {}", fd, len); debug!("fd = {}, lentgh = {}", fd, len);

View File

@ -3,7 +3,7 @@
use super::{SyscallReturn, SYS_UNLINKAT}; use super::{SyscallReturn, SYS_UNLINKAT};
use crate::{ use crate::{
fs::{ fs::{
file_table::FileDescripter, file_table::FileDesc,
fs_resolver::{FsPath, AT_FDCWD}, fs_resolver::{FsPath, AT_FDCWD},
}, },
log_syscall_entry, log_syscall_entry,
@ -12,11 +12,7 @@ use crate::{
util::read_cstring_from_user, util::read_cstring_from_user,
}; };
pub fn sys_unlinkat( pub fn sys_unlinkat(dirfd: FileDesc, pathname_addr: Vaddr, flags: u32) -> Result<SyscallReturn> {
dirfd: FileDescripter,
pathname_addr: Vaddr,
flags: u32,
) -> Result<SyscallReturn> {
let flags = let flags =
UnlinkFlags::from_bits(flags).ok_or(Error::with_message(Errno::EINVAL, "invalid flags"))?; UnlinkFlags::from_bits(flags).ok_or(Error::with_message(Errno::EINVAL, "invalid flags"))?;
if flags.contains(UnlinkFlags::AT_REMOVEDIR) { if flags.contains(UnlinkFlags::AT_REMOVEDIR) {

View File

@ -4,7 +4,7 @@ use core::time::Duration;
use super::{SyscallReturn, SYS_UTIMENSAT}; use super::{SyscallReturn, SYS_UTIMENSAT};
use crate::{ use crate::{
fs::{file_table::FileDescripter, fs_resolver::FsPath}, fs::{file_table::FileDesc, fs_resolver::FsPath},
log_syscall_entry, log_syscall_entry,
prelude::*, prelude::*,
syscall::constants::MAX_FILENAME_LEN, syscall::constants::MAX_FILENAME_LEN,
@ -13,7 +13,7 @@ use crate::{
}; };
pub fn sys_utimensat( pub fn sys_utimensat(
dirfd: FileDescripter, dirfd: FileDesc,
pathname_ptr: Vaddr, pathname_ptr: Vaddr,
timespecs_ptr: Vaddr, timespecs_ptr: Vaddr,
flags: u32, flags: u32,

View File

@ -2,18 +2,14 @@
use super::SyscallReturn; use super::SyscallReturn;
use crate::{ use crate::{
fs::file_table::FileDescripter, log_syscall_entry, prelude::*, syscall::SYS_WRITE, fs::file_table::FileDesc, log_syscall_entry, prelude::*, syscall::SYS_WRITE,
util::read_bytes_from_user, util::read_bytes_from_user,
}; };
const STDOUT: u64 = 1; const STDOUT: u64 = 1;
const STDERR: u64 = 2; const STDERR: u64 = 2;
pub fn sys_write( pub fn sys_write(fd: FileDesc, user_buf_ptr: Vaddr, user_buf_len: usize) -> Result<SyscallReturn> {
fd: FileDescripter,
user_buf_ptr: Vaddr,
user_buf_len: usize,
) -> Result<SyscallReturn> {
log_syscall_entry!(SYS_WRITE); log_syscall_entry!(SYS_WRITE);
debug!( debug!(
"fd = {}, user_buf_ptr = 0x{:x}, user_buf_len = 0x{:x}", "fd = {}, user_buf_ptr = 0x{:x}, user_buf_len = 0x{:x}",

View File

@ -2,7 +2,7 @@
use super::SyscallReturn; use super::SyscallReturn;
use crate::{ use crate::{
fs::file_table::FileDescripter, fs::file_table::FileDesc,
log_syscall_entry, log_syscall_entry,
prelude::*, prelude::*,
syscall::SYS_WRITEV, syscall::SYS_WRITEV,
@ -18,17 +18,13 @@ pub struct IoVec {
len: usize, len: usize,
} }
pub fn sys_writev( pub fn sys_writev(fd: FileDesc, io_vec_ptr: Vaddr, io_vec_count: usize) -> Result<SyscallReturn> {
fd: FileDescripter,
io_vec_ptr: Vaddr,
io_vec_count: usize,
) -> Result<SyscallReturn> {
log_syscall_entry!(SYS_WRITEV); log_syscall_entry!(SYS_WRITEV);
let res = do_sys_writev(fd, io_vec_ptr, io_vec_count)?; let res = do_sys_writev(fd, io_vec_ptr, io_vec_count)?;
Ok(SyscallReturn::Return(res as _)) Ok(SyscallReturn::Return(res as _))
} }
fn do_sys_writev(fd: FileDescripter, io_vec_ptr: Vaddr, io_vec_count: usize) -> Result<usize> { fn do_sys_writev(fd: FileDesc, io_vec_ptr: Vaddr, io_vec_count: usize) -> Result<usize> {
debug!( debug!(
"fd = {}, io_vec_ptr = 0x{:x}, io_vec_counter = 0x{:x}", "fd = {}, io_vec_ptr = 0x{:x}, io_vec_counter = 0x{:x}",
fd, io_vec_ptr, io_vec_count fd, io_vec_ptr, io_vec_count

View File

@ -8,9 +8,9 @@ pub use addr::{read_socket_addr_from_user, write_socket_addr_to_user, CSocketAdd
pub use options::{new_raw_socket_option, CSocketOptionLevel}; pub use options::{new_raw_socket_option, CSocketOptionLevel};
pub use socket::{Protocol, SockFlags, SockType, SOCK_TYPE_MASK}; pub use socket::{Protocol, SockFlags, SockType, SOCK_TYPE_MASK};
use crate::{fs::file_table::FileDescripter, net::socket::Socket, prelude::*}; use crate::{fs::file_table::FileDesc, net::socket::Socket, prelude::*};
pub fn get_socket_from_fd(sockfd: FileDescripter) -> Result<Arc<dyn Socket>> { pub fn get_socket_from_fd(sockfd: FileDesc) -> Result<Arc<dyn Socket>> {
let current = current!(); let current = current!();
let file_table = current.file_table().lock(); let file_table = current.file_table().lock();
file_table.get_socket(sockfd) file_table.get_socket(sockfd)