From mboxrd@z Thu Jan 1 00:00:00 1970 Authentication-Results: mx.groups.io; dkim=pass header.i=@infradead.org header.s=merlin.20170209 header.b=d8Qxr4q8; spf=none, err=permanent DNS error (domain: merlin.srs.infradead.org, ip: 205.233.59.134, mailfrom: batv+68c2678543dae80936a2+5784+infradead.org+dwmw2@merlin.srs.infradead.org) Received: from merlin.infradead.org (merlin.infradead.org [205.233.59.134]) by groups.io with SMTP; Tue, 25 Jun 2019 04:49:06 -0700 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=merlin.20170209; h=Sender:Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From: Reply-To:Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help: List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=v8yCEJoxLDtOQQ2JvQF/UiKMZvbQCBn5FYrQEUpvJRI=; b=d8Qxr4q8M1v8c4PeMEfmaJSMg7 jM/a3GRXcudzi+m+rdW1XhMo8KSkMikqE0++oqM/EF5HUWU7gg8hyuro+cGdC+AGczxghf0QtQBn6 o+FSzpwUTo9+PI4RRYAqZRwCAdSj6JRYAO1gwCe0C92qHWyUzzg1v77xCq2FPbuwvAHeFQPzi9+yC 3D8maDCFZZEvlbUHtQS3pU3EnYln4Qjz/fkBDiHIXAoNwaLtNdCA+k9BQDp85GVcqe3ZDJnEHkBKu pwYUVfNmSqWwYa40pdNaJy0LDpzw2vghQmK0AxVJAIR5nCNT3CGt4iyuC5jEyAN33AHzItb3NNIAX qRfZFYhw==; Received: from [2001:8b0:10b:1::425] (helo=i7.infradead.org) by merlin.infradead.org with esmtpsa (Exim 4.92 #3 (Red Hat Linux)) id 1hfjwZ-0007hC-Tz; Tue, 25 Jun 2019 11:49:00 +0000 Received: from dwoodhou by i7.infradead.org with local (Exim 4.92 #3 (Red Hat Linux)) id 1hfjwZ-003Kuo-4c; Tue, 25 Jun 2019 12:48:59 +0100 From: "David Woodhouse" To: devel@edk2.groups.io Cc: Laszlo Ersek , Ray Ni Subject: [PATCH v2 4/7] MdeModulePkg/UefiBootManagerLib: export EfiBootManagerGetBootDescription() Date: Tue, 25 Jun 2019 12:48:56 +0100 Message-Id: <20190625114859.795331-4-dwmw2@infradead.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190625114859.795331-1-dwmw2@infradead.org> References: <20190625114859.795331-1-dwmw2@infradead.org> MIME-Version: 1.0 Sender: David Woodhouse X-SRS-Rewrite: SMTP reverse-path rewritten from by merlin.infradead.org. See http://www.infradead.org/rpr.html Content-Transfer-Encoding: 8bit It would be useful for LegacyBiosDxe to be able to get descriptive names for block devices, for legacy boot options. It gets a bit confusing when they're all called "Harddisk". Since we have a collection of the special cases for various types of device already in BmGetBootDescription(), let's export that with a minor tweak to let the caller set the "UEFI " vs. "Legacy " prefix. There's no way we want to reproduce all those device-specific special cases again in the LegacyBiosDxe. It's bad enough that they exist in UefiBootManagerLib in the first place, instead of being in a protocol provided by the individual disk drivers themselves. Signed-off-by: David Woodhouse Reviewed-by: Laszlo Ersek --- .../Include/Library/UefiBootManagerLib.h | 16 ++++++++++++ .../UefiBootManagerLib/BmBootDescription.c | 26 ++++++++++++++++--- 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/MdeModulePkg/Include/Library/UefiBootManagerLib.h b/MdeModulePkg/Include/Library/UefiBootManagerLib.h index 0b69a6021d..a9d6bfda88 100644 --- a/MdeModulePkg/Include/Library/UefiBootManagerLib.h +++ b/MdeModulePkg/Include/Library/UefiBootManagerLib.h @@ -249,6 +249,22 @@ EfiBootManagerFindLoadOption ( IN UINTN Count ); +/** + Return the boot description for the controller. + + @param Prefix String prefix (e.g "UEFI " or "Legacy "). + @param Handle Controller handle. + + @return The description string. +**/ +CHAR16 * +EFIAPI +EfiBootManagerGetBootDescription ( + IN CHAR16 *Prefix, + IN EFI_HANDLE Handle + ); + + // // Boot Manager hot key library functions. // diff --git a/MdeModulePkg/Library/UefiBootManagerLib/BmBootDescription.c b/MdeModulePkg/Library/UefiBootManagerLib/BmBootDescription.c index aa891feb17..06edba8b4d 100644 --- a/MdeModulePkg/Library/UefiBootManagerLib/BmBootDescription.c +++ b/MdeModulePkg/Library/UefiBootManagerLib/BmBootDescription.c @@ -758,12 +758,15 @@ BM_GET_BOOT_DESCRIPTION mBmBootDescriptionHandlers[] = { /** Return the boot description for the controller. + @param Prefix String prefix (e.g "UEFI " or "Legacy "). @param Handle Controller handle. @return The description string. **/ CHAR16 * -BmGetBootDescription ( +EFIAPI +EfiBootManagerGetBootDescription ( + IN CHAR16 *Prefix, IN EFI_HANDLE Handle ) { @@ -785,10 +788,10 @@ BmGetBootDescription ( // Avoid description confusion between UEFI & Legacy boot option by adding "UEFI " prefix // ONLY for core provided boot description handler. // - Temp = AllocatePool (StrSize (DefaultDescription) + sizeof (mBmUefiPrefix)); + Temp = AllocatePool (StrSize (DefaultDescription) + StrSize (Prefix)); ASSERT (Temp != NULL); - StrCpyS (Temp, (StrSize (DefaultDescription) + sizeof (mBmUefiPrefix)) / sizeof (CHAR16), mBmUefiPrefix); - StrCatS (Temp, (StrSize (DefaultDescription) + sizeof (mBmUefiPrefix)) / sizeof (CHAR16), DefaultDescription); + StrCpyS (Temp, (StrSize (DefaultDescription) + StrSize (Prefix)) / sizeof (CHAR16), Prefix); + StrCatS (Temp, (StrSize (DefaultDescription) + StrSize (Prefix)) / sizeof (CHAR16), DefaultDescription); FreePool (DefaultDescription); DefaultDescription = Temp; break; @@ -814,6 +817,21 @@ BmGetBootDescription ( return DefaultDescription; } +/** + Return the boot description for the controller, for UEFI boot. + + @param Handle Controller handle. + + @return The description string. +**/ +CHAR16 * +BmGetBootDescription ( + IN EFI_HANDLE Handle + ) +{ + return EfiBootManagerGetBootDescription (mBmUefiPrefix, Handle); +} + /** Enumerate all boot option descriptions and append " 2"/" 3"/... to make unique description. -- 2.21.0