Hello Sunny, On 10/13/15 06:14, Wang, Sunny (HPS SW) wrote: > Laszlo, > Would you like to make GetLoadOptionBuffer() public as well with my > next patch? I can help to do the passing change and add you into > Signed-off-by as well. If you need it, let me know by end of today.
Please don't bother with that now; BmGetLoadOptionBuffer() will become necessary for OVMF first when OVMF is migrated from "old" Intel BDS to "new" MdeModulePkg BDS. *Then* it will be very necessary, but for the time being, it is not urgent. I only raised the topic because your patch has a similar goal (ie. making Bm*() functions public), and I thought it was a good opportunity to discuss the question with Ray, in advance. Thanks! Laszlo > Ruiyu, > OK, got it. I will update the patch and send it out. > I just get an idea from your reply for enhancing the > EfiBootManagerFindLoadOption, we may add a input parameter called > IgnoreMember like the following for all the use cases so that all the > consumers of this API don't need to create their own version. What do you > think? If it works, I will send the other patch for this. > > typedef enum { > IgnoreOptionType = 0x01, // BIT0 > IgnoreAttributes = 0x02, // BIT1 > IgnoreDescription = 0x04, // BIT2 > IgnoreFilePath = 0x08, // BIT3 > IgnoreOptionalData = 0x10, // BIT4 > IgnoreOptionalDataSize = 0x20 // BIT5 > } IGNORE_MEMBER_OF_ LOAD_OPTION; > > EfiBootManagerFindLoadOption ( > IN CONST EFI_BOOT_MANAGER_LOAD_OPTION *Key, > IN CONST EFI_BOOT_MANAGER_LOAD_OPTION *Array, > IN UINTN > Count, > IN IGNORE_MEMBER_OF_ LOAD_OPTION IgnoreMember > ) > > Regards, > Sunny Wang > > -----Original Message----- > From: Ni, Ruiyu [mailto:ruiyu...@intel.com] > Sent: Tuesday, October 13, 2015 10:35 AM > To: Laszlo Ersek; Wang, Sunny (HPS SW) > Cc: edk2-devel@lists.01.org > Subject: RE: [edk2] [PATCH] MdeModulePkg: Make the BmFindLoadOption function > public > Importance: High > > Sunny, > Yes it's acceptable. Currently the implementation of *FindLoadOption does an > exactly match. If other consumers of this API need to just match partially, > they need to provide their own version instead of using this exposed one. > > Laszlo, > Sorry I missed your comments. I am thinking about whether exposing the > *GetLoadOptionBuffer() breaks the orthogonality because we already have > EfiBootManagerProcessLoadOption() API. The latter one not only loads the > buffer but also treats the buffer as a PECOFF buffer to start it. > The *GetLoadOptionBuffer() seems to do part of the job. > Anyway I think your request also makes sense. Just want to know if there is > other better idea to not break the orthogonality. > > Thanks, > Ray > > -----Original Message----- > From: Laszlo Ersek [mailto:ler...@redhat.com] > Sent: Monday, October 12, 2015 8:11 PM > To: Wang, Sunny (HPS SW) <sunnyw...@hpe.com>; Ni, Ruiyu <ruiyu...@intel.com> > Cc: edk2-devel@lists.01.org <edk2-de...@ml01.01.org> > Subject: Re: [edk2] [PATCH] MdeModulePkg: Make the BmFindLoadOption function > public > > On 10/12/15 09:45, Wang, Sunny (HPS SW) wrote: >> Hi Ruiyu, >> >> Thanks for the quick response. >> It is because of that we need to do same thing as what >> BmFindLoadOption function did in our PlatformBootManagerLib to >> check/find specific boot option from the boot options array which is >> got from EfiBootManagerGetLoadOptions function. I also think other >> developers may have the same need. Therefore, it would be better to >> make BmFindLoadOption public to reduce the maintenance effort caused >> by duplicating the function into other BDS libraries like >> PlatformBootManagerLib. Is it reasonable and acceptable? If so, I >> will rename the BmFindLoadOption function to >> EfiBootManagerFindLoadOption and resend the patch. > > On a similar note: in the message > > http://thread.gmane.org/gmane.comp.bios.edk2.devel/759/focus=1153 > > point (10), I requested that the function BmGetLoadOptionBuffer() be made > public. > > Looks like there are now at least two Bm*() functions that see outside > demand! :) > > Thanks > Laszlo > >> >> Regards, >> Sunny Wang >> >> -----Original Message----- >> From: Ni, Ruiyu [mailto:ruiyu...@intel.com] >> Sent: Monday, October 12, 2015 3:29 PM >> To: Wang, Sunny (HPS SW); edk2-devel@lists.01.org >> Subject: RE: [edk2] [PATCH] MdeModulePkg: Make the BmFindLoadOption >> function public >> Importance: High >> >> Sunny, >> Why do you want to expose this function? >> Bm* needs to change to EfiBootManager* if it's public. >> >> Thanks, >> Ray >> >> -----Original Message----- >> From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of >> Sunny Wang >> Sent: Monday, October 12, 2015 3:15 PM >> To: edk2-devel@lists.01.org >> Subject: [edk2] [PATCH] MdeModulePkg: Make the BmFindLoadOption >> function public >> >> Make the BmFindLoadOption function public >> >> Contributed-under: TianoCore Contribution Agreement 1.0 >> >> Signed-off-by: Sunny Wang <sunnyw...@hpe.com> >> --- >> MdeModulePkg/Include/Library/UefiBootManagerLib.h | 21 >> +++++++++++++++++++++ >> 1 file changed, 21 insertions(+) >> >> diff --git a/MdeModulePkg/Include/Library/UefiBootManagerLib.h >> b/MdeModulePkg/Include/Library/UefiBootManagerLib.h >> index 5538d90..e86b589 100644 >> --- a/MdeModulePkg/Include/Library/UefiBootManagerLib.h >> +++ b/MdeModulePkg/Include/Library/UefiBootManagerLib.h >> @@ -2,6 +2,7 @@ >> Provide Boot Manager related library APIs. >> >> Copyright (c) 2011 - 2015, Intel Corporation. All rights >> reserved.<BR> >> +(C) Copyright 2015 Hewlett Packard Enterprise Development LP<BR> >> This program and the accompanying materials are licensed and made >> available under the terms and conditions of the BSD License which >> accompanies this distribution. The full text of the license may be found at >> @@ -222,6 +223,26 @@ EfiBootManagerSortLoadOptionVariable ( >> IN SORT_COMPARE CompareFunction >> ); >> >> +/** >> + Return the index of the load option in the load option array. >> + >> + The function consider two load options are equal when the >> + OptionType, Attributes, Description, FilePath and OptionalData are equal. >> + >> + @param Key Pointer to the load option to be found. >> + @param Array Pointer to the array of load options to be found. >> + @param Count Number of entries in the Array. >> + >> + @retval -1 Key wasn't found in the Array. >> + @retval 0 ~ Count-1 The index of the Key in the Array. >> +**/ >> +INTN >> +BmFindLoadOption ( >> + IN CONST EFI_BOOT_MANAGER_LOAD_OPTION *Key, >> + IN CONST EFI_BOOT_MANAGER_LOAD_OPTION *Array, >> + IN UINTN Count >> + ); >> + >> // >> // Boot Manager hot key library functions. >> // >> -- >> 2.5.0.windows.1 >> >> _______________________________________________ >> edk2-devel mailing list >> edk2-devel@lists.01.org >> https://lists.01.org/mailman/listinfo/edk2-devel >> _______________________________________________ >> edk2-devel mailing list >> edk2-devel@lists.01.org >> https://lists.01.org/mailman/listinfo/edk2-devel >> > _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel