This is specific to your implementation and would again suggest moving to your 
new package.  
 

> -----Original Message-----
> From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of
> Jiewen Yao
> Sent: Friday, September 30, 2016 5:21 AM
> To: edk2-devel@lists.01.org
> Cc: Michael D Kinney <michael.d.kin...@intel.com>; Feng Tian
> <feng.t...@intel.com>; Chao Zhang <chao.b.zh...@intel.com>; Liming Gao
> <liming....@intel.com>; Star Zeng <star.z...@intel.com>
> 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 <feng.t...@intel.com>
> Cc: Star Zeng <star.z...@intel.com>
> Cc: Michael D Kinney <michael.d.kin...@intel.com>
> Cc: Liming Gao <liming....@intel.com>
> Cc: Chao Zhang <chao.b.zh...@intel.com>
> Contributed-under: TianoCore Contribution Agreement 1.0
> Signed-off-by: Jiewen Yao <jiewen....@intel.com>
> Reviewed-by: Liming Gao <liming....@intel.com>
> ---
>  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
> 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

Reply via email to