소스 검색

[efi] Ensure that each HII package list and formset has a unique GUID

Signed-off-by: Michael Brown <mcb30@ipxe.org>
tags/v1.20.1
Michael Brown 13 년 전
부모
커밋
0a71888792
1개의 변경된 파일6개의 추가작업 그리고 3개의 파일을 삭제
  1. 6
    3
      src/interface/efi/efi_snp.c

+ 6
- 3
src/interface/efi/efi_snp.c 파일 보기

@@ -769,8 +769,8 @@ static EFI_GUID efi_hii_config_access_protocol_guid
769 769
 static EFI_HII_DATABASE_PROTOCOL *efihii;
770 770
 EFI_REQUIRE_PROTOCOL ( EFI_HII_DATABASE_PROTOCOL, &efihii );
771 771
 
772
-/** Local GUID used for our EFI SNP formset */
773
-#define EFI_SNP_FORMSET_GUID						\
772
+/** Local base GUID used for our EFI SNP formset */
773
+#define EFI_SNP_FORMSET_GUID_BASE					\
774 774
 	{ 0xc4f84019, 0x6dfd, 0x4a27,					\
775 775
 	  { 0x9b, 0x94, 0xb7, 0x2e, 0x1f, 0xbc, 0xad, 0xca } }
776 776
 
@@ -815,7 +815,7 @@ struct efi_snp_formset {
815 815
 		.Length = sizeof ( efi_snp_formset ),
816 816
 		.Type = EFI_HII_PACKAGE_FORMS,
817 817
 	},
818
-	.FormSet = EFI_IFR_FORM_SET ( EFI_SNP_FORMSET_GUID,
818
+	.FormSet = EFI_IFR_FORM_SET ( EFI_SNP_FORMSET_GUID_BASE,
819 819
 				      EFI_SNP_FORMSET_TITLE,
820 820
 				      EFI_SNP_FORMSET_HELP,
821 821
 				      typeof ( efi_snp_formset.FormSet ),
@@ -992,6 +992,9 @@ efi_snp_package_list ( struct efi_snp_device *snpdev ) {
992 992
 	if ( ! package_list )
993 993
 		return NULL;
994 994
 
995
+	/* Create a unique GUID for this package list and formset */
996
+	efi_snp_formset.FormSet.FormSet.Guid.Data1++;
997
+
995 998
 	/* Populate package list */
996 999
 	memcpy ( &package_list->header.PackageListGuid,
997 1000
 		 &efi_snp_formset.FormSet.FormSet.Guid,

Loading…
취소
저장