小修改
This commit is contained in:
parent
ed9c6a583e
commit
4892e0c663
|
@ -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) = {
|
||||
|
|
Loading…
Reference in New Issue