2. Removed the unnecessary library and include path from MSA files git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@541 6f19259b-4bc3-4df7-8a09-765794883524
		
			
				
	
	
		
			187 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			187 lines
		
	
	
		
			4.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*++
 | 
						|
 | 
						|
Copyright (c) 2004, 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:
 | 
						|
 | 
						|
  GuidList.c  
 | 
						|
 | 
						|
Abstract:
 | 
						|
 | 
						|
  Utility to create a GUID-to-name listing file that can
 | 
						|
  be used by other utilities. Basic operation is to take the
 | 
						|
  table of name+GUIDs that we have compiled into this utility,
 | 
						|
  and create a text file that can be parsed by other utilities
 | 
						|
  to do replacement of "name" with "GUID".
 | 
						|
 | 
						|
Notes:
 | 
						|
  To add a new GUID to this database:
 | 
						|
    1. Add a "#include EFI_GUID_DEFINITION(name)" statement below
 | 
						|
    2. Modify the mGuidList[] array below to add the new GUID name
 | 
						|
 | 
						|
  The only issue that may come up is that, if the source GUID file
 | 
						|
  is not in the standard GUID directory, then this utility won't
 | 
						|
  compile because the #include fails. In this case you'd need
 | 
						|
  to define a new macro (if it's in a standard place) or modify
 | 
						|
  this utility's makefile to add the path to your new .h file.
 | 
						|
 | 
						|
--*/
 | 
						|
 | 
						|
#include <stdio.h>
 | 
						|
#include <string.h>
 | 
						|
#include <stdlib.h>
 | 
						|
#include <ctype.h>
 | 
						|
 | 
						|
#include <Common/UefiBaseTypes.h>
 | 
						|
#include <Guid/Apriori.h>
 | 
						|
#include <Guid/AcpiTableStorage.h>
 | 
						|
 | 
						|
#include "EfiUtilityMsgs.h"
 | 
						|
 | 
						|
 | 
						|
#define GUID_XREF(varname, guid) { \
 | 
						|
    #varname, #guid, guid \
 | 
						|
  }
 | 
						|
 | 
						|
#define NULL_GUID \
 | 
						|
  { \
 | 
						|
    0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 \
 | 
						|
  }
 | 
						|
 | 
						|
typedef struct {
 | 
						|
  INT8      *VariableName;
 | 
						|
  INT8      *DefineName;
 | 
						|
  EFI_GUID  Guid;
 | 
						|
} GUID_LIST;
 | 
						|
 | 
						|
//
 | 
						|
// This is our table of all GUIDs we want to print out to create
 | 
						|
// a GUID-to-name cross reference.
 | 
						|
// Use the #defined name from the GUID definition's source .h file.
 | 
						|
//
 | 
						|
static GUID_LIST  mGuidList[] = {
 | 
						|
  GUID_XREF(gAprioriGuid, EFI_APRIORI_GUID),
 | 
						|
  GUID_XREF(gEfiAcpiTableStorageGuid, EFI_ACPI_TABLE_STORAGE_GUID),
 | 
						|
  // FIXME The next line was removed in the port to R9.
 | 
						|
  // GUID_XREF(gEfiDefaultBmpLogoGuid, EFI_DEFAULT_BMP_LOGO_GUID),
 | 
						|
  GUID_XREF(gEfiAcpiTableStorageGuid, EFI_ACPI_TABLE_STORAGE_GUID),
 | 
						|
  //
 | 
						|
  // Terminator
 | 
						|
  //
 | 
						|
  {
 | 
						|
    NULL,
 | 
						|
    NULL,
 | 
						|
    NULL_GUID
 | 
						|
  }
 | 
						|
};
 | 
						|
 | 
						|
void
 | 
						|
PrintGuidText (
 | 
						|
  FILE      *OutFptr,
 | 
						|
  INT8      *VariableName,
 | 
						|
  INT8      *DefineName,
 | 
						|
  EFI_GUID  *Guid
 | 
						|
  );
 | 
						|
 | 
						|
int
 | 
						|
CreateGuidList (
 | 
						|
  INT8    *OutFileName
 | 
						|
  )
 | 
						|
/*++
 | 
						|
 | 
						|
Routine Description:
 | 
						|
  Print our GUID/name list to the specified output file.
 | 
						|
  
 | 
						|
Arguments:
 | 
						|
  OutFileName  - name of the output file to write our results to.
 | 
						|
 | 
						|
Returns:
 | 
						|
  0       if successful
 | 
						|
  nonzero otherwise
 | 
						|
  
 | 
						|
--*/
 | 
						|
{
 | 
						|
  FILE  *OutFptr;
 | 
						|
  int   Index;
 | 
						|
 | 
						|
  //
 | 
						|
  // Open output file for writing. If the name is NULL, then write to stdout
 | 
						|
  //
 | 
						|
  if (OutFileName != NULL) {
 | 
						|
    OutFptr = fopen (OutFileName, "w");
 | 
						|
    if (OutFptr == NULL) {
 | 
						|
      Error (NULL, 0, 0, OutFileName, "failed to open output file for writing");
 | 
						|
      return STATUS_ERROR;
 | 
						|
    }
 | 
						|
  } else {
 | 
						|
    OutFptr = stdout;
 | 
						|
  }
 | 
						|
 | 
						|
  for (Index = 0; mGuidList[Index].VariableName != NULL; Index++) {
 | 
						|
    PrintGuidText (OutFptr, mGuidList[Index].VariableName, mGuidList[Index].DefineName, &mGuidList[Index].Guid);
 | 
						|
  }
 | 
						|
  //
 | 
						|
  // Close the output file if they specified one.
 | 
						|
  //
 | 
						|
  if (OutFileName != NULL) {
 | 
						|
    fclose (OutFptr);
 | 
						|
  }
 | 
						|
 | 
						|
  return STATUS_SUCCESS;
 | 
						|
}
 | 
						|
 | 
						|
void
 | 
						|
PrintGuidText (
 | 
						|
  FILE      *OutFptr,
 | 
						|
  INT8      *VariableName,
 | 
						|
  INT8      *DefineName,
 | 
						|
  EFI_GUID  *Guid
 | 
						|
  )
 | 
						|
/*++
 | 
						|
 | 
						|
Routine Description:
 | 
						|
  Print a GUID/name combo in INF-style format
 | 
						|
 | 
						|
  guid-guid-guid-guid DEFINE_NAME gName
 | 
						|
 | 
						|
Arguments:
 | 
						|
  OutFptr       - file pointer to which to write the output
 | 
						|
  VariableName  - the GUID variable's name
 | 
						|
  DefineName    - the name used in the #define
 | 
						|
  Guid          - pointer to the GUID value
 | 
						|
 | 
						|
Returns:
 | 
						|
  NA
 | 
						|
 | 
						|
--*/
 | 
						|
{
 | 
						|
  if (OutFptr == NULL) {
 | 
						|
    OutFptr = stdout;
 | 
						|
  }
 | 
						|
 | 
						|
  fprintf (
 | 
						|
    OutFptr,
 | 
						|
    "%08X-%04X-%04X-%02X%02X-%02X%02X%02X%02X%02X%02X %s %s\n",
 | 
						|
    Guid->Data1,
 | 
						|
    Guid->Data2,
 | 
						|
    Guid->Data3,
 | 
						|
    Guid->Data4[0],
 | 
						|
    Guid->Data4[1],
 | 
						|
    Guid->Data4[2],
 | 
						|
    Guid->Data4[3],
 | 
						|
    Guid->Data4[4],
 | 
						|
    Guid->Data4[5],
 | 
						|
    Guid->Data4[6],
 | 
						|
    Guid->Data4[7],
 | 
						|
    DefineName,
 | 
						|
    VariableName
 | 
						|
    );
 | 
						|
}
 |