]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Universal/BdsDxe/BootMaint/BootMaint.h
Clean up BootMaint module in BdsDxe.
[mirror_edk2.git] / MdeModulePkg / Universal / BdsDxe / BootMaint / BootMaint.h
index 1ac2707c2fecbc4ca0dc0a41ce0b1351d9b88db6..da7badd306a3c9ce1dd638aa18523331a577b7a2 100644 (file)
@@ -469,12 +469,17 @@ typedef struct _STRING_DEPOSITORY {
 //\r
 // For initializing File System menu\r
 //\r
+\r
 /**\r
-  EDES_TODO: Add function description.\r
+  This function build the FsOptionMenu list which records all\r
+  available file system in the system. They includes all instances\r
+  of EFI_SIMPLE_FILE_SYSTEM_PROTOCOL, all instances of EFI_LOAD_FILE_SYSTEM\r
+  and all type of legacy boot device.\r
 \r
-  @param CallbackData    EDES_TODO: Add parameter description\r
+  @param CallbackData    BMM context data\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @retval  EFI_SUCCESS             Success find the file system\r
+  @retval  EFI_OUT_OF_RESOURCES    Can not create menu entry\r
 \r
 **/\r
 EFI_STATUS\r
@@ -483,33 +488,15 @@ BOpt_FindFileSystem (
   )\r
 ;\r
 \r
-//\r
-// For cleaning up File System menu\r
-//\r
-/**\r
-  EDES_TODO: Add function description.\r
-\r
-  @param VOID            EDES_TODO: Add parameter description\r
-\r
-  @return EDES_TODO: Add description for return value\r
-\r
-**/\r
-VOID\r
-BOpt_FreeFileSystem (\r
-  VOID\r
-  )\r
-;\r
-\r
-//\r
-// For initializing File Navigation menu\r
-//\r
 /**\r
-  EDES_TODO: Add function description.\r
+  Find files under current directory\r
+  All files and sub-directories in current directory\r
+  will be stored in DirectoryMenu for future use.\r
 \r
-  @param CallbackData    EDES_TODO: Add parameter description\r
-  @param MenuEntry       EDES_TODO: Add parameter description\r
+  @param FileOption  Pointer for Dir to explore.\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @retval TRUE         Get files from current dir successfully.\r
+  @retval FALSE        Can't get files from current dir.\r
 \r
 **/\r
 EFI_STATUS\r
@@ -519,32 +506,17 @@ BOpt_FindFiles (
   )\r
 ;\r
 \r
-//\r
-// For cleaning up File Navigation menu\r
-//\r
 /**\r
-  EDES_TODO: Add function description.\r
-\r
-  @param VOID            EDES_TODO: Add parameter description\r
-\r
-  @return EDES_TODO: Add description for return value\r
-\r
-**/\r
-VOID\r
-BOpt_FreeFiles (\r
-  VOID\r
-  )\r
-;\r
 \r
-//\r
-// For Initializing handle navigation menu\r
-//\r
-/**\r
-  EDES_TODO: Add function description.\r
+  Find drivers that will be added as Driver#### variables from handles\r
+  in current system environment\r
+  All valid handles in the system except those consume SimpleFs, LoadFile\r
+  are stored in DriverMenu for future use.\r
 \r
-  @param VOID            EDES_TODO: Add parameter description\r
+  @param VOID \r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @retval EFI_SUCCESS The function complets successfully.\r
+  @return Other value if failed to build the DriverMenu.\r
 \r
 **/\r
 EFI_STATUS\r
@@ -553,29 +525,14 @@ BOpt_FindDrivers (
   )\r
 ;\r
 \r
-//\r
-// For Cleaning up handle navigation menu\r
-//\r
 /**\r
-  EDES_TODO: Add function description.\r
-\r
-  @param VOID            EDES_TODO: Add parameter description\r
 \r
-  @return EDES_TODO: Add description for return value\r
-\r
-**/\r
-VOID\r
-BOpt_FreeDrivers(VOID);\r
-\r
-//\r
-// For initializing Boot Option menu\r
-//\r
-/**\r
-  EDES_TODO: Add function description.\r
+  Build the BootOptionMenu according to BootOrder Variable.\r
+  This Routine will access the Boot#### to get EFI_LOAD_OPTION.\r
 \r
-  @param CallbackData    EDES_TODO: Add parameter description\r
+  @param None\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @return The number of the Var Boot####.\r
 \r
 **/\r
 EFI_STATUS\r
@@ -583,15 +540,15 @@ BOpt_GetBootOptions (
   IN  BMM_CALLBACK_DATA         *CallbackData\r
   );\r
 \r
-//\r
-// For Initializing Driver option menu\r
-//\r
 /**\r
-  EDES_TODO: Add function description.\r
 \r
-  @param CallbackData    EDES_TODO: Add parameter description\r
+  Build up all DriverOptionMenu\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @param CallbackData The BMM context data.\r
+\r
+  @return EFI_SUCESS The functin completes successfully.\r
+  @retval EFI_OUT_OF_RESOURCES Not enough memory to compete the operation.\r
+  \r
 \r
 **/\r
 EFI_STATUS\r
@@ -599,71 +556,40 @@ BOpt_GetDriverOptions (
   IN  BMM_CALLBACK_DATA         *CallbackData\r
   );\r
 \r
-//\r
-// For Cleaning up boot option menu\r
-//\r
-/**\r
-  EDES_TODO: Add function description.\r
-\r
-  @param VOID            EDES_TODO: Add parameter description\r
-\r
-  @return EDES_TODO: Add description for return value\r
-\r
-**/\r
-VOID\r
-BOpt_FreeBootOptions (VOID);\r
-\r
-//\r
-// For cleaning up driver option menu\r
-//\r
-/**\r
-  EDES_TODO: Add function description.\r
-\r
-  @param VOID            EDES_TODO: Add parameter description\r
-\r
-  @return EDES_TODO: Add description for return value\r
-\r
-**/\r
-VOID\r
-BOpt_FreeDriverOptions(VOID);\r
 \r
-//\r
-// For Initializing HD/FD/CD/NET/BEV option menu\r
-//\r
 /**\r
-  EDES_TODO: Add function description.\r
+  Build the LegacyFDMenu LegacyHDMenu LegacyCDMenu according to LegacyBios.GetBbsInfo().\r
 \r
-  @param VOID            EDES_TODO: Add parameter description\r
+  @param VOID\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @retval EFI_SUCCESS The function complete successfully.\r
+  @retval EFI_OUT_OF_RESOURCES No enough memory to complete this function.\r
 \r
 **/\r
 EFI_STATUS\r
-BOpt_GetLegacyOptions(VOID);\r
+BOpt_GetLegacyOptions (\r
+  VOID\r
+  );\r
 \r
-//\r
-// For cleaning up driver option menu\r
-//\r
 /**\r
-  EDES_TODO: Add function description.\r
+  Free out resouce allocated from Legacy Boot Options.\r
 \r
-  @param VOID            EDES_TODO: Add parameter description\r
+  @param VOID.\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @return VOID.\r
 \r
 **/\r
 VOID\r
-BOpt_FreeLegacyOptions(VOID);\r
+BOpt_FreeLegacyOptions (\r
+  VOID\r
+  );\r
 \r
-//\r
-// this function is used to take place of all other free menu actions\r
-//\r
 /**\r
-  EDES_TODO: Add function description.\r
+  Free resources allocated in Allocate Rountine\r
 \r
-  @param FreeMenu        EDES_TODO: Add parameter description\r
+  @param FreeMenu        Menu to be freed\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @return VOID\r
 \r
 **/\r
 VOID\r
@@ -672,16 +598,15 @@ BOpt_FreeMenu (
   );\r
 \r
 \r
-//\r
-// Following are the helper functions used\r
-//\r
 /**\r
-  EDES_TODO: Add function description.\r
 \r
-  @param Str1            EDES_TODO: Add parameter description\r
-  @param Str2            EDES_TODO: Add parameter description\r
+  Append file name to existing file name.\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @param Str1  The existing file name\r
+  @param Str2  The file name to be appended\r
+\r
+  @return Allocate a new string to hold the appended result.\r
+          Caller is responsible to free the returned string.\r
 \r
 **/\r
 CHAR16                            *\r
@@ -691,11 +616,14 @@ BOpt_AppendFileName (
   );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
 \r
-  @param FileName        EDES_TODO: Add parameter description\r
+  Check whether current FileName point to a valid\r
+  Efi Image File.\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @param FileName  File need to be checked.\r
+\r
+  @retval TRUE  Is Efi Image\r
+  @retval FALSE Not a valid Efi Image\r
 \r
 **/\r
 BOOLEAN\r
@@ -704,12 +632,14 @@ BOpt_IsEfiImageName (
   );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
 \r
-  @param Dir             EDES_TODO: Add parameter description\r
-  @param FileName        EDES_TODO: Add parameter description\r
+  Check whether current FileName point to a valid Efi Application\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @param Dir       Pointer to current Directory\r
+  @param FileName  Pointer to current File name.\r
+\r
+  @retval TRUE      Is a valid Efi Application\r
+  @retval FALSE     not a valid Efi Application\r
 \r
 **/\r
 BOOLEAN\r
@@ -718,40 +648,42 @@ BOpt_IsEfiApp (
   IN UINT16          *FileName\r
   );\r
 \r
-//\r
-// Get current unused boot option number\r
-//\r
 /**\r
-  EDES_TODO: Add function description.\r
 \r
-  @param VOID            EDES_TODO: Add parameter description\r
+  Get the Option Number that has not been allocated for use.\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @param VOID\r
+\r
+  @return The available Option Number.\r
 \r
 **/\r
 UINT16\r
-BOpt_GetBootOptionNumber (VOID);\r
+BOpt_GetBootOptionNumber (\r
+  VOID\r
+  );\r
 \r
-//\r
-// Get current unused driver option number\r
-//\r
 /**\r
-  EDES_TODO: Add function description.\r
 \r
-  @param VOID            EDES_TODO: Add parameter description\r
+  Get the Option Number that is not in use.\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @param VOID\r
+\r
+  @return The unused Option Number.\r
 \r
 **/\r
 UINT16\r
-BOpt_GetDriverOptionNumber (VOID);\r
+BOpt_GetDriverOptionNumber (\r
+  VOID\r
+  );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
+  Create a menu entry give a Menu type.\r
 \r
-  @param MenuType        EDES_TODO: Add parameter description\r
+  @param MenuType        The Menu type to be created.\r
 \r
-  @return EDES_TODO: Add description for return value\r
+\r
+  @retval NULL           If failed to create the menu.\r
+  @return                The menu.\r
 \r
 **/\r
 BM_MENU_ENTRY                     *\r
@@ -760,11 +692,11 @@ BOpt_CreateMenuEntry (
   );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
+  Free up all resource allocated for a BM_MENU_ENTRY.\r
 \r
-  @param MenuEntry       EDES_TODO: Add parameter description\r
+  @param MenuEntry   A pointer to BM_MENU_ENTRY.\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @retval VOID\r
 \r
 **/\r
 VOID\r
@@ -773,12 +705,15 @@ BOpt_DestroyMenuEntry (
   );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
+  Get the Menu Entry from the list in Menu Entry List.\r
 \r
-  @param MenuOption      EDES_TODO: Add parameter description\r
-  @param MenuNumber      EDES_TODO: Add parameter description\r
+  If MenuNumber is great or equal to the number of Menu\r
+  Entry in the list, then ASSERT.\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @param MenuOption      The Menu Entry List to read the menu entry.\r
+  @param MenuNumber      The index of Menu Entry.\r
+\r
+  @return The Menu Entry.\r
 \r
 **/\r
 BM_MENU_ENTRY                     *\r
@@ -787,27 +722,12 @@ BOpt_GetMenuEntry (
   UINTN               MenuNumber\r
   );\r
 \r
-//\r
-// a helper function used to free pool type memory\r
-//\r
-/**\r
-  EDES_TODO: Add function description.\r
-\r
-  @param Buffer          EDES_TODO: Add parameter description\r
-\r
-  @return EDES_TODO: Add description for return value\r
-\r
-**/\r
-VOID\r
-SafeFreePool (\r
-  IN VOID *Buffer\r
-  );\r
-\r
 //\r
 // Locate all serial io devices for console\r
 //\r
 /**\r
-  EDES_TODO: Add function description.\r
+  Build a list containing all serial devices\r
+\r
 \r
   @param VOID            EDES_TODO: Add parameter description\r
 \r
@@ -815,31 +735,37 @@ SafeFreePool (
 \r
 **/\r
 EFI_STATUS\r
-LocateSerialIo (VOID);\r
+LocateSerialIo (\r
+  VOID\r
+  );\r
 \r
 //\r
 // Initializing Console menu\r
 //\r
 /**\r
-  EDES_TODO: Add function description.\r
+  Build up ConsoleOutMenu, ConsoleInpMenu and ConsoleErrMenu\r
 \r
-  @param VOID            EDES_TODO: Add parameter description\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @param VOID\r
+\r
+  @retval EFI_SUCCESS    The function always complete successfully.\r
 \r
 **/\r
 EFI_STATUS\r
-GetAllConsoles(VOID);\r
+GetAllConsoles(\r
+  VOID\r
+  );\r
 \r
 //\r
 // Get current mode information\r
 //\r
 /**\r
-  EDES_TODO: Add function description.\r
+  Get mode number according to column and row\r
 \r
-  @param CallbackData    EDES_TODO: Add parameter description\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @param CallbackData    The BMM context data.\r
+\r
+  @return VOID\r
 \r
 **/\r
 VOID\r
@@ -851,22 +777,26 @@ GetConsoleOutMode (
 // Cleaning up console menu\r
 //\r
 /**\r
-  EDES_TODO: Add function description.\r
+  Free ConsoleOutMenu, ConsoleInpMenu and ConsoleErrMenu\r
 \r
-  @param VOID            EDES_TODO: Add parameter description\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @param VOID            EDES_TODO: Add parameter description\r
 \r
+  @retval EFI_SUCCESS    The function always complete successfully.\r
 **/\r
 EFI_STATUS\r
-FreeAllConsoles(VOID);\r
+FreeAllConsoles (\r
+  VOID\r
+  );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
+  Update the device path that describing a terminal device\r
+  based on the new BaudRate, Data Bits, parity and Stop Bits\r
+  set.\r
 \r
-  @param DevicePath      EDES_TODO: Add parameter description\r
+  @param DevicePath\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @return VOID\r
 \r
 **/\r
 VOID\r
@@ -875,12 +805,15 @@ ChangeVariableDevicePath (
 );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
+  Update the multi-instance device path of Terminal Device based on\r
+  the global TerminalMenu. If ChangeTernimal is TRUE, the terminal \r
+  device path in the Terminal Device in TerminalMenu is also updated.\r
 \r
-  @param DevicePath      EDES_TODO: Add parameter description\r
-  @param ChangeTerminal  EDES_TODO: Add parameter description\r
+  @param DevicePath      The multi-instance device path.\r
+  @param ChangeTerminal  TRUE, then device path in the Terminal Device \r
+                         in TerminalMenu is also updated; FALSE, no update.\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @return EFI_SUCCESS    The function completes successfully.\r
 \r
 **/\r
 EFI_STATUS\r
@@ -892,12 +825,16 @@ ChangeTerminalDevicePath (
 // Variable operation by menu selection\r
 //\r
 /**\r
-  EDES_TODO: Add function description.\r
+  This function create a currently loaded Boot Option from \r
+  the BMM. It then appends this Boot Option to the end of \r
+  the "BootOrder" list. It also append this Boot Opotion to the end\r
+  of BootOptionMenu.\r
 \r
-  @param CallbackData    EDES_TODO: Add parameter description\r
-  @param NvRamMap        EDES_TODO: Add parameter description\r
+  @param CallbackData    The BMM context data.\r
+  @param NvRamMap        The file explorer formset internal state.\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @retval EFI_OUT_OF_RESOURCES If not enought memory to complete the operation.\r
+  @retval EFI_SUCCESS          If function completes successfully.\r
 \r
 **/\r
 EFI_STATUS\r
@@ -907,37 +844,56 @@ Var_UpdateBootOption (
   );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
+  Delete Boot Option that represent a Deleted state in BootOptionMenu.\r
+  After deleting this boot option, call Var_ChangeBootOrder to\r
+  make sure BootOrder is in valid state.\r
+\r
 \r
   @param VOID            EDES_TODO: Add parameter description\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @retval EFI_SUCCESS   If all boot load option EFI Variables corresponding to  \r
+                        BM_LOAD_CONTEXT marked for deletion is deleted\r
+  @return Others        If failed to update the "BootOrder" variable after deletion. \r
 \r
 **/\r
 EFI_STATUS\r
-Var_DelBootOption (VOID);\r
+Var_DelBootOption (\r
+  VOID\r
+  );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
+  After any operation on Boot####, there will be a discrepancy in BootOrder.\r
+  Since some are missing but in BootOrder, while some are present but are\r
+  not reflected by BootOrder. Then a function rebuild BootOrder from\r
+  scratch by content from BootOptionMenu is needed.\r
 \r
-  @param VOID            EDES_TODO: Add parameter description\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @param VOID\r
+\r
+  @retval  EFI_SUCCESS  The boot order is updated successfully.\r
+  @return               EFI_STATUS other than EFI_SUCCESS if failed to\r
+                        Set the "BootOrder" EFI Variable.\r
 \r
 **/\r
 EFI_STATUS\r
-Var_ChangeBootOrder (VOID);\r
+Var_ChangeBootOrder (\r
+  VOID\r
+  );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
+  This function create a currently loaded Drive Option from \r
+  the BMM. It then appends this Driver Option to the end of \r
+  the "DriverOrder" list. It append this Driver Opotion to the end\r
+  of DriverOptionMenu.\r
 \r
-  @param CallbackData    EDES_TODO: Add parameter description\r
-  @param HiiHandle       EDES_TODO: Add parameter description\r
-  @param DescriptionData EDES_TODO: Add parameter description\r
-  @param OptionalData    EDES_TODO: Add parameter description\r
+  @param CallbackData    The BMM context data.\r
+  @param HiiHandle       The HII handle associated with the BMM formset.\r
+  @param DescriptionData The description of this driver option.\r
+  @param OptionalData    The optional load option.\r
   @param ForceReconnect  EDES_TODO: Add parameter description\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @retval EFI_OUT_OF_RESOURCES If not enought memory to complete the operation.\r
+  @retval EFI_SUCCESS          If function completes successfully.\r
 \r
 **/\r
 EFI_STATUS\r
@@ -950,77 +906,117 @@ Var_UpdateDriverOption (
   );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
+  Delete Load Option that represent a Deleted state in BootOptionMenu.\r
+  After deleting this Driver option, call Var_ChangeDriverOrder to\r
+  make sure DriverOrder is in valid state.\r
 \r
-  @param VOID            EDES_TODO: Add parameter description\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @param VOID\r
+\r
+  @retval EFI_SUCCESS Load Option is successfully updated.\r
+  @return Other value than EFI_SUCCESS if failed to update "Driver Order" EFI\r
+          Variable.\r
 \r
 **/\r
 EFI_STATUS\r
-Var_DelDriverOption (VOID);\r
+Var_DelDriverOption (\r
+  VOID\r
+  );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
+  After any operation on Driver####, there will be a discrepancy in\r
+  DriverOrder. Since some are missing but in DriverOrder, while some\r
+  are present but are not reflected by DriverOrder. Then a function\r
+  rebuild DriverOrder from scratch by content from DriverOptionMenu is\r
+  needed.\r
 \r
-  @param VOID            EDES_TODO: Add parameter description\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @param VOID\r
+\r
+  @retval  EFI_SUCCESS  The driver order is updated successfully.\r
+  @return               EFI_STATUS other than EFI_SUCCESS if failed to\r
+                                 Set the "DriverOrder" EFI Variable.\r
 \r
 **/\r
 EFI_STATUS\r
-Var_ChangeDriverOrder (VOID);\r
+Var_ChangeDriverOrder (\r
+  VOID\r
+  );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
+  This function delete and build multi-instance device path ConIn\r
+  console device.\r
 \r
-  @param VOID            EDES_TODO: Add parameter description\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @param VOID\r
 \r
+  @retval EFI_SUCCESS    The function complete successfully.\r
+  @return                The EFI variable can be saved. See gRT->SetVariable \r
+                         for detail return information.\r
 **/\r
 EFI_STATUS\r
-Var_UpdateConsoleInpOption (VOID);\r
+Var_UpdateConsoleInpOption (\r
+  VOID\r
+  );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
+  This function delete and build multi-instance device path ConOut\r
+  console device.\r
 \r
-  @param VOID            EDES_TODO: Add parameter description\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @param VOID\r
 \r
+  @retval EFI_SUCCESS    The function complete successfully.\r
+  @return                The EFI variable can be saved. See gRT->SetVariable \r
+                         for detail return information.\r
 **/\r
 EFI_STATUS\r
-Var_UpdateConsoleOutOption (VOID);\r
+Var_UpdateConsoleOutOption (\r
+  VOID\r
+  );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
+  This function delete and build multi-instance device path ErrOut\r
+  console device.\r
 \r
-  @param VOID            EDES_TODO: Add parameter description\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @param VOID\r
 \r
+  @retval EFI_SUCCESS    The function complete successfully.\r
+  @return                The EFI variable can be saved. See gRT->SetVariable \r
+                         for detail return information.\r
 **/\r
 EFI_STATUS\r
-Var_UpdateErrorOutOption (VOID);\r
+Var_UpdateErrorOutOption (\r
+  VOID\r
+  );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
+  Update the device path of "ConOut", "ConIn" and "ErrOut" \r
+  based on the new BaudRate, Data Bits, parity and Stop Bits\r
+  set.\r
 \r
-  @param VOID            EDES_TODO: Add parameter description\r
+  @param VOID\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @return VOID\r
 \r
 **/\r
 VOID\r
-Var_UpdateAllConsoleOption (VOID);\r
+Var_UpdateAllConsoleOption (\r
+  VOID\r
+  );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
+  This function update the "BootNext" EFI Variable. If there is \r
+  no "BootNex" specified in BMM, this EFI Variable is deleted.\r
+  It also update the BMM context data specified the "BootNext"\r
+  vaule.\r
 \r
-  @param CallbackData    EDES_TODO: Add parameter description\r
+  @param CallbackData    The BMM context data.\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @retval EFI_SUCCESS    The function complete successfully.\r
+  @return                The EFI variable can be saved. See gRT->SetVariable \r
+                         for detail return information.\r
 \r
 **/\r
 EFI_STATUS\r
@@ -1029,11 +1025,16 @@ Var_UpdateBootNext (
   );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
+  This function update the "BootOrder" EFI Variable based on\r
+  BMM Formset's NV map. It then refresh BootOptionMenu\r
+  with the new "BootOrder" list.\r
 \r
-  @param CallbackData    EDES_TODO: Add parameter description\r
+  @param CallbackData    The BMM context data.\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @retval EFI_SUCCESS    The function complete successfully.\r
+  @retval EFI_SUCCESS    Not enough memory to complete the function.\r
+  @return                The EFI variable can be saved. See gRT->SetVariable \r
+                         for detail return information.\r
 \r
 **/\r
 EFI_STATUS\r
@@ -1042,11 +1043,16 @@ Var_UpdateBootOrder (
   );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
+  This function update the "DriverOrder" EFI Variable based on\r
+  BMM Formset's NV map. It then refresh DriverOptionMenu\r
+  with the new "DriverOrder" list.\r
 \r
-  @param CallbackData    EDES_TODO: Add parameter description\r
+  @param CallbackData    The BMM context data.\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @retval EFI_SUCCESS    The function complete successfully.\r
+  @retval EFI_SUCCESS    Not enough memory to complete the function.\r
+  @return                The EFI variable can be saved. See gRT->SetVariable \r
+                         for detail return information.\r
 \r
 **/\r
 EFI_STATUS\r
@@ -1055,11 +1061,14 @@ Var_UpdateDriverOrder (
   );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
+  Update the legacy BBS boot option. L"LegacyDevOrder" and EfiLegacyDevOrderGuid EFI Variable\r
+  is udpated with the new Legacy Boot order. The EFI Variable of "Boot####" and gEfiGlobalVariableGuid\r
+  is also updated.\r
 \r
-  @param CallbackData    EDES_TODO: Add parameter description\r
+  @param CallbackData    The context data for BMM.\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @return EFI_SUCCESS    The function completed successfully.\r
+  @retval EFI_NOT_FOUND  If L"LegacyDevOrder" and EfiLegacyDevOrderGuid EFI Variable can be found.\r
 \r
 **/\r
 EFI_STATUS\r
@@ -1068,11 +1077,12 @@ Var_UpdateBBSOption (
   );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
+  Update the Text Mode of Console.\r
 \r
-  @param CallbackData    EDES_TODO: Add parameter description\r
+  @param CallbackData  The context data for BMM.\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @retval EFI_SUCCSS If the Text Mode of Console is updated.\r
+  @return Other value if the Text Mode of Console is not updated.\r
 \r
 **/\r
 EFI_STATUS\r
@@ -1084,11 +1094,11 @@ Var_UpdateConMode (
 // Following are page create and refresh functions\r
 //\r
 /**\r
-  EDES_TODO: Add function description.\r
+  Refresh the global UpdateData structure.\r
 \r
-  @param VOID            EDES_TODO: Add parameter description\r
+  @param VOID\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @return VOID\r
 \r
 **/\r
 VOID\r
@@ -1097,12 +1107,14 @@ RefreshUpdateData (
   );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
+  Clean up the dynamic opcode at label and form specified by\r
+  both LabelId. \r
 \r
-  @param LabelId         EDES_TODO: Add parameter description\r
-  @param CallbackData    EDES_TODO: Add parameter description\r
+  @param LabelId         It is both the Form ID and Label ID for\r
+                         opcode deletion.\r
+  @param CallbackData    The BMM context data.\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @return VOID\r
 \r
 **/\r
 VOID\r
@@ -1112,55 +1124,12 @@ CleanUpPage (
   );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
+  Create a lit of boot option from global BootOptionMenu. It\r
+  allow user to delete the boot option.\r
 \r
-  @param CallbackData    EDES_TODO: Add parameter description\r
-  @param UpdatingMenu    EDES_TODO: Add parameter description\r
-  @param UpdatingPage    EDES_TODO: Add parameter description\r
-  @param UpdatingManner  EDES_TODO: Add parameter description\r
-  @param QuestionIdStart EDES_TODO: Add parameter description\r
-  @param GotoForm        EDES_TODO: Add parameter description\r
-  @param GotoAlternateForm EDES_TODO: Add parameter description\r
-  @param DisplayTokenStart EDES_TODO: Add parameter description\r
-  @param HelpTokenStart  EDES_TODO: Add parameter description\r
-  @param KeyValueStart   EDES_TODO: Add parameter description\r
+  @param CallbackData    The BMM context data.\r
 \r
-  @return EDES_TODO: Add description for return value\r
-\r
-**/\r
-EFI_STATUS\r
-UpdatePage (\r
-  IN BMM_CALLBACK_DATA                *CallbackData,\r
-  IN BM_MENU_OPTION                   *UpdatingMenu,\r
-  IN UINT16                           UpdatingPage,\r
-  IN UINT16                           UpdatingManner,\r
-  IN UINT16                           QuestionIdStart,\r
-  IN UINT16                           GotoForm,\r
-  IN UINT16                           GotoAlternateForm,\r
-  IN EFI_STRING_ID                    DisplayTokenStart,\r
-  IN EFI_STRING_ID                    HelpTokenStart,\r
-  IN UINT16                           KeyValueStart\r
-  );\r
-\r
-/**\r
-  EDES_TODO: Add function description.\r
-\r
-  @param CallbackData    EDES_TODO: Add parameter description\r
-\r
-  @return EDES_TODO: Add description for return value\r
-\r
-**/\r
-VOID\r
-UpdateBootAddPage (\r
-  IN BMM_CALLBACK_DATA                *CallbackData\r
-  );\r
-\r
-/**\r
-  EDES_TODO: Add function description.\r
-\r
-  @param CallbackData    EDES_TODO: Add parameter description\r
-\r
-  @return EDES_TODO: Add description for return value\r
+  @return VOID\r
 \r
 **/\r
 VOID\r
@@ -1169,24 +1138,11 @@ UpdateBootDelPage (
   );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
-\r
-  @param CallbackData    EDES_TODO: Add parameter description\r
-\r
-  @return EDES_TODO: Add description for return value\r
-\r
-**/\r
-VOID\r
-UpdateDrvAddFilePage (\r
-  IN BMM_CALLBACK_DATA                *CallbackData\r
-  );\r
-\r
-/**\r
-  EDES_TODO: Add function description.\r
+  Create a lit of driver option from global DriverMenu.\r
 \r
-  @param CallbackData    EDES_TODO: Add parameter description\r
+  @param CallbackData    The BMM context data.\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @return VOID\r
 \r
 **/\r
 VOID\r
@@ -1195,11 +1151,13 @@ UpdateDrvAddHandlePage (
   );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
+  Create a lit of driver option from global DriverOptionMenu. It\r
+  allow user to delete the driver option.\r
 \r
-  @param CallbackData    EDES_TODO: Add parameter description\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @param CallbackData    The BMM context data.\r
+\r
+  @return VOID\r
 \r
 **/\r
 VOID\r
@@ -1208,11 +1166,12 @@ UpdateDrvDelPage (
   );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
+  Prepare the page to allow user to add description for \r
+  a Driver Option.\r
 \r
-  @param CallbackData    EDES_TODO: Add parameter description\r
+  @param CallbackData    The BMM context data.\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @return VOID\r
 \r
 **/\r
 VOID\r
@@ -1221,64 +1180,13 @@ UpdateDriverAddHandleDescPage (
   );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
-\r
-  @param CallbackData    EDES_TODO: Add parameter description\r
-\r
-  @return EDES_TODO: Add description for return value\r
-\r
-**/\r
-VOID\r
-UpdateBootTimeOut (\r
-  IN BMM_CALLBACK_DATA                *CallbackData\r
-  );\r
-\r
-/**\r
-  EDES_TODO: Add function description.\r
-\r
-  @param CallbackData    EDES_TODO: Add parameter description\r
-\r
-  @return EDES_TODO: Add description for return value\r
-\r
-**/\r
-VOID\r
-UpdateConInPage (\r
-  IN BMM_CALLBACK_DATA                *CallbackData\r
-  );\r
-\r
-/**\r
-  EDES_TODO: Add function description.\r
-\r
-  @param CallbackData    EDES_TODO: Add parameter description\r
-\r
-  @return EDES_TODO: Add description for return value\r
-\r
-**/\r
-VOID\r
-UpdateConOutPage (\r
-  IN BMM_CALLBACK_DATA                *CallbackData\r
-  );\r
-\r
-/**\r
-  EDES_TODO: Add function description.\r
+  Dispatch the correct update page function to call based on\r
+  the UpdatePageId.\r
 \r
-  @param CallbackData    EDES_TODO: Add parameter description\r
+  @param UpdatePageId    The form ID.\r
+  @param CallbackData    The BMM context data.\r
 \r
-  @return EDES_TODO: Add description for return value\r
-\r
-**/\r
-VOID\r
-UpdateStdErrPage (\r
-  IN BMM_CALLBACK_DATA                *CallbackData\r
-  );\r
-\r
-/**\r
-  EDES_TODO: Add function description.\r
-\r
-  @param UpdatePageId    EDES_TODO: Add parameter description\r
-  @param CallbackData    EDES_TODO: Add parameter description\r
-\r
-  @return EDES_TODO: Add description for return value\r
+  @return VOID\r
 \r
 **/\r
 VOID\r
@@ -1288,63 +1196,12 @@ UpdatePageBody (
   );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
-\r
-  @param CallbackData    EDES_TODO: Add parameter description\r
-\r
-  @return EDES_TODO: Add description for return value\r
-\r
-**/\r
-VOID\r
-UpdateCOM1Page (\r
-  IN BMM_CALLBACK_DATA                *CallbackData\r
-  );\r
-\r
-/**\r
-  EDES_TODO: Add function description.\r
-\r
-  @param CallbackData    EDES_TODO: Add parameter description\r
-\r
-  @return EDES_TODO: Add description for return value\r
-\r
-**/\r
-VOID\r
-UpdateCOM2Page (\r
-  IN BMM_CALLBACK_DATA                *CallbackData\r
-  );\r
-\r
-/**\r
-  EDES_TODO: Add function description.\r
-\r
-  @param CallbackData    EDES_TODO: Add parameter description\r
-\r
-  @return EDES_TODO: Add description for return value\r
-\r
-**/\r
-VOID\r
-UpdateBootOrderPage (\r
-  IN BMM_CALLBACK_DATA                *CallbackData\r
-  );\r
-\r
-/**\r
-  EDES_TODO: Add function description.\r
-\r
-  @param CallbackData    EDES_TODO: Add parameter description\r
-\r
-  @return EDES_TODO: Add description for return value\r
-\r
-**/\r
-VOID\r
-UpdateDriverOrderPage (\r
-  IN BMM_CALLBACK_DATA                *CallbackData\r
-  );\r
-\r
-/**\r
-  EDES_TODO: Add function description.\r
+  Create the dynamic page to allow user to set\r
+  the "BootNext" vaule.\r
 \r
-  @param CallbackData    EDES_TODO: Add parameter description\r
+  @param CallbackData    The BMM context data.\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @return VOID\r
 \r
 **/\r
 VOID\r
@@ -1353,11 +1210,12 @@ UpdateBootNextPage (
   );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
+  Create the dynamic page to allow user to set\r
+  the "TimeOut" vaule.\r
 \r
-  @param CallbackData    EDES_TODO: Add parameter description\r
+  @param CallbackData    The BMM context data.\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @return VOID\r
 \r
 **/\r
 VOID\r
@@ -1366,11 +1224,13 @@ UpdateTimeOutPage (
   );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
+  Create the dynamic page which allows user to \r
+  set the property such as Baud Rate, Data Bits,\r
+  Parity, Stop Bits, Terminal Type.\r
 \r
-  @param CallbackData    EDES_TODO: Add parameter description\r
+  @param CallbackData    The BMM context data.\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @return VOID\r
 \r
 **/\r
 VOID\r
@@ -1379,11 +1239,12 @@ UpdateTerminalPage (
   );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
+  Refresh the text mode page\r
 \r
-  @param CallbackData    EDES_TODO: Add parameter description\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @param CallbackData    The BMM context data.\r
+\r
+  @return VOID\r
 \r
 **/\r
 VOID\r
@@ -1392,11 +1253,12 @@ UpdateConModePage (
   );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
+  Create a list of Goto Opcode for all terminal devices logged\r
+  by TerminaMenu. This list will be inserted to form FORM_CON_COM_SETUP_ID.\r
 \r
-  @param CallbackData    EDES_TODO: Add parameter description\r
+  @param CallbackData    The BMM context data.\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @return VOID\r
 \r
 **/\r
 VOID\r
@@ -1405,12 +1267,13 @@ UpdateConCOMPage (
   );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
+  Create a dynamic page so that Legacy Device boot order\r
+  can be set for specified device type.\r
 \r
-  @param UpdatePageId    EDES_TODO: Add parameter description\r
-  @param CallbackData    EDES_TODO: Add parameter description\r
+  @param UpdatePageId    The form ID. It also spefies the legacy device type.\r
+  @param CallbackData    The BMM context data.\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @return VOID\r
 \r
 **/\r
 VOID\r
@@ -1419,40 +1282,15 @@ UpdateSetLegacyDeviceOrderPage (
   IN BMM_CALLBACK_DATA                *CallbackData\r
 );\r
 \r
-/**\r
-  EDES_TODO: Add function description.\r
-\r
-  @param BbsType         EDES_TODO: Add parameter description\r
-  @param BbsFlag         EDES_TODO: Add parameter description\r
-\r
-  @return EDES_TODO: Add description for return value\r
-\r
-**/\r
-EFI_STATUS\r
-BootLegacy (\r
-  IN  UINT16  BbsType,\r
-  IN  UINT16  BbsFlag\r
-);\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
 \r
-  @param TerminalNumber  EDES_TODO: Add parameter description\r
+  Function opens and returns a file handle to the root directory of a volume.\r
 \r
-  @return EDES_TODO: Add description for return value\r
-\r
-**/\r
-BM_MENU_ENTRY                     *\r
-GetCurrentTerminal (\r
-  UINTN       TerminalNumber\r
-);\r
-\r
-/**\r
-  EDES_TODO: Add function description.\r
 \r
-  @param DeviceHandle    EDES_TODO: Add parameter description\r
+  @param DeviceHandle    - A handle for a device\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @return A valid file handle or NULL is returned\r
 \r
 **/\r
 EFI_FILE_HANDLE\r
@@ -1461,11 +1299,15 @@ EfiLibOpenRoot (
   );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
 \r
-  @param FHand           EDES_TODO: Add parameter description\r
+  Function gets the file system information from an open file descriptor,\r
+  and stores it in a buffer allocated from pool.\r
 \r
-  @return EDES_TODO: Add description for return value\r
+\r
+  @param FHand           The file handle.\r
+\r
+  @return                A pointer to a buffer with file information.\r
+  @retval                NULL is returned if failed to get Vaolume Label Info.\r
 \r
 **/\r
 EFI_FILE_SYSTEM_VOLUME_LABEL_INFO *\r
@@ -1474,11 +1316,13 @@ EfiLibFileSystemVolumeLabelInfo (
   );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
 \r
-  @param FHand           EDES_TODO: Add parameter description\r
+  Function gets the file information from an open file descriptor, and stores it\r
+  in a buffer allocated from pool.\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @param FHand           File Handle.\r
+\r
+  @return                A pointer to a buffer with file information or NULL is returned\r
 \r
 **/\r
 EFI_FILE_INFO                     *\r
@@ -1487,13 +1331,16 @@ EfiLibFileInfo (
   );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
 \r
-  @param UStr            EDES_TODO: Add parameter description\r
-  @param Length          EDES_TODO: Add parameter description\r
-  @param AStr            EDES_TODO: Add parameter description\r
+  change a Unicode string t ASCII string\r
 \r
-  @return EDES_TODO: Add description for return value\r
+\r
+  @param UStr            Unicode string\r
+                         Lenght - most possible length of AStr\r
+  @param Length          The length of UStr.\r
+  @param AStr            ASCII string to pass out\r
+\r
+  @return Actual length\r
 \r
 **/\r
 UINTN\r
@@ -1504,11 +1351,11 @@ UnicodeToAscii (
   );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
+  This function converts an input device structure to a Unicode string.\r
 \r
-  @param DevPath         EDES_TODO: Add parameter description\r
+  @param DevPath                  A pointer to the device path structure.\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @return A new allocated Unicode string that represents the device path.\r
 \r
 **/\r
 CHAR16                            *\r
@@ -1517,25 +1364,17 @@ DevicePathToStr (
   );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
-\r
-  @param Size            EDES_TODO: Add parameter description\r
 \r
-  @return EDES_TODO: Add description for return value\r
-\r
-**/\r
-VOID                              *\r
-EfiAllocateZeroPool (\r
-  IN UINTN            Size\r
-  );\r
+  Find the first instance of this Protocol\r
+  in the system and return it's interface\r
 \r
-/**\r
-  EDES_TODO: Add function description.\r
 \r
-  @param ProtocolGuid    EDES_TODO: Add parameter description\r
-  @param Interface       EDES_TODO: Add parameter description\r
+  @param ProtocolGuid    Provides the protocol to search for\r
+  @param Interface       On return, a pointer to the first interface\r
+                         that matches ProtocolGuid\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @retval  EFI_SUCCESS      A protocol instance matching ProtocolGuid was found\r
+  @retval  EFI_NOT_FOUND    No protocol instances were found that match ProtocolGuid\r
 \r
 **/\r
 EFI_STATUS\r
@@ -1545,13 +1384,15 @@ EfiLibLocateProtocol (
   );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
+  Adjusts the size of a previously allocated buffer.\r
 \r
-  @param OldPool         EDES_TODO: Add parameter description\r
-  @param OldSize         EDES_TODO: Add parameter description\r
-  @param NewSize         EDES_TODO: Add parameter description\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @param OldPool         - A pointer to the buffer whose size is being adjusted.\r
+  @param OldSize         - The size of the current buffer.\r
+  @param NewSize         - The size of the new buffer.\r
+\r
+  @return   The newly allocated buffer.\r
+  @retval   NULL  Allocation failed.\r
 \r
 **/\r
 VOID                              *\r
@@ -1562,26 +1403,16 @@ EfiReallocatePool (
   );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
+  Read the EFI variable (VendorGuid/Name) and return a dynamically allocated\r
+  buffer, and the size of the buffer. If failure return NULL.\r
 \r
-  @param DevPath         EDES_TODO: Add parameter description\r
+  @param  Name                  String part of EFI variable name\r
+  @param  VendorGuid            GUID part of EFI variable name\r
+  @param  VariableSize          Returns the size of the EFI variable that was read\r
 \r
-  @return EDES_TODO: Add description for return value\r
-\r
-**/\r
-CHAR16                            *\r
-DevicePathToStr (\r
-  EFI_DEVICE_PATH_PROTOCOL     *DevPath\r
-  );\r
-\r
-/**\r
-  EDES_TODO: Add function description.\r
-\r
-  @param Name            EDES_TODO: Add parameter description\r
-  @param VendorGuid      EDES_TODO: Add parameter description\r
-  @param VarSize         EDES_TODO: Add parameter description\r
-\r
-  @return EDES_TODO: Add description for return value\r
+  @return Dynamically allocated memory that contains a copy of the EFI variable.\r
+  @return Caller is responsible freeing the buffer.\r
+  @retval NULL                  Variable was not read\r
 \r
 **/\r
 VOID                              *\r
@@ -1592,12 +1423,18 @@ BdsLibGetVariableAndSize (
   );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
+  Function deletes the variable specified by VarName and VarGuid.\r
 \r
-  @param VarName         EDES_TODO: Add parameter description\r
-  @param VarGuid         EDES_TODO: Add parameter description\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @param VarName         - A Null-terminated Unicode string that is\r
+                         the name of the vendor's variable.\r
+                         \r
+  @param VendorGuid           - A unique identifier for the vendor.\r
+\r
+  @retval  EFI_SUCCESS           The variable was found and removed\r
+  @retval  EFI_UNSUPPORTED       The variable store was inaccessible\r
+  @retval  EFI_OUT_OF_RESOURCES  The temporary buffer was not available\r
+  @retval  EFI_NOT_FOUND         The variable was not found\r
 \r
 **/\r
 EFI_STATUS\r
@@ -1607,11 +1444,12 @@ EfiLibDeleteVariable (
   );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
+  Duplicate a string.\r
 \r
-  @param Src             EDES_TODO: Add parameter description\r
+  @param Src             The source.\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @return A new string which is duplicated copy of the source.\r
+  @retval NULL If there is not enough memory.\r
 \r
 **/\r
 CHAR16                            *\r
@@ -1620,26 +1458,14 @@ EfiStrDuplicate (
   );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
-\r
-  @param Multi           EDES_TODO: Add parameter description\r
-  @param Single          EDES_TODO: Add parameter description\r
-\r
-  @return EDES_TODO: Add description for return value\r
-\r
-**/\r
-BOOLEAN\r
-EfiLibMatchDevicePaths (\r
-  IN  EFI_DEVICE_PATH_PROTOCOL *Multi,\r
-  IN  EFI_DEVICE_PATH_PROTOCOL *Single\r
-  );\r
+  Function is used to determine the number of device path instances\r
+  that exist in a device path.\r
 \r
-/**\r
-  EDES_TODO: Add function description.\r
 \r
-  @param DevicePath      EDES_TODO: Add parameter description\r
+  @param DevicePath      A pointer to a device path data structure.\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @return This function counts and returns the number of device path instances\r
+          in DevicePath.\r
 \r
 **/\r
 UINTN\r
@@ -1648,13 +1474,15 @@ EfiDevicePathInstanceCount (
   );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
+  Create string tokens for a menu from its help strings and display strings\r
 \r
-  @param CallbackData    EDES_TODO: Add parameter description\r
-  @param HiiHandle       EDES_TODO: Add parameter description\r
-  @param MenuOption      EDES_TODO: Add parameter description\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @param CallbackData    The BMM context data.\r
+  @param HiiHandle       Hii Handle of the package to be updated.\r
+  @param MenuOption      The Menu whose string tokens need to be created\r
+\r
+  @retval  EFI_SUCCESS      string tokens created successfully\r
+  @retval  others           contain some errors\r
 \r
 **/\r
 EFI_STATUS\r
@@ -1665,11 +1493,14 @@ CreateMenuStringToken (
   );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
+  Get a string from the Data Hub record based on \r
+  a device path.\r
 \r
-  @param DevPath         EDES_TODO: Add parameter description\r
+  @param DevPath         The device Path.\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @return A string located from the Data Hub records based on\r
+          the device path.\r
+  @retval NULL  If failed to get the String from Data Hub.\r
 \r
 **/\r
 UINT16                            *\r
@@ -1678,13 +1509,15 @@ EfiLibStrFromDatahub (
   );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
+  Get the index number (#### in Boot####) for the boot option pointed to a BBS legacy device type\r
+  specified by DeviceType.\r
 \r
-  @param DeviceType      EDES_TODO: Add parameter description\r
-  @param OptionIndex     EDES_TODO: Add parameter description\r
-  @param OptionSize      EDES_TODO: Add parameter description\r
+  @param DeviceType      The legacy device type. It can be floppy, network, harddisk, cdrom,\r
+                         etc.\r
+  @param OptionIndex     Returns the index number (#### in Boot####).\r
+  @param OptionSize      Return the size of the Boot### variable.\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @return VOID\r
 \r
 **/\r
 VOID                              *\r
@@ -1695,11 +1528,13 @@ GetLegacyBootOptionVar (
  );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
+  Initialize the Boot Maintenance Utitliy\r
+\r
 \r
   @param VOID            EDES_TODO: Add parameter description\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @retval  EFI_SUCCESS      utility ended successfully\r
+  @retval  others           contain some errors\r
 \r
 **/\r
 EFI_STATUS\r
@@ -1708,11 +1543,13 @@ InitializeBM (
   );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
+  Start boot maintenance manager\r
 \r
-  @param VOID            EDES_TODO: Add parameter description\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @param VOID\r
+\r
+  @retval EFI_SUCCESS If BMM is invoked successfully.\r
+  @return Other value if BMM return unsuccessfully.\r
 \r
 **/\r
 EFI_STATUS\r
@@ -1721,23 +1558,27 @@ BdsStartBootMaint (
   );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
+  Intialize all the string depositories.\r
 \r
-  @param VOID            EDES_TODO: Add parameter description\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @param VOID\r
+\r
+  @return VOID\r
 \r
 **/\r
 VOID\r
-InitializeStringDepository (VOID);\r
+InitializeStringDepository (\r
+  VOID\r
+  );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
+  Fetch a usable string node from the string depository and return the string token.\r
+\r
 \r
   @param CallbackData    EDES_TODO: Add parameter description\r
-  @param StringDepository EDES_TODO: Add parameter description\r
+  @param StringDepository - Pointer of the string depository.\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @retval  EFI_STRING_ID           String token.\r
 \r
 **/\r
 EFI_STRING_ID\r
@@ -1747,11 +1588,12 @@ GetStringTokenFromDepository (
   );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
+  Reclaim string depositories by moving the current node pointer to list head..\r
 \r
-  @param VOID            EDES_TODO: Add parameter description\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @param VOID \r
+\r
+  @return VOID\r
 \r
 **/\r
 VOID\r
@@ -1760,11 +1602,12 @@ ReclaimStringDepository (
   );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
+  Release resource for all the string depositories.\r
 \r
-  @param VOID            EDES_TODO: Add parameter description\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @param VOID\r
+\r
+  @return VOID\r
 \r
 **/\r
 VOID\r
@@ -1773,13 +1616,15 @@ CleanUpStringDepository (
   );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
+  Function handling request to apply changes for BMM pages.\r
 \r
-  @param Private         EDES_TODO: Add parameter description\r
-  @param CurrentFakeNVMap EDES_TODO: Add parameter description\r
-  @param FormId          EDES_TODO: Add parameter description\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @param Private         - Pointer to callback data buffer.\r
+  @param CurrentFakeNVMap - Pointer to buffer holding data of various values used by BMM\r
+  @param FormId          - ID of the form which has sent the request to apply change.\r
+\r
+  @retval  EFI_SUCCESS       Change successfully applied.\r
+  @retval  Other             Error occurs while trying to apply changes.\r
 \r
 **/\r
 EFI_STATUS\r
@@ -1790,12 +1635,13 @@ ApplyChangeHandler (
   );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
+  Discard all changes done to the BMM pages such as Boot Order change,\r
+  Driver order change.\r
 \r
-  @param Private         EDES_TODO: Add parameter description\r
-  @param CurrentFakeNVMap EDES_TODO: Add parameter description\r
+  @param Private         The BMM context data.\r
+  @param CurrentFakeNVMap The current Fack NV Map.\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @return VOID\r
 \r
 **/\r
 VOID\r
@@ -1805,12 +1651,12 @@ DiscardChangeHandler (
   );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
+  Dispatch the display to the next page based on NewPageId.\r
 \r
-  @param Private         EDES_TODO: Add parameter description\r
-  @param NewPageId       EDES_TODO: Add parameter description\r
+  @param Private         The BMM context data.\r
+  @param NewPageId       The original page ID.\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @return VOID\r
 \r
 **/\r
 VOID\r
@@ -1820,11 +1666,13 @@ UpdatePageId (
   );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
+  Boot a file selected by user at File Expoloer of BMM.\r
 \r
-  @param FileContext     EDES_TODO: Add parameter description\r
+  @param FileContext     The file context data, which contains the device path\r
+                         of the file to be boot from.\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @retval EFI_SUCCESS    The function completed successfull.\r
+  @retun                 Other value if the boot from the file fails.\r
 \r
 **/\r
 EFI_STATUS\r
@@ -1833,12 +1681,14 @@ BootThisFile (
   );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
+  Update the file explower page with the refershed file system.\r
 \r
-  @param CallbackData    EDES_TODO: Add parameter description\r
-  @param KeyValue        EDES_TODO: Add parameter description\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @param CallbackData    BMM context data\r
+  @param KeyValue        Key value to identify the type of data to expect.\r
+\r
+  @retval  TRUE           Inform the caller to create a callback packet to exit file explorer.\r
+  @retval  FALSE          Indicate that there is no need to exit file explorer.\r
 \r
 **/\r
 BOOLEAN\r
@@ -1848,16 +1698,30 @@ UpdateFileExplorer (
   );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
+  This function processes the results of changes in configuration.\r
+  When user select a interactive opcode, this callback will be triggered.\r
+  Based on the Question(QuestionId) that triggers the callback, the corresponding\r
+  actions is performed. It handles:\r
 \r
-  @param This            EDES_TODO: Add parameter description\r
-  @param Action          EDES_TODO: Add parameter description\r
-  @param QuestionId      EDES_TODO: Add parameter description\r
-  @param Type            EDES_TODO: Add parameter description\r
-  @param Value           EDES_TODO: Add parameter description\r
-  @param ActionRequest   EDES_TODO: Add parameter description\r
+  1) the addition of boot option.\r
+  2) the addition of driver option.\r
+  3) exit from file browser\r
+  4) update of file content if a dir is selected.\r
+  5) boot the file if a file is selected in "boot from file"\r
 \r
-  @return EDES_TODO: Add description for return value\r
+\r
+  @param This            Points to the EFI_HII_CONFIG_ACCESS_PROTOCOL.\r
+  @param Action          Specifies the type of action taken by the browser.\r
+  @param QuestionId      A unique value which is sent to the original exporting driver\r
+                         so that it can identify the type of data to expect.\r
+  @param Type            The type of value for the question.\r
+  @param Value           A pointer to the data being sent to the original exporting driver.\r
+  @param ActionRequest   On return, points to the action requested by the callback function.\r
+\r
+  @retval  EFI_SUCCESS           The callback successfully handled the action.\r
+  @retval  EFI_OUT_OF_RESOURCES  Not enough storage is available to hold the variable and its data.\r
+  @retval  EFI_DEVICE_ERROR      The variable could not be saved.\r
+  @retval  EFI_UNSUPPORTED       The specified Action is not supported by the callback.\r
 \r
 **/\r
 EFI_STATUS\r
@@ -1872,11 +1736,14 @@ FileExplorerCallback (
   );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
+  Dispatch BMM formset and FileExplorer formset.\r
 \r
-  @param CallbackData    EDES_TODO: Add parameter description\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @param CallbackData    The BMM context data.\r
+\r
+  @retval EFI_SUCCESS If function complete successfully.\r
+  @retturn Other value if the Setup Browser process BMM's pages and\r
+           return unsuccessfully.\r
 \r
 **/\r
 EFI_STATUS\r
@@ -1885,12 +1752,15 @@ FormSetDispatcher (
   );\r
 \r
 /**\r
-  EDES_TODO: Add function description.\r
+  Function returns the value of the specified variable.\r
 \r
-  @param Name            EDES_TODO: Add parameter description\r
-  @param VendorGuid      EDES_TODO: Add parameter description\r
 \r
-  @return EDES_TODO: Add description for return value\r
+  @param Name            A Null-terminated Unicode string that is\r
+                         the name of the vendor's variable.\r
+  @param VendorGuid      A unique identifier for the vendor.\r
+\r
+  @return               The payload of the variable.\r
+  @retval NULL          If the variable can't be read.\r
 \r
 **/\r
 VOID *\r
@@ -1921,7 +1791,7 @@ extern COM_ATTR                   BaudRateList[19];
 extern COM_ATTR                   DataBitsList[4];\r
 extern COM_ATTR                   ParityList[5];\r
 extern COM_ATTR                   StopBitsList[3];\r
-extern EFI_GUID                   Guid[4];\r
+extern EFI_GUID                   TerminalTypeGuid[4];\r
 extern EFI_HII_UPDATE_DATA        gUpdateData;\r
 extern STRING_DEPOSITORY          *FileOptionStrDepository;\r
 extern STRING_DEPOSITORY          *ConsoleOptionStrDepository;\r