@@ -11,32 +11,26 @@ use osdev_rust::println;
1111entry_point ! ( kernel_main) ;
1212
1313fn kernel_main ( boot_info : & ' static BootInfo ) -> ! {
14- use osdev_rust:: memory:: active_level_4_table ;
14+ use osdev_rust:: memory:: translate_addr ;
1515 use x86_64:: VirtAddr ;
16- use x86_64:: structures:: paging:: PageTable ;
1716
1817 println ! ( "Hello World!" ) ;
1918
2019 osdev_rust:: init ( ) ;
2120
2221 let phys_mem_offset = VirtAddr :: new ( boot_info. physical_memory_offset ) ;
23- let l4_table = unsafe { active_level_4_table ( phys_mem_offset) } ;
24-
25- for ( i, entry) in l4_table. iter ( ) . enumerate ( ) {
26- if !entry. is_unused ( ) {
27- println ! ( "L4 Entry: {}: {:?}" , i, entry) ;
28-
29- let phys = entry. frame ( ) . unwrap ( ) . start_address ( ) ;
30- let virt = phys. as_u64 ( ) + boot_info. physical_memory_offset ;
31- let ptr = VirtAddr :: new ( virt) . as_mut_ptr ( ) ;
32- let l3_table: & PageTable = unsafe { & * ptr } ;
33-
34- for ( i, entry) in l3_table. iter ( ) . enumerate ( ) {
35- if !entry. is_unused ( ) {
36- println ! ( " L3 Entry {}: {:?}" , i, entry) ;
37- }
38- }
39- }
22+
23+ let addresses = [
24+ 0xb8000 ,
25+ 0x201008 ,
26+ 0x0100_0020_1a10 ,
27+ boot_info. physical_memory_offset ,
28+ ] ;
29+
30+ for & address in & addresses {
31+ let virt = VirtAddr :: new ( address) ;
32+ let phys = unsafe { translate_addr ( virt, phys_mem_offset) } ;
33+ println ! ( "{:?} -> {:?}" , virt, phys) ;
4034 }
4135
4236 #[ cfg( test) ]
0 commit comments