summaryrefslogtreecommitdiff
path: root/EdkCompatibilityPkg/Sample/Tools/Source/HiiPack/StringParse.c
diff options
context:
space:
mode:
Diffstat (limited to 'EdkCompatibilityPkg/Sample/Tools/Source/HiiPack/StringParse.c')
-rw-r--r--EdkCompatibilityPkg/Sample/Tools/Source/HiiPack/StringParse.c244
1 files changed, 0 insertions, 244 deletions
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.<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.
-
-Module Name:
-
- StringParse.c
-
-Abstract:
-
- Routines for parsing HII string packs
-
---*/
-
-#include <stdio.h>
-#include <string.h>
-#include <stdlib.h>
-
-#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;
-}