123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250 |
- /** @file
- String routines implementation
- Copyright (c) 2007 - 2018, 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 _EFI_STRING_FUNCS_H
- #define _EFI_STRING_FUNCS_H
- #include <stdio.h>
- #include <stdlib.h>
- #include <Common/UefiBaseTypes.h>
- //
- // Common data structures
- //
- typedef struct {
- UINTN Count;
- //
- // Actually this array can be 0 or more items (based on Count)
- //
- CHAR8* Strings[1];
- } STRING_LIST;
- //
- // Functions declarations
- //
- CHAR8*
- CloneString (
- IN CHAR8 *String
- )
- ;
- /**
- Routine Description:
- Allocates a new string and copies 'String' to clone it
- Arguments:
- String The string to clone
- Returns:
- CHAR8* - NULL if there are not enough resources
- **/
- EFI_STATUS
- StripInfDscStringInPlace (
- IN CHAR8 *String
- )
- ;
- /**
- Routine Description:
- Remove all comments, leading and trailing whitespace from the string.
- Arguments:
- String The string to 'strip'
- Returns:
- EFI_STATUS
- **/
- STRING_LIST*
- SplitStringByWhitespace (
- IN CHAR8 *String
- )
- ;
- /**
- Routine Description:
- Creates and returns a 'split' STRING_LIST by splitting the string
- on whitespace boundaries.
- Arguments:
- String The string to 'split'
- Returns:
- EFI_STATUS
- **/
- STRING_LIST*
- NewStringList (
- )
- ;
- /**
- Routine Description:
- Creates a new STRING_LIST with 0 strings.
- Returns:
- STRING_LIST* - Null if there is not enough resources to create the object.
- **/
- EFI_STATUS
- AppendCopyOfStringToList (
- IN OUT STRING_LIST **StringList,
- IN CHAR8 *String
- )
- ;
- /**
- Routine Description:
- Adds String to StringList. A new copy of String is made before it is
- added to StringList.
- Returns:
- EFI_STATUS
- **/
- EFI_STATUS
- RemoveLastStringFromList (
- IN STRING_LIST *StringList
- )
- ;
- /**
- Routine Description:
- Removes the last string from StringList and frees the memory associated
- with it.
- Arguments:
- StringList The string list to remove the string from
- Returns:
- EFI_STATUS
- **/
- STRING_LIST*
- AllocateStringListStruct (
- IN UINTN StringCount
- )
- ;
- /**
- Routine Description:
- Allocates a STRING_LIST structure that can store StringCount strings.
- Arguments:
- StringCount The number of strings that need to be stored
- Returns:
- EFI_STATUS
- **/
- VOID
- FreeStringList (
- IN STRING_LIST *StringList
- )
- ;
- /**
- Routine Description:
- Frees all memory associated with StringList.
- Arguments:
- StringList The string list to free
- Returns:
- EFI_STATUS
- **/
- CHAR8*
- StringListToString (
- IN STRING_LIST *StringList
- )
- ;
- /**
- Routine Description:
- Generates a string that represents the STRING_LIST
- Arguments:
- StringList The string list to convert to a string
- Returns:
- CHAR8* - The string list represented with a single string. The returned
- string must be freed by the caller.
- **/
- VOID
- PrintStringList (
- IN STRING_LIST *StringList
- )
- ;
- /**
- Routine Description:
- Prints out the string list
- Arguments:
- StringList The string list to print
- **/
- #endif
|