From: Keshav Padram Date: Sun, 16 Jun 2013 16:31:59 +0000 (+0200) Subject: EFI_CONSOLE_CONTROL_PROTOCOL structs in console_text_mode() should be declared... X-Git-Tag: 33~1 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e6ebfca6181de76b9dc558d5fdcfe14bc53d507a;p=platform%2Fupstream%2Fgummiboot.git EFI_CONSOLE_CONTROL_PROTOCOL structs in console_text_mode() should be declared as EFIAPI EFI_CONSOLE_CONTROL_PROTOCOL structs in console_text_mode() previously were not declared as EFIAPI, due to which gummiboot compiled with gnu-efi 3.0t (with GNU_EFI_USE_MS_ABI enabled) hanged. Fix this by declaring EFI_CONSOLE_CONTROL_PROTOCOL_{GET_MODE,SET_MODE,LOCK_STD_IN} as EFIAPI. Tested in Lenovo Thinkpad E430, UEFI 2.3.1, x86_64 firmware. --- diff --git a/src/efi/gummiboot.c b/src/efi/gummiboot.c index 20da9ce..ecba84f 100644 --- a/src/efi/gummiboot.c +++ b/src/efi/gummiboot.c @@ -575,19 +575,19 @@ static EFI_STATUS console_text_mode(VOID) { EfiConsoleControlScreenMaxValue, } EFI_CONSOLE_CONTROL_SCREEN_MODE; - typedef EFI_STATUS (*EFI_CONSOLE_CONTROL_PROTOCOL_GET_MODE)( + typedef EFI_STATUS (EFIAPI *EFI_CONSOLE_CONTROL_PROTOCOL_GET_MODE)( struct _EFI_CONSOLE_CONTROL_PROTOCOL *This, EFI_CONSOLE_CONTROL_SCREEN_MODE *Mode, BOOLEAN *UgaExists, BOOLEAN *StdInLocked ); - typedef EFI_STATUS (*EFI_CONSOLE_CONTROL_PROTOCOL_SET_MODE)( + typedef EFI_STATUS (EFIAPI *EFI_CONSOLE_CONTROL_PROTOCOL_SET_MODE)( struct _EFI_CONSOLE_CONTROL_PROTOCOL *This, EFI_CONSOLE_CONTROL_SCREEN_MODE Mode ); - typedef EFI_STATUS (*EFI_CONSOLE_CONTROL_PROTOCOL_LOCK_STD_IN)( + typedef EFI_STATUS (EFIAPI *EFI_CONSOLE_CONTROL_PROTOCOL_LOCK_STD_IN)( struct _EFI_CONSOLE_CONTROL_PROTOCOL *This, CHAR16 *Password );