]> git.proxmox.com Git - mirror_edk2.git/blobdiff - MdeModulePkg/Library/UefiBootManagerLib/InternalBm.h
MdeModulePkg: Fix IPv4 stack potential disappeared issue
[mirror_edk2.git] / MdeModulePkg / Library / UefiBootManagerLib / InternalBm.h
index cfaeefe181955eb7642305f4422e69f3132d5a36..e1c5a96947178023eb59bfc3cd480a11fc65bfe2 100644 (file)
@@ -43,6 +43,7 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
 #include <Protocol/DriverHealth.h>\r
 #include <Protocol/FormBrowser2.h>\r
 #include <Protocol/VariableLock.h>\r
+#include <Protocol/RamDisk.h>\r
 \r
 #include <Guid/ZeroGuid.h>\r
 #include <Guid/MemoryTypeInformation.h>\r
@@ -92,8 +93,6 @@ typedef enum {
   BmMessageSataBoot,\r
   BmMessageUsbBoot,\r
   BmMessageScsiBoot,\r
-  BmMessageNetworkBoot,\r
-  BmMessageHttpBoot,\r
   BmMiscBoot\r
 } BM_BOOT_TYPE;\r
 \r
@@ -166,28 +165,6 @@ typedef struct {
 \r
 #define BM_HOTKEY_FROM_LINK(a) CR (a, BM_HOTKEY, Link, BM_HOTKEY_SIGNATURE)\r
 \r
-/**\r
-  Get the image file buffer data and buffer size by its device path. \r
-\r
-  @param FilePath  On input, a pointer to an allocated buffer containing the device\r
-                   path of the file.\r
-                   On output the pointer could be NULL when the function fails to\r
-                   load the boot option, or could point to an allocated buffer containing\r
-                   the device path of the file.\r
-                   It could be updated by either short-form device path expanding,\r
-                   or default boot file path appending.\r
-                   Caller is responsible to free it when it's non-NULL.\r
-  @param FileSize  A pointer to the size of the file buffer.\r
-\r
-  @retval NULL   File is NULL, or FileSize is NULL. Or, the file can't be found.\r
-  @retval other  The file buffer. The caller is responsible to free the memory.\r
-**/\r
-VOID *\r
-BmLoadEfiBootOption (\r
-  IN OUT EFI_DEVICE_PATH_PROTOCOL **FilePath,\r
-  OUT    UINTN                    *FileSize\r
-  );\r
-\r
 /**\r
   Get the Option Number that wasn't used.\r
 \r
@@ -221,40 +198,22 @@ BmWriteBootToOsPerformanceData (
   IN VOID       *Context\r
   );\r
 \r
-\r
-/**\r
-  Get the headers (dos, image, optional header) from an image\r
-\r
-  @param  Device                SimpleFileSystem device handle\r
-  @param  FileName              File name for the image\r
-  @param  DosHeader             Pointer to dos header\r
-  @param  Hdr                   The buffer in which to return the PE32, PE32+, or TE header.\r
-\r
-  @retval EFI_SUCCESS           Successfully get the machine type.\r
-  @retval EFI_NOT_FOUND         The file is not found.\r
-  @retval EFI_LOAD_ERROR        File is not a valid image file.\r
-\r
-**/\r
-EFI_STATUS\r
-BmGetImageHeader (\r
-  IN  EFI_HANDLE                  Device,\r
-  IN  CHAR16                      *FileName,\r
-  OUT EFI_IMAGE_DOS_HEADER        *DosHeader,\r
-  OUT EFI_IMAGE_OPTIONAL_HEADER_PTR_UNION   Hdr\r
-  );\r
-\r
 /**\r
   This routine adjust the memory information for different memory type and \r
   save them into the variables for next boot. It resets the system when\r
   memory information is updated and the current boot option belongs to\r
-  boot category instead of application category.\r
+  boot category instead of application category. It doesn't count the\r
+  reserved memory occupied by RAM Disk.\r
 \r
-  @param Boot  TRUE if current boot option belongs to boot category instead of\r
-               application category.\r
+  @param Boot               TRUE if current boot option belongs to boot\r
+                            category instead of application category.\r
+  @param RamDiskSizeInPages Reserved memory size in pages occupied by\r
+                            RAM Disk.\r
 **/\r
 VOID\r
 BmSetMemoryTypeInformationVariable (\r
-  IN BOOLEAN                    Boot\r
+  IN BOOLEAN                    Boot,\r
+  IN UINTN                      RamDiskSizeInPages\r
   );\r
 \r
 /**\r
@@ -351,25 +310,6 @@ BmSetVariableAndReportStatusCodeOnError (
   IN VOID       *Data\r
   );\r
 \r
-/**\r
-  Get the load option by its device path.\r
-\r
-  @param FilePath  The device path pointing to a load option.\r
-                   It could be a short-form device path.\r
-  @param FullPath  Return the full device path of the load option after\r
-                   short-form device path expanding.\r
-                   Caller is responsible to free it.\r
-  @param FileSize  Return the load option size.\r
-\r
-  @return The load option buffer. Caller is responsible to free the memory.\r
-**/\r
-VOID *\r
-BmGetLoadOptionBuffer (\r
-  IN  EFI_DEVICE_PATH_PROTOCOL          *FilePath,\r
-  OUT EFI_DEVICE_PATH_PROTOCOL          **FullPath,\r
-  OUT UINTN                             *FileSize\r
-  );\r
-\r
 /**\r
   Return whether the PE header of the load option is valid or not.\r
 \r
@@ -456,19 +396,45 @@ BmCharToUint (
   IN CHAR16                           Char\r
   );\r
 \r
+/**\r
+  Return the boot description for the controller.\r
+\r
+  @param Handle                Controller handle.\r
+\r
+  @return  The description string.\r
+**/\r
+CHAR16 *\r
+BmGetBootDescription (\r
+  IN EFI_HANDLE                  Handle\r
+  );\r
+\r
+/**\r
+  Enumerate all boot option descriptions and append " 2"/" 3"/... to make\r
+  unique description.\r
+\r
+  @param BootOptions            Array of boot options.\r
+  @param BootOptionCount        Count of boot options.\r
+**/\r
+VOID\r
+BmMakeBootOptionDescriptionUnique (\r
+  EFI_BOOT_MANAGER_LOAD_OPTION         *BootOptions,\r
+  UINTN                                BootOptionCount\r
+  );\r
 \r
 /**\r
-  Get the file buffer from the file system produced by Load File instance.\r
+  Get the file buffer from the specified Load File instance.\r
 \r
-  @param LoadFileHandle The handle of LoadFile instance.\r
+  @param LoadFileHandle The specified Load File instance.\r
+  @param FilePath       The file path which will pass to LoadFile().\r
   @param FullPath       Return the full device path pointing to the load option.\r
   @param FileSize       Return the size of the load option.\r
 \r
-  @return  The load option buffer.\r
+  @return  The load option buffer or NULL if fails.\r
 **/\r
 VOID *\r
-BmGetFileBufferFromLoadFileFileSystem (\r
-  IN  EFI_HANDLE                      LoadFileHandle,\r
+BmGetFileBufferFromLoadFile (\r
+  EFI_HANDLE                          LoadFileHandle,\r
+  IN  EFI_DEVICE_PATH_PROTOCOL        *FilePath,\r
   OUT EFI_DEVICE_PATH_PROTOCOL        **FullPath,\r
   OUT UINTN                           *FileSize\r
   );\r