@@ -21,12 +21,12 @@ extern crate fixedvec;
21
21
use core:: slice;
22
22
use os_bootinfo:: BootInfo ;
23
23
use usize_conversions:: usize_from;
24
- pub use x86_64:: PhysAddr ;
25
- use x86_64:: { VirtAddr } ;
26
24
use x86_64:: instructions:: tlb;
27
- use x86_64:: structures:: paging:: { RecursivePageTable , Mapper } ;
28
- use x86_64:: structures:: paging:: { Page , PhysFrame , PageTableFlags , Size2MB } ;
25
+ use x86_64:: structures:: paging:: { Mapper , RecursivePageTable } ;
26
+ use x86_64:: structures:: paging:: { Page , PageTableFlags , PhysFrame , Size2MB } ;
29
27
use x86_64:: ux:: u9;
28
+ pub use x86_64:: PhysAddr ;
29
+ use x86_64:: VirtAddr ;
30
30
31
31
global_asm ! ( include_str!( "boot.s" ) ) ;
32
32
global_asm ! ( include_str!( "second_stage.s" ) ) ;
@@ -119,7 +119,6 @@ pub extern "C" fn load_elf(
119
119
memory_map : & mut memory_map,
120
120
} ;
121
121
122
-
123
122
// Mark already used memory areas in frame allocator.
124
123
{
125
124
let zero_frame: PhysFrame = PhysFrame :: from_start_address ( PhysAddr :: new ( 0 ) ) . unwrap ( ) ;
@@ -129,21 +128,24 @@ pub extern "C" fn load_elf(
129
128
} ) ;
130
129
let bootloader_start_frame = PhysFrame :: containing_address ( bootloader_start) ;
131
130
let bootloader_end_frame = PhysFrame :: containing_address ( bootloader_end - 1u64 ) ;
132
- let bootloader_memory_area = PhysFrame :: range ( bootloader_start_frame, bootloader_end_frame + 1 ) ;
131
+ let bootloader_memory_area =
132
+ PhysFrame :: range ( bootloader_start_frame, bootloader_end_frame + 1 ) ;
133
133
frame_allocator. mark_allocated_region ( MemoryRegion {
134
134
range : bootloader_memory_area,
135
135
region_type : MemoryRegionType :: Bootloader ,
136
136
} ) ;
137
137
let kernel_start_frame = PhysFrame :: containing_address ( kernel_start. phys ( ) ) ;
138
- let kernel_end_frame = PhysFrame :: containing_address ( kernel_start. phys ( ) + kernel_size - 1u64 ) ;
138
+ let kernel_end_frame =
139
+ PhysFrame :: containing_address ( kernel_start. phys ( ) + kernel_size - 1u64 ) ;
139
140
let kernel_memory_area = PhysFrame :: range ( kernel_start_frame, kernel_end_frame + 1 ) ;
140
141
frame_allocator. mark_allocated_region ( MemoryRegion {
141
142
range : kernel_memory_area,
142
143
region_type : MemoryRegionType :: Kernel ,
143
144
} ) ;
144
145
let page_table_start_frame = PhysFrame :: containing_address ( page_table_start) ;
145
146
let page_table_end_frame = PhysFrame :: containing_address ( page_table_end - 1u64 ) ;
146
- let page_table_memory_area = PhysFrame :: range ( page_table_start_frame, page_table_end_frame + 1 ) ;
147
+ let page_table_memory_area =
148
+ PhysFrame :: range ( page_table_start_frame, page_table_end_frame + 1 ) ;
147
149
frame_allocator. mark_allocated_region ( MemoryRegion {
148
150
range : page_table_memory_area,
149
151
region_type : MemoryRegionType :: PageTable ,
@@ -152,9 +154,12 @@ pub extern "C" fn load_elf(
152
154
153
155
// Unmap the ELF file.
154
156
let kernel_start_page: Page < Size2MB > = Page :: containing_address ( kernel_start. virt ( ) ) ;
155
- let kernel_end_page: Page < Size2MB > = Page :: containing_address ( kernel_start. virt ( ) + kernel_size - 1u64 ) ;
157
+ let kernel_end_page: Page < Size2MB > =
158
+ Page :: containing_address ( kernel_start. virt ( ) + kernel_size - 1u64 ) ;
156
159
for page in Page :: range_inclusive ( kernel_start_page, kernel_end_page) {
157
- rec_page_table. unmap ( page, & mut |_| { } ) . expect ( "dealloc error" ) ;
160
+ rec_page_table
161
+ . unmap ( page, & mut |_| { } )
162
+ . expect ( "dealloc error" ) ;
158
163
}
159
164
// Flush the translation lookaside buffer since we changed the active mapping.
160
165
tlb:: flush_all ( ) ;
0 commit comments