Browse Source

[efi] Expose both GUIDs for the EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL

At some point, it seems that someone decided to change the GUID for
the EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL.  Current EFI builds
ignore the older GUID, older EFI builds ignore the newer GUID, so we
have to expose both.
tags/v0.9.7
Michael Brown 15 years ago
parent
commit
08f6d22410
1 changed files with 12 additions and 7 deletions
  1. 12
    7
      src/interface/efi/efi_snp.c

+ 12
- 7
src/interface/efi/efi_snp.c View File

@@ -91,13 +91,15 @@ static EFI_GUID efi_component_name2_protocol_guid
91 91
 static EFI_GUID efi_device_path_protocol_guid
92 92
 	= EFI_DEVICE_PATH_PROTOCOL_GUID;
93 93
 
94
-/** Efi network interface identifier GUID */
95
-static EFI_GUID efi_nii_protocol_guid = {
96
-	/* No, this isn't the GUID defined as
97
-	 * EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL_GUID in
98
-	 * Protocol/NetworkInterfaceIdentifier.h.  That GUID gets
99
-	 * ignored by the EFI network stack.  You have to use this one
100
-	 * instead.
94
+/** EFI network interface identifier GUID */
95
+static EFI_GUID efi_nii_protocol_guid
96
+	= EFI_NETWORK_INTERFACE_IDENTIFIER_PROTOCOL_GUID;
97
+
98
+/** EFI network interface identifier GUID (extra special version) */
99
+static EFI_GUID efi_nii31_protocol_guid = {
100
+	/* At some point, it seems that someone decided to change the
101
+	 * GUID.  Current EFI builds ignore the older GUID, older EFI
102
+	 * builds ignore the newer GUID, so we have to expose both.
101 103
 	 */
102 104
 	0x1ACED566, 0x76ED, 0x4218,
103 105
 	{ 0xBC, 0x81, 0x76, 0x7F, 0x1F, 0x97, 0x7A, 0x89 }
@@ -987,6 +989,7 @@ efi_snp_driver_start ( EFI_DRIVER_BINDING_PROTOCOL *driver,
987 989
 			&efi_simple_network_protocol_guid, &snpdev->snp,
988 990
 			&efi_device_path_protocol_guid, &snpdev->path,
989 991
 			&efi_nii_protocol_guid, &snpdev->nii,
992
+			&efi_nii31_protocol_guid, &snpdev->nii,
990 993
 			NULL ) ) != 0 ) {
991 994
 		DBGC ( snpdev, "SNPDEV %p could not install protocols: "
992 995
 		       "%s\n", snpdev, efi_strerror ( efirc ) );
@@ -1002,6 +1005,7 @@ efi_snp_driver_start ( EFI_DRIVER_BINDING_PROTOCOL *driver,
1002 1005
 			&efi_simple_network_protocol_guid, &snpdev->snp,
1003 1006
 			&efi_device_path_protocol_guid, &snpdev->path,
1004 1007
 			&efi_nii_protocol_guid, &snpdev->nii,
1008
+			&efi_nii31_protocol_guid, &snpdev->nii,
1005 1009
 			NULL );
1006 1010
  err_install_protocol_interface:
1007 1011
 	bs->CloseEvent ( snpdev->snp.WaitForPacket );
@@ -1051,6 +1055,7 @@ efi_snp_driver_stop ( EFI_DRIVER_BINDING_PROTOCOL *driver,
1051 1055
 			&efi_simple_network_protocol_guid, &snpdev->snp,
1052 1056
 			&efi_device_path_protocol_guid, &snpdev->path,
1053 1057
 			&efi_nii_protocol_guid, &snpdev->nii,
1058
+			&efi_nii31_protocol_guid, &snpdev->nii,
1054 1059
 			NULL );
1055 1060
 	bs->CloseEvent ( snpdev->snp.WaitForPacket );
1056 1061
 	netdev_put ( snpdev->netdev );

Loading…
Cancel
Save