VirtualBox

source: vbox/trunk/src/VBox/Devices/EFI/Firmware/MdeModulePkg/Library/VarCheckHiiLib/VarCheckHiiGenFromHii.c@ 81344

Last change on this file since 81344 was 80721, checked in by vboxsync, 5 years ago

Devices/EFI/FirmwareNew: Start upgrade process to edk2-stable201908 (compiles on Windows and works to some extent), bugref:4643

  • Property svn:eol-style set to native
File size: 1.7 KB
Line 
1/** @file
2 Var Check Hii generation from Hii Database.
3
4Copyright (c) 2015, Intel Corporation. All rights reserved.<BR>
5SPDX-License-Identifier: BSD-2-Clause-Patent
6
7**/
8
9#include "VarCheckHiiGen.h"
10
11/**
12 Generate from Hii Database.
13
14**/
15VOID
16VarCheckHiiGenFromHiiDatabase (
17 VOID
18 )
19{
20 EFI_STATUS Status;
21 UINTN BufferSize;
22 VOID *Buffer;
23 EFI_PHYSICAL_ADDRESS BufferAddress;
24 EFI_HII_DATABASE_PROTOCOL *HiiDatabase;
25
26 //
27 // Locate HII Database protocol
28 //
29 Status = gBS->LocateProtocol (&gEfiHiiDatabaseProtocolGuid, NULL, (VOID **) &HiiDatabase);
30 if (EFI_ERROR (Status)) {
31 return;
32 }
33
34 //
35 // Call first time with zero buffer length.
36 // Should fail with EFI_BUFFER_TOO_SMALL.
37 //
38 BufferSize = 0;
39 Buffer = NULL;
40 Status = HiiDatabase->ExportPackageLists (HiiDatabase, 0, &BufferSize, Buffer);
41 if (Status == EFI_BUFFER_TOO_SMALL) {
42 //
43 // Allocate buffer to hold the HII Database.
44 //
45 Status = gBS->AllocatePages (AllocateAnyPages, EfiBootServicesData, EFI_SIZE_TO_PAGES (BufferSize), &BufferAddress);
46 ASSERT_EFI_ERROR (Status);
47 Buffer = (VOID *) (UINTN) BufferAddress;
48
49 //
50 // Export HII Database into the buffer.
51 //
52 Status = HiiDatabase->ExportPackageLists (HiiDatabase, 0, &BufferSize, Buffer);
53 ASSERT_EFI_ERROR (Status);
54
55 DEBUG ((DEBUG_INFO , "VarCheckHiiGenDxeFromHii - HII Database exported at 0x%x, size = 0x%x\n", Buffer, BufferSize));
56
57#ifdef DUMP_HII_DATA
58 DEBUG_CODE (
59 DumpHiiDatabase (Buffer, BufferSize);
60 );
61#endif
62
63 VarCheckParseHiiDatabase (Buffer, BufferSize);
64
65 gBS->FreePages (BufferAddress, EFI_SIZE_TO_PAGES (BufferSize));
66 }
67}
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette