Zhang Junyang
02a2cad397
Unify some panic message and add `should_panic =` tests
2026-01-29 19:40:59 +08:00
Zhang Junyang
272f385cf6
Panic if map on a mapped page
2026-01-29 19:40:59 +08:00
Zhang Junyang
77069654d0
Query the page table item reference
...
This commit adds a page table item reference type at the `PageTableConfig`
trait. Therefore it allows `Cursor::query` to return a reference to the
mapped item, reducing copies.
Also, it removes the `Iterator` implementation of the `Cursor` since the
yielded item cannot be a reference type.
2026-01-29 19:40:58 +08:00
Zhang Junyang
dd410444e5
Format with new `rustfmt`
2025-12-09 09:23:58 +08:00
Ruihan Li
7d86d326a3
Adjust the MMIO area alignment
2025-10-14 00:22:38 +09: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
877581f1a6
Add OSTD support for mapping `IoMem` in userspace
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
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
Zhang Junyang
1452aab69c
Optimize the space for `TlbFlushOp`s
2025-08-16 22:09:29 +08:00
Ruihan Li
e4fafb13b1
Add atomic operations for VM readers/writers
2025-08-14 11:59:05 +08:00
Ruihan Li
cdd28787ed
Replace `write_vals` by `fill_zeros` in `VmIo`
2025-08-10 16:40:11 +08:00
Ruihan Li
aa7aca3dde
Add `VmWriter::fill_zeros`
2025-08-10 16:40:11 +08:00
Ruihan Li
d99c18d0be
Remove `VmWriter::fill`
2025-08-10 16:40:11 +08:00
Ruihan Li
db79aa2453
Remove `VmReader::collect`
2025-08-10 16:40:11 +08:00
Ruihan Li
6e597b40af
Remove unsafe code in `mm/test.rs`
2025-08-10 16:40:11 +08:00
Zhang Junyang
e78927b449
Manage frame tracking outside the page table
2025-06-12 22:34:46 +08:00
Zejun Zhao
3790f616fd
Rename `PageProperty::new` to `PageProperty::new_user`
2025-06-03 18:42:53 +08:00
Zhang Junyang
79b3f68892
Make the RCU lifetime of page tables explicit
2025-05-24 17:42:17 +08:00
Zhang Junyang
54fbdcf059
Implement the stray marking in PT to ensure serializability
2025-05-24 17:42:17 +08:00
Zhang Junyang
5b7637eac3
Remove the activation lock and use RCU to protect PT removal
2025-05-24 17:42:17 +08:00
Fabing Li
6c0827b681
Add ktest cases for vmspace
2025-04-19 14:00:21 +08:00
Fabing Li
784628e238
Add ktest cases for io interfaces
2025-04-10 15:36:58 +08:00