ff83ce7667
Deny dead_code
and unused_variables
at crate level
2024-06-04 10:25:45 +08:00
9107a1771e
Allow dead_code
and unused_variables
at file level
2024-06-04 10:25:45 +08:00
232e62b053
Redo segment with Arc
rather than creating SegmentHeadMeta
2024-06-03 22:16:02 +08:00
3fa3d7f15a
Revised page table activation and drop management
2024-06-03 22:16:02 +08:00
7095b37e7e
Refactor the source structure in aster_frame::mm
2024-06-03 22:16:02 +08:00
e8595b95fe
Add missing safety explanations for the page table node
2024-06-03 22:16:02 +08:00
3579d88aa6
Fortify the metadata memory model and adjust the Page
casting APIs
2024-06-03 22:16:02 +08:00
14e1b1a9fc
Rename various concepts related to memory management
2024-06-03 22:16:02 +08:00
03a39c94ca
Refactor the representation of page metadata
2024-06-03 22:16:02 +08:00
39aa31a69d
Remove the VmIO
implementation of VmSpace
2024-06-03 22:16:02 +08:00
141fbeaf0c
Optimize the page table implementation using the frame metadata
...
This PR also refactored the page table cursor, distinguishing `Cursor` from `CursorMut`, and split
a lot of functions to reduce dynamic condition checking.
There are also other sanitizations performed, including refactoring PTE's `is_huge` API to `is_last`,
hardening tracked mapping checks, and making `VmFrame` any size.
2024-06-03 22:16:02 +08:00
69d464fc6b
Use metadata to track VmFrame
s
...
In this commit, the frame metadata storage schema is implemented. The bootstrap process is refactored
and a boot page table is introduced to perform early stage metadata mapping. The metadata is then used
to track `VmFrame`s instead of the former `Arc` approach.
2024-06-03 22:16:02 +08:00
d24ddaae66
Add itimer-related syscall tests
2024-06-03 20:03:46 +08:00
c5ec2e181e
Add itimer-related syscalls
2024-06-03 20:03:46 +08:00
13fd173b24
Enable Timer to set an absolute time
2024-06-03 20:03:46 +08:00
e952a16954
Support more clock ids
2024-06-03 20:03:46 +08:00
c84efe7a90
Introduce CPU clock and CPU timer
2024-06-03 20:03:46 +08:00
f1c1011f2b
Set PROCESSOR cpu-local
2024-06-03 20:03:46 +08:00
0bafc0f18a
Add unit tests for WaitQueue
and Waiter
2024-06-03 15:45:56 +08:00
a664f1a9fc
Revise the public APIs of WaitQueue
2024-06-03 15:45:56 +08:00
140640c5d6
Modify CR3 solely during context switching
2024-06-03 15:37:11 +08:00
901bccadfe
Add syscall rt_sigpending
2024-06-03 15:30:52 +08:00
6c34db52b3
Bump only package version in Cargo.toml
2024-06-01 20:13:03 +08:00
2ecca7af6b
Add dummy syscall sched_getaffinity
2024-06-01 20:10:09 +08:00
e1480f94ee
fix: enable timely delivery of POSIX signals while busy-looping
2024-06-01 20:08:11 +08:00
5a23de1932
fix: fully use ThreadOptions while building new kernel thread
2024-06-01 20:08:11 +08:00
34e9d71fe4
Add condition variable implementation
2024-05-31 20:25:31 +08:00
c04fd0c9a0
Add syscall sendfile
2024-05-31 16:10:46 +08:00
14ada9000a
Add read_at and write_at for FileLike and InodeHandle
2024-05-31 16:10:46 +08:00
6e9516daa4
Fix 'early_println' with no arguments
2024-05-31 16:09:53 +08:00
e22d78f04d
Enable tasklet mechanism
2024-05-31 16:05:58 +08:00
558248a070
Enable softirq mechanism
2024-05-31 16:05:58 +08:00
c02eacd50c
Use deny(unsafe_code) instead of forbid(unsafe_code)
2024-05-31 16:05:58 +08:00
da3e279ac6
Increase memory size and change boot mode in CI
2024-05-31 15:19:17 +08:00
4101d8328a
Add syscall creat
2024-05-31 15:19:17 +08:00
fa7d0a787f
Extract x86-specific trap handler code
2024-05-31 11:41:02 +08:00
28b66c1c8c
Avoid creating linear mappings with the SHARED flag set
2024-05-30 20:45:59 +08:00
5687f23b56
Add API documentation guidelines in to-contribute
2024-05-30 20:44:59 +08:00
f581ebdd03
Add workarounds for slow memcpy
2024-05-28 22:35:25 +08:00
56a4909211
Revert fast_copy
and fast_copy_nonoverlapping
in the framework
...
This reverts commit 657d6719c7
.
2024-05-28 22:35:25 +08:00
2636bb0838
Extract x86-specific TaskContext
2024-05-24 16:57:35 +08:00
8e874e6a88
Let OSDK print source lines of the panic stack trace
2024-05-23 12:37:57 +08:00
f420286920
Make stripping ELF optional for QEMU direct boot
2024-05-23 12:37:57 +08:00
32b1fb3723
Fix OSDK CI bugs & Build OSDK with stable channel in CI
2024-05-23 12:32:25 +08:00
69abc09f5a
Add missing TLB flushes to VmSpace
2024-05-23 10:34:58 +08:00
85e292ce7e
Fix typo
2024-05-23 09:02:47 +08:00
e4954827dc
Fix random failures in send_buf_full
2024-05-22 15:10:19 +08:00
83b88229a3
Unify headers of safety comments
2024-05-22 13:21:16 +08:00
07fbbcfd8c
Add syscall clone3
2024-05-21 19:22:13 +08:00
a5707b4ddc
Extract OS-specific part from UserContextApi
2024-05-21 09:53:37 +08:00