| /** @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 hexadecimal 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> | |
| SPDX-License-Identifier: BSD-2-Clause-Patent | |
| **/ | |
| #ifndef __INI_PARSING_LIB_H__ | |
| #define __INI_PARSING_LIB_H__ | |
| /** | |
| Open an INI config file and return a context. | |
| @param[in] DataBuffer Config raw file buffer. | |
| @param[in] 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[in] Context INI Config file context. | |
| @param[in] SectionName Section name. | |
| @param[in] EntryName Section entry name. | |
| @param[out] 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[in] Context INI Config file context. | |
| @param[in] SectionName Section name. | |
| @param[in] EntryName Section entry name. | |
| @param[out] 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[in] Context INI Config file context. | |
| @param[in] SectionName Section name. | |
| @param[in] EntryName Section entry name. | |
| @param[out] 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 hexadecimal UINTN value. | |
| @param[in] Context INI Config file context. | |
| @param[in] SectionName Section name. | |
| @param[in] EntryName Section entry name. | |
| @param[out] Data Point to the got hexadecimal UINTN value. | |
| @retval EFI_SUCCESS Section entry hexadecimal 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 hexadecimal UINT64 value. | |
| @param[in] Context INI Config file context. | |
| @param[in] SectionName Section name. | |
| @param[in] EntryName Section entry name. | |
| @param[out] Data Point to the got hexadecimal UINT64 value. | |
| @retval EFI_SUCCESS Section entry hexadecimal 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[in] Context INI Config file context. | |
| **/ | |
| VOID | |
| EFIAPI | |
| CloseIniFile ( | |
| IN VOID *Context | |
| ); | |
| #endif |