You've already forked slimbootloader
mirror of
https://github.com/Dasharo/slimbootloader.git
synced 2026-03-06 15:26:20 -08:00
* Sync BaseTools to align with edk2-stable202311 Keep the SBL specific change (e.g. Lz4). Signed-off-by: Guo Dong <guo.dong@intel.com> * feat: Sync MdePkg from EDK2 edk2-stable202311 branch Only sync required file without any changes to EDK2 files. Signed-off-by: Guo Dong <guo.dong@intel.com> * feat: Update MdePkg for SBL after sync from EDK2 Signed-off-by: Guo Dong <guo.dong@intel.com> * Update SBL after updating Basetool and MdePkg After Sync BaseTool and MdePkg to edk2-stable202311, Need update SBL code to align with this change. Signed-off-by: Guo Dong <guo.dong@intel.com> * feat: rollback some changes after mdepkg sync New change from MdePkg requires new NASM version. To make sure NASM 2.14.02 still works, just rollback few changes. Signed-off-by: Guo Dong <guo.dong@intel.com> * feat: Update component size to fix build failure After syncing BaseTool and MdePkg, some components would have a little bigger size. So update the config to fix the build failure. Signed-off-by: Guo Dong <guo.dong@intel.com> * feat: Remove unused asl code Some ASL files don't exist but they are included in other asl files. It would cause build failure with new build BaseTool. So just remove them to fix the build failure. Signed-off-by: Guo Dong <guo.dong@intel.com> --------- Signed-off-by: Guo Dong <guo.dong@intel.com>
168 lines
2.7 KiB
C
168 lines
2.7 KiB
C
/** @file
|
|
String routines implementation
|
|
|
|
Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
|
|
SPDX-License-Identifier: BSD-2-Clause-Patent
|
|
|
|
**/
|
|
|
|
#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
|
|
//
|
|
|
|
/**
|
|
Allocates a new string and copies 'String' to clone it
|
|
|
|
@param String The string to clone
|
|
|
|
@return CHAR8* - NULL if there are not enough resources
|
|
**/
|
|
CHAR8*
|
|
CloneString (
|
|
IN CHAR8 *String
|
|
)
|
|
;
|
|
|
|
/**
|
|
Remove all comments, leading and trailing whitespace from the string.
|
|
|
|
@param String The string to 'strip'
|
|
|
|
@return EFI_STATUS
|
|
**/
|
|
EFI_STATUS
|
|
StripInfDscStringInPlace (
|
|
IN CHAR8 *String
|
|
)
|
|
;
|
|
|
|
/**
|
|
Creates and returns a 'split' STRING_LIST by splitting the string
|
|
on whitespace boundaries.
|
|
|
|
@param String The string to 'split'
|
|
|
|
@return EFI_STATUS
|
|
**/
|
|
STRING_LIST*
|
|
SplitStringByWhitespace (
|
|
IN CHAR8 *String
|
|
)
|
|
;
|
|
|
|
/**
|
|
Creates a new STRING_LIST with 0 strings.
|
|
|
|
@return STRING_LIST* - Null if there is not enough resources to create the object.
|
|
**/
|
|
STRING_LIST*
|
|
NewStringList (
|
|
)
|
|
;
|
|
|
|
|
|
/**
|
|
Adds String to StringList. A new copy of String is made before it is
|
|
added to StringList.
|
|
|
|
@return EFI_STATUS
|
|
**/
|
|
EFI_STATUS
|
|
AppendCopyOfStringToList (
|
|
IN OUT STRING_LIST **StringList,
|
|
IN CHAR8 *String
|
|
)
|
|
;
|
|
|
|
/**
|
|
Removes the last string from StringList and frees the memory associated
|
|
with it.
|
|
|
|
@param StringList The string list to remove the string from
|
|
|
|
@return EFI_STATUS
|
|
**/
|
|
EFI_STATUS
|
|
RemoveLastStringFromList (
|
|
IN STRING_LIST *StringList
|
|
)
|
|
;
|
|
|
|
|
|
/**
|
|
Allocates a STRING_LIST structure that can store StringCount strings.
|
|
|
|
@param StringCount The number of strings that need to be stored
|
|
|
|
@return EFI_STATUS
|
|
**/
|
|
STRING_LIST*
|
|
AllocateStringListStruct (
|
|
IN UINTN StringCount
|
|
)
|
|
;
|
|
|
|
|
|
/**
|
|
Frees all memory associated with StringList.
|
|
|
|
@param StringList The string list to free
|
|
|
|
@return EFI_STATUS
|
|
**/
|
|
VOID
|
|
FreeStringList (
|
|
IN STRING_LIST *StringList
|
|
)
|
|
;
|
|
|
|
|
|
/**
|
|
Generates a string that represents the STRING_LIST
|
|
|
|
@param StringList The string list to convert to a string
|
|
|
|
@return CHAR8* The string list represented with a single string. The returned
|
|
string must be freed by the caller.
|
|
**/
|
|
CHAR8*
|
|
StringListToString (
|
|
IN STRING_LIST *StringList
|
|
)
|
|
;
|
|
|
|
|
|
/**
|
|
Prints out the string list
|
|
|
|
@param StringList The string list to print
|
|
**/
|
|
VOID
|
|
PrintStringList (
|
|
IN STRING_LIST *StringList
|
|
)
|
|
;
|
|
|
|
|
|
|
|
#endif
|