\r
#pragma pack(1)\r
\r
-#if (EFI_SPECIFICATION_VERSION < 0x00020000)\r
//\r
-// EFI Specification extension on Media Device Path\r
+// EFI Specification extension on Media Device Path. MEDIA_FW_VOL_FILEPATH_DEVICE_PATH is adopted by UEFI later and added in UEFI2.10. \r
+// In EdkCompatibility Package, we only support MEDIA_FW_VOL_FILEPATH_DEVICE_PATH that complies with\r
+// EFI 1.10 and UEFI 2.10.\r
//\r
#define MEDIA_FV_FILEPATH_DP 0x06\r
typedef struct {\r
EFI_DEVICE_PATH_PROTOCOL Header;\r
EFI_GUID NameGuid;\r
} MEDIA_FW_VOL_FILEPATH_DEVICE_PATH;\r
-#endif\r
-\r
-\r
-#if (EFI_SPECIFICATION_VERSION == 0x00020000)\r
-//\r
-// For UEFI 2.0, use GUIDed PIWG device path to work-around EFI Specification extension on Media Device Path\r
-//\r
-typedef struct {\r
- EFI_DEVICE_PATH_PROTOCOL Header;\r
- EFI_GUID PiwgSpecificDevicePath;\r
- UINT32 Type;\r
-} PIWG_DEVICE_PATH;\r
\r
-#define PIWG_MEDIA_FW_VOL_FILEPATH_DEVICE_PATH_TYPE 0x01\r
-typedef struct {\r
- PIWG_DEVICE_PATH Piwg;\r
- EFI_GUID NameGuid;\r
-} MEDIA_FW_VOL_FILEPATH_DEVICE_PATH;\r
-\r
-//\r
-// Place holder for a future extension\r
-//\r
-#define PIWG_MEDIA_FW_VOL_DEVICE_PATH_TYPE 0x02\r
-typedef struct {\r
- PIWG_DEVICE_PATH Piwg;\r
- EFI_GUID VolumeGuid;\r
-} MEDIA_FW_VOL_DEVICE_PATH;\r
-#endif\r
\r
#if (EFI_SPECIFICATION_VERSION > 0x00020000)\r
//\r
\r
--*/\r
{\r
-#if (EFI_SPECIFICATION_VERSION != 0x00020000)\r
//\r
- // Use old Device Path\r
+ // EFI Specification extension on Media Device Path. MEDIA_FW_VOL_FILEPATH_DEVICE_PATH is adopted by UEFI later and added in UEFI2.10. \r
+ // In EdkCompatibility Package, we only support MEDIA_FW_VOL_FILEPATH_DEVICE_PATH that complies with\r
+ // EFI 1.10 and UEFI 2.10.\r
//\r
+\r
FvDevicePathNode->Header.Type = MEDIA_DEVICE_PATH;\r
FvDevicePathNode->Header.SubType = MEDIA_FV_FILEPATH_DP;\r
SetDevicePathNodeLength (&FvDevicePathNode->Header, sizeof (MEDIA_FW_VOL_FILEPATH_DEVICE_PATH));\r
\r
-#else\r
- //\r
- // Use the new Device path that does not conflict with the UEFI 2.0\r
- //\r
- FvDevicePathNode->Piwg.Header.Type = MEDIA_DEVICE_PATH;\r
- FvDevicePathNode->Piwg.Header.SubType = MEDIA_VENDOR_DP;\r
- SetDevicePathNodeLength (&FvDevicePathNode->Piwg.Header, sizeof (MEDIA_FW_VOL_FILEPATH_DEVICE_PATH));\r
-\r
- //\r
- // Add the GUID for generic PIWG device paths\r
- //\r
- EfiCopyMem (&FvDevicePathNode->Piwg.PiwgSpecificDevicePath, &gEfiFrameworkDevicePathGuid, sizeof(EFI_GUID));\r
-\r
- //\r
- // Add in the FW Vol File Path PIWG defined inforation\r
- //\r
- FvDevicePathNode->Piwg.Type = PIWG_MEDIA_FW_VOL_FILEPATH_DEVICE_PATH_TYPE;\r
-\r
-#endif\r
EfiCopyMem (&FvDevicePathNode->NameGuid, NameGuid, sizeof(EFI_GUID));\r
}\r
\r
\r
--*/\r
{\r
-#if (EFI_SPECIFICATION_VERSION != 0x00020000)\r
//\r
- // Use old Device Path\r
+ // EFI Specification extension on Media Device Path. MEDIA_FW_VOL_FILEPATH_DEVICE_PATH is adopted by UEFI later and added in UEFI2.10. \r
+ // In EdkCompatibility Package, we only support MEDIA_FW_VOL_FILEPATH_DEVICE_PATH that complies with\r
+ // EFI 1.10 and UEFI 2.10.\r
//\r
if (DevicePathType (&FvDevicePathNode->Header) == MEDIA_DEVICE_PATH &&\r
DevicePathSubType (&FvDevicePathNode->Header) == MEDIA_FV_FILEPATH_DP) {\r
return &FvDevicePathNode->NameGuid;\r
}\r
\r
-#else\r
- //\r
- // Use the new Device path that does not conflict with the UEFI 2.0\r
- //\r
- if (DevicePathType (&FvDevicePathNode->Piwg.Header) == MEDIA_DEVICE_PATH &&\r
- DevicePathSubType (&FvDevicePathNode->Piwg.Header) == MEDIA_VENDOR_DP) {\r
- if (EfiCompareGuid (&gEfiFrameworkDevicePathGuid, &FvDevicePathNode->Piwg.PiwgSpecificDevicePath)) {\r
- if (FvDevicePathNode->Piwg.Type == PIWG_MEDIA_FW_VOL_FILEPATH_DEVICE_PATH_TYPE) {\r
- return &FvDevicePathNode->NameGuid;\r
- }\r
- }\r
- }\r
-#endif\r
return NULL;\r
}\r
{\r
ASSERT (FvDevicePathNode != NULL);\r
\r
-#if (EFI_SPECIFICATION_VERSION != 0x00020000) \r
//\r
- // Use old Device Path\r
+ // EFI Specification extension on Media Device Path. MEDIA_FW_VOL_FILEPATH_DEVICE_PATH is adopted by UEFI later and added in UEFI2.10. \r
+ // In EdkCompatibility Package, we only support MEDIA_FW_VOL_FILEPATH_DEVICE_PATH that complies with\r
+ // EFI 1.10 and UEFI 2.10.\r
//\r
if (DevicePathType (&FvDevicePathNode->Header) == MEDIA_DEVICE_PATH &&\r
DevicePathSubType (&FvDevicePathNode->Header) == MEDIA_FV_FILEPATH_DP) {\r
return (EFI_GUID *) &FvDevicePathNode->NameGuid;\r
}\r
\r
-#else\r
- //\r
- // Use the new Device path that does not conflict with the UEFI 2.0\r
- //\r
- // check here : piwg or tiano\r
- if (DevicePathType (&FvDevicePathNode->Piwg.Header) == MEDIA_DEVICE_PATH &&\r
- DevicePathSubType (&FvDevicePathNode->Piwg.Header) == MEDIA_VENDOR_DP) { \r
- if (CompareGuid (&gEfiFrameworkDevicePathGuid, &FvDevicePathNode->Piwg.PiwgSpecificDevicePath)) {\r
- if (FvDevicePathNode->Piwg.Type == PIWG_MEDIA_FW_VOL_FILEPATH_DEVICE_PATH_TYPE) {\r
- return (EFI_GUID *) &FvDevicePathNode->NameGuid;\r
- }\r
- }\r
- }\r
-#endif \r
return NULL;\r
}\r
\r
ASSERT (FvDevicePathNode != NULL);\r
ASSERT (NameGuid != NULL);\r
\r
-#if (EFI_SPECIFICATION_VERSION != 0x00020000) \r
//\r
- // Use old Device Path\r
+ // EFI Specification extension on Media Device Path. MEDIA_FW_VOL_FILEPATH_DEVICE_PATH is adopted by UEFI later and added in UEFI2.10. \r
+ // In EdkCompatibility Package, we only support MEDIA_FW_VOL_FILEPATH_DEVICE_PATH that complies with\r
+ // EFI 1.10 and UEFI 2.10.\r
//\r
FvDevicePathNode->Header.Type = MEDIA_DEVICE_PATH;\r
FvDevicePathNode->Header.SubType = MEDIA_FV_FILEPATH_DP;\r
SetDevicePathNodeLength (&FvDevicePathNode->Header, sizeof (MEDIA_FW_VOL_FILEPATH_DEVICE_PATH));\r
\r
-#else\r
- //\r
- // Use the new Device path that does not conflict with the UEFI 2.0\r
- //\r
- FvDevicePathNode->Piwg.Header.Type = MEDIA_DEVICE_PATH;\r
- FvDevicePathNode->Piwg.Header.SubType = MEDIA_VENDOR_DP;\r
- SetDevicePathNodeLength (&FvDevicePathNode->Piwg.Header, sizeof (MEDIA_FW_VOL_FILEPATH_DEVICE_PATH));\r
-\r
- //\r
- // Add the GUID for generic PIWG device paths\r
- //\r
- CopyGuid (&FvDevicePathNode->Piwg.PiwgSpecificDevicePath, &gEfiFrameworkDevicePathGuid);\r
-\r
- //\r
- // Add in the FW Vol File Path PIWG defined inforation\r
- //\r
- FvDevicePathNode->Piwg.Type = PIWG_MEDIA_FW_VOL_FILEPATH_DEVICE_PATH_TYPE;\r
-\r
-#endif\r
-\r
CopyGuid (&FvDevicePathNode->NameGuid, NameGuid);\r
\r
}\r
\r
--*/\r
{\r
-#if (EFI_SPECIFICATION_VERSION != 0x00020000)\r
//\r
- // Use old Device Path\r
+ // EFI Specification extension on Media Device Path. MEDIA_FW_VOL_FILEPATH_DEVICE_PATH is adopted by UEFI later and added in UEFI2.10. \r
+ // In EdkCompatibility Package, we only support MEDIA_FW_VOL_FILEPATH_DEVICE_PATH that complies with\r
+ // EFI 1.10 and UEFI 2.10.\r
//\r
FvDevicePathNode->Header.Type = MEDIA_DEVICE_PATH;\r
FvDevicePathNode->Header.SubType = MEDIA_FV_FILEPATH_DP;\r
SetDevicePathNodeLength (&FvDevicePathNode->Header, sizeof (MEDIA_FW_VOL_FILEPATH_DEVICE_PATH));\r
\r
-#else\r
- //\r
- // Use the new Device path that does not conflict with the UEFI 2.0\r
- //\r
- FvDevicePathNode->Piwg.Header.Type = MEDIA_DEVICE_PATH;\r
- FvDevicePathNode->Piwg.Header.SubType = MEDIA_VENDOR_DP;\r
- SetDevicePathNodeLength (&FvDevicePathNode->Piwg.Header, sizeof (MEDIA_FW_VOL_FILEPATH_DEVICE_PATH));\r
-\r
- //\r
- // Add the GUID for generic PIWG device paths\r
- //\r
- EfiCopyMem (&FvDevicePathNode->Piwg.PiwgSpecificDevicePath, &gEfiFrameworkDevicePathGuid, sizeof(EFI_GUID));\r
-\r
- //\r
- // Add in the FW Vol File Path PIWG defined inforation\r
- //\r
- FvDevicePathNode->Piwg.Type = PIWG_MEDIA_FW_VOL_FILEPATH_DEVICE_PATH_TYPE;\r
-\r
-#endif\r
EfiCopyMem (&FvDevicePathNode->NameGuid, NameGuid, sizeof(EFI_GUID));\r
}\r
\r
\r
--*/\r
{\r
-#if (EFI_SPECIFICATION_VERSION != 0x00020000)\r
//\r
- // Use old Device Path\r
+ // EFI Specification extension on Media Device Path. MEDIA_FW_VOL_FILEPATH_DEVICE_PATH is adopted by UEFI later and added in UEFI2.10. \r
+ // In EdkCompatibility Package, we only support MEDIA_FW_VOL_FILEPATH_DEVICE_PATH that complies with\r
+ // EFI 1.10 and UEFI 2.10.\r
//\r
if (DevicePathType (&FvDevicePathNode->Header) == MEDIA_DEVICE_PATH &&\r
DevicePathSubType (&FvDevicePathNode->Header) == MEDIA_FV_FILEPATH_DP) {\r
return &FvDevicePathNode->NameGuid;\r
}\r
\r
-#else\r
- //\r
- // Use the new Device path that does not conflict with the UEFI 2.0\r
- //\r
- if (DevicePathType (&FvDevicePathNode->Piwg.Header) == MEDIA_DEVICE_PATH &&\r
- DevicePathSubType (&FvDevicePathNode->Piwg.Header) == MEDIA_VENDOR_DP) {\r
- if (EfiCompareGuid (&gEfiFrameworkDevicePathGuid, &FvDevicePathNode->Piwg.PiwgSpecificDevicePath)) {\r
- if (FvDevicePathNode->Piwg.Type == PIWG_MEDIA_FW_VOL_FILEPATH_DEVICE_PATH_TYPE) {\r
- return &FvDevicePathNode->NameGuid;\r
- }\r
- }\r
- }\r
-#endif \r
- return NULL;\r
+ return NULL;\r
}\r
\r