Commit Graph

936 Commits

Author SHA1 Message Date
c7cda1df28 Make each pausing thread has a seperate is_interruped 2024-06-05 11:47:28 +08:00
0dd90cad3c Fix bug: Ctrl+C does not send signal 2024-06-05 11:47:28 +08:00
6f3a483be6 Check only not blocked signals in Pauser 2024-06-05 11:47:28 +08:00
5cde55da3d Unregister observer when timeout is reached 2024-06-05 11:47:28 +08:00
6e612fc730 Add syscall capget/capset 2024-06-04 19:50:08 +08:00
8e1aeaf578 Add dup3 syscall and fix EventFile 2024-06-04 16:02:58 +08:00
e0c6c29481 Fix memory leak of Task structures 2024-06-04 14:47:18 +08:00
faf9cf7da8 Fix some issues about naming, function parameters, and comments, and redefined the method for bind mount.
Signed-off-by: Zhenchen Wang <m202372036@hust.edu.cn>
2024-06-04 14:38:52 +08:00
980ffb5a98 Add syscall umount.
Signed-off-by: Zhenchen Wang <m202372036@hust.edu.cn>
2024-06-04 14:38:52 +08:00
a893ceca4a Add syscall mount
Signed-off-by: Zhenchen Wang <m202372036@hust.edu.cn>
2024-06-04 14:38:52 +08:00
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 VmFrames
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