diff options
author | Michael Brown <mcb30@ipxe.org> | 2011-05-03 18:52:56 +0100 |
---|---|---|
committer | Michael Brown <mcb30@ipxe.org> | 2011-05-03 18:55:05 +0100 |
commit | 0a71888792d20a7322ef8f4acb236f1b86c13c5f (patch) | |
tree | 9a4aeed52b5fcd1d324bfdf116ed154ac54e6555 /src/interface/efi/efi_snp.c | |
parent | 987b825b7f046e844a332d27497b4846cb23ba43 (diff) | |
download | ipxe-0a71888792d20a7322ef8f4acb236f1b86c13c5f.tar.gz |
[efi] Ensure that each HII package list and formset has a unique GUID
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/interface/efi/efi_snp.c')
-rw-r--r-- | src/interface/efi/efi_snp.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/interface/efi/efi_snp.c b/src/interface/efi/efi_snp.c index f40bfff94..bc6c09191 100644 --- a/src/interface/efi/efi_snp.c +++ b/src/interface/efi/efi_snp.c @@ -769,8 +769,8 @@ static EFI_GUID efi_hii_config_access_protocol_guid static EFI_HII_DATABASE_PROTOCOL *efihii; EFI_REQUIRE_PROTOCOL ( EFI_HII_DATABASE_PROTOCOL, &efihii ); -/** Local GUID used for our EFI SNP formset */ -#define EFI_SNP_FORMSET_GUID \ +/** Local base GUID used for our EFI SNP formset */ +#define EFI_SNP_FORMSET_GUID_BASE \ { 0xc4f84019, 0x6dfd, 0x4a27, \ { 0x9b, 0x94, 0xb7, 0x2e, 0x1f, 0xbc, 0xad, 0xca } } @@ -815,7 +815,7 @@ struct efi_snp_formset { .Length = sizeof ( efi_snp_formset ), .Type = EFI_HII_PACKAGE_FORMS, }, - .FormSet = EFI_IFR_FORM_SET ( EFI_SNP_FORMSET_GUID, + .FormSet = EFI_IFR_FORM_SET ( EFI_SNP_FORMSET_GUID_BASE, EFI_SNP_FORMSET_TITLE, EFI_SNP_FORMSET_HELP, typeof ( efi_snp_formset.FormSet ), @@ -992,6 +992,9 @@ efi_snp_package_list ( struct efi_snp_device *snpdev ) { if ( ! package_list ) return NULL; + /* Create a unique GUID for this package list and formset */ + efi_snp_formset.FormSet.FormSet.Guid.Data1++; + /* Populate package list */ memcpy ( &package_list->header.PackageListGuid, &efi_snp_formset.FormSet.FormSet.Guid, |