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 <[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]> --- 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 [email protected] https://lists.01.org/mailman/listinfo/edk2-devel

