小修改

This commit is contained in:
luojia65 2021-07-16 01:36:23 +08:00
parent ed9c6a583e
commit 4892e0c663
1 changed files with 2 additions and 0 deletions

View File

@ -198,6 +198,8 @@ unsafe extern "C" fn trampoline_resume(_ctx: *mut ResumeContext, _user_satp: usi
它被链接到专门的跳板代码页中。为了避免和用户程序冲突,跳板代码页被放置在最高的位置上,比如`0xffffffffffff000`。根据跳板页的长度,我们可以计算它需要多少个页,然后在初始化代码中映射它们。
在后续的代码中,跳板代码页的权限被设置为仅可执行。跳板代码页应当只有内核特权层能访问,否则将可被需要拼接指令的攻击方法利用,或者产生一些逻辑错误。
```rust
fn get_trampoline_text_paging_config<M: mm::PageMode>() -> (mm::VirtPageNum, mm::PhysPageNum, usize) {
let (trampoline_pa_start, trampoline_pa_end) = {