1 /** @file 2 This sample application bases on HelloWorld PCD setting 3 to print "UEFI Hello World!" to the UEFI Console. 4 5 Copyright (c) 2006 - 2008, Intel Corporation. All rights reserved.<BR> 6 This program and the accompanying materials 7 are licensed and made available under the terms and conditions of the BSD License 8 which accompanies this distribution. The full text of the license may be found at 9 http://opensource.org/licenses/bsd-license.php 10 11 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, 12 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. 13 14 **/ 15 16 #include <Uefi.h> 17 #include <Library/PcdLib.h> 18 #include <Library/UefiLib.h> 19 #include <Library/UefiApplicationEntryPoint.h> 20 21 22 /** 23 The user Entry Point for Application. The user code starts with this function 24 as the real entry point for the application. 25 26 @param[in] ImageHandle The firmware allocated handle for the EFI image. 27 @param[in] SystemTable A pointer to the EFI System Table. 28 29 @retval EFI_SUCCESS The entry point is executed successfully. 30 @retval other Some error occurs when executing this entry point. 31 32 **/ 33 EFI_STATUS 34 EFIAPI UefiMain(IN EFI_HANDLE ImageHandle,IN EFI_SYSTEM_TABLE * SystemTable)35UefiMain ( 36 IN EFI_HANDLE ImageHandle, 37 IN EFI_SYSTEM_TABLE *SystemTable 38 ) 39 { 40 UINT32 Index; 41 42 Index = 0; 43 44 // 45 // Three PCD type (FeatureFlag, UINT32 and String) are used as the sample. 46 // 47 if (FeaturePcdGet (PcdHelloWorldPrintEnable)) { 48 for (Index = 0; Index < PcdGet32 (PcdHelloWorldPrintTimes); Index ++) { 49 // 50 // Use UefiLib Print API to print string to UEFI console 51 // 52 Print ((CHAR16*)PcdGetPtr (PcdHelloWorldPrintString)); 53 } 54 } 55 56 return EFI_SUCCESS; 57 } 58