]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Application/HelloWorld/HelloWorld.c
MdeModulePkg: Add sample help information for HelloWorld application.
[mirror_edk2.git] / MdeModulePkg / Application / HelloWorld / HelloWorld.c
index af552174eac051d60bdb8a3650e5f54c028c8209..164571bfb0ce43ce393d7f37939a7bad7bff7f44 100644 (file)
@@ -1,8 +1,9 @@
 /** @file\r
-  This simple application just print a "UEFI Hello World!" to the UEFI Console.\r
-  \r
-  Copyright (c) 2006 - 2007, Intel Corporation                                                         \r
-  All rights reserved. This program and the accompanying materials                          \r
+  This sample application bases on HelloWorld PCD setting \r
+  to print "UEFI Hello World!" to the UEFI Console.\r
+\r
+  Copyright (c) 2006 - 2016, Intel Corporation. All rights reserved.<BR>\r
+  This program and the accompanying materials                          \r
   are licensed and made available under the terms and conditions of the BSD License         \r
   which accompanies this distribution.  The full text of the license may be found at        \r
   http://opensource.org/licenses/bsd-license.php                                            \r
 **/\r
 \r
 #include <Uefi.h>\r
-#include <Library/DebugLib.h>\r
+#include <Library/PcdLib.h>\r
 #include <Library/UefiLib.h>\r
 #include <Library/UefiApplicationEntryPoint.h>\r
-#include <Library/UefiBootServicesTableLib.h>\r
 \r
+//\r
+// String token ID of help message text.\r
+// Shell supports to find help message in the resource section of an application image if\r
+// .MAN file is not found. This global variable is added to make build tool recognizes\r
+// that the help string is consumed by user and then build tool will add the string into\r
+// the resource section. Thus the application can use '-?' option to show help message in\r
+// Shell.\r
+//\r
+GLOBAL_REMOVE_IF_UNREFERENCED EFI_STRING_ID mStringHelpTokenId = STRING_TOKEN (STR_HELLO_WORLD_HELP_INFORMATION);\r
+\r
+/**\r
+  The user Entry Point for Application. The user code starts with this function\r
+  as the real entry point for the application.\r
+\r
+  @param[in] ImageHandle    The firmware allocated handle for the EFI image.  \r
+  @param[in] SystemTable    A pointer to the EFI System Table.\r
+  \r
+  @retval EFI_SUCCESS       The entry point is executed successfully.\r
+  @retval other             Some error occurs when executing this entry point.\r
+\r
+**/\r
 EFI_STATUS\r
 EFIAPI\r
 UefiMain (\r
   IN EFI_HANDLE        ImageHandle,\r
   IN EFI_SYSTEM_TABLE  *SystemTable\r
   )\r
-\r
 {\r
+       UINT32 Index;\r
+       \r
+       Index = 0;\r
   \r
-  Print ((CHAR16 *)L"UEFI Hello World!\n");\r
+  //\r
+  // Three PCD type (FeatureFlag, UINT32 and String) are used as the sample.\r
+  //\r
+  if (FeaturePcdGet (PcdHelloWorldPrintEnable)) {\r
+       for (Index = 0; Index < PcdGet32 (PcdHelloWorldPrintTimes); Index ++) {\r
+         //\r
+         // Use UefiLib Print API to print string to UEFI console\r
+         //\r
+       Print ((CHAR16*)PcdGetPtr (PcdHelloWorldPrintString));\r
+    }\r
+  }\r
 \r
   return EFI_SUCCESS;\r
 }\r