/** @file\r
- Generic BDS library definition, include the data structure and function.\r
+ Generic BDS library defines general interfaces for BDS driver including:\r
+ 1) BDS boot policy interface;\r
+ 2) BDS boot device connect interface;\r
+ 3) BDS Misc interfaces for mainting boot variable, ouput string.\r
\r
-Copyright (c) 2004 - 2008, Intel Corporation. <BR>\r
+Copyright (c) 2004 - 2009, Intel Corporation. <BR>\r
All rights reserved. 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
VOID\r
);\r
\r
+\r
+//\r
+// Define the boot option default description \r
+// NOTE: This is not defined in UEFI spec.\r
+//\r
+#define DESCRIPTION_FLOPPY L"EFI Floppy"\r
+#define DESCRIPTION_FLOPPY_NUM L"EFI Floppy %d"\r
+#define DESCRIPTION_DVD L"EFI DVD/CDROM"\r
+#define DESCRIPTION_DVD_NUM L"EFI DVD/CDROM %d"\r
+#define DESCRIPTION_USB L"EFI USB Device"\r
+#define DESCRIPTION_USB_NUM L"EFI USB Device %d"\r
+#define DESCRIPTION_SCSI L"EFI SCSI Device"\r
+#define DESCRIPTION_SCSI_NUM L"EFI SCSI Device %d"\r
+#define DESCRIPTION_MISC L"EFI Misc Device"\r
+#define DESCRIPTION_MISC_NUM L"EFI Misc Device %d"\r
+#define DESCRIPTION_NETWORK L"EFI Network"\r
+#define DESCRIPTION_NETWORK_NUM L"EFI Network %d" \r
+#define DESCRIPTION_NON_BLOCK L"EFI Non-Block Boot Device"\r
+#define DESCRIPTION_NON_BLOCK_NUM L"EFI Non-Block Boot Device %d"\r
+\r
//\r
// Define the boot type which to classify the boot option type\r
// Different boot option type could have different boot behavior\r
#define BDS_EFI_MESSAGE_ATAPI_BOOT 0x0301 // Type 03; Sub-Type 01\r
#define BDS_EFI_MESSAGE_SCSI_BOOT 0x0302 // Type 03; Sub-Type 02\r
#define BDS_EFI_MESSAGE_USB_DEVICE_BOOT 0x0305 // Type 03; Sub-Type 05\r
+#define BDS_EFI_MESSAGE_SATA_BOOT 0x0318 // Type 03; Sub-Type 18\r
#define BDS_EFI_MESSAGE_MISC_BOOT 0x03FF\r
//\r
// Media boot type\r
IN EFI_DEVICE_PATH_PROTOCOL *DevPath,\r
IN BOOLEAN CheckMedia\r
);\r
- \r
+\r
+/**\r
+ Check whether the Device path in a boot option point to a valid bootable device,\r
+ And if CheckMedia is true, check the device is ready to boot now.\r
+ If Description is not NULL and the device path point to a fixed BlockIo\r
+ device, check the description whether conflict with other auto-created\r
+ boot options.\r
+\r
+ @param DevPath the Device path in a boot option\r
+ @param CheckMedia if true, check the device is ready to boot now.\r
+ @param Description the description in a boot option\r
+\r
+ @retval TRUE the Device path is valid\r
+ @retval FALSE the Device path is invalid .\r
+\r
+**/\r
+BOOLEAN\r
+EFIAPI\r
+BdsLibIsValidEFIBootOptDevicePathExt (\r
+ IN EFI_DEVICE_PATH_PROTOCOL *DevPath,\r
+ IN BOOLEAN CheckMedia,\r
+ IN CHAR16 *Description\r
+ );\r
+\r
/**\r
For a bootable Device path, return its boot type.\r
\r