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 - 2016, 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 // String token ID of help message text. 23 // Shell supports to find help message in the resource section of an application image if 24 // .MAN file is not found. This global variable is added to make build tool recognizes 25 // that the help string is consumed by user and then build tool will add the string into 26 // the resource section. Thus the application can use '-?' option to show help message in 27 // Shell. 28 // 29 GLOBAL_REMOVE_IF_UNREFERENCED EFI_STRING_ID mStringHelpTokenId = STRING_TOKEN (STR_HELLO_WORLD_HELP_INFORMATION); 30 31 /** 32 The user Entry Point for Application. The user code starts with this function 33 as the real entry point for the application. 34 35 @param[in] ImageHandle The firmware allocated handle for the EFI image. 36 @param[in] SystemTable A pointer to the EFI System Table. 37 38 @retval EFI_SUCCESS The entry point is executed successfully. 39 @retval other Some error occurs when executing this entry point. 40 41 **/ 42 EFI_STATUS 43 EFIAPI UefiMain(IN EFI_HANDLE ImageHandle,IN EFI_SYSTEM_TABLE * SystemTable)44UefiMain ( 45 IN EFI_HANDLE ImageHandle, 46 IN EFI_SYSTEM_TABLE *SystemTable 47 ) 48 { 49 UINT32 Index; 50 51 Index = 0; 52 53 // 54 // Three PCD type (FeatureFlag, UINT32 and String) are used as the sample. 55 // 56 if (FeaturePcdGet (PcdHelloWorldPrintEnable)) { 57 for (Index = 0; Index < PcdGet32 (PcdHelloWorldPrintTimes); Index ++) { 58 // 59 // Use UefiLib Print API to print string to UEFI console 60 // 61 Print ((CHAR16*)PcdGetPtr (PcdHelloWorldPrintString)); 62 } 63 } 64 65 return EFI_SUCCESS; 66 } 67