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

Reply via email to