summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorqwang12 <qwang12@6f19259b-4bc3-4df7-8a09-765794883524>2008-07-15 09:34:35 +0000
committerqwang12 <qwang12@6f19259b-4bc3-4df7-8a09-765794883524>2008-07-15 09:34:35 +0000
commitc7493fe5f3fe3f12a4ab45cb66cba2e7d6e087b9 (patch)
treef795201b8526841d9802730e05f4014b9a7798bd
parentb4d95a4da04176aff909a5479775b1b8a31e3939 (diff)
downloadedk2-platforms-c7493fe5f3fe3f12a4ab45cb66cba2e7d6e087b9.tar.xz
[Description]:
Sync 1 trackers. EDK 1098 [Impaction]: Should be minimal impact as there is no code parsing the HII vendor specific device. [Reference Info]: EDK 1098 Seems there are two same device path protocols in NT git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@5476 6f19259b-4bc3-4df7-8a09-765794883524
-rw-r--r--MdeModulePkg/Include/MdeModuleHii.h5
-rw-r--r--MdeModulePkg/Library/ExtendedHiiLib/ExtendedHiiLib.c14
2 files changed, 12 insertions, 7 deletions
diff --git a/MdeModulePkg/Include/MdeModuleHii.h b/MdeModulePkg/Include/MdeModuleHii.h
index 8d9cc5c09b..e0f1e77841 100644
--- a/MdeModulePkg/Include/MdeModuleHii.h
+++ b/MdeModulePkg/Include/MdeModuleHii.h
@@ -29,10 +29,13 @@ WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
//
// Tiano Implementation specific Device Path definition.
//
+#pragma pack(1)
typedef struct {
VENDOR_DEVICE_PATH VendorDevicePath;
- UINT32 MonotonicCount;
+ UINT32 Reserved;
+ UINT64 UniqueId;
} HII_VENDOR_DEVICE_PATH_NODE;
+#pragma pack()
typedef struct {
HII_VENDOR_DEVICE_PATH_NODE Node;
diff --git a/MdeModulePkg/Library/ExtendedHiiLib/ExtendedHiiLib.c b/MdeModulePkg/Library/ExtendedHiiLib/ExtendedHiiLib.c
index bfaf49e4b1..58908c5be9 100644
--- a/MdeModulePkg/Library/ExtendedHiiLib/ExtendedHiiLib.c
+++ b/MdeModulePkg/Library/ExtendedHiiLib/ExtendedHiiLib.c
@@ -40,6 +40,7 @@ HII_VENDOR_DEVICE_PATH mHiiVendorDevicePathTemplate = {
},
EFI_IFR_TIANO_GUID
},
+ 0,
0
},
{
@@ -74,22 +75,23 @@ HiiLibCreateHiiDriverHandle (
{
EFI_STATUS Status;
HII_VENDOR_DEVICE_PATH_NODE *VendorDevicePath;
- UINT64 MonotonicCount;
VendorDevicePath = AllocateCopyPool (sizeof (HII_VENDOR_DEVICE_PATH), &mHiiVendorDevicePathTemplate);
if (VendorDevicePath == NULL) {
return EFI_OUT_OF_RESOURCES;
}
- gBS->GetNextMonotonicCount (&MonotonicCount);
- VendorDevicePath->MonotonicCount = (UINT32) MonotonicCount;
+ //
+ // Use memory address as unique ID to distinguish from different device paths
+ //
+ VendorDevicePath->UniqueId = (UINT64) ((UINTN) VendorDevicePath);
*DriverHandle = NULL;
- Status = gBS->InstallProtocolInterface (
+ Status = gBS->InstallMultipleProtocolInterfaces (
DriverHandle,
&gEfiDevicePathProtocolGuid,
- EFI_NATIVE_INTERFACE,
- VendorDevicePath
+ VendorDevicePath,
+ NULL
);
if (EFI_ERROR (Status)) {
return Status;