summaryrefslogtreecommitdiff
path: root/BaseTools/Source/C/Common/ParseGuidedSectionTools.c
diff options
context:
space:
mode:
Diffstat (limited to 'BaseTools/Source/C/Common/ParseGuidedSectionTools.c')
-rw-r--r--BaseTools/Source/C/Common/ParseGuidedSectionTools.c358
1 files changed, 179 insertions, 179 deletions
diff --git a/BaseTools/Source/C/Common/ParseGuidedSectionTools.c b/BaseTools/Source/C/Common/ParseGuidedSectionTools.c
index e1e9a97e7b..f274bc49d8 100644
--- a/BaseTools/Source/C/Common/ParseGuidedSectionTools.c
+++ b/BaseTools/Source/C/Common/ParseGuidedSectionTools.c
@@ -1,179 +1,179 @@
-/** @file
-Helper functions for parsing GuidedSectionTools.txt
-
-Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
-SPDX-License-Identifier: BSD-2-Clause-Patent
-
-**/
-
-#include <assert.h>
-#include <string.h>
-#include <ctype.h>
-#include <stdlib.h>
-#include "MemoryFile.h"
-#include "CommonLib.h"
-#include "EfiUtilityMsgs.h"
-#include "ParseInf.h"
-#include "ParseGuidedSectionTools.h"
-#include "StringFuncs.h"
-
-
-//
-// Local types / structures
-//
-
-typedef struct _GUID_SEC_TOOL_ENTRY {
- EFI_GUID Guid;
- CHAR8* Name;
- CHAR8* Path;
- struct _GUID_SEC_TOOL_ENTRY *Next;
-} GUID_SEC_TOOL_ENTRY;
-
-//
-// Function Implementation
-//
-
-/**
- This function parses the tools_def.txt file. It returns a
- EFI_HANDLE object which can be used for the other library
- functions and should be passed to FreeParsedGuidedSectionToolsHandle
- to free resources when the tools_def.txt information is no
- longer needed.
-
- @param InputFile Path name of file to read
-
- @retval NULL if error parsing
- @retval A non-NULL EFI_HANDLE otherwise
-**/
-EFI_HANDLE
-ParseGuidedSectionToolsFile (
- IN CHAR8 *InputFile
- )
-{
- EFI_STATUS Status;
- EFI_HANDLE MemoryFile;
- EFI_HANDLE ParsedGuidedSectionTools;
-
- Status = GetMemoryFile (InputFile, &MemoryFile);
- if (EFI_ERROR (Status)) {
- return NULL;
- }
-
- ParsedGuidedSectionTools = ParseGuidedSectionToolsMemoryFile (MemoryFile);
-
- FreeMemoryFile (MemoryFile);
-
- return ParsedGuidedSectionTools;
-}
-
-/**
- This function parses the tools_def.txt file. It returns a
- EFI_HANDLE object which can be used for the other library
- functions and should be passed to FreeParsedGuidedSectionToolsHandle
- to free resources when the tools_def.txt information is no
- longer needed.
-
- @param InputFile Memory file image.
-
- @retval NULL if error or EOF
- @retval InputBuffer otherwise
-**/
-EFI_HANDLE
-ParseGuidedSectionToolsMemoryFile (
- IN EFI_HANDLE InputFile
- )
-{
- EFI_STATUS Status;
- CHAR8 *NextLine;
- STRING_LIST *Tool;
- EFI_GUID Guid;
- GUID_SEC_TOOL_ENTRY *FirstGuidTool;
- GUID_SEC_TOOL_ENTRY *LastGuidTool;
- GUID_SEC_TOOL_ENTRY *NewGuidTool;
-
- FirstGuidTool = NULL;
- LastGuidTool = NULL;
-
- while (TRUE) {
- NextLine = ReadMemoryFileLine (InputFile);
- if (NextLine == NULL) {
- break;
- }
-
- Status = StripInfDscStringInPlace (NextLine);
- if (EFI_ERROR (Status)) {
- free (NextLine);
- break;
- }
-
- if (NextLine[0] == '\0') {
- free (NextLine);
- continue;
- }
-
- Tool = SplitStringByWhitespace (NextLine);
- if ((Tool != NULL) &&
- (Tool->Count == 3)
- ) {
- Status = StringToGuid (Tool->Strings[0], &Guid);
- if (!EFI_ERROR (Status)) {
- NewGuidTool = malloc (sizeof (GUID_SEC_TOOL_ENTRY));
- if (NewGuidTool != NULL) {
- memcpy (&(NewGuidTool->Guid), &Guid, sizeof (Guid));
- NewGuidTool->Name = CloneString(Tool->Strings[1]);
- NewGuidTool->Path = CloneString(Tool->Strings[2]);
- NewGuidTool->Next = NULL;
-
- if (FirstGuidTool == NULL) {
- FirstGuidTool = NewGuidTool;
- } else {
- LastGuidTool->Next = NewGuidTool;
- }
- LastGuidTool = NewGuidTool;
- }
- }
- }
-
- if (Tool != NULL) {
- FreeStringList (Tool);
- }
- free (NextLine);
- }
-
- return FirstGuidTool;
-}
-
-/**
- This function looks up the appropriate tool to use for extracting
- a GUID defined FV section.
-
- @param ParsedGuidedSectionToolsHandle A parsed GUID section tools handle.
- @param SectionGuid The GUID for the section.
-
- @retval NULL if no tool is found or there is another error
- @retval Non-NULL The tool to use to access the section contents. (The caller
- must free the memory associated with this string.)
-**/
-CHAR8*
-LookupGuidedSectionToolPath (
- IN EFI_HANDLE ParsedGuidedSectionToolsHandle,
- IN EFI_GUID *SectionGuid
- )
-{
- GUID_SEC_TOOL_ENTRY *GuidTool;
-
- GuidTool = (GUID_SEC_TOOL_ENTRY*)ParsedGuidedSectionToolsHandle;
- if (GuidTool == NULL) {
- return NULL;
- }
-
- for ( ; GuidTool != NULL; GuidTool = GuidTool->Next) {
- if (CompareGuid (&(GuidTool->Guid), SectionGuid) == 0) {
- return CloneString (GuidTool->Path);
- }
- }
-
- return NULL;
-}
-
-
+/** @file
+Helper functions for parsing GuidedSectionTools.txt
+
+Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
+SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+#include <assert.h>
+#include <string.h>
+#include <ctype.h>
+#include <stdlib.h>
+#include "MemoryFile.h"
+#include "CommonLib.h"
+#include "EfiUtilityMsgs.h"
+#include "ParseInf.h"
+#include "ParseGuidedSectionTools.h"
+#include "StringFuncs.h"
+
+
+//
+// Local types / structures
+//
+
+typedef struct _GUID_SEC_TOOL_ENTRY {
+ EFI_GUID Guid;
+ CHAR8* Name;
+ CHAR8* Path;
+ struct _GUID_SEC_TOOL_ENTRY *Next;
+} GUID_SEC_TOOL_ENTRY;
+
+//
+// Function Implementation
+//
+
+/**
+ This function parses the tools_def.txt file. It returns a
+ EFI_HANDLE object which can be used for the other library
+ functions and should be passed to FreeParsedGuidedSectionToolsHandle
+ to free resources when the tools_def.txt information is no
+ longer needed.
+
+ @param InputFile Path name of file to read
+
+ @retval NULL if error parsing
+ @retval A non-NULL EFI_HANDLE otherwise
+**/
+EFI_HANDLE
+ParseGuidedSectionToolsFile (
+ IN CHAR8 *InputFile
+ )
+{
+ EFI_STATUS Status;
+ EFI_HANDLE MemoryFile;
+ EFI_HANDLE ParsedGuidedSectionTools;
+
+ Status = GetMemoryFile (InputFile, &MemoryFile);
+ if (EFI_ERROR (Status)) {
+ return NULL;
+ }
+
+ ParsedGuidedSectionTools = ParseGuidedSectionToolsMemoryFile (MemoryFile);
+
+ FreeMemoryFile (MemoryFile);
+
+ return ParsedGuidedSectionTools;
+}
+
+/**
+ This function parses the tools_def.txt file. It returns a
+ EFI_HANDLE object which can be used for the other library
+ functions and should be passed to FreeParsedGuidedSectionToolsHandle
+ to free resources when the tools_def.txt information is no
+ longer needed.
+
+ @param InputFile Memory file image.
+
+ @retval NULL if error or EOF
+ @retval InputBuffer otherwise
+**/
+EFI_HANDLE
+ParseGuidedSectionToolsMemoryFile (
+ IN EFI_HANDLE InputFile
+ )
+{
+ EFI_STATUS Status;
+ CHAR8 *NextLine;
+ STRING_LIST *Tool;
+ EFI_GUID Guid;
+ GUID_SEC_TOOL_ENTRY *FirstGuidTool;
+ GUID_SEC_TOOL_ENTRY *LastGuidTool;
+ GUID_SEC_TOOL_ENTRY *NewGuidTool;
+
+ FirstGuidTool = NULL;
+ LastGuidTool = NULL;
+
+ while (TRUE) {
+ NextLine = ReadMemoryFileLine (InputFile);
+ if (NextLine == NULL) {
+ break;
+ }
+
+ Status = StripInfDscStringInPlace (NextLine);
+ if (EFI_ERROR (Status)) {
+ free (NextLine);
+ break;
+ }
+
+ if (NextLine[0] == '\0') {
+ free (NextLine);
+ continue;
+ }
+
+ Tool = SplitStringByWhitespace (NextLine);
+ if ((Tool != NULL) &&
+ (Tool->Count == 3)
+ ) {
+ Status = StringToGuid (Tool->Strings[0], &Guid);
+ if (!EFI_ERROR (Status)) {
+ NewGuidTool = malloc (sizeof (GUID_SEC_TOOL_ENTRY));
+ if (NewGuidTool != NULL) {
+ memcpy (&(NewGuidTool->Guid), &Guid, sizeof (Guid));
+ NewGuidTool->Name = CloneString(Tool->Strings[1]);
+ NewGuidTool->Path = CloneString(Tool->Strings[2]);
+ NewGuidTool->Next = NULL;
+
+ if (FirstGuidTool == NULL) {
+ FirstGuidTool = NewGuidTool;
+ } else {
+ LastGuidTool->Next = NewGuidTool;
+ }
+ LastGuidTool = NewGuidTool;
+ }
+ }
+ }
+
+ if (Tool != NULL) {
+ FreeStringList (Tool);
+ }
+ free (NextLine);
+ }
+
+ return FirstGuidTool;
+}
+
+/**
+ This function looks up the appropriate tool to use for extracting
+ a GUID defined FV section.
+
+ @param ParsedGuidedSectionToolsHandle A parsed GUID section tools handle.
+ @param SectionGuid The GUID for the section.
+
+ @retval NULL if no tool is found or there is another error
+ @retval Non-NULL The tool to use to access the section contents. (The caller
+ must free the memory associated with this string.)
+**/
+CHAR8*
+LookupGuidedSectionToolPath (
+ IN EFI_HANDLE ParsedGuidedSectionToolsHandle,
+ IN EFI_GUID *SectionGuid
+ )
+{
+ GUID_SEC_TOOL_ENTRY *GuidTool;
+
+ GuidTool = (GUID_SEC_TOOL_ENTRY*)ParsedGuidedSectionToolsHandle;
+ if (GuidTool == NULL) {
+ return NULL;
+ }
+
+ for ( ; GuidTool != NULL; GuidTool = GuidTool->Next) {
+ if (CompareGuid (&(GuidTool->Guid), SectionGuid) == 0) {
+ return CloneString (GuidTool->Path);
+ }
+ }
+
+ return NULL;
+}
+
+