1111#![ deny( warnings) ]
1212#![ no_std]
1313#![ no_main]
14- #![ feature( panic_info_message) ]
1514
1615use core:: arch:: global_asm;
1716use log:: * ;
@@ -26,35 +25,34 @@ global_asm!(include_str!("entry.asm"));
2625
2726/// clear BSS segment
2827pub fn clear_bss ( ) {
29- extern "C" {
30- fn sbss ( ) ;
31- fn ebss ( ) ;
28+ unsafe extern "C" {
29+ safe fn sbss ( ) ;
30+ safe fn ebss ( ) ;
3231 }
3332 ( sbss as usize ..ebss as usize ) . for_each ( |a| unsafe { ( a as * mut u8 ) . write_volatile ( 0 ) } ) ;
3433}
3534
3635/// the rust entry-point of os
37- #[ no_mangle]
36+ #[ unsafe ( no_mangle) ]
3837pub fn rust_main ( ) -> ! {
39- extern "C" {
40- fn stext ( ) ; // begin addr of text segment
41- fn etext ( ) ; // end addr of text segment
42- fn srodata ( ) ; // start addr of Read-Only data segment
43- fn erodata ( ) ; // end addr of Read-Only data ssegment
44- fn sdata ( ) ; // start addr of data segment
45- fn edata ( ) ; // end addr of data segment
46- fn sbss ( ) ; // start addr of BSS segment
47- fn ebss ( ) ; // end addr of BSS segment
48- fn boot_stack_lower_bound ( ) ; // stack lower bound
49- fn boot_stack_top ( ) ; // stack top
38+ unsafe extern "C" {
39+ safe fn stext ( ) ; // begin addr of text segment
40+ safe fn etext ( ) ; // end addr of text segment
41+ safe fn srodata ( ) ; // start addr of Read-Only data segment
42+ safe fn erodata ( ) ; // end addr of Read-Only data ssegment
43+ safe fn sdata ( ) ; // start addr of data segment
44+ safe fn edata ( ) ; // end addr of data segment
45+ safe fn sbss ( ) ; // start addr of BSS segment
46+ safe fn ebss ( ) ; // end addr of BSS segment
47+ safe fn boot_stack_lower_bound ( ) ; // stack lower bound
48+ safe fn boot_stack_top ( ) ; // stack top
5049 }
5150 clear_bss ( ) ;
5251 logging:: init ( ) ;
5352 println ! ( "[kernel] Hello, world!" ) ;
5453 trace ! (
5554 "[kernel] .text [{:#x}, {:#x})" ,
56- stext as usize ,
57- etext as usize
55+ stext as usize , etext as usize
5856 ) ;
5957 debug ! (
6058 "[kernel] .rodata [{:#x}, {:#x})" ,
0 commit comments