Commit Graph

138 Commits

Author SHA1 Message Date
7095b37e7e Refactor the source structure in aster_frame::mm 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
39aa31a69d Remove the VmIO implementation of VmSpace 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
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
a664f1a9fc Revise the public APIs of WaitQueue 2024-06-03 15:45:56 +08:00
901bccadfe Add syscall rt_sigpending 2024-06-03 15:30:52 +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
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
4101d8328a Add syscall creat 2024-05-31 15:19:17 +08:00
85e292ce7e Fix typo 2024-05-23 09:02:47 +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
2002db5481 Add wait_until_or_cancelled API to WaitQueue 2024-05-20 16:09:27 +08:00
2d17177cb5 Re-implement the alarm syscall 2024-05-20 16:09:27 +08:00
b226928349 Remove the timer module from the aster-frame and adjust the related code 2024-05-20 16:09:27 +08:00
d019de29f9 Add abstractions for Clock and Timer 2024-05-20 16:09:27 +08:00
0d5131c822 Extract x86-specific syscall dispatch to arch/x86 2024-05-17 21:29:04 +08:00
82220748c0 Use a seedable RNG instead of getrandom crate 2024-05-17 10:28:18 +08:00
b11e6d2d62 Add syscall accept4 2024-05-16 19:17:38 +08:00
ea25157790 Support mmap shared anonymous memory 2024-05-16 19:13:32 +08:00
89b21ba3b4 Add syscall rt_sigsuspend 2024-05-16 19:10:04 +08:00
25b7007ffa Improve the read/write efficiency of Vmo 2024-05-16 18:58:51 +08:00
f4ea23b72c Revise the pages() method in the page cache to only return a reference 2024-05-16 18:54:39 +08:00
770a123415 Change the return value of dup() for Vmo<Rights> 2024-05-16 18:54:39 +08:00
e6b0fd8aa3 Optimize the RamFs to reduce the use of redundant locks 2024-05-16 18:54:39 +08:00
27bcece750 Optimize the ThreadStatus to be lock-free 2024-05-16 18:54:39 +08:00
0eaa6e637d Optimize the SigQueues to return early without lock 2024-05-16 18:54:39 +08:00
8bcadee540 Extract dentry.rs and mount.rs to path module, rename Dentry and DentryMnt and check usage of pub.
Signed-off-by: Zhenchen Wang <m202372036@hust.edu.cn>
2024-05-16 13:30:52 +08:00
8d18a12385 Refactor DentryMnt and fix some issues
Signed-off-by: Zhenchen Wang <m202372036@hust.edu.cn>
2024-05-16 13:30:52 +08:00
60fa4d104a Rename struct Path to struct DentryMnt
Signed-off-by: Zhenchen Wang <m202372036@hust.edu.cn>
2024-05-16 13:30:52 +08:00
6d486c6c01 Add struct Path for VFS
Signed-off-by: Zhenchen Wang <m202372036@hust.edu.cn>
2024-05-16 13:30:52 +08:00
078f9a8891 Add syscall eventfd and eventfd2 2024-05-15 21:52:17 +08:00
4e1d98a323 Poll interfaces at the right time 2024-05-15 18:32:02 +08:00
5189f889a3 Support Channel sending data which does not implement Copy 2024-05-13 20:04:09 +08:00
989970429a Refactor the definition of page properties and permissions 2024-05-10 19:07:05 +08:00
ef1ab72ebe Let page table own frames and remove MemorySet 2024-05-10 19:07:05 +08:00
82bdadf754 Add a PTE extension mechanism 2024-05-10 19:07:05 +08:00
24a868a670 Implement an efficient ranged page table 2024-05-10 19:07:05 +08:00