+/**\r
+ Return the pointer to the first occurrence of any character from a list of characters.\r
+\r
+ @param[in] String the string to parse\r
+ @param[in] CharacterList the list of character to look for\r
+ @param[in] EscapeCharacter An escape character to skip\r
+\r
+ @return the location of the first character in the string\r
+ @retval CHAR_NULL no instance of any character in CharacterList was found in String\r
+**/\r
+CONST CHAR16*\r
+FindFirstCharacter(\r
+ IN CONST CHAR16 *String,\r
+ IN CONST CHAR16 *CharacterList,\r
+ IN CONST CHAR16 EscapeCharacter\r
+ );\r
+\r
+/**\r
+ Cleans off leading and trailing spaces and tabs.\r
+\r
+ @param[in] String pointer to the string to trim them off.\r
+**/\r
+EFI_STATUS\r
+TrimSpaces(\r
+ IN CHAR16 **String\r
+ );\r
+\r
+/**\r
+\r
+ Create a new buffer list and stores the old one to OldBufferList\r
+\r
+ @param OldBufferList The temporary list head used to store the nodes in BufferToFreeList.\r
+**/\r
+VOID\r
+SaveBufferList (\r
+ OUT LIST_ENTRY *OldBufferList\r
+ );\r
+\r
+/**\r
+ Restore previous nodes into BufferToFreeList .\r
+\r
+ @param OldBufferList The temporary list head used to store the nodes in BufferToFreeList.\r
+**/\r
+VOID\r
+RestoreBufferList (\r
+ IN OUT LIST_ENTRY *OldBufferList\r
+ );\r
+\r
+\r