X-Git-Url: https://git.proxmox.com/?p=mirror_edk2.git;a=blobdiff_plain;f=EdkCompatibilityPkg%2FSample%2FTools%2FSource%2FHiiPack%2FStringParse.c;fp=EdkCompatibilityPkg%2FSample%2FTools%2FSource%2FHiiPack%2FStringParse.c;h=0000000000000000000000000000000000000000;hp=8dd26e1529c32d4124343c484ff74fd437218ebb;hb=c455bc8c8d78ad51c24426a500914ea32504bf06;hpb=5bca07268acabe7f31407358e875ccf89cb5e386 diff --git a/EdkCompatibilityPkg/Sample/Tools/Source/HiiPack/StringParse.c b/EdkCompatibilityPkg/Sample/Tools/Source/HiiPack/StringParse.c deleted file mode 100644 index 8dd26e1529..0000000000 --- a/EdkCompatibilityPkg/Sample/Tools/Source/HiiPack/StringParse.c +++ /dev/null @@ -1,244 +0,0 @@ -/*++ - -Copyright (c) 2004 - 2010, Intel Corporation. All rights reserved.
-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. - -Module Name: - - StringParse.c - -Abstract: - - Routines for parsing HII string packs - ---*/ - -#include -#include -#include - -#include "Tiano.h" -#include "EfiUtilityMsgs.h" -#include "EfiInternalFormRepresentation.h" -#include "Hii.h" -#include "StringParse.h" -#include "HiiPack.h" - -typedef struct _STRING_PACK_RECORD { - struct _STRING_PACK_RECORD *Next; - int Handle; - EFI_GUID PackageGuid; - EFI_GUID FormsetGuid; - EFI_HII_STRING_PACK *StringPack; - int StringPackSize; - int NumStringPacks; -} STRING_PACK_RECORD; - -static STRING_PACK_RECORD *mStringPacks = NULL; - -STATUS -StringGetPack ( - int Handle, // matches handle passed in with StringParsePack() - EFI_HII_STRING_PACK **StringPack, // returned pointer to string pack - int *StringPackSize, // sizeof buffer pointed to by StringPack - int *NumStringPacks, // in the array pointed to by StringPack - EFI_GUID *FormsetGuid, - EFI_GUID *PackageGuid - ) -/*++ - -Routine Description: - - Get a string pack given to us previously - -Arguments: - Handle - handle of string pack to get - StringPack - outgoing pointer to string pack on the given handle - StringPackSize - outgoing size of string pack pointed to by StringPack - NumStringPacks - outgoing number of string packs in StringPack[] array - FormsetGuid - outgoing GUID passed in with the string pack when it was parsed - PackageGuid - outgoing GUID passed in with the string pack when it was parsed - -Returns: - - STATUS_SUCCESS - string pack with matching handle was found - STATUS_ERROR - otherwise - ---*/ -{ - STRING_PACK_RECORD *Rec; - - for (Rec = mStringPacks; Rec != NULL; Rec = Rec->Next) { - if (Rec->Handle == Handle) { - *StringPack = Rec->StringPack; - *StringPackSize = Rec->StringPackSize; - *NumStringPacks = Rec->NumStringPacks; - return STATUS_SUCCESS; - } - } - - return STATUS_ERROR; -} - -STATUS -StringParsePack ( - int Handle, - EFI_HII_STRING_PACK *StringPack, - EFI_GUID *FormsetGuid, - EFI_GUID *PackageGuid - ) -/*++ - -Routine Description: - - Parse a string pack, saving the information for later retrieval by the caller - -Arguments: - Handle - handle of string pack - StringPack - pointer to string pack array to parse - FormsetGuid - GUID of the string pack - PackageGuid - package GUID from the HII data table from which this string pack orginated - -Returns: - - STATUS_SUCCESS - Stringpack processed successfully - STATUS_ERROR - otherwise - ---*/ -{ - STRING_PACK_RECORD *Rec; - - STRING_PACK_RECORD *TempRec; - int PackSize; - EFI_HII_STRING_PACK *TempPack; - // - // Allocate a new string pack record - // - Rec = (STRING_PACK_RECORD *) malloc (sizeof (STRING_PACK_RECORD)); - if (Rec == NULL) { - Error (NULL, 0, 0, "memory allocation failure", NULL); - return STATUS_ERROR; - } - - memset (Rec, 0, sizeof (STRING_PACK_RECORD)); - Rec->Handle = Handle; - if (PackageGuid != NULL) { - memcpy (&Rec->PackageGuid, PackageGuid, sizeof (EFI_GUID)); - } - - if (FormsetGuid != NULL) { - memcpy (&Rec->FormsetGuid, FormsetGuid, sizeof (EFI_GUID)); - } - // - // Walk the string packs to find the terminator - // - TempPack = StringPack; - PackSize = 0; - while (TempPack->Header.Length > 0) { - if (TempPack->Header.Type != EFI_HII_STRING) { - Error (NULL, 0, 0, "found a non-string pack in the string pack array", NULL); - free (Rec); - return STATUS_ERROR; - } - - PackSize += TempPack->Header.Length; - Rec->NumStringPacks++; - TempPack = (EFI_HII_STRING_PACK *) ((char *) TempPack + TempPack->Header.Length); - } - // - // Add space for the terminator - // - PackSize += sizeof (EFI_HII_STRING_PACK); - Rec->StringPackSize = PackSize; - // - // Make a copy of the incoming string pack - // - Rec->StringPack = (EFI_HII_STRING_PACK *) malloc (PackSize); - if (Rec->StringPack == NULL) { - Error (NULL, 0, 0, "memory allocation failure", NULL); - free (Rec); - return STATUS_ERROR; - } - - memcpy ((void *) Rec->StringPack, StringPack, PackSize); - // - // Add this record to our list - // - if (mStringPacks == NULL) { - mStringPacks = Rec; - } else { - for (TempRec = mStringPacks; TempRec->Next != NULL; TempRec = TempRec->Next) - ; - TempRec->Next = Rec; - } - free (Rec->StringPack); - free (Rec); - return STATUS_SUCCESS; -} - -STATUS -StringInit ( - VOID - ) -/*++ - -Routine Description: - - GC_TODO: Add function description - -Arguments: - - None - -Returns: - - GC_TODO: add return values - ---*/ -{ - StringEnd (); - return STATUS_SUCCESS; -} - -STATUS -StringEnd ( - VOID - ) -/*++ - -Routine Description: - - GC_TODO: Add function description - -Arguments: - - None - -Returns: - - GC_TODO: add return values - ---*/ -{ - STRING_PACK_RECORD *Next; - // - // Free up all the memory we've allocated - // - while (mStringPacks != NULL) { - if (mStringPacks->StringPack != NULL) { - free (mStringPacks->StringPack); - } - - Next = mStringPacks->Next; - free (mStringPacks); - mStringPacks = Next; - } - - return STATUS_SUCCESS; -}