Commit Graph

1489 Commits

Author SHA1 Message Date
jiangjianfeng 82ccfcd4c6 Refactor the implementation of prlimit64 2025-12-31 16:18:45 +08:00
Ruihan Li 033c240d8f Fix madvise behavior 2025-12-29 19:43:00 +08:00
Ruihan Li 7feb803eab Fix cases where some pages are not mapped 2025-12-29 19:43:00 +08:00
Ruihan Li eee6708aec Fix error codes in MM syscalls 2025-12-29 19:43:00 +08:00
Ruihan Li 142cd4b481 Add `is_userspace_vaddr_range` 2025-12-29 19:43:00 +08:00
Ruihan Li d19ffac68a Drop `MAP_SYNC` support 2025-12-29 19:43:00 +08:00
Ruihan Li e40091808a Fix error codes in mmap 2025-12-29 19:43:00 +08:00
Chaoqun Zheng ebfa7977b1 Adjust `blocks_count` field to `sector_count` in `InodeDesc` and `RawInode`.
In ext2, the granule of the `blocks_count` field in disk-inode is fixed at
512B. In the current implementation of Asterinas, the `blocks_count`
granule of memory-inode is BLOCK_SIZE.
2025-12-29 10:26:48 +08:00
Ruihan Li 046c9f6a94 Improve futex code and log clarity 2025-12-29 10:11:26 +08:00
Ruihan Li ca384fc427 Never allow overlapping ELF maps 2025-12-29 10:09:58 +08:00
Ruihan Li e92fbe3e69 Correct ELF alignment settings 2025-12-29 10:09:58 +08:00
Marsman1996 545efaa155 Validate futex address alignment when waking robust futexes 2025-12-28 23:48:34 +08:00
Marsman1996 b46a02463b Replace RwLock with RwMutex for child node management in SysTree 2025-12-26 14:08:17 +08:00
Marsman1996 6d1155896d Fix OOM in `getdents(64)` by user space writer 2025-12-26 14:08:17 +08:00
Zhenchen Wang 847ef4c784 update statx scml documentation
Signed-off-by: Zhenchen Wang <m202372036@hust.edu.cn>
2025-12-26 13:16:59 +08:00
Ruihan Li 4fdf400d2a Separate VMAR load and activation 2025-12-26 13:16:59 +08:00
Ruihan Li e2f7b0eb73 Clean up `ProgramToLoad` 2025-12-26 13:16:59 +08:00
Ruihan Li 2b8ccbf3d2 Clean up `load_elf.rs` and do overflow checks 2025-12-26 13:16:57 +08:00
Ruihan Li 586266b086 Clean up `elf_file.rs` 2025-12-25 15:41:58 +08:00
Marsman1996 bcf8f5e93c Fix OOM by adding SYSCTL_NR_OPEN limit for setrlimit and prlimit64 2025-12-25 10:17:28 +08:00
Zhenchen Wang cd7859161d Fix the issue of notifying parent in fsnotify 2025-12-25 09:55:08 +08:00
Marsman1996 2c80e0c3a4 Fix reachable unwrap in sys_arch_prctl by using the ? operator 2025-12-23 11:42:32 +08:00
Zhang Junyang ae3113194a Adjust the documentation of `aster-nix::vm` 2025-12-23 11:39:49 +08:00
Zhang Junyang afe5e59aeb Split `vmar/mod.rs` into several files 2025-12-23 11:39:49 +08:00
zjp 9c4f644bd9 Replace caps_lock's load+store by fetch_xor
It's a bit less efficient, but solves atomic violation.
2025-12-20 20:35:49 +08:00
Ruihan Li 49a2cecc81 Clarify the code for a long shebang 2025-12-15 10:12:12 +08:00
wyt8 fcb1a44759 Fix the implementation of prlimit64 syscall and the init process value of ResourceLimits 2025-12-11 18:01:20 +08:00
wyt8 387667ec10 Fix the return of brk syscall 2025-12-11 17:58:43 +08:00
Ruihan Li af2fbbb9ac Sort cgroup attributes and add TODOs 2025-12-11 15:51:48 +08:00
Ruihan Li a7ecef2e58 Fix cgroup atomic mode break 2025-12-11 15:51:48 +08:00
Ruihan Li d299cf4db4 Clarify the UTS names in `/proc/version` 2025-12-11 15:38:46 +08:00
Ruihan Li 0cfc539608 Fix some style issues 2025-12-11 15:38:46 +08:00
Chen Chengjun de6ded3412 Fix the wrong behavior of TCSETSW flag 2025-12-11 11:02:16 +08:00
vvsv 4e0ae560bf Add `/proc/[pid]/maps` 2025-12-11 00:06:07 +08:00
vvsv b1b909dd0f Add a fast path for `Vmar::remap` 2025-12-10 22:13:17 +08:00
Chen Chengjun d92f388ae1 Provide dummy supports for some cgroup attributes required by Podman 2025-12-10 15:36:10 +08:00
vvsv 2dbcd1194b Refactor the pipe modules to fit semantics 2025-12-09 22:46:43 +08:00
vvsv f4a51e1ce9 Support open and fstatfs for anonymous pipes 2025-12-09 22:46:43 +08:00
vvsv 3b44a638f4 Zero-length reads and writes on a named pipe should succeed even if the peer is closed 2025-12-09 22:46:43 +08:00
Chen Chengjun 53575b04cd Support rt_sigtimedwait syscall 2025-12-09 22:33:42 +08:00
Zhang Junyang ca417f1264 Format with the new `rustfmt` 2025-12-09 16:26:02 +08:00
Cautreoxit dbba54b02c Workaround unrecognized input event types by writing all zeros 2025-12-09 10:20:57 +08:00
Chaoqun Zheng e1633e7707 Add some stubs for `madvise`. 2025-12-09 09:59:06 +08:00
jiangjianfeng 3235175fcf Support pty packet mode 2025-12-09 09:36:38 +08:00
Chaoqun Zheng 7d74429247 Add `timer_slack` field in `PosixThread` and implement related methods.
For now, we do not use `timer_slack` for any usage, it is just a
placeholder for running some complex programs successfully.
2025-12-09 09:33:51 +08:00
Zhang Junyang c7a2c81366 Miscellaneous clippy fixes for Rust 2024 2025-12-09 09:23:58 +08:00
Zhang Junyang 69327eee8d Upgrade to Rust 2024 2025-12-09 09:23:58 +08:00
Zhang Junyang 6d2679852f Fix `if let` chains that can be collapsed 2025-12-09 09:23:58 +08:00
Zhang Junyang 127290f70d Patches for the new borrow checker 2025-12-09 09:23:58 +08:00
Zhang Junyang fc9f47a019 Fix manual implementations of `.is_multiple_of()` 2025-12-09 09:23:58 +08:00
Zhang Junyang 559ce94aba Fix elided lifetimes in return values 2025-12-09 09:23:58 +08:00
Zhang Junyang dd410444e5 Format with new `rustfmt` 2025-12-09 09:23:58 +08:00
Zhang Junyang 85ca6b8934 Use `Vmar::access_remote` to fill zeros upon ELF loading 2025-12-08 12:52:37 +08:00
Ruihan Li 6ac45fe406 Add methods to allow overlapping I/O ports 2025-12-08 11:12:05 +08:00
Ruihan Li 05886011f8 Follow ACPI to reset a real machine 2025-12-08 11:12:05 +08:00
Ruihan Li 35d70fca71 Manage poweroff and restart handlers 2025-12-08 11:12:05 +08:00
Ruihan Li bd67ea489e Simplify code and resolve lints 2025-12-08 11:12:05 +08:00
Cautreoxit 4f71f4bbe6 Add some ioctls for evdev 2025-12-07 17:30:04 +08:00
Ruihan Li a176e4c3c6 Add ioctl enum support 2025-12-07 12:01:05 +08:00
Ruihan Li 4e76ed5fea Migrate to new ioctl infrastructure 2025-12-07 12:01:05 +08:00
Ruihan Li 99fefb7adf Implement new ioctl infrastructure 2025-12-07 12:01:05 +08:00
Ruihan Li 04ef99cb82 Migrate existing code to use `VmIo` 2025-12-07 12:01:05 +08:00
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