Commit Graph

737 Commits

Author SHA1 Message Date
Ruihan Li c7429a7a5c Allow to repurpose `?Sized` metadata 2025-09-19 11:27:14 +08:00
Ruihan Li bf6efbabc7 Remove unused `has_guard_page` boolean 2025-09-14 22:42:48 +08:00
Ruihan Li 44145cdb53 Set CR0.WP/NE/MP explicitly to fix AP behavior 2025-09-12 08:43:35 +08:00
Ruihan Li 75ca7e0377 Add the `arch::cpu::extension` module 2025-09-10 12:10:40 +08:00
Ruihan Li 9de70e38de Add the `arch::cpu::cpuid` module 2025-09-10 12:10:40 +08:00
Ruihan Li 652657fba5 Drop duplicate public re-exports 2025-09-10 12:10:40 +08: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
Zhe Tang e11227c8da Move the `AVAIL1` flag from `PageFlags` to `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
Ruihan Li 45b5bd39f1 Disable I/O APIC entries in initialization 2025-09-02 18:03:24 +08:00
Zhang Junyang 4e2bdc65de Refactor implicit `Arc` APIs for DMA 2025-09-02 17:53:55 +08:00
Zhang Junyang a6520880ab Unify memory object slicing 2025-09-02 17:53:55 +08:00
Zhang Junyang eb69aa4fb9 Unify address and size APIs for memory objects 2025-09-02 17:53:55 +08:00
Arthur Paulino f56d2f3bad `context.rs` enhancements
* Improve the phrasing of some docstrings and comments
* Add warning comments about attempts to validate memory addresses
  at reader/writer instantiation time
* Create the `reader_writer` method for ergonomically instantiate
  a reader/writer pair covering the same memory region. This method
  is also slightly more efficient than calling `reader` and `writer`
  separately
* Clean up `check_vaddr` for clarity and rename it to `check_vaddr_lowerbound`
  for explicity
* Include the data length check before calling `check_vaddr_lowerbound`
  in `atomic_load` and `atomic_fetch_update` for further consistency
  with the delayed buffer validation
2025-09-01 11:16:37 +08:00
Zejun Zhao bf25806fca Add an explicit end of call stack for x86_64 and loongarch64 2025-08-29 17:10:48 +08:00
Zejun Zhao 3b0666449f Use rust-analyzer for riscv64 and loongarch64 target 2025-08-29 16:57:06 +08:00
Zejun Zhao fc61f4d1b8 Use `IrqLine` abstraction for RISC-V timer interrupt 2025-08-29 10:49:48 +08:00
Zejun Zhao aeaf103166 Add an explicit end of call stack for x86_64 2025-08-28 17:26:23 +08:00
Zejun Zhao 920ec7f521 Enable RISC-V stack unwinding on panic 2025-08-28 17:26:23 +08:00
Ruihan Li 924d87398a Introduce `first_context_switch` 2025-08-20 20:12:38 +08:00
Ruihan Li 2d3cfb53e0 Swap `context_switch` arguments 2025-08-20 20:12:38 +08:00
Ruihan Li 85f17ff159 Replace `parse_u32` with `u32::from_str_radix` 2025-08-20 13:19:50 +08:00
Ruihan Li 6b6c64c591 Rename `atomic_update` to `atomic_fetch_update` 2025-08-20 13:17:57 +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
Chen Chengjun fc5a12356a Fix LOONGARCH clippy warnings 2025-08-19 19:20:54 +08:00
Chen Chengjun 9507475102 Fix RISCV clippy warnings 2025-08-19 19:20:54 +08:00
Zhang Junyang 1452aab69c Optimize the space for `TlbFlushOp`s 2025-08-16 22:09:29 +08:00
Zhang Junyang d0b98130cf Don't use `map` to return values 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 6e6465942c Clean up comments and visibility 2025-08-12 19:19:34 +08:00
Ruihan Li bb279e6313 Clarify who loads the user TLS pointer 2025-08-12 19:19:34 +08:00
Ruihan Li 086a80c05f Drop unsound TLS methods from `Task` 2025-08-12 19:19:34 +08:00
Ruihan Li 923982c2e5 Remove `user_ctx` from `Task` 2025-08-12 19:19:34 +08:00
Ruihan Li 695bb1a0a7 Synchronize `{pci,io}.rs` between architectures 2025-08-12 14:00:28 +08:00
Tate, Hongliang Tian d481b10f63 Polish the Rust doc of OSTD's logger module 2025-08-12 10:55:24 +08:00
Zejun Zhao 597b0b5f25 Disable kernel traps before going to userspace 2025-08-10 17:09:22 +08:00
Ruihan Li cdd28787ed Replace `write_vals` by `fill_zeros` in `VmIo` 2025-08-10 16:40:11 +08:00
Ruihan Li 2700d88bef Provide efficient `VmIo` with VM readers/writers 2025-08-10 16:40:11 +08:00
Ruihan Li 894b942a79 Avoid all `Pod::new_uninit`s in OSTD 2025-08-10 16:40:11 +08:00
Ruihan Li 275fd21650 Retire missing `ptr::sub` in `mm/io.rs` 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
Ruihan Li 05990e743e Reimplement PCI BAR detection methods 2025-08-08 09:02:34 +08:00
Zejun Zhao b20d8461fd Fix discovery and access of PCIe (MMIO) configuration space 2025-08-06 02:11:21 +08:00
Zejun Zhao 19f7eea68b Don't assume SVPBMT's existence 2025-08-06 02:11:21 +08:00
Zejun Zhao 26b7428c8e Construct `IoMemAllocator` on RISC-V platforms 2025-08-06 02:11:21 +08:00
jiangjianfeng 4e78653b5b Bump project version to 0.16.0 2025-08-05 14:24:14 +08:00
Wang Siyuan ffdfd01925 Refactor the core scheduling logic in OSTD 2025-08-05 13:37:01 +08:00
Wang Siyuan 3ebb5a25b2 Refactor task schedulers to conform with the new semantics 2025-08-05 13:37:01 +08:00
Tate, Hongliang Tian 659f079c2d Revise the doc of OSTD's scheduling module 2025-07-29 21:58:23 +08:00
Ruihan Li d73f1016a1 Set softfloat targets for ARM/LoongArch/RISC-V 2025-07-29 11:13:59 +08:00
王英泰 0370f8fdf3 Update the init of pci device for LoongArch 2025-07-25 17:37:24 +08:00
王英泰 3391863312 Add the partial support for interrupt in LoongArch 2025-07-25 17:37:24 +08:00
王英泰 7bf716162a Finish the arch section for LoongArch in OSTD 2025-07-25 17:37:24 +08:00
王英泰 8b8bbad996 Add the pci section for LoongArch in OSTD and kernel 2025-07-25 17:37:24 +08:00
王英泰 369c8656ee Add the io section for LoongArch in OSTD 2025-07-25 17:37:24 +08:00
王英泰 7e9f418caa Add the qemu exit method for LoongArch in OSTD 2025-07-25 17:37:24 +08:00
王英泰 25bbdd991f Add the irq section for LoongArch in OSTD 2025-07-25 17:37:24 +08:00
王英泰 3824af8c89 Add the trap section for LoongArch in OSTD 2025-07-25 17:37:24 +08:00
王英泰 b5c3eb8be8 Add the timer section of LoongArch in OSTD 2025-07-25 17:37:24 +08:00
王英泰 93c562f5d2 Add the task section of LoongArch in OSTD 2025-07-25 17:37:24 +08:00
王英泰 e4db73e1a0 Add the mm section of LoongArch in OSTD 2025-07-25 17:37:24 +08:00
王英泰 d3538ec6df Add the iommu section of LoongArch in OSTD 2025-07-25 17:37:24 +08:00
王英泰 c81ed0162c Add the device section of LoongArch in OSTD 2025-07-25 17:37:24 +08:00
王英泰 91e7785915 Add the cpu section of LoongArch in OSTD and kernel 2025-07-25 17:37:24 +08:00
王英泰 ce22374b50 Add the boot section of LoongArch in OSTD 2025-07-25 17:37:24 +08:00
王英泰 b0b242edbc Add the temporary panic support for LoongArch 2025-07-25 17:37:24 +08:00
Hsy-Intel 24d56cfde7 adjust feature enabling sequence and fix xsave size function 2025-07-22 17:15:53 +08:00
Marsman1996 b04d62ae71 Use official minicov and add unit test for coverage feature 2025-07-22 10:31:56 +08:00
YanWQ-monad 79335b272f Add coverage support
Co-authored-by: Marsman1996 <lqliuyuwei@outlook.com>
2025-07-22 10:31:56 +08:00
Zhang Junyang 6a4d8d113f Fix missing updates of page table `Entry::pte`
Co-authored-by: Xungan2 <2100012996@stu.pku.edu.cn>
2025-07-21 13:42:38 +08:00
Ruihan Li bc7515389b Create a RISC-V boot code and data section 2025-07-21 10:01:02 +08:00
Ruihan Li e475009fe7 Optimize the x86 binary size 2025-07-21 10:01:02 +08:00
jiangjianfeng 424fcda239 Use iret instead of sysret if the context is not clean 2025-07-20 22:22:20 +08:00
Qingsong Chen 6cd53fbb8a Refactor FPU context using pre_schedule_handler 2025-07-18 11:40:16 +08:00
Ruihan Li cdd7950d2e Remove some variants in `ostd::Error` 2025-07-15 23:05:30 +08:00
Ruihan Li e5c5bc7992 Clarify safety comments in `dyn_cpu_local.rs` 2025-07-11 14:10:46 +08:00
jiangjianfeng 665de6bd35 Make RISC-V code compile under new exception APIs 2025-07-09 10:49:43 +08:00
jiangjianfeng 7f3ca86467 Refactor x86 exception related code 2025-07-09 10:49:43 +08:00
Ruihan Li 801ab865b7 Make paths of `TrapFrame` unique 2025-07-05 18:19:26 +08:00
Ruihan Li 0fce977b40 Clean up `trapframe` items 2025-07-05 18:19:26 +08:00
Ruihan Li 6f2725419f Always clear the need-preempt flag 2025-07-04 19:14:31 +08:00
Wang Siyuan a13297ae4c Add fields in `/proc/*/stat` and `/proc/*/status` 2025-07-02 20:13:47 +08:00
Ruihan Li ac0d92d878 Fix minor issues of the CPU extension module 2025-07-02 07:54:40 +08:00
jiangjianfeng 49ef0e9f7a Change the documentation website of OSTD 2025-07-01 17:07:28 +08:00
jiangjianfeng 2e09957ef9 Fix documentation check errors 2025-07-01 17:07:28 +08:00
jiangjianfeng dc26e18310 Depend on int-to-c-enum instead of num crate 2025-06-30 15:48:40 +08:00
Zhang Junyang c7f489b726 Bump version to 0.15.2 2025-06-26 08:16:22 +08:00
Ruihan Li 780b35848e Remove `SameSizeAs` 2025-06-25 15:57:23 +08:00
Ruihan Li 59e7d268d7 Tidy up the `PageTableEntryTrait` comments 2025-06-25 15:57:23 +08:00
Ruihan Li 35e0918bce Don't race between enabling IRQs and halting CPU 2025-06-23 22:53:35 +08:00
Ruihan Li b96c8f9ed2 Make `ostd::trap::irq` public 2025-06-23 22:53:35 +08:00
Ruihan Li a1accf4304 Do some miscellaneous page table cleanups 2025-06-22 16:46:07 +08:00
Ruihan Li a3c5ab8cb4 Move virtio-mmio bus outside OSTD 2025-06-19 15:10:42 +08:00
Ruihan Li 238b89da46 Create `IrqChip` abstraction 2025-06-19 15:10:42 +08:00
Ruihan Li 76377f701b Restrict some module visibility 2025-06-19 15:10:42 +08:00
Philipp Schuster 7a398167cf ostd: update multiboot2 + use constant 2025-06-16 16:10:54 +08:00
Wang Siyuan d5b12532a8 Require `T: Send` for `CpuLocal<T, S>` 2025-06-16 12:09:13 +08:00
Hsy-Intel c2a49bca7c Temporary fix for TDX MMIO assert issue 2025-06-13 10:31:25 +08:00
Wang Siyuan 614ac85bd4 Bump the project version 2025-06-12 22:35:54 +08:00
Zhang Junyang e78927b449 Manage frame tracking outside the page table 2025-06-12 22:34:46 +08:00
Zhang Junyang 2c917ba383 Unify page table template parameters 2025-06-12 22:34:46 +08:00
Zhang Junyang 22ccfb1f2b Move COW out of OSTD 2025-06-12 22:34:46 +08:00
Cautreoxit 3e32a38316 Add sys_close_range 2025-06-11 19:56:12 +08:00
Zejun Zhao 492898d1d5 Fix the detection of RISC-V SSTC extension 2025-06-11 16:54:59 +08:00
Zejun Zhao bd24ed9ba7 Support RISC-V ISA extension detection 2025-06-11 16:54:59 +08:00
jiangjianfeng ead5a70444 Replace proc_macro APIs with proc_macro2 APIs in ostd_macros 2025-06-09 18:51:35 +08:00
Wang Siyuan 58e4f45bb1 Add per-CPU counters and track RSS for each `Vmar` 2025-06-03 23:24:32 +08:00
Wang Siyuan dfd3042276 Add dynamically-allocated CPU-local objects 2025-06-03 23:24:32 +08:00
Ruihan Li f24bc718fa Use `IoMem::acquire` in the virtio-mmio bus 2025-06-03 21:01:03 +08:00
Zejun Zhao 3790f616fd Rename `PageProperty::new` to `PageProperty::new_user` 2025-06-03 18:42:53 +08:00
Zejun Zhao e669d38d2d Clear User bits of non-leaf PTE in boot pagetable 2025-06-03 18:42:53 +08:00
Ruihan Li 3f8dbe6990 Add `unsafe` with trivial cleanups 2025-06-03 15:00:13 +08:00
Ruihan Li 3bc4424a5b Add `unsafe` with explained comments 2025-06-03 15:00:13 +08:00
Ruihan Li 619814e652 Add `unsafe` with caller-upheld comments 2025-06-03 15:00:13 +08:00
Ruihan Li 31dbae5330 Add `unsafe` for acquring I/O memory/port 2025-06-03 15:00:13 +08:00
Ruihan Li e1e5f9f575 Remove `transmute` in `Vm{Reader,Writer}` 2025-06-03 15:00:13 +08:00
Ruihan Li 2c21b2a3a8 Use `wrapping_add` to add userspace pointers 2025-06-03 15:00:13 +08:00
Ruihan Li 899a1424c0 Tweak RCU visiblity and safety 2025-06-03 15:00:13 +08:00
Ruihan Li 2b00fe9e45 Mark `root_paddr()` safe 2025-06-03 15:00:13 +08:00
Zhang Junyang 1ed023f413 Fix the level comparison in `dfs_mark_stray_and_unlock` 2025-06-02 23:49:15 +08:00
Ruihan Li 72fb0752ae Allow `dyn InAtomicMode` as `AsAtomicModeGuard` 2025-06-01 15:06:53 +08:00
Ruihan Li 6dc0189e43 Remove unnecssary overflow checks 2025-05-30 16:34:33 +08:00
Ruihan Li 282a0f216f Clarify safety conditions in `tdx_guest.rs` 2025-05-30 16:34:33 +08:00
Zejun Zhao ffb4097436 Add RISC-V timer support 2025-05-29 19:51:02 +08:00
Ruihan Li 56e9824dd1 Make `current_cpu_racy` a method of `CpuId` 2025-05-29 10:33:02 +08:00
Ruihan Li 758c80c321 Pull code from `arch/*/irq.rs` to `trap/irq.rs` 2025-05-25 10:19:17 +08:00
Ruihan Li dd9fc81a81 Add some TODOs in IOMMU initialization 2025-05-25 09:54:16 +08:00
Ruihan Li d2ff5fc1a9 Check SAGAW before enabling DMA remapping 2025-05-25 09:54:16 +08:00
Zhang Junyang 79b3f68892 Make the RCU lifetime of page tables explicit 2025-05-24 17:42:17 +08:00
Zhang Junyang ef81100958 Add `InAtomicMode: Debug` 2025-05-24 17:42:17 +08:00
Zhang Junyang 3472560c55 Make TLB issuing less contended 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
Zhang Junyang d873e121ff DFS lock protocol for the page table 2025-05-24 17:42:17 +08:00
Ruihan Li d4afe3a035 Avoid Rust references of IRT entries 2025-05-23 10:38:57 +08:00
Yuke Peng d4872af3c7 Refactor interrupt remapping in OSTD 2025-05-22 15:21:16 +08:00
stuuupidcat 95744692a5 Remove unnecessary #[inline] attributes 2025-05-22 12:19:21 +08:00
Ruihan Li e81053b9dc Remove unnecessary `_rdtsc` uses 2025-05-21 21:00:02 +08:00
Ruihan Li a18e72b495 Implement `apic::get_or_init` using `Once` 2025-05-21 21:00:02 +08:00
Ruihan Li 0a27a1f37b Don't treat APIC IDs as CPU IDs 2025-05-21 09:27:25 +08:00
Ruihan Li d7cd0244ff Use Rust types to store `PerApRawInfo` 2025-05-21 09:27:25 +08:00
Hsy-Intel ad6aa4960c Bump the project version 2025-05-12 22:01:05 +08:00
Zhang Junyang 02463ff161 Bump xmas-elf 2025-05-12 22:00:13 +08:00
Zhang Junyang 690f87f311 Add `RcuDrop` 2025-05-12 16:12:01 +08:00
Zhang Junyang 9cb28f8dd0 `FrameRef` for all types of frames 2025-05-11 15:42:46 +08:00
Zhang Junyang 773b965767 Allow specifying orderings when loading/storing `AtomicCpuSet`s 2025-05-11 15:29:17 +08:00
Zhang Junyang d3e4f175cd Fix the memory leak on large heap slot dealloc 2025-05-08 19:49:42 +08:00
Zhang Junyang 18df0f6ec9 Fix the linear mapping size if the IO range is high 2025-05-06 23:33:05 +08:00
Chen Chengjun 1da723c0de Replace the original XArray with RCU-based XArray 2025-04-30 20:59:15 +08:00
Yuke Peng ef898e572c Move `tdx_guest::unprotect_gpa_range` into IoMem creation 2025-04-29 16:31:08 +08:00
Yuke Peng 04a8fccd2f Add Framebuffer region into filter in `IoMemAllocatorBuilder` 2025-04-29 14:49:58 +08:00
jiangjianfeng 9b4417e29a Pin the unwinding crate version to 0.2.5 2025-04-29 12:33:55 +08:00
Ruihan Li bf4950965b Adjust `unsafe` blocks in `syscall.rs` 2025-04-22 20:52:15 +08:00
Ruihan Li c9a7d501b2 Rewrite `trap/idt.rs` 2025-04-22 20:52:15 +08:00
Ruihan Li 8c30b4b942 Rewrite `trap/gdt.rs` 2025-04-22 20:52:15 +08:00
Ruihan Li e06509e380 Make some `unsafe` blocks shorter 2025-04-22 20:52:15 +08:00
Chen Chengjun c3dd607777 Introduce RCU-based XArray 2025-04-19 16:48:15 +08:00
Fabing Li 6c0827b681 Add ktest cases for vmspace 2025-04-19 14:00:21 +08:00
Fabing Li 52e0776591 Add more page table cases 2025-04-19 13:59:43 +08:00
Zejun Zhao 3aa1079ca6 Clarify the usage of ostd::arch 2025-04-18 13:26:16 +08:00
Zejun Zhao 5630fa8b36 Disable RISC-V FPU by default 2025-04-18 13:26:16 +08:00
Zejun Zhao 14b8c48859 Adjust RISC-V's implementation for recent changes 2025-04-18 13:26:16 +08:00
Zejun Zhao b097060c5e Clean up RISC-V-specific boot code 2025-04-18 13:26:16 +08:00
Zejun Zhao d39ab61d68 Remove unnecessary usage of cfg_if macro 2025-04-18 13:26:16 +08:00
Zejun Zhao 47ee012e6b Make IoPort x86-specific 2025-04-18 13:26:16 +08:00
Zejun Zhao e4aa261c48 Make if_tdx_enabled macro x86-specific 2025-04-18 13:26:16 +08:00
Zejun Zhao dd67a9a175 Clean up code 2025-04-18 13:26:16 +08:00
Yuke Peng 1130933546 Remove unused `device.rs` file in mmio 2025-04-17 19:11:27 +08:00
Ruihan Li d6e40933b8 Move the log lock to a better location 2025-04-16 21:59:24 +08:00
Ruihan Li 67e5e5a651 Remove the unused serial input 2025-04-16 21:59:24 +08:00
Yuke Peng 74ffe72cad Refactor the initialization of `IoPortAllocator` 2025-04-16 10:09:19 +08:00
Yuke Peng a2caedafda Remove the system device's IO port access 2025-04-16 10:09:19 +08:00
Yuke Peng 92b7961df1 Introduce macros that allow system device driver to remove sensitive ports
test

test
2025-04-16 10:09:19 +08:00
Yuke Peng a038b8401b Rename `allocator.rs` to `io.rs` 2025-04-16 10:09:19 +08:00
Yuke Peng d359cc44d6 Implement `IoPortAllocator` 2025-04-16 10:09:19 +08:00
Yuke Peng f89b248f3b Change IoPort to architecture-independent 2025-04-16 10:09:19 +08:00
jiangjianfeng 9804f053f2 Add guard which disables bottom half 2025-04-15 14:54:51 +08:00
Ruihan Li e0bda4677c Remove `Send` trait bound from `NonNullPtr` 2025-04-15 10:10:42 +08:00
Ruihan Li de69fd6c31 Add support for `Rcu` to store an `Either` 2025-04-15 10:10:42 +08:00
Ruihan Li a1f81df263 Remove `ostd/src/mm/offset.rs` 2025-04-15 09:15:22 +08:00
Ruihan Li 1a1d9bfb60 Split `ostd/util.rs` 2025-04-15 09:15:22 +08:00
Zhang Junyang 50924d6693 Stop sharing kernel boot PDPTs and linear boot PDPTs 2025-04-14 16:20:35 +08:00
Fabing Li 784628e238 Add ktest cases for io interfaces 2025-04-10 15:36:58 +08:00
Chen Chengjun 6aba270a9b Enable RCU to support Weak 2025-04-10 14:42:51 +08:00
Chen Chengjun a21e895102 Enable RCU to read reference to stored pointers 2025-04-10 14:42:51 +08:00
Zhe Tang 36f6f9bcd4 Fix the AVX initialization bugs on lower-end CPUs 2025-04-10 09:52:38 +08:00
Ruihan Li 5ed5647d42 Update outdated comments near `switch_to_task` 2025-04-06 09:49:23 +08:00
Zhang Junyang d378dc51ff Enable `IA32_EFER.NXE` earlier in AP 2025-04-05 23:50:42 +08:00
Ruihan Li 396ead6fbd Fix safety reasoning about `get_on_cpu` 2025-04-03 10:50:22 +08:00
Ruihan Li c17a3eaa0b Revise safety comments in `single_instr.rs` 2025-04-03 10:50:22 +08:00
Ruihan Li 5651b93af0 Turn `GS.base` validity into a global invariant 2025-04-03 10:50:22 +08:00
Ruihan Li b52d841ac1 Revise safety comments for booting APs 2025-04-03 10:50:22 +08:00
Zhang Junyang 600f13ef78 Enforce a task not switched to multiple CPUs 2025-04-02 20:51:42 +08:00
Ruihan Li e040dda7a4 Ignore unusable regions for `max_paddr` 2025-04-02 11:50:33 +08:00
Ruihan Li 8f72192f07 Ignore invalid APIC entries 2025-04-02 11:48:52 +08:00