Home | History | Annotate | Download | only in HelloWorld
      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
     44 UefiMain (
     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