Commit Graph

1477 Commits

Author SHA1 Message Date
Ruihan Li 9d5e889a93 Implement `VmIo` for `CurrentUserspace` 2025-12-07 12:01:05 +08:00
Ruihan Li 13afca6441 Add `i8042.exist` to override ACPI flags 2025-12-07 09:52:42 +08:00
Ruihan Li 04a2290812 Fix format issues like "initproc" and others 2025-12-07 09:52:42 +08:00
wheatfox 34b12b2de5 Add `/proc/version` support
Signed-off-by: wheatfox <wheatfox17@icloud.com>
2025-12-05 19:29:54 +08:00
vvsv 8152695a17 Support syscall fchmodat2 2025-12-05 18:01:37 +08:00
vvsv 0dd061269e execve should return ENOEXEC for scripts without shebang 2025-12-05 18:00:45 +08:00
vvsv 77fb8c0f74 Support syscall `syncfs` 2025-12-05 18:00:24 +08:00
jiangjianfeng a0042f7d28 Add syscall sendmmsg 2025-12-05 17:18:15 +08:00
Chen Chengjun 314021c391 Correct the calculation of log_*_size 2025-12-05 15:26:32 +08:00
Chen Chengjun ad44264fc5 Correct the declaration of FsState 2025-12-05 15:26:32 +08:00
Chen Chengjun 3719caf5f1 Make the Superblock retain all the information from the RawSuperBlock 2025-12-05 15:26:32 +08:00
jiangjianfeng 9ad7c1855e Check device id in DeviceId::from_encoded_64 2025-12-04 20:55:01 +08:00
jiangjianfeng 83c158e3b5 Make device Inode behave like pointer 2025-12-04 20:55:01 +08:00
jiangjianfeng d8a4b3076f Support looking up block devices 2025-12-04 20:55:01 +08:00
jiangjianfeng e4a09f5503 Remove unused Misc device type 2025-12-04 20:55:01 +08:00
jiangjianfeng c4fdd390a9 Make ext2 handle fifo and devices correctly 2025-12-04 20:55:01 +08:00
Hsy-Intel 2c9a11e43e Reduce #VE, disable SEPT #VE and enable notification for zero step attack detection in TDX environment 2025-12-04 09:48:17 +08:00
Ruihan Li 2168b32d88 Rustfmt socket option macros 2025-12-03 14:12:31 +08:00
Chen Chengjun 34ebccb2e9 Fix a bug of bind mount 2025-12-03 14:04:45 +08:00
Chen Chengjun d58ae3a782 Implement controller framework for cgroup subsystem 2025-12-03 11:24:36 +08:00
Chen Chengjun dda8161bef Adjust the attributes-related APIs of SysNode 2025-12-03 11:24:36 +08:00
Zhenchen Wang eec3dd0f34 Add inotify regression tests and gVisor tests
Signed-off-by: Zhenchen Wang <m202372036@hust.edu.cn>
2025-12-01 20:05:18 +08:00
Zhenchen Wang 156eeb1835 Add the fsnotify hook function to the VFS layer
Signed-off-by: Zhenchen Wang <m202372036@hust.edu.cn>
2025-12-01 20:05:18 +08:00
Zhenchen Wang 09665a7692 Implement inotify file and syscalls
Signed-off-by: Zhenchen Wang <m202372036@hust.edu.cn>
2025-12-01 20:05:18 +08:00
Zhenchen Wang 6eef70a634 Add fsnotify infrastructure for filesystem events
Signed-off-by: Zhenchen Wang <m202372036@hust.edu.cn>
2025-12-01 20:05:18 +08:00
Chen Chengjun 1a536d31b0 Fix a bug of caching negative dentry 2025-12-01 18:10:10 +08:00
Ruihan Li cf772b804e Fix option behavior in UNIX/netlink sockets 2025-12-01 13:46:02 +08:00
Ruihan Li f522bd72b2 Enable only one i8042 port at initialization 2025-12-01 10:22:14 +08:00
Ruihan Li 3258a264de Abstract common PS/2 logics 2025-12-01 10:22:14 +08:00
Ruihan Li 3ddbef06e4 Set timeout for i8042 transactions 2025-12-01 10:22:14 +08:00
Ruihan Li 0b664a012e Group modules into `device/registry` 2025-12-01 00:05:29 +08:00
Ruihan Li be01eef352 Revise error messages in `char.rs` 2025-12-01 00:05:29 +08:00
Ruihan Li 34a9f84c5a Remove `Char{File,Device}` & `DevtmpfsName` 2025-12-01 00:05:29 +08:00
Ruihan Li dc21266510 Remove `OpenCharFile` 2025-12-01 00:05:29 +08:00
Chen Chengjun 2021160e97 Introduce IdBitmap to fix the syncing metadata bug of Ext2 2025-11-30 23:58:58 +08:00
jiangjianfeng 96bfab16be Fix some typos 2025-11-28 19:10:16 +08:00
Chen Chengjun e048a76afc Make the semantics of tty-related devices correct 2025-11-28 18:18:28 +08:00
Chen Chengjun 1b11a8453e Store system console names in KCmdlineArg 2025-11-28 18:18:28 +08:00
Chen Chengjun 3f3838d3a3 Support reboot syscall 2025-11-28 11:32:16 +08:00
Cautreoxit cc8fa23e07 Rename `keyboard` component to `i8042` 2025-11-28 11:25:58 +08:00
Cautreoxit 44768021a1 Add i8042 mouse 2025-11-28 11:25:58 +08:00
Cautreoxit aa6f248d03 Remove magic numbers in i8042 component 2025-11-28 11:25:58 +08:00
Qingsong Chen f15106aed8 Fix ext2 directory entry iteration 2025-11-28 11:22:56 +08:00
Qingsong Chen d08d82cd0b Fix ext2 DeviceRangeReader to prevent reading invalid blocks 2025-11-28 11:22:56 +08:00
Qingsong Chen f026bf38d8 Fix bio request end sector calculation 2025-11-28 11:22:56 +08:00
jiangjianfeng 188b20eb99 Support SO_BROADCAST for UDP sockets 2025-11-28 10:34:26 +08:00
jiangjianfeng 3208fcc101 Dummy support IP_RECVERR option 2025-11-28 10:34:26 +08:00
jiangjianfeng 1375346214 Add IP options to UDP socket 2025-11-28 10:34:26 +08:00
jiangjianfeng e796c41546 Reorder the socket options according to CSocketOptionName 2025-11-28 10:34:26 +08:00
Ruihan Li 17b62917cd Perform some remaining cleanups 2025-11-26 17:35:42 +08:00
Ruihan Li 0fd2066ac3 Fix potential atomic mode breaks 2025-11-26 17:35:42 +08:00
Ruihan Li d99791ba57 Fix the handling when the buffer is full 2025-11-26 17:35:42 +08:00
Ruihan Li efeaf5fa6e Fix potential deadlocks 2025-11-26 17:35:42 +08:00
Ruihan Li 42026b3eb9 Define a specific clock type 2025-11-26 17:35:42 +08:00
Ruihan Li 1c7fc4a6e6 Align the read behavior to Linux's 2025-11-26 17:35:42 +08:00
Ruihan Li 52a7d3eddd Simplify the logic related to I/O events 2025-11-26 17:35:42 +08:00
Ruihan Li 6e866cc4c2 Remove the unused event count 2025-11-26 17:35:42 +08:00
Ruihan Li 33428b46b9 Clarify error codes and messages 2025-11-26 17:35:42 +08:00
Ruihan Li 2892b8a977 Use `size_of` in preludes 2025-11-26 17:35:42 +08:00
Hsy-Intel f8c94695d0 Add TDX hardware randomness requirement note 2025-11-26 17:26:55 +08:00
Zhe Tang 70eda539df Refactor IoMem acquisition to use appropriate cache policies across multiple components 2025-11-25 10:24:54 +08:00
Zhe Tang fb1cab9951 Enhance IoMem to support configurable cache policies 2025-11-25 10:24:54 +08:00
Chen Chengjun f8147469d4 Make the mount-related fields in statx effective 2025-11-24 19:01:19 +08:00
Zhe Tang 20c0d3d178 Add proper error handling for unsupported `ioctl` commands in the EFI framebuffer 2025-11-24 18:56:29 +08:00
Zhe Tang 0043cc7504 Implement the color map and the related `ioctl` handlers for the EFI framebuffer 2025-11-24 18:56:29 +08:00
Zhe Tang d027b01f3b Implement the `ioctl` handlers for getting and setting information for the EFI framebuffer. 2025-11-24 18:56:29 +08:00
Zhe Tang 3fd1ecd96f Add a helper method to retrieve the line size of the framebuffer 2025-11-24 18:56:29 +08:00
Zhe Tang 49068f23d8 Incorporate Linux-compatible data structures for the framebuffer's `ioctl` 2025-11-24 18:56:29 +08:00
Zhe Tang 93eaa7c247 Support `lseek`, `read`/`write` with offsets for the EFI framebuffer 2025-11-24 18:56:29 +08:00
Zhe Tang 26dc88dc80 Register `/dev/fb0` as a character device 2025-11-24 18:56:29 +08:00
Zhe Tang c33c37b593 Add the basic framework of /dev/fb0
Co-authored-by: Wei Zhang <ruoyuan.zw@antgroup.com>
2025-11-24 18:56:29 +08:00
Qingsong Chen 0ed3f86709 Fix device id of ext2 inode 2025-11-24 18:55:01 +08:00
Wang Siyuan 449939a32b Move the executable `PathOrInode` to `ProcessVm` 2025-11-24 12:34:42 +08:00
Wang Siyuan 423053f2e6 Store the executable `PathOrInode` in `Process` to support `execveat` memfd files with `MFD_CLOEXEC` 2025-11-24 12:34:42 +08:00
Wang Siyuan 7bd8af411b Support `execveat` memfd files without `MFD_CLOEXEC` 2025-11-24 12:34:42 +08:00
Wang Siyuan 71632a51b5 `ProgramToLoad` only needs a `elf_inode: Arc<dyn Inode>` instead of a `Path` 2025-11-24 12:34:42 +08:00
jiangjianfeng 808d298938 Drop option lock before polling iface 2025-11-24 12:31:38 +08:00
Cautreoxit 869e04f6bb Add evdev module 2025-11-24 11:42:36 +08:00
Chen Chengjun 74dd519a10 Support PR_SET/GET_SECUREBITS 2025-11-21 19:34:04 +08:00
Qingsong Chen 76c7752130 Separate inode and opened file types for BlockFile 2025-11-20 19:40:40 +08:00
Qingsong Chen e407dc7ce9 Refactor mem/misc char devices 2025-11-20 19:40:40 +08:00
Chen Chengjun 6df2af2e17 Fix some mount-related bugs 2025-11-20 18:22:26 +08:00
Qingsong Chen 7876b7127d Fix virtio-block request ID exhaustion panics with SyncIdAlloc 2025-11-20 10:43:24 +08:00
Qingsong Chen 9e2f5adf9b Add partition support for block device 2025-11-20 10:43:24 +08:00
Qingsong Chen d954e3d006 Move ranged integer to aster-util crate 2025-11-20 10:43:24 +08:00
Chen Chengjun 7305d389f0 Refactor the timer module to solve race conditions and support fdinfo for timerfd files 2025-11-19 21:09:50 +08:00
Chen Chengjun 59cd3bd61d Support generating fdinfo for most of the existing FileLikes 2025-11-19 21:09:50 +08:00
Chen Chengjun 61a5bb7241 Add fdinfo files to proc filesystem 2025-11-19 21:09:50 +08:00
Ruihan Li 668876aeee Check the existence of i8042 and RTC CMOS 2025-11-19 15:39:49 +08:00
Ruihan Li 9a8e6fd372 Simplify the code in `aster-time` 2025-11-19 15:39:49 +08:00
Ruihan Li bbe0e3f3bb Reimplement `RtcCmos` 2025-11-19 15:39:49 +08:00
Ruihan Li 21365dd0bd Fix some behavior about `seek()` 2025-11-19 10:33:51 +08:00
Ruihan Li 24502ac3d4 Add `InodeIo` to simplify `FileIo` and `Inode` 2025-11-19 10:33:51 +08:00
Ruihan Li 08dfe533c4 Use `Box<FileIo>` instead of `Arc<FileIo>` 2025-11-19 10:33:51 +08:00
jiangjianfeng 63354d670e Support mknod for /dev/full and /dev/tty0 2025-11-18 17:32:34 +08:00
Ruihan Li 7ebee6d8a1 Fix TTY's HUP events 2025-11-18 14:49:19 +08:00
jiangjianfeng 2f568d5e73 Read pty master should block if no pty slave is opened 2025-11-18 09:48:32 +08:00
Wang Siyuan 151d7ab1bf Refactor procfs with `VmPrinter` 2025-11-17 16:42:08 +08:00
Tao Su 83176020f2 Invoke get_report() using private memory 2025-11-17 15:26:45 +08:00
Ruihan Li 0636e1048e Clarify how `Path` inherits methods 2025-11-17 11:25:55 +08:00
Wang Siyuan 35ab40057a Support stopping states in `proc/pid/stat` 2025-11-14 14:34:04 +08:00
Wang Siyuan 7a7e62b318 Support sleeping states in `proc/pid/stat` 2025-11-14 14:34:04 +08:00
Wang Siyuan 3ffa253947 Store `Weak<Task>` in `PosixThread` 2025-11-14 14:34:04 +08:00
Ruihan Li 58070c4107 Introduce `CopyCompat` 2025-11-14 14:20:30 +08:00
Ruihan Li 4af21521af Fix error codes in various `sched_*` syscalls 2025-11-14 14:20:30 +08:00
Zhang Junyang 8148072984 Upgrade the `riscv` crate to fix the ssoft handling
3c61863630
2025-11-14 10:14:03 +08:00
Qingsong Chen bb48b3814f Move DeviceId to separate device-id crate 2025-11-13 11:04:30 +08:00
Wang Siyuan 9c6dbcee79 Minor cleanup 2025-11-13 09:55:53 +08:00
Wang Siyuan 456cafbc8e Add access mode checks for `MemfdFile` 2025-11-13 09:55:53 +08:00
Wang Siyuan 291c42c9fd Enable some gvisor tests of `memfd_test` 2025-11-13 09:55:53 +08:00
Wang Siyuan 805e2a7c89 Remove inode-specific methods from `FileLike` 2025-11-13 09:55:53 +08:00
Wang Siyuan 4d7958c18e Add `PathOrInode` to support looking up an inode without a `Path`
Also supports opening a memfd from `/proc/[pid]/fd/[fd]`
2025-11-13 09:55:53 +08:00
Wang Siyuan 147a622aa1 Add `SymbolicLink` to support symbol links under `/proc` 2025-11-13 09:55:53 +08:00
Wang Siyuan 7f41bd3ba7 Rename `as_inode_or_err` to `as_inode_handle_or_err` 2025-11-13 09:55:53 +08:00
Wang Siyuan e85879025e Add a method `inode` to the trait `FileLike` 2025-11-13 09:55:53 +08:00
Wang Siyuan 0a0ced99e7 Add `PseudoFs` and `PseudoInode` 2025-11-13 09:55:53 +08:00
Wang Siyuan 1a3ab8aaf8 `MemfdInode`s should be linked to a tmpfs 2025-11-13 09:55:53 +08:00
Ruihan Li f57a54aa0d Remove `AccessMode` from `InodeHandle` 2025-11-12 18:19:08 +08:00
Ruihan Li 722efc62ca Remove `inode_handle/static_cap.rs` 2025-11-12 18:19:08 +08:00
Ruihan Li 277b5b5c24 Fix how O_PATH interacts with other flags 2025-11-12 18:19:08 +08:00
Ruihan Li 25beca462d Add regression tests 2025-11-12 18:19:08 +08:00
Ruihan Li eaeba41f5e Refine some access checks 2025-11-12 18:19:08 +08:00
Ruihan Li b4385ddc3d Simplify some memfd code 2025-11-12 18:19:08 +08:00
wyt8 9a0f63b33e Modify the import of modules in kernel to remove dependencies of lib.rs 2025-11-10 10:53:08 +08:00
Tate, Hongliang Tian 06f798908a Extract kernel initialization code into a module 2025-11-10 10:53:08 +08:00
wyt8 05287667c3 Ensure the idle tasks do not sleep or block 2025-11-10 10:53:08 +08:00
jiangjianfeng cef527f372 Open /dev/tty should also increase pty slave count 2025-11-07 20:22:16 +08:00
jiangjianfeng 49485058ec Correct the device major ID for pty slave 2025-11-07 20:22:16 +08:00
jiangjianfeng a41db92b4e Support nonblocking mode for tty and pty 2025-11-07 20:22:16 +08:00
jiangjianfeng c4ee351639 Fix the unlink problem about devpts 2025-11-07 20:22:16 +08:00
jiangjianfeng 601ac76676 Avoid unwrap on devpts when dropping pty master 2025-11-07 20:22:16 +08:00
jiangjianfeng cd981a0a8d Correct the behavior about closing pty 2025-11-07 20:22:16 +08:00
Chen Chengjun b17602693a Add /proc/[pid]/cgroup 2025-11-07 11:47:23 +08:00
Chen Chengjun 77fb73bdd7 Enable the process management for cgroup 2025-11-07 11:47:23 +08:00
Chen Chengjun cda06613f0 Revise the content of root field for the mountinfo file 2025-11-07 11:44:04 +08:00
Wang Siyuan e336882eee Do not drop `Arc<dyn FileLike>` in an incorrect context 2025-11-06 20:24:25 +08:00
Hang Shu e27b16ec4b Remove IntervalSet::find_one unreachable code 2025-11-06 19:36:12 +08:00
Ruihan Li 0bff86582a Handle TID events in procfs 2025-11-06 15:41:13 +08:00
Ruihan Li 9171a0d13f Correct `main_thread()` usages in procfs 2025-11-06 15:41:13 +08:00
Ruihan Li 2d01804d19 Correct lock usages in procfs 2025-11-06 15:41:13 +08:00
Ruihan Li 4e0142b176 Resolve some minor issues 2025-11-06 15:41:13 +08:00
Wang Siyuan ff021e0b89 Make `memfd` a sub module of `ramfs` 2025-11-04 13:02:06 +08:00
Wang Siyuan 6ba1a84ae9 Support sealing memfd files 2025-11-04 13:02:06 +08:00
Wang Siyuan d1506171d2 Count writable mappings of each MemfdInode's VMO
The "writable mappings" refers to shared mappings that may include the `PROT_WRITE` permission.
2025-11-04 13:02:06 +08:00
Wang Siyuan 7aa6a47612 Add `MemfdInode` 2025-11-04 13:02:06 +08:00
jiangjianfeng 6e8dac0c36 Refactor the implementation of signalfd 2025-11-04 11:56:13 +08:00
jiangjianfeng d2b88f48ff Refactor the implementation of kill process 2025-11-04 11:56:13 +08:00
jiangjianfeng 00c79732e6 Re-introduce the process-wide sigqueues 2025-11-04 11:56:13 +08:00
Chen Chengjun 6f8877f252 Rename some variables and let src_name_addr can be NULL for some mount operations 2025-11-03 15:56:05 +08:00
Chen Chengjun d66dbdd3bc Revise some error numbers and messages 2025-11-03 09:57:48 +08:00