Zejun Zhao
2e46edb68d
Register some timer callbacks on all CPUs
2025-09-19 14:40:33 +08:00
Zejun Zhao
cf9c45a46c
Implement renameat2 system call
2025-09-19 12:00:01 +08:00
Wang Siyuan
70b26f824d
Support `RUSAGE_CHILDREN` option for `getrusage`
2025-09-18 17:20:07 +08:00
Ruihan Li
c90c081e86
Fix bugs due to bad `ReadCString` APIs
...
Co-authored-by: Wang Siyuan <wsy@stu.pku.edu.cn>
2025-09-18 17:19:51 +08:00
Ruihan Li
3acdc1e8b0
Move `ReadCString` to `util/`
...
Co-authored-by: Wang Siyuan <wsy@stu.pku.edu.cn>
2025-09-18 17:19:51 +08:00
Ruihan Li
d7334118f3
Respond error segments for netlink parse errors
2025-09-18 17:19:51 +08:00
Qingsong Chen
8bc0013801
Add stage support for init_component macro
2025-09-18 12:11:44 +08:00
Tate, Hongliang Tian
8d2fec7873
Introduce ASCII art representations of the Asterinas logo
2025-09-17 22:44:40 +08:00
Qingsong Chen
f6a55e0af3
Handle 8-bit/24-bit ANSI color codes for framebuffer
2025-09-17 22:43:22 +08:00
Wang Siyuan
46aa437c87
Add `/proc/pid/oom_score_adj`
2025-09-15 13:28:23 +08:00
Wang Siyuan
b42605af6b
Support configurable file modes within procfs
2025-09-15 13:28:23 +08:00
Chen Chengjun
c2a224e757
Fix the bug in is_mount_root method
2025-09-12 17:06:58 +08:00
Qingsong Chen
96adc3dc82
Add /proc/cmdline support
2025-09-12 08:45:32 +08:00
Chen Chengjun
8c36964bb9
Introduce VmPrinter to write kernel generated data
2025-09-10 21:07:14 +08:00
Chen Chengjun
12f2f6bb54
Correct the misuse of some AttributeErrors
2025-09-10 21:07:14 +08:00
Ruihan Li
fe1d4fe15f
Support UNIX datagram sockets
2025-09-10 20:01:30 +08:00
Ruihan Li
87640d4b27
Drop `UnixSocketAddrBound` on `close()`
2025-09-10 20:01:30 +08:00
Ruihan Li
286d4d4466
Reorder methods and fix minor issues
2025-09-10 20:01:30 +08:00
Ruihan Li
9de70e38de
Add the `arch::cpu::cpuid` module
2025-09-10 12:10:40 +08:00
Ruihan Li
652657fba5
Drop duplicate public re-exports
2025-09-10 12:10:40 +08:00
Ruihan Li
c1b80f0f0f
Use `'static` for FS types
2025-09-08 14:40:08 +08:00
Ruihan Li
ef5318c000
Rename `*FS` to `*Fs`
2025-09-08 14:40:08 +08:00
Ruihan Li
bb6069d5bb
Clean up some FS APIs
2025-09-08 14:40:08 +08:00
Ruihan Li
c289f96d23
Report `ENOBUFS` if netlink messages overrun
2025-09-05 10:51:48 +08:00
Ruihan Li
b57c94d05d
Unpack `MessageQueue`
2025-09-05 10:51:48 +08:00
zhuowei shao
f0935beb18
Extract futex double bucket locking operation
2025-09-05 10:49:45 +08:00
Zhe Tang
2796c8d1ad
Add unit tests for the newly implemented methods related to `IoMem`
2025-09-05 10:47:43 +08:00
Zhe Tang
b94ea9f174
Add kernel support for mapping via files
2025-09-05 10:47:43 +08:00
Zhe Tang
5022cadef1
Add the file-specific `mmap` interface
...
Co-authored-by: Wei Zhang <ruoyuan.zw@antgroup.com>
2025-09-05 10:47:43 +08:00
Zhe Tang
5a38c61c49
Ensure that OSTD users cannot modify the `PrivilegedPageFlags` in `PageProperty`
2025-09-05 10:47:43 +08:00
Ruihan Li
3b606f5b6c
Use `size_of`/`align_of` in the prelude
2025-09-04 09:26:56 +08:00
Zhang Junyang
9e2d8e9f08
Use device addresses instead of physical addresses
2025-09-02 17:53:55 +08:00
Zhang Junyang
4e2bdc65de
Refactor implicit `Arc` APIs for DMA
2025-09-02 17:53:55 +08:00
Zhang Junyang
a6520880ab
Unify memory object slicing
2025-09-02 17:53:55 +08:00
Zhang Junyang
eb69aa4fb9
Unify address and size APIs for memory objects
2025-09-02 17:53:55 +08:00
Ruihan Li
419f31397f
Move checks from `syscall/` to `iovec.rs`
2025-09-02 15:43:09 +08:00
Ruihan Li
4e27e9d90b
Use "I/O" instead "IO"
2025-09-02 15:43:09 +08:00
jiangjianfeng
ef099996fc
Fix the unshare logic in syscall close_range
2025-09-02 09:47:41 +08:00
jiangjianfeng
b43047eedb
Add syscall setns
2025-09-02 09:47:41 +08:00
jiangjianfeng
cca73480c2
Add syscall unshare
2025-09-02 09:47:41 +08:00
jiangjianfeng
83b6e2da5c
Add basic namespace framework
2025-09-02 09:47:41 +08:00
jiangjianfeng
3cbc9b4bf7
openat should return ENOENT if path is empty
2025-09-02 09:45:42 +08:00
jiangjianfeng
09886fc15b
Write the supported cap version to user if capget version is unsupported
2025-09-02 09:45:42 +08:00
jiangjianfeng
6c5bcc420a
Don't panic on MADV_NOHUGEPAGE
2025-09-02 09:45:42 +08:00
Arthur Paulino
f56d2f3bad
`context.rs` enhancements
...
* Improve the phrasing of some docstrings and comments
* Add warning comments about attempts to validate memory addresses
at reader/writer instantiation time
* Create the `reader_writer` method for ergonomically instantiate
a reader/writer pair covering the same memory region. This method
is also slightly more efficient than calling `reader` and `writer`
separately
* Clean up `check_vaddr` for clarity and rename it to `check_vaddr_lowerbound`
for explicity
* Include the data length check before calling `check_vaddr_lowerbound`
in `atomic_load` and `atomic_fetch_update` for further consistency
with the delayed buffer validation
2025-09-01 11:16:37 +08:00
Zejun Zhao
f4b05597cd
Init vDSO singleton in the first kthread
2025-08-31 23:57:17 +08:00
Chen Chengjun
f8e4aefcca
Add tmpfs support by wrapping ramfs
2025-08-29 15:45:20 +08:00
Yang Zhichao
d84ad988d4
Implement `EnvironFileOps` to handle `/proc/[pid]/environ`
2025-08-29 10:07:29 +08:00
Zejun Zhao
d3e27ae03a
Use vDSO for fallback of user-provided sa_restorer on RISC-V platforms
2025-08-28 17:35:55 +08:00
jiangjianfeng
2098b11b68
Unify the implementation of /proc/[pid] and /proc/[pid]/task/[tid]
2025-08-27 15:22:08 +08:00
Arthur Paulino
888eecb350
Patch a futex vulnerability
...
If the futex wait operation was interrupted by a signal or timed out, the
`FutexItem` must be dequeued and dropped. Otherwise, malicious user programs
could repeatedly issue futex wait operations to exhaust kernel memory.
Due to asynchronicity, this removal can't be done by queue position nor by
futex key match up:
* The position might have changed during the pause as some earlier futex might
have been dequeued
* If two futexes with the same key are enqueued and then one of them times out
or is interrupted, a removal by key would likely dequeue the wrong futex
Therefore, we need to perform a removal by unique global futex ID.
2025-08-26 18:04:34 +08:00
Ruihan Li
a6d37f0e79
Mark all kernel modules as private
2025-08-26 18:02:56 +08:00
Ruihan Li
f35ae6fe1c
Adjust visibility in `sem{,_set}.rs`
2025-08-26 18:02:56 +08:00
Ruihan Li
5c49142515
Remove `base` and `size` in `Vmar`
2025-08-26 18:02:56 +08:00
Ruihan Li
a84897097e
Remove `RangeLockItemBuilder`
2025-08-26 18:02:56 +08:00
Ruihan Li
c9ac58e8df
Remove unused "unregister" methods
2025-08-26 18:02:56 +08:00
Ruihan Li
b2f17d11c6
Remove common enum suffixes
2025-08-26 18:02:56 +08:00
Ruihan Li
09e7355d87
Remove dead code in `file_table.rs`
2025-08-26 18:02:56 +08:00
Chen Chengjun
b1bbd6c3fe
Optimize the initialization logic during Asterinas init phase
2025-08-26 14:36:59 +08:00
Chen Chengjun
a5c4566485
Include the VDSO library directly
2025-08-24 19:09:40 +08:00
Zejun Zhao
0a126a0c8c
Set correct default value for VdsoData::mask
2025-08-23 12:38:22 +08:00
Zejun Zhao
47b05143cf
Correct vDSO data segment's permission
2025-08-23 12:38:22 +08:00
Zejun Zhao
e68631d1b6
Implement arch-aware vDSO
2025-08-23 12:38:22 +08:00
Ruihan Li
a4aa745de1
Refine the lock usage in the vDSO module
2025-08-22 16:20:01 +08:00
Ruihan Li
f457acdb8b
Rewrite documentations in the vDSO module
2025-08-22 16:20:01 +08:00
Tao Su
226ea2865c
Resolve `semget01` failure by fixing key limit and adding `IPC_STAT`
2025-08-20 19:57:14 +08:00
Ruihan Li
6b6c64c591
Rename `atomic_update` to `atomic_fetch_update`
2025-08-20 13:17:57 +08:00
Arthur Paulino
a73f210c7a
Make `wake_robust_futex` atomic
...
Replace `VmWriter::atomic_update` with `VmWriter::atomic_compare_exchange`,
which takes the old value for comparison and new value instead of a
closure to compute it. This version has one less unsafe call.
Then use `atomic_compare_exchange` to reimplement the looping logic
of `wake_robust_futex` and make it atomic.
2025-08-19 19:22:12 +08:00
Chen Chengjun
fc5a12356a
Fix LOONGARCH clippy warnings
2025-08-19 19:20:54 +08:00
Chen Chengjun
9507475102
Fix RISCV clippy warnings
2025-08-19 19:20:54 +08:00
Zhang Junyang
1452aab69c
Optimize the space for `TlbFlushOp`s
2025-08-16 22:09:29 +08:00
Arthur Paulino
c31c6110f6
chore: use `jhash` to compute the `FutexKey` hash
...
This patch pays the price of making the instantiation of `FutexKey`
more expensive to achieve two goals:
* Minor: make `match_up` slightly faster
* Major: make futex bucket allocation balancing more robust
2025-08-16 09:16:50 +08:00
Arthur Paulino
91351e338f
fix: avoid distribution skew in `FutexBucketVec::get_bucket`
...
Doing `addr / self.size()` before masking with `(self.size() - 1)`
removes the low bits entirely, which causes adjacent addresses
(modulo `self.size()`) to map to the same bucket, entailing bad
load balance. This patch solves that.
Further, make `FutexBucketVec::new` and `FutexBucketVec::get_bucket`
private, as they only make sense within the scope of `futex.rs`,
where the invariant of `size` being a power of two is guaranteed to
hold via `get_bucket_count` (which is also private).
2025-08-16 09:16:50 +08:00
Arthur Paulino
c345876bc0
chore: avoid several `FutexKey` copies
...
Use shared references instead of copied objects on some functions
that don't necessarily require ownership of `FutexKey`.
Remove the `Copy` derivation of `FutexKey` to discourage suboptimal
copies.
2025-08-16 09:16:50 +08:00
Tao Su
c15106734a
Align `MS_ASYNC` and `MS_SYNC` flags with Linux behavior
2025-08-14 20:01:36 +08:00
Ruihan Li
5b91064316
Add a method that disables page fault handlers
2025-08-14 11:59:05 +08:00
Ruihan Li
e4fafb13b1
Add atomic operations for VM readers/writers
2025-08-14 11:59:05 +08:00
Ruihan Li
086a80c05f
Drop unsound TLS methods from `Task`
2025-08-12 19:19:34 +08:00
Ruihan Li
923982c2e5
Remove `user_ctx` from `Task`
2025-08-12 19:19:34 +08:00
Zejun Zhao
60bc63b0e2
Refine system call tables
2025-08-12 17:03:44 +08:00
Chen Chengjun
25d217397a
Rename MountNode to Mount
2025-08-12 15:20:17 +08:00
Chen Chengjun
32ee4a41f1
Refine visibility
2025-08-12 15:20:17 +08:00
Chen Chengjun
e155057d55
Move all mount operation interfaces to Path
2025-08-12 15:20:17 +08:00
Chen Chengjun
aea4013a43
Fix the mountpoint state maintaining for Dentry
2025-08-12 15:20:17 +08:00
Chen Chengjun
ae32062e77
Avoid passing self when calling internal mount methods within Path
2025-08-12 15:20:17 +08:00
Chen Chengjun
9985d64535
Complete some remaining rename tasks
2025-08-12 15:20:17 +08:00
jiangjianfeng
9a56028afc
Support parsing shebang with multiple arguments in intepreter line
2025-08-12 11:23:30 +08:00
Ruihan Li
cdd28787ed
Replace `write_vals` by `fill_zeros` in `VmIo`
2025-08-10 16:40:11 +08:00
Ruihan Li
2700d88bef
Provide efficient `VmIo` with VM readers/writers
2025-08-10 16:40:11 +08:00
Ruihan Li
aa7aca3dde
Add `VmWriter::fill_zeros`
2025-08-10 16:40:11 +08:00
Tate, Hongliang Tian
f2ead0b3ed
Remove O_TMPFILE flag because it is not really supported
2025-08-09 16:26:50 +08:00
jiangjianfeng
f6478d62cc
Refactor the implementation about sigstack
2025-08-08 12:06:26 +08:00
Ruihan Li
c19c7765d8
Fix race conditions in `pause_timeout`
2025-08-06 17:17:34 +08:00
Ruihan Li
20893be80e
Allow to receive empty SEQPACKET packets
2025-08-06 17:17:34 +08:00
Chen Chengjun
c6a6e66aac
Rename Dentry to Path in the other modules and rename some local variables
2025-08-06 14:06:39 +08:00
Chen Chengjun
6aa516e2bf
Move Path to mod.rs of the path module
2025-08-06 14:06:39 +08:00
Chen Chengjun
34dac93175
Rename Dentry and Dentry_ in the path module
2025-08-06 14:06:39 +08:00
jiangjianfeng
de97644b4c
Move `ThreadFsInfo` from `PosixThread` to `ThreadLocal`
2025-08-06 13:38:42 +08:00
Zhang Junyang
afe63e7123
Fix ELF loading when shebang/loader path is too long/far
2025-08-05 15:42:13 +08:00
Wang Siyuan
3ebb5a25b2
Refactor task schedulers to conform with the new semantics
2025-08-05 13:37:01 +08:00
Wang Siyuan
48fa40bbf2
Support the system call `memfd_create`
2025-07-31 09:29:12 +08:00
Wang Siyuan
59ceb6d27c
Add a method `inode` for `FileLike`
2025-07-31 09:29:12 +08:00
Tate, Hongliang Tian
659f079c2d
Revise the doc of OSTD's scheduling module
2025-07-29 21:58:23 +08:00
Ruihan Li
d73f1016a1
Set softfloat targets for ARM/LoongArch/RISC-V
2025-07-29 11:13:59 +08:00
Wei Zhang
8a801676ab
Disallow masking SIGKILL and SIGSTOP in user space
...
According to the Linux man pages[1], "It is not possible to block SIGKILL
or SIGSTOP. Attempts to do so are silently ignored." This patch ensures
compliance by explicitly removing SIGKILL and SIGSTOP from the signal
mask in the `MaskOp::SetMask` operation of the `rt_sigprocmask` syscall.
[1]: https://www.man7.org/linux/man-pages/man2/sigprocmask.2.html
2025-07-28 17:08:10 +08:00
Yuke Peng
2154124dc4
Format the user exception log
2025-07-28 15:01:49 +08:00
Ruihan Li
e52634cb78
Add some references for signal-related types
2025-07-28 10:50:38 +08:00
Ruihan Li
83b0564c99
Remove TLS-related stuffs from `LinuxABI`
2025-07-28 10:50:38 +08:00
jiangjianfeng
28d5d94c8c
Support setting reuseaddr for UDP socket
2025-07-28 10:20:50 +08:00
jiangjianfeng
ff39f6df75
Correct the reuseaddr behavior
2025-07-28 10:20:50 +08:00
王英泰
345cc9d055
Save FPU context on signal stack for LoongArch
2025-07-25 17:37:24 +08:00
王英泰
434d75c0f0
Cancel the use of floating-point instructions in kernel log
2025-07-25 17:37:24 +08:00
王英泰
fc72398fbc
Change the method to identify the legacy virtio device
2025-07-25 17:37:24 +08:00
王英泰
cc280272cc
Add the RTC time comps for LoongArch
2025-07-25 17:37:24 +08:00
王英泰
5c4b3fdd19
Finish the arch section for LoongArch in kernel
2025-07-25 17:37:24 +08:00
王英泰
4562361ef0
Add the random support for LoongArch in kernel
2025-07-25 17:37:24 +08:00
王英泰
5ca18b31ad
Add the syscall support for LoongArch in kernel
2025-07-25 17:37:24 +08:00
王英泰
5c590f0c6b
Add the process support for LoongArch in kernel
2025-07-25 17:37:24 +08:00
王英泰
3824af8c89
Add the trap section for LoongArch in OSTD
2025-07-25 17:37:24 +08:00
王英泰
91e7785915
Add the cpu section of LoongArch in OSTD and kernel
2025-07-25 17:37:24 +08:00
jiangjianfeng
9219207b97
Add CLONE_PIDFD & pidfd_open support
2025-07-24 21:11:24 +08:00
jiangjianfeng
dbc6e7c71a
Add support for `/proc/sys/kernel/pid_max`
2025-07-24 21:11:24 +08:00
Ruihan Li
5ccadb6253
Support SOCK_SEQPACKET
2025-07-23 20:02:15 +08:00
Ruihan Li
c3572e9548
Support SCM_CREDENTIALS
2025-07-23 20:02:15 +08:00
Ruihan Li
ab897ccd2f
Support SO_PASSCRED
...
Co-authored-by: Jianfeng Jiang <jiangjianfeng.jjf@antgroup.com>
2025-07-23 20:02:15 +08:00
Qingsong Chen
e86f7584a3
Fix atomic mode issue when VMO commit needs IO
2025-07-23 11:23:03 +08:00
Qingsong Chen
eb64ca1cea
Fix VMO commit address when needs IO
2025-07-23 11:23:03 +08:00
Cautreoxit
6ecccad3ee
Add sys_ioprio_set and sys_ioprio_get
2025-07-22 17:22:52 +08:00
Cautreoxit
2e3d8ea867
Add extension support for keyboard
2025-07-22 15:16:12 +08:00
Cautreoxit
b8b9d8bff6
Add release support for keyboard
2025-07-22 15:16:12 +08:00
YanWQ-monad
79335b272f
Add coverage support
...
Co-authored-by: Marsman1996 <lqliuyuwei@outlook.com>
2025-07-22 10:31:56 +08:00
Chen Chengjun
ef0382b164
Enhance waitid syscall support
2025-07-21 21:31:32 +08:00
Chen Chengjun
4d52241c6c
Fix some definition errors of siginfo_t
2025-07-21 21:31:32 +08:00
Cautreoxit
c6011b9650
Add fadvise64 syscall
2025-07-21 21:29:17 +08:00
Yang Zhichao
9570f14d80
Add AMD support for cache_size and tlb_size
2025-07-21 20:08:42 +08:00
Yang Zhichao
d09c6c7584
Add a fallback to RDTSC estimation when TSC info is unavailable
2025-07-21 20:08:42 +08:00
Yang Zhichao
496c50f296
Fix get_cpuid_level function to directly return the CPUID 0x0 EAX value instead of TSC denominator
2025-07-21 20:08:42 +08:00
Yang Zhichao
85e605250b
Fix cache line size calculation in get_clflush_size function
2025-07-21 20:08:42 +08:00
Marsman1996
62d426d9b7
Add check for empty directory and more forms of root directory in `rmdir`
2025-07-21 11:33:14 +08:00
Ruihan Li
4d8078166e
Send and receive UNIX control messages
2025-07-21 10:46:08 +08:00
Qingsong Chen
f1299d4b8d
Save FPU context on signal stack
2025-07-18 11:40:16 +08:00
Qingsong Chen
6cd53fbb8a
Refactor FPU context using pre_schedule_handler
2025-07-18 11:40:16 +08:00
Chen Chengjun
749fe77591
Add an initial script to mount several file systems
2025-07-17 13:51:45 +08:00
Chen Chengjun
df69af324e
Forbid creating a directory in sysfs
2025-07-17 13:51:45 +08:00
Chen Chengjun
16292742d2
Leverage FsRegistry to remove the hardcode in mount syscall
2025-07-17 13:51:45 +08:00
Chen Chengjun
9783bbddda
Implement FsType for exsiting file systems
2025-07-17 13:51:45 +08:00
Chen Chengjun
cb1732706a
Introduce FsType and FsRegistry
2025-07-17 13:51:45 +08:00
Ruihan Li
cdd7950d2e
Remove some variants in `ostd::Error`
2025-07-15 23:05:30 +08:00
Chen Chengjun
d02202dc73
Support the basic cgroupfs
2025-07-14 20:35:05 +08:00
Chen Chengjun
19a3f5576d
Introduce the FsManager
2025-07-14 20:35:05 +08:00
Chen Chengjun
b90b79810c
Provide more powerful macros to assist in implementing the SysTree-related traits
2025-07-14 20:35:05 +08:00
Chen Chengjun
a8b4c23319
Add SysTreeInodeTy trait to abstract the view part of MVC arch
2025-07-14 20:35:05 +08:00
Chen Chengjun
774291611c
Add two error types in aster_systree::Error
2025-07-14 20:35:05 +08:00
Chen Chengjun
9c68d96fa2
Attach SysPerms to systree nodes and attributes
2025-07-14 20:35:05 +08:00
Chen Chengjun
e229eb379b
Enable getting path through SysObj
2025-07-14 20:35:05 +08:00
Ruihan Li
a5e927b675
Make the framebuffer backspace work
2025-07-14 20:24:29 +08:00
Ruihan Li
b1079c2bc5
Add support for font setting
2025-07-14 20:24:29 +08:00
Ruihan Li
9f82a0c89f
Clean up the console crate
2025-07-14 20:24:29 +08:00
jiangjianfeng
d317ce3246
Adjust `max_len` to avoid EFAULT when reading CString
2025-07-14 15:43:34 +08:00
jiangjianfeng
010da31b3e
Align execve argument limits with Linux
2025-07-14 15:43:34 +08:00
yuankunzhang
a4c918efd7
fs: validate workdir when creating overlayfs instance
...
The workdir needs to be an empty directory on the same filesystem
as upperdir.
2025-07-11 09:26:31 +08:00
jiangjianfeng
665de6bd35
Make RISC-V code compile under new exception APIs
2025-07-09 10:49:43 +08:00
jiangjianfeng
7f3ca86467
Refactor x86 exception related code
2025-07-09 10:49:43 +08:00
Chen Chengjun
2a34a041c4
Fix the mask set in the signalfd
2025-07-08 15:50:41 +08:00
js2xxx
1a12080c58
Fix integer overflow when updating vruntime after pending weight update
2025-07-05 18:23:17 +08:00
Ruihan Li
801ab865b7
Make paths of `TrapFrame` unique
2025-07-05 18:19:26 +08:00
Ruihan Li
0fce977b40
Clean up `trapframe` items
2025-07-05 18:19:26 +08:00
Wang Siyuan
37cc54f2aa
Store `offset` in `MappedVmo` instead of `range`
2025-07-03 18:54:53 +08:00
Ruihan Li
706f62e299
Support ANSI escape sequences
2025-07-03 17:47:56 +08:00
Ruihan Li
abbf152d74
Re-enable framebuffer
2025-07-03 17:47:56 +08:00
Ruihan Li
d73cbb5008
Clarify the `DeviceId` encoding
2025-07-03 14:30:14 +08:00
Wang Siyuan
a13297ae4c
Add fields in `/proc/*/stat` and `/proc/*/status`
2025-07-02 20:13:47 +08:00
Wei Zhang
513532fe95
Correctly handle partial writes and reads in writev and readv
...
When using writev or readv, if data is partially written or read, the
written or read bytes number should be returned instead of error.
2025-07-02 17:14:10 +08:00
Chen Chengjun
fe24c2d8ae
Ensure proper handling of out-of-bounds VMO access during page fault processing
2025-07-02 16:08:00 +08:00
js2xxx
4571fabc7a
Fix integer overflow due to fair weight change
2025-07-02 11:00:34 +08:00
Ruihan Li
6146434f15
Unify the styles of the `arch` modules
2025-06-30 15:43:41 +08:00
Qingsong Chen
5e3e23bf7c
Add basic i8042 keyboard support
2025-06-27 12:56:55 +08:00
Ruihan Li
3f1bf99b2a
Make `mremap` behavior consistent with Linux
2025-06-26 11:41:56 +08:00
Ruihan Li
079be2f30f
Enable syscall tests for UNIX sockets
2025-06-26 11:11:03 +08:00
Ruihan Li
bef9304c85
Fix minor problems of UNIX sockets
2025-06-26 11:11:03 +08:00
Wang Siyuan
810580bda5
Fix underflow when merging VMAs
2025-06-26 11:10:38 +08:00
jiangjianfeng
e4c5c36be9
Support SO_PEERCRED & SO_PEERGROUPS
2025-06-24 17:25:44 +08:00
jiangjianfeng
d7e88f93bd
Support SO_ACCEPTCONN
2025-06-24 17:25:44 +08:00
jiangjianfeng
ec8beab540
Support SO_PRIORITY
2025-06-24 17:25:44 +08:00
jiangjianfeng
8f6bc07b23
Support SO_SNDBUFFORCE & SO_RCVBUFFORCE
2025-06-24 17:25:44 +08:00
Ruihan Li
b891d7d215
Introduce `Endpoint` and `EndpointState`
2025-06-24 15:41:53 +08:00
Wang Siyuan
a0cbe7551a
Fix some user space address check
2025-06-24 12:15:24 +08:00
Wang Siyuan
f442cc6d81
Automatically merge adjacent and compatible `VmMapping`s
2025-06-24 12:15:24 +08:00
js2xxx
c5d57d5216
Fix mapping between `sched_attr` and `SchedPolicy`
2025-06-24 10:31:32 +08:00
Zhang Junyang
93015a6090
Make user program relocation code readable
2025-06-24 10:15:09 +08:00
Ruihan Li
35e0918bce
Don't race between enabling IRQs and halting CPU
2025-06-23 22:53:35 +08:00
Ruihan Li
b96c8f9ed2
Make `ostd::trap::irq` public
2025-06-23 22:53:35 +08:00
Ruihan Li
751e0b2ebf
Don't jump to the end of the cursor range
2025-06-23 10:54:30 +08:00
Ruihan Li
1c423d6b6d
Unwrap some unreachable errors
2025-06-23 10:54:30 +08:00
Hsy-Intel
65fd1aac81
Sync CVM guest feature dependencies between kernel and virtio components
2025-06-23 10:32:09 +08:00
Marsman1996
826f56aeed
Check file_table in PID directory before access
2025-06-22 17:58:33 +08:00
Marsman1996
1c56fbc871
Fix unwrap panic of dropped VMAR in PID status
2025-06-22 17:58:33 +08:00
Wang Siyuan
11f9675f37
Support the system call `mremap`
2025-06-21 16:18:09 +08:00
Wang Siyuan
33345f184a
Count RSS when dropping `RssDelta`
2025-06-21 16:18:09 +08:00
Marsman1996
bb3f21b41e
Fix integer overflow in futex wake
2025-06-20 15:58:19 +08:00
jiangjianfeng
95faea0fb0
Support WSTOPPED and WCONTINUED
2025-06-20 11:51:44 +08:00
Ruihan Li
bcf1e69878
Expose `head`/`tail` of `RingBuffer`
2025-06-19 16:30:02 +08:00
Ruihan Li
a3c5ab8cb4
Move virtio-mmio bus outside OSTD
2025-06-19 15:10:42 +08:00
Marsman1996
2f097ab8f8
Check file_table before use
2025-06-18 17:28:28 +08:00
Ruihan Li
4a9977d9a7
Make zero reads/writes' behavior right
2025-06-17 16:09:33 +08:00
Ruihan Li
837f908690
Fix some pollee mistakes
2025-06-17 16:06:48 +08:00
Marsman1996
5a514f6163
Check `VSOCK_GLOBAL` when creating `VsockStreamSocket`
2025-06-16 14:43:17 +08:00
Qingsong Chen
ef7fdc6647
Fix improper handling of O_TRUNC for non-regular files
2025-06-16 12:10:58 +08:00
Wang Siyuan
d5b12532a8
Require `T: Send` for `CpuLocal<T, S>`
2025-06-16 12:09:13 +08:00
Chen Chengjun
627dd0386b
Enable FUTEX_WAKE_OP
2025-06-16 11:02:17 +08:00
Chen Chengjun
860bb6c07f
Adjust and correct parts of the futex implementation code
2025-06-16 11:02:17 +08:00
Zhang Junyang
45059bad21
Create a new PT rather than clearing it upon `exec*`
2025-06-16 10:18:19 +08:00
Zhang Junyang
525085ab86
Implement system call `msync`
2025-06-15 16:25:37 +08:00
Ruihan Li
796635486c
Handle broken netlink attributes
2025-06-13 11:27:22 +08:00
Ruihan Li
deab9b6f72
Truncate netlink messages
2025-06-13 11:27:22 +08:00
Ruihan Li
0e8106abfa
Restrict visibility for TCP internals
2025-06-13 11:07:11 +08:00
Ruihan Li
639bc91e31
Clean up public re-exports under `net/`
2025-06-13 11:07:11 +08:00
Zhang Junyang
86a7aa09eb
Improve exception handling panic message
2025-06-13 10:35:47 +08:00
Wang Siyuan
b605bed576
Fix some typos
2025-06-12 22:35:54 +08:00
Zhang Junyang
e78927b449
Manage frame tracking outside the page table
2025-06-12 22:34:46 +08:00
Zhang Junyang
22ccfb1f2b
Move COW out of OSTD
2025-06-12 22:34:46 +08:00
Ruihan Li
0661a0656b
Never queue an ignored signal
2025-06-12 16:15:53 +08:00
Cautreoxit
3e32a38316
Add sys_close_range
2025-06-11 19:56:12 +08:00
Ruihan Li
71e08b3942
Clean up TTY termios definitions
2025-06-10 14:30:02 +08:00
Marsman1996
8583eea62b
Fix unreachable error in sys_timer_settime
2025-06-10 11:22:50 +08:00
Marsman1996
9109741e8b
Add TFDSetTimeFlags and fix reachable panic
2025-06-10 11:22:50 +08:00
Cautreoxit
0b471ef370
Add sys_epoll_pwait2
2025-06-09 20:20:40 +08:00
jiangjianfeng
597139a7f7
Fix a clippy error
2025-06-09 17:22:14 +08:00
Cautreoxit
e9f35f6ab8
Debug for try_from impl for Duration
2025-06-09 14:51:05 +08:00
Ruihan Li
fe6b78058c
Correct the blocking behavior
2025-06-09 13:10:34 +08:00
Ruihan Li
67065835ef
Redefine the TTY driver interface
2025-06-09 13:10:34 +08:00
Ruihan Li
5a9a63e1a7
Use one lock for `LineDiscipline`
2025-06-09 13:10:34 +08:00
Ruihan Li
45258d0475
Unpack `LineDiscipline` from `Arc`
2025-06-09 13:10:34 +08:00
Ruihan Li
9e2dde5ebb
Add `enqueue_signal_async`
2025-06-09 13:10:34 +08:00
Chen Chengjun
c56aee92f4
Re-organize some systree-related code
2025-06-09 11:13:48 +08:00
Chen Chengjun
a67bd8cdc9
Add macros to help implementing SysObj trait
2025-06-09 11:13:48 +08:00
Chen Chengjun
1dd1c8c775
Enable read and write operations of the attribute to handle offset
2025-06-09 11:13:48 +08:00
Chen Chengjun
3b1248ba7c
Fix some potential bugs of sysfs
2025-06-09 11:13:48 +08:00
Marsman1996
01328ee404
Fix panic when mount with invalid file system type
2025-06-06 18:26:24 +08:00
jiangjianfeng
f0957d2f54
Fix clippy warnings in kernel crate
2025-06-06 18:22:09 +08:00
Cautreoxit
2e3de6218f
Add more features for statx syscall
2025-06-06 15:07:20 +08:00
jiangjianfeng
f946f09ee4
Implement netlink uevent socket
2025-06-06 11:33:09 +08:00
Wang Siyuan
58e4f45bb1
Add per-CPU counters and track RSS for each `Vmar`
2025-06-03 23:24:32 +08:00
Wang Siyuan
dfd3042276
Add dynamically-allocated CPU-local objects
2025-06-03 23:24:32 +08:00
Zejun Zhao
3790f616fd
Rename `PageProperty::new` to `PageProperty::new_user`
2025-06-03 18:42:53 +08:00
Ruihan Li
c73892c704
Mark `pub(super)` for internal methods
2025-06-01 15:06:53 +08:00
Ruihan Li
14388da548
Remove guard generics from `xarray::Cursor`
2025-06-01 15:06:53 +08:00
Zejun Zhao
ffb4097436
Add RISC-V timer support
2025-05-29 19:51:02 +08:00
Ruihan Li
63daf69e17
Fix incorrect types in `sys_getcpu`
2025-05-29 10:33:02 +08:00
Ruihan Li
56e9824dd1
Make `current_cpu_racy` a method of `CpuId`
2025-05-29 10:33:02 +08:00