Browse Source

remap_kernel: Identity map the Multiboot info structure

master
3moon 8 years ago
parent
commit
63446779fe
1 changed files with 8 additions and 0 deletions
  1. +8
    -0
      src/arch/x86_64/memory/paging/mod.rs

+ 8
- 0
src/arch/x86_64/memory/paging/mod.rs View File

@ -188,8 +188,16 @@ pub fn remap_kernel<A>(allocator: &mut A, boot_info: &BootInformation)
}
}
// -- Identity map the VGA console buffer (it's only one frame long)
let vga_buffer_frame = Frame::containing_address(0xb8000);
mapper.identity_map(vga_buffer_frame, WRITABLE, allocator);
// -- Identity map the multiboot info structure
let multiboot_start = Frame::containing_address(boot_info.start_address());
let multiboot_end = Frame::containing_address(boot_info.end_address() - 1);
for frame in Frame::range_inclusive(multiboot_start, multiboot_end) {
mapper.identity_map(frame, PRESENT | WRITABLE, allocator);
}
});
let old_table = active_table.switch(new_table);


Loading…
Cancel
Save