From 39d303c72f622a735927fd1d4fece11fe4b46001 Mon Sep 17 00:00:00 2001 From: Ruihan Li Date: Thu, 14 Nov 2024 19:46:20 +0800 Subject: [PATCH] Rename `get_current_userspace` to `current_userspace` --- kernel/src/context.rs | 4 ++-- kernel/src/device/pty/pty.rs | 24 +++++++++---------- kernel/src/device/tty/mod.rs | 18 +++++++------- kernel/src/process/clone.rs | 4 ++-- kernel/src/process/posix_thread/exit.rs | 4 ++-- .../src/process/posix_thread/robust_list.rs | 6 ++--- kernel/src/process/signal/mod.rs | 4 ++-- kernel/src/syscall/futex.rs | 4 ++-- kernel/src/thread/task.rs | 4 ++-- kernel/src/util/net/addr/family.rs | 4 ++-- kernel/src/util/net/options/utils.rs | 20 ++++++++-------- 11 files changed, 47 insertions(+), 49 deletions(-) diff --git a/kernel/src/context.rs b/kernel/src/context.rs index 528e6a26..6b3364fb 100644 --- a/kernel/src/context.rs +++ b/kernel/src/context.rs @@ -41,7 +41,7 @@ pub struct CurrentUserSpace<'a>(&'a VmSpace); /// This is slower than [`Context::user_space`]. Don't use this getter /// If you get the access to the [`Context`]. #[macro_export] -macro_rules! get_current_userspace { +macro_rules! current_userspace { () => { CurrentUserSpace::new(&ostd::task::Task::current().unwrap()) }; @@ -55,7 +55,7 @@ impl<'a> CurrentUserSpace<'a> { /// /// If you have access to a [`Context`], it is preferable to call [`Context::user_space`]. /// - /// Otherwise, you can use the `get_current_userspace` macro + /// Otherwise, you can use the `current_userspace` macro /// to obtain an instance of `CurrentUserSpace` if it will only be used once. /// /// # Panics diff --git a/kernel/src/device/pty/pty.rs b/kernel/src/device/pty/pty.rs index 3e3d2c30..10792be4 100644 --- a/kernel/src/device/pty/pty.rs +++ b/kernel/src/device/pty/pty.rs @@ -3,6 +3,7 @@ use alloc::format; use crate::{ + current_userspace, device::tty::{line_discipline::LineDiscipline, new_job_control_and_ldisc}, events::IoEvents, fs::{ @@ -13,7 +14,6 @@ use crate::{ inode_handle::FileIo, utils::{AccessMode, Inode, InodeMode, IoctlCmd}, }, - get_current_userspace, prelude::*, process::{ signal::{PollHandle, Pollable, Pollee}, @@ -165,11 +165,11 @@ impl FileIo for PtyMaster { match cmd { IoctlCmd::TCGETS => { let termios = self.output.termios(); - get_current_userspace!().write_val(arg, &termios)?; + current_userspace!().write_val(arg, &termios)?; Ok(0) } IoctlCmd::TCSETS => { - let termios = get_current_userspace!().read_val(arg)?; + let termios = current_userspace!().read_val(arg)?; self.output.set_termios(termios); Ok(0) } @@ -179,7 +179,7 @@ impl FileIo for PtyMaster { } IoctlCmd::TIOCGPTN => { let idx = self.index(); - get_current_userspace!().write_val(arg, &idx)?; + current_userspace!().write_val(arg, &idx)?; Ok(0) } IoctlCmd::TIOCGPTPEER => { @@ -212,11 +212,11 @@ impl FileIo for PtyMaster { } IoctlCmd::TIOCGWINSZ => { let winsize = self.output.window_size(); - get_current_userspace!().write_val(arg, &winsize)?; + current_userspace!().write_val(arg, &winsize)?; Ok(0) } IoctlCmd::TIOCSWINSZ => { - let winsize = get_current_userspace!().read_val(arg)?; + let winsize = current_userspace!().read_val(arg)?; self.output.set_window_size(winsize); Ok(0) } @@ -228,12 +228,12 @@ impl FileIo for PtyMaster { ); }; let fg_pgid = foreground.pgid(); - get_current_userspace!().write_val(arg, &fg_pgid)?; + current_userspace!().write_val(arg, &fg_pgid)?; Ok(0) } IoctlCmd::TIOCSPGRP => { let pgid = { - let pgid: i32 = get_current_userspace!().read_val(arg)?; + let pgid: i32 = current_userspace!().read_val(arg)?; if pgid < 0 { return_errno_with_message!(Errno::EINVAL, "negative pgid"); } @@ -253,7 +253,7 @@ impl FileIo for PtyMaster { } IoctlCmd::FIONREAD => { let len = self.input.lock().len() as i32; - get_current_userspace!().write_val(arg, &len)?; + current_userspace!().write_val(arg, &len)?; Ok(0) } _ => Ok(0), @@ -376,12 +376,12 @@ impl FileIo for PtySlave { }; let fg_pgid = foreground.pgid(); - get_current_userspace!().write_val(arg, &fg_pgid)?; + current_userspace!().write_val(arg, &fg_pgid)?; Ok(0) } IoctlCmd::TIOCSPGRP => { let pgid = { - let pgid: i32 = get_current_userspace!().read_val(arg)?; + let pgid: i32 = current_userspace!().read_val(arg)?; if pgid < 0 { return_errno_with_message!(Errno::EINVAL, "negative pgid"); } @@ -401,7 +401,7 @@ impl FileIo for PtySlave { } IoctlCmd::FIONREAD => { let buffer_len = self.master().slave_buf_len() as i32; - get_current_userspace!().write_val(arg, &buffer_len)?; + current_userspace!().write_val(arg, &buffer_len)?; Ok(0) } _ => Ok(0), diff --git a/kernel/src/device/tty/mod.rs b/kernel/src/device/tty/mod.rs index 92732d74..f2f2979b 100644 --- a/kernel/src/device/tty/mod.rs +++ b/kernel/src/device/tty/mod.rs @@ -7,13 +7,13 @@ use spin::Once; use self::{driver::TtyDriver, line_discipline::LineDiscipline}; use crate::{ + current_userspace, events::IoEvents, fs::{ device::{Device, DeviceId, DeviceType}, inode_handle::FileIo, utils::IoctlCmd, }, - get_current_userspace, prelude::*, process::{ signal::{signals::kernel::KernelSignal, PollHandle, Pollable}, @@ -103,7 +103,7 @@ impl FileIo for Tty { // Get terminal attributes let termios = self.ldisc.termios(); trace!("get termios = {:?}", termios); - get_current_userspace!().write_val(arg, &termios)?; + current_userspace!().write_val(arg, &termios)?; Ok(0) } IoctlCmd::TIOCGPGRP => { @@ -112,13 +112,13 @@ impl FileIo for Tty { }; let fg_pgid = foreground.pgid(); debug!("fg_pgid = {}", fg_pgid); - get_current_userspace!().write_val(arg, &fg_pgid)?; + current_userspace!().write_val(arg, &fg_pgid)?; Ok(0) } IoctlCmd::TIOCSPGRP => { // Set the process group id of fg progress group let pgid = { - let pgid: i32 = get_current_userspace!().read_val(arg)?; + let pgid: i32 = current_userspace!().read_val(arg)?; if pgid < 0 { return_errno_with_message!(Errno::EINVAL, "negative pgid"); } @@ -133,20 +133,20 @@ impl FileIo for Tty { } IoctlCmd::TCSETS => { // Set terminal attributes - let termios = get_current_userspace!().read_val(arg)?; + let termios = current_userspace!().read_val(arg)?; debug!("set termios = {:?}", termios); self.ldisc.set_termios(termios); Ok(0) } IoctlCmd::TCSETSW => { - let termios = get_current_userspace!().read_val(arg)?; + let termios = current_userspace!().read_val(arg)?; debug!("set termios = {:?}", termios); self.ldisc.set_termios(termios); // TODO: drain output buffer Ok(0) } IoctlCmd::TCSETSF => { - let termios = get_current_userspace!().read_val(arg)?; + let termios = current_userspace!().read_val(arg)?; debug!("set termios = {:?}", termios); self.ldisc.set_termios(termios); self.ldisc.drain_input(); @@ -155,11 +155,11 @@ impl FileIo for Tty { } IoctlCmd::TIOCGWINSZ => { let winsize = self.ldisc.window_size(); - get_current_userspace!().write_val(arg, &winsize)?; + current_userspace!().write_val(arg, &winsize)?; Ok(0) } IoctlCmd::TIOCSWINSZ => { - let winsize = get_current_userspace!().read_val(arg)?; + let winsize = current_userspace!().read_val(arg)?; self.ldisc.set_window_size(winsize); Ok(0) } diff --git a/kernel/src/process/clone.rs b/kernel/src/process/clone.rs index 9066036d..4d4a7351 100644 --- a/kernel/src/process/clone.rs +++ b/kernel/src/process/clone.rs @@ -17,8 +17,8 @@ use super::{ }; use crate::{ cpu::LinuxAbi, + current_userspace, fs::{file_table::FileTable, fs_resolver::FsResolver, utils::FileCreationMask}, - get_current_userspace, prelude::*, process::posix_thread::allocate_posix_tid, thread::{AsThread, Tid}, @@ -392,7 +392,7 @@ fn clone_parent_settid( if let Some(addr) = parent_tidptr.filter(|_| clone_flags.contains(CloneFlags::CLONE_PARENT_SETTID)) { - get_current_userspace!().write_val(addr, &child_tid)?; + current_userspace!().write_val(addr, &child_tid)?; } Ok(()) } diff --git a/kernel/src/process/posix_thread/exit.rs b/kernel/src/process/posix_thread/exit.rs index 211e2310..04029f1b 100644 --- a/kernel/src/process/posix_thread/exit.rs +++ b/kernel/src/process/posix_thread/exit.rs @@ -2,7 +2,7 @@ use super::{futex::futex_wake, robust_list::wake_robust_futex, thread_table, PosixThread}; use crate::{ - get_current_userspace, + current_userspace, prelude::*, process::{do_exit_group, TermStatus}, thread::{Thread, Tid}, @@ -25,7 +25,7 @@ pub fn do_exit(thread: &Thread, posix_thread: &PosixThread, term_status: TermSta // If clear_ctid !=0 ,do a futex wake and write zero to the clear_ctid addr. if *clear_ctid != 0 { // FIXME: the correct write length? - if let Err(e) = get_current_userspace!().write_val(*clear_ctid, &0u32) { + if let Err(e) = current_userspace!().write_val(*clear_ctid, &0u32) { debug!("Ignore error during exit process: {:?}", e); } futex_wake(*clear_ctid, 1, None)?; diff --git a/kernel/src/process/posix_thread/robust_list.rs b/kernel/src/process/posix_thread/robust_list.rs index 48fc4b62..8fbb51b0 100644 --- a/kernel/src/process/posix_thread/robust_list.rs +++ b/kernel/src/process/posix_thread/robust_list.rs @@ -4,9 +4,7 @@ use ostd::task::Task; -use crate::{ - get_current_userspace, prelude::*, process::posix_thread::futex::futex_wake, thread::Tid, -}; +use crate::{current_userspace, prelude::*, process::posix_thread::futex::futex_wake, thread::Tid}; #[repr(C)] #[derive(Clone, Copy, Debug, Pod)] @@ -105,7 +103,7 @@ impl Iterator for FutexIter<'_> { } else { None }; - let Ok(robust_list) = get_current_userspace!().read_val::(self.entry_ptr) + let Ok(robust_list) = current_userspace!().read_val::(self.entry_ptr) else { return None; }; diff --git a/kernel/src/process/signal/mod.rs b/kernel/src/process/signal/mod.rs index 59d6448c..9ae1d0ad 100644 --- a/kernel/src/process/signal/mod.rs +++ b/kernel/src/process/signal/mod.rs @@ -28,7 +28,7 @@ pub use sig_stack::{SigStack, SigStackFlags}; use super::posix_thread::PosixThread; use crate::{ - get_current_userspace, + current_userspace, prelude::*, process::{do_exit_group, TermStatus}, }; @@ -249,7 +249,7 @@ fn use_alternate_signal_stack(posix_thread: &PosixThread) -> Option { fn write_u64_to_user_stack(rsp: u64, value: u64) -> Result { let rsp = rsp - 8; - get_current_userspace!().write_val(rsp as Vaddr, &value)?; + current_userspace!().write_val(rsp as Vaddr, &value)?; Ok(rsp) } diff --git a/kernel/src/syscall/futex.rs b/kernel/src/syscall/futex.rs index 904544f1..b8497f84 100644 --- a/kernel/src/syscall/futex.rs +++ b/kernel/src/syscall/futex.rs @@ -3,7 +3,7 @@ use core::time::Duration; use crate::{ - get_current_userspace, + current_userspace, prelude::*, process::posix_thread::futex::{ futex_op_and_flags_from_u32, futex_requeue, futex_wait, futex_wait_bitset, futex_wake, @@ -46,7 +46,7 @@ pub fn sys_futex( } let timeout = { - let time_spec: timespec_t = get_current_userspace!().read_val(timeout_addr)?; + let time_spec: timespec_t = current_userspace!().read_val(timeout_addr)?; Duration::try_from(time_spec)? }; diff --git a/kernel/src/thread/task.rs b/kernel/src/thread/task.rs index b0903acc..f9be7132 100644 --- a/kernel/src/thread/task.rs +++ b/kernel/src/thread/task.rs @@ -8,7 +8,7 @@ use ostd::{ use super::{oops, Thread}; use crate::{ cpu::LinuxAbi, - get_current_userspace, + current_userspace, prelude::*, process::{posix_thread::AsPosixThread, signal::handle_pending_signal}, syscall::handle_syscall, @@ -47,7 +47,7 @@ pub fn create_new_user_task(user_space: Arc, thread_ref: Arc) // Make sure the store operation completes before the clone call returns control to user space // in the child process. if is_userspace_vaddr(child_tid_ptr) { - get_current_userspace!() + current_userspace!() .write_val(child_tid_ptr, ¤t_posix_thread.tid()) .unwrap(); } diff --git a/kernel/src/util/net/addr/family.rs b/kernel/src/util/net/addr/family.rs index c167df73..11f70eb0 100644 --- a/kernel/src/util/net/addr/family.rs +++ b/kernel/src/util/net/addr/family.rs @@ -5,7 +5,7 @@ use core::cmp::min; use ostd::task::Task; use super::{ip::CSocketAddrInet, unix, vsock::CSocketAddrVm}; -use crate::{get_current_userspace, net::socket::SocketAddr, prelude::*}; +use crate::{current_userspace, net::socket::SocketAddr, prelude::*}; /// Address family. /// @@ -146,7 +146,7 @@ pub fn read_socket_addr_from_user(addr: Vaddr, addr_len: usize) -> Result() { return_errno_with_message!(Errno::EINVAL, "max_len is too short"); } - crate::get_current_userspace!().read_val::<$pod_ty>(addr) + crate::current_userspace!().read_val::<$pod_ty>(addr) } } @@ -59,7 +59,7 @@ macro_rules! impl_read_write_for_pod_type { return_errno_with_message!(Errno::EINVAL, "max_len is too short"); } - crate::get_current_userspace!().write_val(addr, self)?; + crate::current_userspace!().write_val(addr, self)?; Ok(write_len) } } @@ -74,7 +74,7 @@ impl ReadFromUser for bool { return_errno_with_message!(Errno::EINVAL, "max_len is too short"); } - let val = get_current_userspace!().read_val::(addr)?; + let val = current_userspace!().read_val::(addr)?; Ok(val != 0) } @@ -89,7 +89,7 @@ impl WriteToUser for bool { } let val = if *self { 1i32 } else { 0i32 }; - get_current_userspace!().write_val(addr, &val)?; + current_userspace!().write_val(addr, &val)?; Ok(write_len) } } @@ -107,7 +107,7 @@ impl WriteToUser for Option { Some(error) => error.error() as i32, }; - get_current_userspace!().write_val(addr, &val)?; + current_userspace!().write_val(addr, &val)?; Ok(write_len) } } @@ -118,7 +118,7 @@ impl ReadFromUser for LingerOption { return_errno_with_message!(Errno::EINVAL, "max_len is too short"); } - let c_linger = get_current_userspace!().read_val::(addr)?; + let c_linger = current_userspace!().read_val::(addr)?; Ok(LingerOption::from(c_linger)) } @@ -133,7 +133,7 @@ impl WriteToUser for LingerOption { } let linger = CLinger::from(*self); - get_current_userspace!().write_val(addr, &linger)?; + current_userspace!().write_val(addr, &linger)?; Ok(write_len) } } @@ -141,7 +141,7 @@ impl WriteToUser for LingerOption { impl ReadFromUser for CongestionControl { fn read_from_user(addr: Vaddr, max_len: u32) -> Result { let mut bytes = vec![0; max_len as usize]; - get_current_userspace!().read_bytes(addr, &mut VmWriter::from(bytes.as_mut_slice()))?; + current_userspace!().read_bytes(addr, &mut VmWriter::from(bytes.as_mut_slice()))?; let name = String::from_utf8(bytes).unwrap(); CongestionControl::new(&name) } @@ -156,7 +156,7 @@ impl WriteToUser for CongestionControl { return_errno_with_message!(Errno::EINVAL, "max_len is too short"); } - get_current_userspace!().write_bytes(addr, &mut VmReader::from(name))?; + current_userspace!().write_bytes(addr, &mut VmReader::from(name))?; Ok(write_len) }