OK, got it. Regards, Sunny Wang
-----Original Message----- From: Ni, Ruiyu [mailto:ruiyu...@intel.com] Sent: Tuesday, October 13, 2015 1:06 PM To: Wang, Sunny (HPS SW); Laszlo Ersek Cc: edk2-devel@lists.01.org Subject: RE: [edk2] [PATCH] MdeModulePkg: Make the BmFindLoadOption function public Importance: High Sunny, Your bitmask idea works. But I think it might introduce unnecessary complexity. Keeping current implementation is good enough I think. Thanks, Ray -----Original Message----- From: Wang, Sunny (HPS SW) [mailto:sunnyw...@hpe.com] Sent: Tuesday, October 13, 2015 12:15 PM To: Ni, Ruiyu <ruiyu...@intel.com>; Laszlo Ersek <ler...@redhat.com> Cc: edk2-devel@lists.01.org <edk2-de...@ml01.01.org>; Wang, Sunny (HPS SW) <sunnyw...@hpe.com> Subject: RE: [edk2] [PATCH] MdeModulePkg: Make the BmFindLoadOption function public 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. 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