@@ -76,7 +76,7 @@ fn main_inner(image: Handle, mut st: SystemTable<Boot>) -> Status {
76
76
77
77
let kernel = load_kernel ( image, & mut st) ;
78
78
79
- let ( framebuffer_addr , framebuffer_info ) = init_logger ( & st, kernel. config ) ;
79
+ let framebuffer = init_logger ( & st, kernel. config ) ;
80
80
81
81
// we no longer need the system table for printing panics
82
82
unsafe {
@@ -85,7 +85,9 @@ fn main_inner(image: Handle, mut st: SystemTable<Boot>) -> Status {
85
85
86
86
log:: info!( "UEFI bootloader started" ) ;
87
87
log:: info!( "Reading kernel and configuration from disk was successful" ) ;
88
- log:: info!( "Using framebuffer at {:#x}" , framebuffer_addr) ;
88
+ if let Some ( framebuffer) = framebuffer {
89
+ log:: info!( "Using framebuffer at {:#x}" , framebuffer. addr) ;
90
+ }
89
91
90
92
let mmap_storage = {
91
93
let max_mmap_size =
@@ -107,10 +109,7 @@ fn main_inner(image: Handle, mut st: SystemTable<Boot>) -> Status {
107
109
let page_tables = create_page_tables ( & mut frame_allocator) ;
108
110
109
111
let system_info = SystemInfo {
110
- framebuffer : Some ( RawFrameBufferInfo {
111
- addr : framebuffer_addr,
112
- info : framebuffer_info,
113
- } ) ,
112
+ framebuffer,
114
113
rsdp_addr : {
115
114
use uefi:: table:: cfg;
116
115
let mut config_entries = system_table. config_table ( ) . iter ( ) ;
@@ -366,11 +365,11 @@ fn create_page_tables(
366
365
}
367
366
}
368
367
369
- fn init_logger ( st : & SystemTable < Boot > , config : BootloaderConfig ) -> ( PhysAddr , FrameBufferInfo ) {
368
+ fn init_logger ( st : & SystemTable < Boot > , config : BootloaderConfig ) -> Option < RawFrameBufferInfo > {
370
369
let gop = st
371
370
. boot_services ( )
372
371
. locate_protocol :: < GraphicsOutput > ( )
373
- . expect ( "failed to locate gop" ) ;
372
+ . ok ( ) ? ;
374
373
let gop = unsafe { & mut * gop. get ( ) } ;
375
374
376
375
let mode = {
@@ -423,7 +422,10 @@ fn init_logger(st: &SystemTable<Boot>, config: BootloaderConfig) -> (PhysAddr, F
423
422
424
423
bootloader_x86_64_common:: init_logger ( slice, info) ;
425
424
426
- ( PhysAddr :: new ( framebuffer. as_mut_ptr ( ) as u64 ) , info)
425
+ Some ( RawFrameBufferInfo {
426
+ addr : PhysAddr :: new ( framebuffer. as_mut_ptr ( ) as u64 ) ,
427
+ info,
428
+ } )
427
429
}
428
430
429
431
#[ panic_handler]
0 commit comments