46 Commits

Author SHA1 Message Date
Zhang Junyang
e6f13a0612 Fix or workaround 4 errors from linter 2023-08-04 11:37:12 +08:00
Zhang Junyang
901cbebe44 Fix spurious bitflags usage 2023-08-04 11:37:12 +08:00
Yuke Peng
054f13e32f Support IOMMU page fault reporting 2023-08-01 20:49:04 +08:00
Chuandong Li
9cb759efa2 Add a runtime check for scheduler with spin locks 2023-07-25 12:56:06 +08:00
Zhang Junyang
c6145b450a Removed boot protocol configuring 2023-07-24 16:31:38 +08:00
Zhang Junyang
cad808f05c Align the usable regions in the frame allocator 2023-07-24 16:31:38 +08:00
Zhang Junyang
5012779e38 Fix memory region glob re-export 2023-07-24 16:31:38 +08:00
Zhang Junyang
e3adb6e482 Fix params of truncate 2023-07-24 16:31:38 +08:00
Zhang Junyang
b5e04ea5ad Fix boot documentations and comments 2023-07-24 16:31:38 +08:00
Zhang Junyang
c932878dd1 Give multiboot2 entry magic a name 2023-07-24 16:31:38 +08:00
Zhang Junyang
41d8e4228f Rename Rust entrypoint 2023-07-24 16:31:38 +08:00
Zhang Junyang
e96884b72d Minor fixes, use small pages to make it work 2023-07-24 16:31:38 +08:00
Zhang Junyang
47a51eb423 Adapt Multiboot2 and switch from Limine to Grub2 2023-07-24 16:31:38 +08:00
Yuke Peng
49f2750108 Rename mmio to IoMem 2023-07-24 15:56:22 +08:00
Yuke Peng
a6dcdf6952 Implement the PCI bus framework 2023-07-24 15:56:22 +08:00
Yuke Peng
6d621dc4ef Fix vaddr to paddr error 2023-07-21 20:14:56 +08:00
Jianfeng Jiang
3a3cb7cd15 Implement copy for VmFrame 2023-07-21 10:57:04 +08:00
Jianfeng Jiang
38ee2cafcd Inherit vmo at page granularity 2023-07-21 10:57:04 +08:00
Jianfeng Jiang
c452fc35c6 Implement rescue for heap allocator 2023-07-20 13:29:48 +08:00
Yuke Peng
a47b98b160 Support IOMMU 2023-07-13 22:57:56 +08:00
Yuke Peng
829575b3a6 Upgrade POD and trapframe 2023-07-13 22:57:56 +08:00
Yuke Peng
c21c25a7d5 Refactor page table 2023-07-13 22:57:56 +08:00
Jianfeng Jiang
a5d719579d Remove redundant is_finished flag 2023-07-12 00:05:29 +08:00
LI Qing
3600a3a439 Add support for chmod, fchmod, fchmodat 2023-07-09 11:07:42 +08:00
Jianfeng Jiang
9f1680d0f3 Only add task when waking up a sleeping task 2023-07-07 19:12:07 +08:00
LI Qing
d692c102ae Support compressed initramfs image 2023-07-03 14:51:10 +08:00
Chuandong Li
fba4a9405e Support the wait queue that allows sleeping 2023-07-03 13:22:44 +08:00
Chuandong Li
9edcbe743d Implement the RwMutex based on blocking 2023-07-03 13:22:44 +08:00
Chuandong Li
9dbbe1f5c9 Implement the RwLock based on spinning 2023-07-03 13:22:44 +08:00
Chuandong Li
b3a7899428 Re-implement mutex with waiter queue 2023-07-03 13:22:44 +08:00
Chuandong Li
25b45326ab Optimize the atomic ordering in spin lock 2023-07-03 13:22:44 +08:00
Chuandong Li
7401eee455 Reimplement the DisableLocalIrqGuard 2023-07-03 13:22:44 +08:00
Chuandong Li
78de1af348 Update spin lock users to lock_irq_disabled() 2023-07-03 13:22:44 +08:00
Chuandong Li
ba4121cd6a Add spin lock without disabling local irq 2023-07-03 13:22:44 +08:00
Jianfeng Jiang
8e199f46ef Import inherit-methods-macro from seperate repo 2023-06-28 13:22:15 +08:00
Yuke Peng
893b174dc9 Support x2APIC 2023-06-27 20:52:41 +08:00
Jianfeng Jiang
0e8b2aff7b Make heap allocator interrupt safe 2023-06-27 19:45:01 +08:00
Jianfeng Jiang
288374ee09 Fix dead lock in canonical mode 2023-06-27 19:45:01 +08:00
Jianfeng Jiang
7803d9037e Add uninit option for VmAllocOption 2023-06-03 21:10:53 +08:00
Jianfeng Jiang
2985cdced6 Replace Mutex with Spinlock in tty to avoid deadlock 2023-05-31 20:59:01 +08:00
Jianfeng Jiang
d96fe31e36 Fix typos and add utils 2023-05-31 11:50:50 +08:00
Yuke Peng
39380f09b9 Use volatile read/write for the MMIO 2023-05-30 21:32:25 +08:00
Yuke Peng
358f44b3c0 Implement VmIo for smart pointers to VmIo 2023-05-30 21:32:25 +08:00
Yuke Peng
42ecbe1b04 Change physical address accees to MMIO 2023-05-06 16:51:51 +08:00
Yuke Peng
5656805520 Impl MMIO access method 2023-05-06 16:51:51 +08:00
Jianfeng Jiang
271a16d492 Reorganize the codebase 2023-04-10 14:49:39 +08:00