123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 |
- /** @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
|