On 05/25/16 21:53, Jordan Justen wrote: > On 2016-05-25 10:23:56, Laszlo Ersek wrote: >> On 05/25/16 19:00, Jordan Justen wrote: >>> On 2016-05-25 05:36:43, Laszlo Ersek wrote: >>>> OVMF's Platform BDS used to have a nice progress bar (with >>>> IntelFrameworkModulePkg BDS). We can restore it by copying the >>>> PlatformBootManagerWaitCallback() function verbatim from >>>> >>>> Nt32Pkg/Library/PlatformBootManagerLib/PlatformBootManager.c >>>> >>>> It can be tested by passing the following option to QEMU (5 seconds): >>>> >>>> -boot menu=on,splash-time=5000 >>>> >>>> Cc: Jordan Justen <[email protected]> >>>> Cc: Ruiyu Ni <[email protected]> >>>> Contributed-under: TianoCore Contribution Agreement 1.0 >>>> Signed-off-by: Laszlo Ersek <[email protected]> >>>> --- >>>> OvmfPkg/Library/PlatformBootManagerLib/BdsPlatform.c | 17 >>>> +++++++++++++++++ >>>> 1 file changed, 17 insertions(+) >>>> >>>> diff --git a/OvmfPkg/Library/PlatformBootManagerLib/BdsPlatform.c >>>> b/OvmfPkg/Library/PlatformBootManagerLib/BdsPlatform.c >>>> index 9eb9e390373d..dd8757f58ec3 100644 >>>> --- a/OvmfPkg/Library/PlatformBootManagerLib/BdsPlatform.c >>>> +++ b/OvmfPkg/Library/PlatformBootManagerLib/BdsPlatform.c >>>> @@ -1425,5 +1425,22 @@ PlatformBootManagerWaitCallback ( >>>> UINT16 TimeoutRemain >>>> ) >>>> { >>>> + EFI_GRAPHICS_OUTPUT_BLT_PIXEL Black; >>>> + EFI_GRAPHICS_OUTPUT_BLT_PIXEL White; >>>> + UINT16 Timeout; >>>> + >>>> + Timeout = PcdGet16 (PcdPlatformBootTimeOut); >>>> + >>>> + Black.Blue = Black.Green = Black.Red = Black.Reserved = 0; >>>> + White.Blue = White.Green = White.Red = White.Reserved = 0xFF; >>> >>> I know this came from Nt32, but how about making these global vars? >>> >>> static EFI_GRAPHICS_OUTPUT_BLT_PIXEL Black = { 0, 0, 0, 0 }; >>> static EFI_GRAPHICS_OUTPUT_BLT_PIXEL White = { 0xff, 0xff, 0xff, 0 }; >> >> I'm okay with giving them static storage duration. >> >> With that changed, >> - do you want me to keep them in function scope (with the same names), >> - or should I move them to file scope (and then, as Andrew suggests, >> rename them to, say, mPixelBlack and mPixelWhite)? >> > > The part that bugged me was setting .Reserved to 0xff. > > How about just making them initialized local variables? > > EFI_GRAPHICS_OUTPUT_BLT_PIXEL Black = { 0, 0, 0, 0 }; > EFI_GRAPHICS_OUTPUT_BLT_PIXEL White = { 0xff, 0xff, 0xff, 0 };
That would conflict with the edk2 coding style (6.8 C Function Layout, "Initializing a variable as part of its declaration is illegal" -- although it clearly doesn't cover variables with static storage duration.) I even suspect that the first initialization could cause some compilers to emit memset() intrinsics. How about: Black.Blue = Black.Green = Black.Red = 0; White.Blue = White.Green = White.Red = 0xFF; Black.Reserved = White.Reserved = 0; (I could submit a patch for Nt32Pkg too that fixed White.Reserved.) Thanks Laszlo _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

