The function header of OpenDataFile doesn't match the actual prototype of this API.
And since it's IniParsingLib, how about using OpenIniFile/CloseIniFile? Regards, Ray >-----Original Message----- >From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of Jiewen >Yao >Sent: Wednesday, September 21, 2016 2:45 PM >To: edk2-devel@lists.01.org >Cc: Kinney, Michael D <michael.d.kin...@intel.com>; Tian, Feng ><feng.t...@intel.com>; Zhang, Chao B ><chao.b.zh...@intel.com>; Gao, Liming <liming....@intel.com>; Zeng, Star ><star.z...@intel.com> >Subject: [edk2] [PATCH 04/45] 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. > >The INI file format is: >================ >[SectionName] >EntryName=EntryValue >================ > >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> >--- > MdeModulePkg/Include/Library/IniParsingLib.h | 153 ++++++++++++++++++++ > 1 file changed, 153 insertions(+) > >diff --git a/MdeModulePkg/Include/Library/IniParsingLib.h >b/MdeModulePkg/Include/Library/IniParsingLib.h >new file mode 100644 >index 0000000..e3ed18d >--- /dev/null >+++ b/MdeModulePkg/Include/Library/IniParsingLib.h >@@ -0,0 +1,153 @@ >+/** @file >+ INI configuration parsing library. >+ >+ The INI file format is: >+ ================ >+ [SectionName] >+ EntryName=EntryValue >+ ================ >+ >+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. >+ >+ @retval EFI_SUCCESS Config data buffer is opened and context is >returned. >+ @retval EFI_OUT_OF_RESOURCES No enough memory is allocated. >+**/ >+VOID * >+EFIAPI >+OpenDataFile( >+ 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 UINTN value. >+ >+ @param Context INI Config file context. >+ @param SectionName Section name. >+ @param EntryName Section entry name. >+ @param Data Point to the got UINTN value. >+ >+ @retval EFI_SUCCESS Section entry 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 >+CloseDataFile( >+ 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