This is specific to your implementation and would again suggest moving to your new package.
> -----Original Message----- > From: edk2-devel [mailto:[email protected]] On Behalf Of > Jiewen Yao > Sent: Friday, September 30, 2016 5:21 AM > To: [email protected] > Cc: Michael D Kinney <[email protected]>; Feng Tian > <[email protected]>; Chao Zhang <[email protected]>; Liming Gao > <[email protected]>; Star Zeng <[email protected]> > Subject: [edk2] [PATCH V2 04/50] MdeModulePkg/Include: Add IniParsingLib > header. > > This library is used to parse the INI configuration file. > The INI configuration file is used in EDKII capsule image to describe the > capsule > information. > > Detail format is documented in header file. > > Cc: Feng Tian <[email protected]> > Cc: Star Zeng <[email protected]> > Cc: Michael D Kinney <[email protected]> > Cc: Liming Gao <[email protected]> > Cc: Chao Zhang <[email protected]> > Contributed-under: TianoCore Contribution Agreement 1.0 > Signed-off-by: Jiewen Yao <[email protected]> > Reviewed-by: Liming Gao <[email protected]> > --- > MdeModulePkg/Include/Library/IniParsingLib.h | 166 ++++++++++++++++++++ > 1 file changed, 166 insertions(+) > > diff --git a/MdeModulePkg/Include/Library/IniParsingLib.h > b/MdeModulePkg/Include/Library/IniParsingLib.h > new file mode 100644 > index 0000000..447a2e6 > --- /dev/null > +++ b/MdeModulePkg/Include/Library/IniParsingLib.h > @@ -0,0 +1,166 @@ > +/** @file > + INI configuration parsing library. > + > + The INI file format is: > + ================ > + [SectionName] > + EntryName=EntryValue > + ================ > + > + Where: > + 1) SectionName is an ASCII string. The valid format is [A-Za-z0-9_]+ > + 2) EntryName is an ASCII string. The valid format is [A-Za-z0-9_]+ > + 3) EntryValue can be: > + 3.1) an ASCII String. The valid format is [A-Za-z0-9_]+ > + 3.2) a GUID. The valid format is > xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, > where x is [A-Fa-f0-9] > + 3.3) a decimal value. The valid format is [0-9]+ > + 3.4) a heximal value. The valid format is 0x[A-Fa-f0-9]+ > + 4) '#' or ';' can be used as comment at anywhere. > + 5) TAB(0x20) or SPACE(0x9) can be used as separator. > + 6) LF(\n, 0xA) or CR(\r, 0xD) can be used as line break. > + > +Copyright (c) 2016, Intel Corporation. All rights reserved.<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 > +http://opensource.org/licenses/bsd-license.php > + > +THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" > BASIS, > +WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS > OR IMPLIED. > + > +**/ > + > + > +#ifndef __INI_PARSING_LIB_H__ > +#define __INI_PARSING_LIB_H__ > + > +/** > + Open an INI config file and return a context. > + > + @param DataBuffer Config raw file buffer. > + @param BufferSize Size of raw buffer. > + > + @return Config data buffer is opened and context is returned. > + @retval NULL No enough memory is allocated. > + @retval NULL Config data buffer is invalid. > +**/ > +VOID * > +EFIAPI > +OpenIniFile ( > + IN UINT8 *DataBuffer, > + IN UINTN BufferSize > + ); > + > +/** > + Get section entry string value. > + > + @param Context INI Config file context. > + @param SectionName Section name. > + @param EntryName Section entry name. > + @param EntryValue Point to the got entry string value. > + > + @retval EFI_SUCCESS Section entry string value is got. > + @retval EFI_NOT_FOUND Section is not found. > +**/ > +EFI_STATUS > +EFIAPI > +GetStringFromDataFile( > + IN VOID *Context, > + IN CHAR8 *SectionName, > + IN CHAR8 *EntryName, > + OUT CHAR8 **EntryValue > + ); > + > +/** > + Get section entry GUID value. > + > + @param Context INI Config file context. > + @param SectionName Section name. > + @param EntryName Section entry name. > + @param Guid Point to the got GUID value. > + > + @retval EFI_SUCCESS Section entry GUID value is got. > + @retval EFI_NOT_FOUND Section is not found. > +**/ > +EFI_STATUS > +EFIAPI > +GetGuidFromDataFile( > + IN VOID *Context, > + IN CHAR8 *SectionName, > + IN CHAR8 *EntryName, > + OUT EFI_GUID *Guid > + ); > + > +/** > + Get section entry decimal UINTN value. > + > + @param Context INI Config file context. > + @param SectionName Section name. > + @param EntryName Section entry name. > + @param Data Point to the got decimal UINTN value. > + > + @retval EFI_SUCCESS Section entry decimal UINTN value is got. > + @retval EFI_NOT_FOUND Section is not found. > +**/ > +EFI_STATUS > +EFIAPI > +GetDecimalUintnFromDataFile( > + IN VOID *Context, > + IN CHAR8 *SectionName, > + IN CHAR8 *EntryName, > + OUT UINTN *Data > + ); > + > +/** > + Get section entry heximal UINTN value. > + > + @param Context INI Config file context. > + @param SectionName Section name. > + @param EntryName Section entry name. > + @param Data Point to the got heximal UINTN value. > + > + @retval EFI_SUCCESS Section entry heximal UINTN value is got. > + @retval EFI_NOT_FOUND Section is not found. > +**/ > +EFI_STATUS > +EFIAPI > +GetHexUintnFromDataFile( > + IN VOID *Context, > + IN CHAR8 *SectionName, > + IN CHAR8 *EntryName, > + OUT UINTN *Data > + ); > + > +/** > + Get section entry heximal UINT64 value. > + > + @param Context INI Config file context. > + @param SectionName Section name. > + @param EntryName Section entry name. > + @param Data Point to the got heximal UINT64 value. > + > + @retval EFI_SUCCESS Section entry heximal UINT64 value is got. > + @retval EFI_NOT_FOUND Section is not found. > +**/ > +EFI_STATUS > +EFIAPI > +GetHexUint64FromDataFile( > + IN VOID *Context, > + IN CHAR8 *SectionName, > + IN CHAR8 *EntryName, > + OUT UINT64 *Data > + ); > + > +/** > + Close an INI config file and free the context. > + > + @param Context INI Config file context. > +**/ > +VOID > +EFIAPI > +CloseIniFile( > + IN VOID *Context > + ); > + > +#endif > + > -- > 2.7.4.windows.1 > > _______________________________________________ > edk2-devel mailing list > [email protected] > https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

