Revision: 15809
http://sourceforge.net/p/edk2/code/15809
Author: hchen30
Date: 2014-08-15 03:06:48 +0000 (Fri, 15 Aug 2014)
Log Message:
-----------
There is a limitation on WINDOWS OS for the length of entire file path
can?\226?\128?\153t be larger than 255. There is an OS API provided by
Microsoft to add ?\226?\128?\156\\?\?\226?\128?\157 before the path header to
support the long file path. Enable this feature on basetools.
Contributed-under: TianoCore Contribution Agreement 1.0
Signed-off-by: Hess Chen <[email protected]>
Reviewed-by: Yingke Liu <[email protected]>
Modified Paths:
--------------
trunk/edk2/BaseTools/Source/C/BootSectImage/bootsectimage.c
trunk/edk2/BaseTools/Source/C/Common/CommonLib.c
trunk/edk2/BaseTools/Source/C/Common/CommonLib.h
trunk/edk2/BaseTools/Source/C/Common/MemoryFile.h
trunk/edk2/BaseTools/Source/C/Common/OsPath.c
trunk/edk2/BaseTools/Source/C/Common/ParseInf.c
trunk/edk2/BaseTools/Source/C/Common/ParseInf.h
trunk/edk2/BaseTools/Source/C/Common/SimpleFileParsing.c
trunk/edk2/BaseTools/Source/C/EfiLdrImage/EfiLdrImage.c
trunk/edk2/BaseTools/Source/C/EfiRom/EfiRom.c
trunk/edk2/BaseTools/Source/C/GenBootSector/GenBootSector.c
trunk/edk2/BaseTools/Source/C/GenCrc32/GenCrc32.c
trunk/edk2/BaseTools/Source/C/GenFfs/GenFfs.c
trunk/edk2/BaseTools/Source/C/GenFv/GenFv.c
trunk/edk2/BaseTools/Source/C/GenFv/GenFvInternalLib.c
trunk/edk2/BaseTools/Source/C/GenFv/GenFvInternalLib.h
trunk/edk2/BaseTools/Source/C/GenFw/GenFw.c
trunk/edk2/BaseTools/Source/C/GenPage/GenPage.c
trunk/edk2/BaseTools/Source/C/GenSec/GenSec.c
trunk/edk2/BaseTools/Source/C/GenVtf/GenVtf.c
trunk/edk2/BaseTools/Source/C/GnuGenBootSector/GnuGenBootSector.c
trunk/edk2/BaseTools/Source/C/Split/Split.c
trunk/edk2/BaseTools/Source/C/VfrCompile/VfrCompiler.cpp
trunk/edk2/BaseTools/Source/C/VfrCompile/VfrUtilityLib.cpp
trunk/edk2/BaseTools/Source/C/VolInfo/VolInfo.c
trunk/edk2/BaseTools/Source/Python/AutoGen/AutoGen.py
trunk/edk2/BaseTools/Source/Python/AutoGen/BuildEngine.py
trunk/edk2/BaseTools/Source/Python/AutoGen/GenDepex.py
trunk/edk2/BaseTools/Source/Python/AutoGen/GenMake.py
trunk/edk2/BaseTools/Source/Python/AutoGen/StrGather.py
trunk/edk2/BaseTools/Source/Python/AutoGen/UniClassObject.py
trunk/edk2/BaseTools/Source/Python/BPDG/BPDG.py
trunk/edk2/BaseTools/Source/Python/BPDG/GenVpd.py
trunk/edk2/BaseTools/Source/Python/Common/Database.py
trunk/edk2/BaseTools/Source/Python/Common/DecClassObject.py
trunk/edk2/BaseTools/Source/Python/Common/Dictionary.py
trunk/edk2/BaseTools/Source/Python/Common/DscClassObject.py
trunk/edk2/BaseTools/Source/Python/Common/EdkIIWorkspace.py
trunk/edk2/BaseTools/Source/Python/Common/EdkIIWorkspaceBuild.py
trunk/edk2/BaseTools/Source/Python/Common/EdkLogger.py
trunk/edk2/BaseTools/Source/Python/Common/FdfParserLite.py
trunk/edk2/BaseTools/Source/Python/Common/InfClassObject.py
trunk/edk2/BaseTools/Source/Python/Common/MigrationUtilities.py
trunk/edk2/BaseTools/Source/Python/Common/Misc.py
trunk/edk2/BaseTools/Source/Python/Common/String.py
trunk/edk2/BaseTools/Source/Python/Common/TargetTxtClassObject.py
trunk/edk2/BaseTools/Source/Python/Common/ToolDefClassObject.py
trunk/edk2/BaseTools/Source/Python/Common/VpdInfoFile.py
trunk/edk2/BaseTools/Source/Python/Ecc/Check.py
trunk/edk2/BaseTools/Source/Python/Ecc/CodeFragmentCollector.py
trunk/edk2/BaseTools/Source/Python/Ecc/Configuration.py
trunk/edk2/BaseTools/Source/Python/Ecc/Database.py
trunk/edk2/BaseTools/Source/Python/Ecc/Ecc.py
trunk/edk2/BaseTools/Source/Python/Ecc/EccGlobalData.py
trunk/edk2/BaseTools/Source/Python/Ecc/Exception.py
trunk/edk2/BaseTools/Source/Python/Ecc/FileProfile.py
trunk/edk2/BaseTools/Source/Python/Ecc/MetaDataParser.py
trunk/edk2/BaseTools/Source/Python/Ecc/MetaFileWorkspace/MetaDataTable.py
trunk/edk2/BaseTools/Source/Python/Ecc/MetaFileWorkspace/MetaFileParser.py
trunk/edk2/BaseTools/Source/Python/Ecc/Xml/XmlRoutines.py
trunk/edk2/BaseTools/Source/Python/Ecc/c.py
trunk/edk2/BaseTools/Source/Python/Eot/CodeFragmentCollector.py
trunk/edk2/BaseTools/Source/Python/Eot/Database.py
trunk/edk2/BaseTools/Source/Python/Eot/Eot.py
trunk/edk2/BaseTools/Source/Python/Eot/EotGlobalData.py
trunk/edk2/BaseTools/Source/Python/Eot/FileProfile.py
trunk/edk2/BaseTools/Source/Python/Eot/FvImage.py
trunk/edk2/BaseTools/Source/Python/Eot/InfParserLite.py
trunk/edk2/BaseTools/Source/Python/Eot/Parser.py
trunk/edk2/BaseTools/Source/Python/Eot/Report.py
trunk/edk2/BaseTools/Source/Python/Eot/c.py
trunk/edk2/BaseTools/Source/Python/GenFds/AprioriSection.py
trunk/edk2/BaseTools/Source/Python/GenFds/Capsule.py
trunk/edk2/BaseTools/Source/Python/GenFds/CompressSection.py
trunk/edk2/BaseTools/Source/Python/GenFds/DataSection.py
trunk/edk2/BaseTools/Source/Python/GenFds/DepexSection.py
trunk/edk2/BaseTools/Source/Python/GenFds/EfiSection.py
trunk/edk2/BaseTools/Source/Python/GenFds/Fd.py
trunk/edk2/BaseTools/Source/Python/GenFds/FdfParser.py
trunk/edk2/BaseTools/Source/Python/GenFds/FfsFileStatement.py
trunk/edk2/BaseTools/Source/Python/GenFds/FfsInfStatement.py
trunk/edk2/BaseTools/Source/Python/GenFds/Fv.py
trunk/edk2/BaseTools/Source/Python/GenFds/FvImageSection.py
trunk/edk2/BaseTools/Source/Python/GenFds/GenFds.py
trunk/edk2/BaseTools/Source/Python/GenFds/GenFdsGlobalVariable.py
trunk/edk2/BaseTools/Source/Python/GenFds/GuidSection.py
trunk/edk2/BaseTools/Source/Python/GenFds/OptRomFileStatement.py
trunk/edk2/BaseTools/Source/Python/GenFds/OptionRom.py
trunk/edk2/BaseTools/Source/Python/GenFds/Region.py
trunk/edk2/BaseTools/Source/Python/GenFds/Section.py
trunk/edk2/BaseTools/Source/Python/GenFds/UiSection.py
trunk/edk2/BaseTools/Source/Python/GenFds/VerSection.py
trunk/edk2/BaseTools/Source/Python/GenFds/Vtf.py
trunk/edk2/BaseTools/Source/Python/GenPatchPcdTable/GenPatchPcdTable.py
trunk/edk2/BaseTools/Source/Python/PatchPcdValue/PatchPcdValue.py
trunk/edk2/BaseTools/Source/Python/Table/TableEotReport.py
trunk/edk2/BaseTools/Source/Python/Table/TableFile.py
trunk/edk2/BaseTools/Source/Python/Table/TableReport.py
trunk/edk2/BaseTools/Source/Python/TargetTool/TargetTool.py
trunk/edk2/BaseTools/Source/Python/Trim/Trim.py
trunk/edk2/BaseTools/Source/Python/Workspace/BuildClassObject.py
trunk/edk2/BaseTools/Source/Python/Workspace/MetaDataTable.py
trunk/edk2/BaseTools/Source/Python/Workspace/MetaFileParser.py
trunk/edk2/BaseTools/Source/Python/Workspace/WorkspaceDatabase.py
trunk/edk2/BaseTools/Source/Python/build/BuildReport.py
trunk/edk2/BaseTools/Source/Python/build/build.py
Added Paths:
-----------
trunk/edk2/BaseTools/Source/Python/Common/LongFilePathOs.py
trunk/edk2/BaseTools/Source/Python/Common/LongFilePathOsPath.py
trunk/edk2/BaseTools/Source/Python/Common/LongFilePathSupport.py
Modified: trunk/edk2/BaseTools/Source/C/BootSectImage/bootsectimage.c
===================================================================
--- trunk/edk2/BaseTools/Source/C/BootSectImage/bootsectimage.c 2014-08-14
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/C/BootSectImage/bootsectimage.c 2014-08-15
03:06:48 UTC (rev 15809)
@@ -4,7 +4,7 @@
Patch the BPB information in boot sector image file.
Patch the MBR code in MBR image file.
-Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2006 - 2014, 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
@@ -116,7 +116,7 @@
FILE *FileHandle;
int result;
- FileHandle = fopen (FileName, "r+b");
+ FileHandle = fopen (LongFilePath (FileName), "r+b");
if (FileHandle == NULL) {
DebugMsg (NULL, 0, DEBUG_ERROR, NULL, "Open file: %s", FileName);
return 0;
@@ -154,7 +154,7 @@
FILE *FileHandle;
int result;
- FileHandle = fopen (FileName, "rb");
+ FileHandle = fopen (LongFilePath (FileName), "rb");
if (FileHandle == NULL) {
DebugMsg (NULL, 0, DEBUG_ERROR, NULL, "ERROR: E0001: Error opening file:
%s", FileName);
return 0;
Modified: trunk/edk2/BaseTools/Source/C/Common/CommonLib.c
===================================================================
--- trunk/edk2/BaseTools/Source/C/Common/CommonLib.c 2014-08-14 20:42:40 UTC
(rev 15808)
+++ trunk/edk2/BaseTools/Source/C/Common/CommonLib.c 2014-08-15 03:06:48 UTC
(rev 15809)
@@ -1,6 +1,6 @@
/** @file
-Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2014, 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
@@ -23,6 +23,11 @@
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
+#ifdef __GNUC__
+#include <unistd.h>
+#else
+#include <direct.h>
+#endif
#include "CommonLib.h"
#include "EfiUtilityMsgs.h"
@@ -196,7 +201,7 @@
//
// Open the file
//
- InputFile = fopen (InputFileName, "rb");
+ InputFile = fopen (LongFilePath (InputFileName), "rb");
if (InputFile == NULL) {
Error (NULL, 0, 0001, "Error opening the input file", InputFileName);
return EFI_ABORTED;
@@ -297,7 +302,7 @@
//
// Open the file
//
- OutputFile = fopen (OutputFileName, "wb");
+ OutputFile = fopen (LongFilePath (OutputFileName), "wb");
if (OutputFile == NULL) {
Error (NULL, 0, 0001, "Error opening the output file", OutputFileName);
return EFI_ABORTED;
@@ -582,3 +587,124 @@
}
#endif
#endif
+
+#define WINDOWS_EXTENSION_PATH "\\\\?\\"
+#define WINDOWS_UNC_EXTENSION_PATH "\\\\?\\UNC"
+
+//
+// Global data to store full file path. It is not required to be free.
+//
+CHAR8 mCommonLibFullPath[MAX_LONG_FILE_PATH];
+
+CHAR8 *
+LongFilePath (
+ IN CHAR8 *FileName
+ )
+/*++
+
+Routine Description:
+ Convert FileName to the long file path, which can support larger than 260
length.
+
+Arguments:
+ FileName - FileName.
+
+Returns:
+ LongFilePath A pointer to the converted long file path.
+
+--*/
+{
+#ifdef __GNUC__
+ //
+ // __GNUC__ may not be good way to differentiate unix and windows. Need more
investigation here.
+ // unix has no limitation on file path. Just return FileName.
+ //
+ return FileName;
+#else
+ CHAR8 *RootPath;
+ CHAR8 *PathPointer;
+ CHAR8 *NextPointer;
+
+ PathPointer = (CHAR8 *) FileName;
+
+ if (FileName != NULL) {
+ //
+ // Add the extension string first to support long file path.
+ //
+ mCommonLibFullPath[0] = 0;
+ strcpy (mCommonLibFullPath, WINDOWS_EXTENSION_PATH);
+
+ if (strlen (FileName) > 1 && FileName[0] == '\\' && FileName[1] == '\\') {
+ //
+ // network path like \\server\share to \\?\UNC\server\share
+ //
+ strcpy (mCommonLibFullPath, WINDOWS_UNC_EXTENSION_PATH);
+ FileName ++;
+ } else if (strlen (FileName) < 3 || FileName[1] != ':' || (FileName[2] !=
'\\' && FileName[2] != '/')) {
+ //
+ // Relative file path. Convert it to absolute path.
+ //
+ RootPath = getcwd (NULL, 0);
+ if (RootPath != NULL) {
+ strcat (mCommonLibFullPath, RootPath);
+ if (FileName[0] != '\\' && FileName[0] != '/') {
+ //
+ // Attach directory separator
+ //
+ strcat (mCommonLibFullPath, "\\");
+ }
+ free (RootPath);
+ }
+ }
+
+ //
+ // Construct the full file path
+ //
+ strcat (mCommonLibFullPath, FileName);
+
+ //
+ // Convert directory separator '/' to '\\'
+ //
+ PathPointer = (CHAR8 *) mCommonLibFullPath;
+ do {
+ if (*PathPointer == '/') {
+ *PathPointer = '\\';
+ }
+ } while (*PathPointer ++ != '\0');
+
+ //
+ // Convert "\\.\\" to "\\", because it doesn't work with
WINDOWS_EXTENSION_PATH.
+ //
+ while ((PathPointer = strstr (mCommonLibFullPath, "\\.\\")) != NULL) {
+ *PathPointer = '\0';
+ strcat (mCommonLibFullPath, PathPointer + 2);
+ }
+
+ //
+ // Convert "\\..\\" to last directory, because it doesn't work with
WINDOWS_EXTENSION_PATH.
+ //
+ while ((PathPointer = strstr (mCommonLibFullPath, "\\..\\")) != NULL) {
+ NextPointer = PathPointer + 3;
+ do {
+ PathPointer --;
+ } while (PathPointer > mCommonLibFullPath && *PathPointer != ':' &&
*PathPointer != '\\');
+
+ if (*PathPointer == '\\') {
+ //
+ // Skip one directory
+ //
+ *PathPointer = '\0';
+ strcat (mCommonLibFullPath, NextPointer);
+ } else {
+ //
+ // No directory is found. Just break.
+ //
+ break;
+ }
+ }
+
+ PathPointer = mCommonLibFullPath;
+ }
+
+ return PathPointer;
+#endif
+}
Modified: trunk/edk2/BaseTools/Source/C/Common/CommonLib.h
===================================================================
--- trunk/edk2/BaseTools/Source/C/Common/CommonLib.h 2014-08-14 20:42:40 UTC
(rev 15808)
+++ trunk/edk2/BaseTools/Source/C/Common/CommonLib.h 2014-08-15 03:06:48 UTC
(rev 15809)
@@ -1,6 +1,6 @@
/** @file
-Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2014, 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
@@ -25,6 +25,12 @@
#include <Common/UefiBaseTypes.h>
#include <Common/BuildVersion.h>
#define PRINTED_GUID_BUFFER_SIZE 37 // including null-termination
+
+#define MAX_LONG_FILE_PATH 500
+
+#ifdef __cplusplus
+extern "C" {
+#endif
//
// Function declarations
//
@@ -145,6 +151,27 @@
)
;
+CHAR8 *
+LongFilePath (
+ IN CHAR8 *FileName
+);
+/*++
+
+Routine Description:
+ Convert FileName to the long file path, which can support larger than 260
length.
+
+Arguments:
+ FileName - FileName.
+
+Returns:
+ LongFilePath A pointer to the converted long file path.
+
+--*/
+
+#ifdef __cplusplus
+}
+#endif
+
#define ASSERT(x) assert(x)
#ifdef __GNUC__
Modified: trunk/edk2/BaseTools/Source/C/Common/MemoryFile.h
===================================================================
--- trunk/edk2/BaseTools/Source/C/Common/MemoryFile.h 2014-08-14 20:42:40 UTC
(rev 15808)
+++ trunk/edk2/BaseTools/Source/C/Common/MemoryFile.h 2014-08-15 03:06:48 UTC
(rev 15809)
@@ -1,6 +1,6 @@
/** @file
-Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2014, 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
@@ -26,10 +26,6 @@
#include <stdlib.h>
#include <Common/UefiBaseTypes.h>
-#ifndef _MAX_PATH
-#define _MAX_PATH 500
-#endif
-
//
// Common data structures
//
Modified: trunk/edk2/BaseTools/Source/C/Common/OsPath.c
===================================================================
--- trunk/edk2/BaseTools/Source/C/Common/OsPath.c 2014-08-14 20:42:40 UTC
(rev 15808)
+++ trunk/edk2/BaseTools/Source/C/Common/OsPath.c 2014-08-15 03:06:48 UTC
(rev 15809)
@@ -1,6 +1,6 @@
/** @file
-Copyright (c) 2007 - 2008, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2007 - 2014, 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
@@ -22,6 +22,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include "CommonLib.h"
#include "OsPath.h"
//
@@ -294,7 +295,7 @@
--*/
{
FILE *InputFile;
- InputFile = fopen (InputFileName, "rb");
+ InputFile = fopen (LongFilePath (InputFileName), "rb");
if (InputFile == NULL) {
return FALSE;
} else {
Modified: trunk/edk2/BaseTools/Source/C/Common/ParseInf.c
===================================================================
--- trunk/edk2/BaseTools/Source/C/Common/ParseInf.c 2014-08-14 20:42:40 UTC
(rev 15808)
+++ trunk/edk2/BaseTools/Source/C/Common/ParseInf.c 2014-08-15 03:06:48 UTC
(rev 15809)
@@ -1,6 +1,6 @@
/** @file
-Copyright (c) 2004 - 2010, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2014, 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
@@ -25,6 +25,7 @@
#include <stdlib.h>
#include "EfiUtilityMsgs.h"
#include "ParseInf.h"
+#include "CommonLib.h"
CHAR8 *
ReadLine (
@@ -46,7 +47,7 @@
Arguments:
InputFile Memory file image.
- InputBuffer Buffer to read into, must be _MAX_PATH size.
+ InputBuffer Buffer to read into, must be MaxLength size.
MaxLength The maximum size of the input buffer.
Returns:
@@ -165,7 +166,7 @@
--*/
{
- CHAR8 InputBuffer[_MAX_PATH];
+ CHAR8 InputBuffer[MAX_LONG_FILE_PATH];
CHAR8 *CurrentToken;
//
@@ -188,7 +189,7 @@
//
// Read a line
//
- ReadLine (InputFile, InputBuffer, _MAX_PATH);
+ ReadLine (InputFile, InputBuffer, MAX_LONG_FILE_PATH);
//
// Check if the section is found
@@ -222,7 +223,7 @@
Section The section to search for, a string within [].
Token The token to search for, e.g. EFI_PEIM_RECOVERY, followed by an =
in the INF file.
Instance The instance of the token to search for. Zero is the first
instance.
- Value The string that holds the value following the =. Must be
_MAX_PATH in size.
+ Value The string that holds the value following the =. Must be
MAX_LONG_FILE_PATH in size.
Returns:
@@ -234,7 +235,7 @@
--*/
{
- CHAR8 InputBuffer[_MAX_PATH];
+ CHAR8 InputBuffer[MAX_LONG_FILE_PATH];
CHAR8 *CurrentToken;
CHAR8 *Delimiter;
BOOLEAN ParseError;
@@ -274,7 +275,7 @@
//
// Read a line from the file
//
- if (ReadLine (InputFile, InputBuffer, _MAX_PATH) == NULL) {
+ if (ReadLine (InputFile, InputBuffer, MAX_LONG_FILE_PATH) == NULL) {
//
// Error reading from input file
//
@@ -604,7 +605,7 @@
Arguments:
InputFile Stream pointer.
- InputBuffer Buffer to read into, must be _MAX_PATH size.
+ InputBuffer Buffer to read into, must be MAX_LONG_FILE_PATH size.
Returns:
@@ -624,7 +625,7 @@
//
// Read a line
//
- if (fgets (InputBuffer, _MAX_PATH, InputFile) == NULL) {
+ if (fgets (InputBuffer, MAX_LONG_FILE_PATH, InputFile) == NULL) {
return NULL;
}
//
@@ -670,7 +671,7 @@
--*/
{
- CHAR8 InputBuffer[_MAX_PATH];
+ CHAR8 InputBuffer[MAX_LONG_FILE_PATH];
CHAR8 *CurrentToken;
//
Modified: trunk/edk2/BaseTools/Source/C/Common/ParseInf.h
===================================================================
--- trunk/edk2/BaseTools/Source/C/Common/ParseInf.h 2014-08-14 20:42:40 UTC
(rev 15808)
+++ trunk/edk2/BaseTools/Source/C/Common/ParseInf.h 2014-08-15 03:06:48 UTC
(rev 15809)
@@ -1,6 +1,6 @@
/** @file
-Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2014, 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
@@ -27,10 +27,6 @@
#include <Common/UefiBaseTypes.h>
#include <MemoryFile.h>
-#ifndef _MAX_PATH
-#define _MAX_PATH 500
-#endif
-
#ifdef __cplusplus
extern "C" {
#endif
@@ -59,7 +55,7 @@
Arguments:
InputFile Memory file image.
- InputBuffer Buffer to read into, must be _MAX_PATH size.
+ InputBuffer Buffer to read into, must be MaxLength size.
MaxLength The maximum size of the input buffer.
Returns:
@@ -115,7 +111,7 @@
Section The section to search for, a string within [].
Token The token to search for, e.g. EFI_PEIM_RECOVERY, followed by an =
in the INF file.
Instance The instance of the token to search for. Zero is the first
instance.
- Value The string that holds the value following the =. Must be
_MAX_PATH in size.
+ Value The string that holds the value following the =. Must be
MAX_LONG_FILE_PATH in size.
Returns:
@@ -196,7 +192,7 @@
Arguments:
InputFile Stream pointer.
- InputBuffer Buffer to read into, must be _MAX_PATH size.
+ InputBuffer Buffer to read into, must be MAX_LONG_FILE_PATH size.
Returns:
Modified: trunk/edk2/BaseTools/Source/C/Common/SimpleFileParsing.c
===================================================================
--- trunk/edk2/BaseTools/Source/C/Common/SimpleFileParsing.c 2014-08-14
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/C/Common/SimpleFileParsing.c 2014-08-15
03:06:48 UTC (rev 15809)
@@ -1,6 +1,6 @@
/** @file
-Copyright (c) 2004 - 2008, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2014, 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
@@ -24,6 +24,7 @@
#include <stdlib.h>
#include <ctype.h>
+#include "CommonLib.h"
#include "EfiUtilityMsgs.h"
#include "SimpleFileParsing.h"
@@ -650,7 +651,7 @@
// Try to open the file locally, and if that fails try along our include
paths.
//
strcpy (FoundFileName, SourceFile->FileName);
- if ((SourceFile->Fptr = fopen (FoundFileName, "rb")) == NULL) {
+ if ((SourceFile->Fptr = fopen (LongFilePath (FoundFileName), "rb")) == NULL)
{
return STATUS_ERROR;
}
//
Modified: trunk/edk2/BaseTools/Source/C/EfiLdrImage/EfiLdrImage.c
===================================================================
--- trunk/edk2/BaseTools/Source/C/EfiLdrImage/EfiLdrImage.c 2014-08-14
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/C/EfiLdrImage/EfiLdrImage.c 2014-08-15
03:06:48 UTC (rev 15809)
@@ -1,6 +1,6 @@
/** @file
-Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2006 - 2014, 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
@@ -84,7 +84,7 @@
--*/
{
printf ("%s v%d.%d %s -Utility to break a file into two pieces at the
request offset.\n", UTILITY_NAME, UTILITY_MAJOR_VERSION, UTILITY_MINOR_VERSION,
__BUILD_VERSION);
- printf ("Copyright (c) 1999-2010 Intel Corporation. All rights reserved.\n");
+ printf ("Copyright (c) 1999-2014 Intel Corporation. All rights reserved.\n");
}
VOID
@@ -270,7 +270,7 @@
return STATUS_ERROR;
}
- fpOut = fopen(OutputFileName, "w+b");
+ fpOut = fopen (LongFilePath (OutputFileName), "w+b");
if (!fpOut) {
Error (NULL, 0, 0001, "Could not open output file", OutputFileName);
return STATUS_ERROR;
@@ -294,7 +294,7 @@
//
// Copy the content of PeImage file to output file
//
- fpIn = fopen (InputFileNames[i], "rb");
+ fpIn = fopen (LongFilePath (InputFileNames[i]), "rb");
if (!fpIn) {
Error (NULL, 0, 0001, "Could not open input file", InputFileNames[i]);
fclose (fpOut);
Modified: trunk/edk2/BaseTools/Source/C/EfiRom/EfiRom.c
===================================================================
--- trunk/edk2/BaseTools/Source/C/EfiRom/EfiRom.c 2014-08-14 20:42:40 UTC
(rev 15808)
+++ trunk/edk2/BaseTools/Source/C/EfiRom/EfiRom.c 2014-08-15 03:06:48 UTC
(rev 15809)
@@ -1,6 +1,6 @@
/** @file
-Copyright (c) 1999 - 2013, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 1999 - 2014, 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
@@ -135,7 +135,7 @@
//
// Now open our output file
//
- if ((FptrOut = fopen (mOptions.OutFileName, "wb")) == NULL) {
+ if ((FptrOut = fopen (LongFilePath (mOptions.OutFileName), "wb")) == NULL) {
Error (NULL, 0, 0001, "Error opening file", "Error opening file %s",
mOptions.OutFileName);
goto BailOut;
}
@@ -246,7 +246,7 @@
//
// Try to open the input file
//
- if ((InFptr = fopen (InFile->FileName, "rb")) == NULL) {
+ if ((InFptr = fopen (LongFilePath (InFile->FileName), "rb")) == NULL) {
Error (NULL, 0, 0001, "Error opening file", InFile->FileName);
return STATUS_ERROR;
}
@@ -460,7 +460,7 @@
//
// Try to open the input file
//
- if ((InFptr = fopen (InFile->FileName, "rb")) == NULL) {
+ if ((InFptr = fopen (LongFilePath (InFile->FileName), "rb")) == NULL) {
Error (NULL, 0, 0001, "Open file error", "Error opening file: %s",
InFile->FileName);
return STATUS_ERROR;
}
@@ -1230,7 +1230,7 @@
//
// Copyright declaration
//
- fprintf (stdout, "Copyright (c) 2007 - 2013, Intel Corporation. All rights
reserved.\n\n");
+ fprintf (stdout, "Copyright (c) 2007 - 2014, Intel Corporation. All rights
reserved.\n\n");
//
// Details Option
@@ -1300,7 +1300,7 @@
//
// Open the input file
//
- if ((InFptr = fopen (InFile->FileName, "rb")) == NULL) {
+ if ((InFptr = fopen (LongFilePath (InFile->FileName), "rb")) == NULL) {
Error (NULL, 0, 0001, "Error opening file", InFile->FileName);
return ;
}
Modified: trunk/edk2/BaseTools/Source/C/GenBootSector/GenBootSector.c
===================================================================
--- trunk/edk2/BaseTools/Source/C/GenBootSector/GenBootSector.c 2014-08-14
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/C/GenBootSector/GenBootSector.c 2014-08-15
03:06:48 UTC (rev 15809)
@@ -1,6 +1,6 @@
/** @file
-Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2006 - 2014, 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
@@ -632,7 +632,7 @@
//
// If path is file path, check whether file is valid.
//
- f = fopen (PathInfo->Path, "r");
+ f = fopen (LongFilePath (PathInfo->Path), "r");
if (f == NULL) {
fprintf (stderr, "error E2003: File was not provided!\n");
return ErrorPath;
Modified: trunk/edk2/BaseTools/Source/C/GenCrc32/GenCrc32.c
===================================================================
--- trunk/edk2/BaseTools/Source/C/GenCrc32/GenCrc32.c 2014-08-14 20:42:40 UTC
(rev 15808)
+++ trunk/edk2/BaseTools/Source/C/GenCrc32/GenCrc32.c 2014-08-15 03:06:48 UTC
(rev 15809)
@@ -1,6 +1,6 @@
/** @file
-Copyright (c) 2007 - 2013, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2007 - 2014, 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
@@ -282,7 +282,7 @@
//
// Open Input file and read file data.
//
- InFile = fopen (InputFileName, "rb");
+ InFile = fopen (LongFilePath (InputFileName), "rb");
if (InFile == NULL) {
Error (NULL, 0, 0001, "Error opening file", InputFileName);
return STATUS_ERROR;
@@ -305,7 +305,7 @@
//
// Open output file
//
- OutFile = fopen (OutputFileName, "wb");
+ OutFile = fopen (LongFilePath (OutputFileName), "wb");
if (OutFile == NULL) {
Error (NULL, 0, 0001, "Error opening file", OutputFileName);
goto Finish;
Modified: trunk/edk2/BaseTools/Source/C/GenFfs/GenFfs.c
===================================================================
--- trunk/edk2/BaseTools/Source/C/GenFfs/GenFfs.c 2014-08-14 20:42:40 UTC
(rev 15808)
+++ trunk/edk2/BaseTools/Source/C/GenFfs/GenFfs.c 2014-08-15 03:06:48 UTC
(rev 15809)
@@ -1,6 +1,6 @@
/**
-Copyright (c) 2004 - 2013, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2014, 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
@@ -119,7 +119,7 @@
//
// Copyright declaration
//
- fprintf (stdout, "Copyright (c) 2007 - 2013, Intel Corporation. All rights
reserved.\n\n");
+ fprintf (stdout, "Copyright (c) 2007 - 2014, Intel Corporation. All rights
reserved.\n\n");
//
// Details Option
@@ -317,7 +317,7 @@
//
// Open file and read contents
//
- InFile = fopen (InputFileName[Index], "rb");
+ InFile = fopen (LongFilePath (InputFileName[Index]), "rb");
if (InFile == NULL) {
Error (NULL, 0, 0001, "Error opening file", InputFileName[Index]);
return EFI_ABORTED;
Modified: trunk/edk2/BaseTools/Source/C/GenFv/GenFv.c
===================================================================
--- trunk/edk2/BaseTools/Source/C/GenFv/GenFv.c 2014-08-14 20:42:40 UTC (rev
15808)
+++ trunk/edk2/BaseTools/Source/C/GenFv/GenFv.c 2014-08-15 03:06:48 UTC (rev
15809)
@@ -1,6 +1,6 @@
/** @file
-Copyright (c) 2007 - 2013, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2007 - 2014, 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
@@ -97,7 +97,7 @@
//
// Copyright declaration
//
- fprintf (stdout, "Copyright (c) 2007 - 2013, Intel Corporation. All rights
reserved.\n\n");
+ fprintf (stdout, "Copyright (c) 2007 - 2014, Intel Corporation. All rights
reserved.\n\n");
//
// Details Option
@@ -603,7 +603,7 @@
if (OutFileName == NULL) {
FpFile = stdout;
} else {
- FpFile = fopen (OutFileName, "w");
+ FpFile = fopen (LongFilePath (OutFileName), "w");
if (FpFile == NULL) {
Error (NULL, 0, 0001, "Error opening file", OutFileName);
return STATUS_ERROR;
@@ -672,7 +672,7 @@
// update boot driver address and runtime driver address in address file
//
if (Status == EFI_SUCCESS && AddrFileName != NULL && mFvBaseAddressNumber >
0) {
- FpFile = fopen (AddrFileName, "w");
+ FpFile = fopen (LongFilePath (AddrFileName), "w");
if (FpFile == NULL) {
Error (NULL, 0, 0001, "Error opening file", AddrFileName);
return STATUS_ERROR;
Modified: trunk/edk2/BaseTools/Source/C/GenFv/GenFvInternalLib.c
===================================================================
--- trunk/edk2/BaseTools/Source/C/GenFv/GenFvInternalLib.c 2014-08-14
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/C/GenFv/GenFvInternalLib.c 2014-08-15
03:06:48 UTC (rev 15809)
@@ -1,6 +1,6 @@
/** @file
-Copyright (c) 2004 - 2013, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2014, Intel Corporation. All rights reserved.<BR>
Portions Copyright (c) 2011 - 2013, ARM Ltd. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD
License
@@ -187,7 +187,7 @@
EFI_NOT_FOUND A required string was not found in the INF file.
--*/
{
- CHAR8 Value[_MAX_PATH];
+ CHAR8 Value[MAX_LONG_FILE_PATH];
UINT64 Value64;
UINTN Index;
UINTN Number;
@@ -730,7 +730,7 @@
--*/
{
- CHAR8 PeMapFileName [_MAX_PATH];
+ CHAR8 PeMapFileName [MAX_LONG_FILE_PATH];
CHAR8 *Cptr, *Cptr2;
CHAR8 FileGuidName [MAX_LINE_LEN];
FILE *PeMapFile;
@@ -866,7 +866,7 @@
//
// Open PeMapFile
//
- PeMapFile = fopen (PeMapFileName, "r");
+ PeMapFile = fopen (LongFilePath (PeMapFileName), "r");
if (PeMapFile == NULL) {
// fprintf (stdout, "can't open %s file to reading\n", PeMapFileName);
return EFI_ABORTED;
@@ -992,7 +992,7 @@
//
// Read the file to add
//
- NewFile = fopen (FvInfo->FvFiles[Index], "rb");
+ NewFile = fopen (LongFilePath (FvInfo->FvFiles[Index]), "rb");
if (NewFile == NULL) {
Error (NULL, 0, 0001, "Error opening file", FvInfo->FvFiles[Index]);
@@ -2077,12 +2077,12 @@
UINT8 *FvImage;
UINTN FvImageSize;
FILE *FvFile;
- CHAR8 FvMapName [_MAX_PATH];
+ CHAR8 FvMapName [MAX_LONG_FILE_PATH];
FILE *FvMapFile;
EFI_FIRMWARE_VOLUME_EXT_HEADER *FvExtHeader;
FILE *FvExtHeaderFile;
UINTN FileSize;
- CHAR8 FvReportName[_MAX_PATH];
+ CHAR8 FvReportName[MAX_LONG_FILE_PATH];
FILE *FvReportFile;
FvBufferHeader = NULL;
@@ -2152,7 +2152,7 @@
//
// Open the FV Extension Header file
//
- FvExtHeaderFile = fopen (mFvDataInfo.FvExtHeaderFile, "rb");
+ FvExtHeaderFile = fopen (LongFilePath (mFvDataInfo.FvExtHeaderFile), "rb");
//
// Get the file size
@@ -2343,7 +2343,7 @@
//
// Open FvMap file
//
- FvMapFile = fopen (FvMapName, "w");
+ FvMapFile = fopen (LongFilePath (FvMapName), "w");
if (FvMapFile == NULL) {
Error (NULL, 0, 0001, "Error opening file", FvMapName);
return EFI_ABORTED;
@@ -2352,7 +2352,7 @@
//
// Open FvReport file
//
- FvReportFile = fopen(FvReportName, "w");
+ FvReportFile = fopen (LongFilePath (FvReportName), "w");
if (FvReportFile == NULL) {
Error (NULL, 0, 0001, "Error opening file", FvReportName);
return EFI_ABORTED;
@@ -2484,7 +2484,7 @@
//
// Write fv file
//
- FvFile = fopen (FvFileName, "wb");
+ FvFile = fopen (LongFilePath (FvFileName), "wb");
if (FvFile == NULL) {
Error (NULL, 0, 0001, "Error opening file", FvFileName);
Status = EFI_ABORTED;
@@ -2651,7 +2651,7 @@
// Calculate PI extension header
//
if (mFvDataInfo.FvExtHeaderFile[0] != '\0') {
- fpin = fopen (mFvDataInfo.FvExtHeaderFile, "rb");
+ fpin = fopen (LongFilePath (mFvDataInfo.FvExtHeaderFile), "rb");
if (fpin == NULL) {
Error (NULL, 0, 0001, "Error opening file", mFvDataInfo.FvExtHeaderFile);
return EFI_ABORTED;
@@ -2678,7 +2678,7 @@
// Open FFS file
//
fpin = NULL;
- fpin = fopen (FvInfoPtr->FvFiles[Index], "rb");
+ fpin = fopen (LongFilePath (FvInfoPtr->FvFiles[Index]), "rb");
if (fpin == NULL) {
Error (NULL, 0, 0001, "Error opening file", FvInfoPtr->FvFiles[Index]);
return EFI_ABORTED;
@@ -2915,7 +2915,7 @@
EFI_TE_IMAGE_HEADER *TEImageHeader;
UINT8 *MemoryImagePointer;
EFI_IMAGE_SECTION_HEADER *SectionHeader;
- CHAR8 PeFileName [_MAX_PATH];
+ CHAR8 PeFileName [MAX_LONG_FILE_PATH];
CHAR8 *Cptr;
FILE *PeFile;
UINT8 *PeFileBuffer;
@@ -3066,7 +3066,7 @@
*(Cptr + 3) = 'i';
*(Cptr + 4) = '\0';
}
- PeFile = fopen (PeFileName, "rb");
+ PeFile = fopen (LongFilePath (PeFileName), "rb");
if (PeFile == NULL) {
Warning (NULL, 0, 0, "Invalid", "The file %s has no .reloc
section.", FileName);
//Error (NULL, 0, 3000, "Invalid", "The file %s has no .reloc
section.", FileName);
@@ -3322,7 +3322,7 @@
*(Cptr + 4) = '\0';
}
- PeFile = fopen (PeFileName, "rb");
+ PeFile = fopen (LongFilePath (PeFileName), "rb");
if (PeFile == NULL) {
Warning (NULL, 0, 0, "Invalid", "The file %s has no .reloc section.",
FileName);
//Error (NULL, 0, 3000, "Invalid", "The file %s has no .reloc
section.", FileName);
@@ -3567,7 +3567,7 @@
EFI_NOT_FOUND A required string was not found in the INF file.
--*/
{
- CHAR8 Value[_MAX_PATH];
+ CHAR8 Value[MAX_LONG_FILE_PATH];
UINT64 Value64;
UINTN Index, Number;
EFI_STATUS Status;
@@ -3773,7 +3773,7 @@
FileSize = 0;
CapSize = mCapDataInfo.HeaderSize;
while (mCapDataInfo.CapFiles [Index][0] != '\0') {
- fpin = fopen (mCapDataInfo.CapFiles[Index], "rb");
+ fpin = fopen (LongFilePath (mCapDataInfo.CapFiles[Index]), "rb");
if (fpin == NULL) {
Error (NULL, 0, 0001, "Error opening file",
mCapDataInfo.CapFiles[Index]);
return EFI_ABORTED;
@@ -3811,7 +3811,7 @@
FileSize = 0;
CapSize = CapsuleHeader->HeaderSize;
while (mCapDataInfo.CapFiles [Index][0] != '\0') {
- fpin = fopen (mCapDataInfo.CapFiles[Index], "rb");
+ fpin = fopen (LongFilePath (mCapDataInfo.CapFiles[Index]), "rb");
if (fpin == NULL) {
Error (NULL, 0, 0001, "Error opening file",
mCapDataInfo.CapFiles[Index]);
free (CapBuffer);
@@ -3827,7 +3827,7 @@
//
// write capsule data into the output file
//
- fpout = fopen (CapFileName, "wb");
+ fpout = fopen (LongFilePath (CapFileName), "wb");
if (fpout == NULL) {
Error (NULL, 0, 0001, "Error opening file", CapFileName);
free (CapBuffer);
Modified: trunk/edk2/BaseTools/Source/C/GenFv/GenFvInternalLib.h
===================================================================
--- trunk/edk2/BaseTools/Source/C/GenFv/GenFvInternalLib.h 2014-08-14
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/C/GenFv/GenFvInternalLib.h 2014-08-15
03:06:48 UTC (rev 15809)
@@ -1,6 +1,6 @@
/** @file
-Copyright (c) 2004 - 2013, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2014, 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
@@ -214,7 +214,7 @@
//
typedef struct {
UINTN Size;
- CHAR8 ComponentName[_MAX_PATH];
+ CHAR8 ComponentName[MAX_LONG_FILE_PATH];
} COMPONENT_INFO;
//
@@ -227,12 +227,12 @@
BOOLEAN FvFileSystemGuidSet;
EFI_GUID FvNameGuid;
BOOLEAN FvNameGuidSet;
- CHAR8 FvExtHeaderFile[_MAX_PATH];
+ CHAR8 FvExtHeaderFile[MAX_LONG_FILE_PATH];
UINTN Size;
EFI_FVB_ATTRIBUTES_2 FvAttributes;
- CHAR8 FvName[_MAX_PATH];
+ CHAR8 FvName[MAX_LONG_FILE_PATH];
EFI_FV_BLOCK_MAP_ENTRY FvBlocks[MAX_NUMBER_OF_FV_BLOCKS];
- CHAR8 FvFiles[MAX_NUMBER_OF_FILES_IN_FV][_MAX_PATH];
+ CHAR8
FvFiles[MAX_NUMBER_OF_FILES_IN_FV][MAX_LONG_FILE_PATH];
UINT32 SizeofFvFiles[MAX_NUMBER_OF_FILES_IN_FV];
BOOLEAN IsPiFvImage;
INT8 ForceRebase;
@@ -242,8 +242,8 @@
EFI_GUID CapGuid;
UINT32 HeaderSize;
UINT32 Flags;
- CHAR8 CapName[_MAX_PATH];
- CHAR8 CapFiles[MAX_NUMBER_OF_FILES_IN_CAP][_MAX_PATH];
+ CHAR8 CapName[MAX_LONG_FILE_PATH];
+ CHAR8
CapFiles[MAX_NUMBER_OF_FILES_IN_CAP][MAX_LONG_FILE_PATH];
} CAP_INFO;
#pragma pack(1)
Modified: trunk/edk2/BaseTools/Source/C/GenFw/GenFw.c
===================================================================
--- trunk/edk2/BaseTools/Source/C/GenFw/GenFw.c 2014-08-14 20:42:40 UTC (rev
15808)
+++ trunk/edk2/BaseTools/Source/C/GenFw/GenFw.c 2014-08-15 03:06:48 UTC (rev
15809)
@@ -1,6 +1,6 @@
/** @file
-Copyright (c) 2004 - 2011, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2014, 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
@@ -66,10 +66,6 @@
#define DEFAULT_MC_PAD_BYTE_VALUE 0xFF
#define DEFAULT_MC_ALIGNMENT 16
-#ifndef _MAX_PATH
-#define _MAX_PATH 500
-#endif
-
#define STATUS_IGNORE 0xA
//
// Structure definition for a microcode header
@@ -179,7 +175,7 @@
//
// Copyright declaration
//
- fprintf (stdout, "Copyright (c) 2007 - 2010, Intel Corporation. All rights
reserved.\n\n");
+ fprintf (stdout, "Copyright (c) 2007 - 2014, Intel Corporation. All rights
reserved.\n\n");
//
// Details Option
@@ -1559,7 +1555,7 @@
// Open output file and Write image into the output file.
//
if (OutImageName != NULL) {
- fpOut = fopen (OutImageName, "rb");
+ fpOut = fopen (LongFilePath (OutImageName), "rb");
if (fpOut != NULL) {
//
// Get Output file time stamp
@@ -1590,7 +1586,7 @@
//
// Open input file and read file data into file buffer.
//
- fpIn = fopen (mInImageName, "rb");
+ fpIn = fopen (LongFilePath (mInImageName), "rb");
if (fpIn == NULL) {
Error (NULL, 0, 0001, "Error opening file", mInImageName);
goto Finish;
@@ -1621,7 +1617,7 @@
//
// Open output file handle.
//
- fpOut = fopen (OutImageName, "wb");
+ fpOut = fopen (LongFilePath (OutImageName), "wb");
if (!fpOut) {
Error (NULL, 0, 0001, "Error opening output file", OutImageName);
goto Finish;
@@ -1631,7 +1627,7 @@
//
HiiPackageListHeader.PackageLength = sizeof (EFI_HII_PACKAGE_LIST_HEADER);
for (Index = 0; Index < InputFileNum; Index ++) {
- fpIn = fopen (InputFileName [Index], "rb");
+ fpIn = fopen (LongFilePath (InputFileName [Index]), "rb");
if (fpIn == NULL) {
Error (NULL, 0, 0001, "Error opening file", InputFileName [Index]);
goto Finish;
@@ -1677,7 +1673,7 @@
memcpy (HiiPackageListBuffer, &HiiPackageListHeader, sizeof
(HiiPackageListHeader));
HiiPackageDataPointer = HiiPackageListBuffer + sizeof
(HiiPackageListHeader);
for (Index = 0; Index < InputFileNum; Index ++) {
- fpIn = fopen (InputFileName [Index], "rb");
+ fpIn = fopen (LongFilePath (InputFileName [Index]), "rb");
if (fpIn == NULL) {
Error (NULL, 0, 0001, "Error opening file", InputFileName [Index]);
free (HiiPackageListBuffer);
@@ -1757,13 +1753,13 @@
//
// Open output file handle.
//
- fpOut = fopen (OutImageName, "wb");
+ fpOut = fopen (LongFilePath (OutImageName), "wb");
if (!fpOut) {
Error (NULL, 0, 0001, "Error opening output file", OutImageName);
goto Finish;
}
for (Index = 0; Index < InputFileNum; Index ++) {
- fpIn = fopen (InputFileName [Index], "rb");
+ fpIn = fopen (LongFilePath (InputFileName [Index]), "rb");
if (!fpIn) {
Error (NULL, 0, 0001, "Error opening file", InputFileName [Index]);
goto Finish;
@@ -1805,7 +1801,7 @@
// Convert MicroCode.txt file to MicroCode.bin file
//
if (mOutImageType == FW_MCI_IMAGE) {
- fpIn = fopen (mInImageName, "r");
+ fpIn = fopen (LongFilePath (mInImageName), "r");
if (fpIn == NULL) {
Error (NULL, 0, 0001, "Error opening file", mInImageName);
goto Finish;
@@ -1928,14 +1924,14 @@
// Open the output file handle.
//
if (ReplaceFlag) {
- fpInOut = fopen (mInImageName, "wb");
+ fpInOut = fopen (LongFilePath (mInImageName), "wb");
if (fpInOut == NULL) {
Error (NULL, 0, 0001, "Error opening file", mInImageName);
goto Finish;
}
} else {
if (OutImageName != NULL) {
- fpOut = fopen (OutImageName, "wb");
+ fpOut = fopen (LongFilePath (OutImageName), "wb");
} else {
fpOut = stdout;
}
@@ -2641,7 +2637,7 @@
//
// Update File when File is changed.
//
- fpInOut = fopen (mInImageName, "wb");
+ fpInOut = fopen (LongFilePath (mInImageName), "wb");
if (fpInOut == NULL) {
Error (NULL, 0, 0001, "Error opening file", mInImageName);
goto Finish;
@@ -2654,7 +2650,7 @@
//
// Update File when File is changed or File is old.
//
- fpOut = fopen (OutImageName, "wb");
+ fpOut = fopen (LongFilePath (OutImageName), "wb");
if (fpOut == NULL) {
Error (NULL, 0, 0001, "Error opening output file", OutImageName);
goto Finish;
@@ -2696,7 +2692,7 @@
if (OutputFileBuffer == NULL) {
remove (OutImageName);
} else {
- fpOut = fopen (OutImageName, "wb");
+ fpOut = fopen (LongFilePath (OutImageName), "wb");
fwrite (OutputFileBuffer, 1, OutputFileLength, fpOut);
fclose (fpOut);
}
@@ -2722,7 +2718,7 @@
if (ReportFileName != NULL) {
strcpy (ReportFileName, OutImageName);
strcpy (ReportFileName + (FileLen - 4), ".txt");
- ReportFile = fopen (ReportFileName, "w+");
+ ReportFile = fopen (LongFilePath (ReportFileName), "w+");
if (ReportFile != NULL) {
fprintf (ReportFile, "MODULE_SIZE = %u\n", (unsigned) mImageSize);
fprintf (ReportFile, "TIME_STAMP = %u\n", (unsigned) mImageTimeStamp);
Modified: trunk/edk2/BaseTools/Source/C/GenPage/GenPage.c
===================================================================
--- trunk/edk2/BaseTools/Source/C/GenPage/GenPage.c 2014-08-14 20:42:40 UTC
(rev 15808)
+++ trunk/edk2/BaseTools/Source/C/GenPage/GenPage.c 2014-08-15 03:06:48 UTC
(rev 15809)
@@ -1,6 +1,6 @@
/** @file
-Copyright (c) 2006 - 2013, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2006 - 2014, 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
@@ -243,13 +243,13 @@
//
// Open files
//
- PageFile = fopen (PageFileName, "w+b");
+ PageFile = fopen (LongFilePath (PageFileName), "w+b");
if (PageFile == NULL) {
Error (NoPageFileName, 0, 0x4002, "Invalid parameter option", "Output File
%s open failure", PageFileName);
return -1;
}
- NoPageFile = fopen (NoPageFileName, "r+b");
+ NoPageFile = fopen (LongFilePath (NoPageFileName), "r+b");
if (NoPageFile == NULL) {
Error (NoPageFileName, 0, 0x4002, "Invalid parameter option", "Input File
%s open failure", NoPageFileName);
fclose (PageFile);
Modified: trunk/edk2/BaseTools/Source/C/GenSec/GenSec.c
===================================================================
--- trunk/edk2/BaseTools/Source/C/GenSec/GenSec.c 2014-08-14 20:42:40 UTC
(rev 15808)
+++ trunk/edk2/BaseTools/Source/C/GenSec/GenSec.c 2014-08-15 03:06:48 UTC
(rev 15809)
@@ -1,6 +1,6 @@
/** @file
-Copyright (c) 2004 - 2013, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2014, 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
@@ -153,7 +153,7 @@
//
// Copyright declaration
//
- fprintf (stdout, "Copyright (c) 2007 - 2013, Intel Corporation. All rights
reserved.\n\n");
+ fprintf (stdout, "Copyright (c) 2007 - 2014, Intel Corporation. All rights
reserved.\n\n");
//
// Details Option
@@ -283,7 +283,7 @@
//
// Open the input file
//
- InFile = fopen (InputFileName[0], "rb");
+ InFile = fopen (LongFilePath (InputFileName[0]), "rb");
if (InFile == NULL) {
Error (NULL, 0, 0001, "Error opening file", InputFileName[0]);
return STATUS_ERROR;
@@ -473,7 +473,7 @@
//
// Open file and read contents
//
- InFile = fopen (InputFileName[Index], "rb");
+ InFile = fopen (LongFilePath (InputFileName[Index]), "rb");
if (InFile == NULL) {
Error (NULL, 0, 0001, "Error opening file", InputFileName[Index]);
return EFI_ABORTED;
@@ -1553,7 +1553,7 @@
//
// Write the output file
//
- OutFile = fopen (OutputFileName, "wb");
+ OutFile = fopen (LongFilePath (OutputFileName), "wb");
if (OutFile == NULL) {
Error (NULL, 0, 0001, "Error opening file for writing", OutputFileName);
goto Finish;
Modified: trunk/edk2/BaseTools/Source/C/GenVtf/GenVtf.c
===================================================================
--- trunk/edk2/BaseTools/Source/C/GenVtf/GenVtf.c 2014-08-14 20:42:40 UTC
(rev 15808)
+++ trunk/edk2/BaseTools/Source/C/GenVtf/GenVtf.c 2014-08-15 03:06:48 UTC
(rev 15809)
@@ -1,6 +1,6 @@
/**
-Copyright (c) 1999 - 2011, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 1999 - 2014, 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
@@ -1070,7 +1070,7 @@
CHAR8 Buff5[10];
CHAR8 Token[50];
- Fp = fopen (VtfInfo->CompSymName, "rb");
+ Fp = fopen (LongFilePath (VtfInfo->CompSymName), "rb");
if (Fp == NULL) {
Error (NULL, 0, 0001, "Error opening file", VtfInfo->CompSymName);
@@ -1152,7 +1152,7 @@
return EFI_SUCCESS;
}
- Fp = fopen (VtfInfo->CompBinName, "rb");
+ Fp = fopen (LongFilePath (VtfInfo->CompBinName), "rb");
if (Fp == NULL) {
Error (NULL, 0, 0001, "Error opening file", VtfInfo->CompBinName);
@@ -1332,7 +1332,7 @@
FILE *Fp;
FIT_TABLE *PalFitPtr;
- Fp = fopen (VtfInfo->CompBinName, "rb");
+ Fp = fopen (LongFilePath (VtfInfo->CompBinName), "rb");
if (Fp == NULL) {
Error (NULL, 0, 0001, "Error opening file", VtfInfo->CompBinName);
@@ -1551,7 +1551,7 @@
VtfBuffer = (VOID *) RelativeAddress;
}
- Fp = fopen (FileName, "wb");
+ Fp = fopen (LongFilePath (FileName), "wb");
if (Fp == NULL) {
Error (NULL, 0, 0001, "Error opening file", FileName);
return EFI_ABORTED;
@@ -1763,7 +1763,7 @@
return EFI_INVALID_PARAMETER;
}
- Fp = fopen (FileName, "rb");
+ Fp = fopen (LongFilePath (FileName), "rb");
if (Fp == NULL) {
Error (NULL, 0, 0001, "Error opening file", FileName);
@@ -2125,7 +2125,7 @@
}
*StartAddressPtr = StartAddress;
- Fp = fopen (OutFileName1, "rb");
+ Fp = fopen (LongFilePath (OutFileName1), "rb");
if (Fp == NULL) {
Error (NULL, 0, 0001, "Error opening file", OutFileName1);
@@ -2183,12 +2183,12 @@
{
FILE *SourceFile;
FILE *DestFile;
- CHAR8 Buffer[_MAX_PATH];
- CHAR8 Type[_MAX_PATH];
- CHAR8 Address[_MAX_PATH];
- CHAR8 Section[_MAX_PATH];
- CHAR8 Token[_MAX_PATH];
- CHAR8 BaseToken[_MAX_PATH];
+ CHAR8 Buffer[MAX_LONG_FILE_PATH];
+ CHAR8 Type[MAX_LONG_FILE_PATH];
+ CHAR8 Address[MAX_LONG_FILE_PATH];
+ CHAR8 Section[MAX_LONG_FILE_PATH];
+ CHAR8 Token[MAX_LONG_FILE_PATH];
+ CHAR8 BaseToken[MAX_LONG_FILE_PATH];
UINT64 TokenAddress;
long StartLocation;
@@ -2202,7 +2202,7 @@
//
// Open the source file
//
- SourceFile = fopen (SourceFileName, "r");
+ SourceFile = fopen (LongFilePath (SourceFileName), "r");
if (SourceFile == NULL) {
//
@@ -2221,7 +2221,7 @@
//
// Open the destination file
//
- DestFile = fopen (DestFileName, "a+");
+ DestFile = fopen (LongFilePath (DestFileName), "a+");
if (DestFile == NULL) {
fclose (SourceFile);
Error (NULL, 0, 0001, "Error opening file", DestFileName);
@@ -2252,7 +2252,7 @@
//
// Read the first line
//
- if (fgets (Buffer, _MAX_PATH, SourceFile) == NULL) {
+ if (fgets (Buffer, MAX_LONG_FILE_PATH, SourceFile) == NULL) {
Buffer[0] = 0;
}
@@ -2410,7 +2410,7 @@
//
// Copyright declaration
//
- fprintf (stdout, "Copyright (c) 2007 - 2010, Intel Corporation. All rights
reserved.\n\n");
+ fprintf (stdout, "Copyright (c) 2007 - 2014, Intel Corporation. All rights
reserved.\n\n");
//
// Details Option
//
@@ -2546,7 +2546,7 @@
// Get the input VTF file name
//
VtfFileName = argv[Index+1];
- VtfFP = fopen(VtfFileName, "rb");
+ VtfFP = fopen (LongFilePath (VtfFileName), "rb");
if (VtfFP == NULL) {
Error (NULL, 0, 0001, "Error opening file", VtfFileName);
goto ERROR;
Modified: trunk/edk2/BaseTools/Source/C/GnuGenBootSector/GnuGenBootSector.c
===================================================================
--- trunk/edk2/BaseTools/Source/C/GnuGenBootSector/GnuGenBootSector.c
2014-08-14 20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/C/GnuGenBootSector/GnuGenBootSector.c
2014-08-15 03:06:48 UTC (rev 15809)
@@ -1,6 +1,6 @@
/** @file
-Copyright (c) 2006 - 2011, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2006 - 2014, 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
@@ -153,7 +153,7 @@
}
// Try to open the device.
- f = fopen(PathInfo->Path,"r");
+ f = fopen (LongFilePath (PathInfo->Path),"r");
if (f == NULL) {
printf ("error :open device failed!\n");
return ErrorPath;
@@ -167,7 +167,7 @@
if (PathInfo->Input) {
// If path is file path, check whether file is valid.
printf("Path = %s\n",PathInfo->Path);
- f = fopen (PathInfo->Path, "r");
+ f = fopen (LongFilePath (PathInfo->Path), "r");
if (f == NULL) {
fprintf (stderr, "Test error E2003: File was not provided!\n");
return ErrorPath;
@@ -211,7 +211,7 @@
FILE *OutputFile;
- InputFile = fopen(InputInfo->PhysicalPath, "r");
+ InputFile = fopen (LongFilePath (InputInfo->PhysicalPath), "r");
if (InputFile == NULL) {
return ErrorFileReadWrite;
}
@@ -235,9 +235,9 @@
}
//Process Floppy Disk
- OutputFile = fopen(OutputInfo->PhysicalPath, "r+");
+ OutputFile = fopen (LongFilePath (OutputInfo->PhysicalPath), "r+");
if (OutputFile == NULL) {
- OutputFile = fopen(OutputInfo->PhysicalPath, "w");
+ OutputFile = fopen (LongFilePath (OutputInfo->PhysicalPath), "w");
if (OutputFile == NULL) {
return ErrorFileReadWrite;
}
@@ -276,7 +276,7 @@
)
{
printf ("%s v%d.%d %s-Utility to retrieve and update the boot sector or
MBR.\n", UTILITY_NAME, UTILITY_MAJOR_VERSION, UTILITY_MINOR_VERSION,
__BUILD_VERSION);
- printf ("Copyright (c) 2007-2010 Intel Corporation. All rights reserved.\n");
+ printf ("Copyright (c) 2007-2014 Intel Corporation. All rights reserved.\n");
}
Modified: trunk/edk2/BaseTools/Source/C/Split/Split.c
===================================================================
--- trunk/edk2/BaseTools/Source/C/Split/Split.c 2014-08-14 20:42:40 UTC (rev
15808)
+++ trunk/edk2/BaseTools/Source/C/Split/Split.c 2014-08-15 03:06:48 UTC (rev
15809)
@@ -2,7 +2,7 @@
Split a file into two pieces at the request offset.
-Copyright (c) 1999 - 2011, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 1999 - 2014, 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
@@ -58,7 +58,7 @@
--*/
{
printf ("%s v%d.%d %s -Utility to break a file into two pieces at the
request offset.\n", UTILITY_NAME, UTILITY_MAJOR_VERSION, UTILITY_MINOR_VERSION,
__BUILD_VERSION);
- printf ("Copyright (c) 1999-2010 Intel Corporation. All rights reserved.\n");
+ printf ("Copyright (c) 1999-2014 Intel Corporation. All rights reserved.\n");
}
void
@@ -348,7 +348,7 @@
return STATUS_ERROR;
}
- In = fopen (InputFileName, "rb");
+ In = fopen (LongFilePath (InputFileName), "rb");
if (In == NULL) {
// ("Unable to open file \"%s\"\n", InputFileName);
Error (InputFileName, 0, 1, "File open failure", NULL);
@@ -400,14 +400,14 @@
chdir(CurrentDir);
free(CurrentDir);
- Out1 = fopen (OutFileName1, "wb");
+ Out1 = fopen (LongFilePath (OutFileName1), "wb");
if (Out1 == NULL) {
// ("Unable to open file \"%s\"\n", OutFileName1);
Error (OutFileName1, 0, 1, "File open failure", NULL);
return STATUS_ERROR;
}
- Out2 = fopen (OutFileName2, "wb");
+ Out2 = fopen (LongFilePath (OutFileName2), "wb");
if (Out2 == NULL) {
// ("Unable to open file \"%s\"\n", OutFileName2);
Error (OutFileName2, 0, 1, "File open failure", NULL);
Modified: trunk/edk2/BaseTools/Source/C/VfrCompile/VfrCompiler.cpp
===================================================================
--- trunk/edk2/BaseTools/Source/C/VfrCompile/VfrCompiler.cpp 2014-08-14
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/C/VfrCompile/VfrCompiler.cpp 2014-08-15
03:06:48 UTC (rev 15809)
@@ -2,7 +2,7 @@
VfrCompiler main class and main function.
-Copyright (c) 2004 - 2013, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2014, 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
@@ -413,7 +413,7 @@
CONST CHAR8 *Help[] = {
" ",
"VfrCompile version " VFR_COMPILER_VERSION __BUILD_VERSION,
- "Copyright (c) 2004-2013 Intel Corporation. All rights reserved.",
+ "Copyright (c) 2004-2014 Intel Corporation. All rights reserved.",
" ",
"Usage: VfrCompile [options] VfrFile",
" ",
@@ -476,7 +476,7 @@
goto Out;
}
- if ((pVfrFile = fopen (mOptions.VfrFileName, "r")) == NULL) {
+ if ((pVfrFile = fopen (LongFilePath (mOptions.VfrFileName), "r")) == NULL) {
DebugError (NULL, 0, 0001, "Error opening the input VFR file",
mOptions.VfrFileName);
goto Fail;
}
@@ -545,7 +545,7 @@
gCVfrErrorHandle.SetInputFile (InFileName);
gCVfrErrorHandle.SetWarningAsError(mOptions.WarningAsError);
- if ((pInFile = fopen (InFileName, "r")) == NULL) {
+ if ((pInFile = fopen (LongFilePath (InFileName), "r")) == NULL) {
DebugError (NULL, 0, 0001, "Error opening the input file", InFileName);
goto Fail;
}
@@ -699,7 +699,7 @@
}
if (mOptions.CreateIfrPkgFile == TRUE) {
- if ((pFile = fopen (mOptions.PkgOutputFileName, "wb")) == NULL) {
+ if ((pFile = fopen (LongFilePath (mOptions.PkgOutputFileName), "wb")) ==
NULL) {
DebugError (NULL, 0, 0001, "Error opening file",
mOptions.PkgOutputFileName);
goto Fail;
}
@@ -742,7 +742,7 @@
}
if (!mOptions.CreateIfrPkgFile || mOptions.CompatibleMode) {
- if ((pFile = fopen (mOptions.COutputFileName, "w")) == NULL) {
+ if ((pFile = fopen (LongFilePath (mOptions.COutputFileName), "w")) ==
NULL) {
DebugError (NULL, 0, 0001, "Error opening output C file",
mOptions.COutputFileName);
goto Fail;
}
@@ -789,12 +789,12 @@
return;
}
- if ((pInFile = fopen (InFileName, "r")) == NULL) {
+ if ((pInFile = fopen (LongFilePath (InFileName), "r")) == NULL) {
DebugError (NULL, 0, 0001, "Error opening the input VFR preprocessor
output file", InFileName);
return;
}
- if ((pOutFile = fopen (mOptions.RecordListFile, "w")) == NULL) {
+ if ((pOutFile = fopen (LongFilePath (mOptions.RecordListFile), "w")) ==
NULL) {
DebugError (NULL, 0, 0001, "Error opening the record list file",
mOptions.RecordListFile);
goto Err1;
}
Modified: trunk/edk2/BaseTools/Source/C/VfrCompile/VfrUtilityLib.cpp
===================================================================
--- trunk/edk2/BaseTools/Source/C/VfrCompile/VfrUtilityLib.cpp 2014-08-14
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/C/VfrCompile/VfrUtilityLib.cpp 2014-08-15
03:06:48 UTC (rev 15809)
@@ -2,7 +2,7 @@
Vfr common library functions.
-Copyright (c) 2004 - 2013, Intel Corporation. All rights reserved.<BR>
+Copyright (c) 2004 - 2014, 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
@@ -15,6 +15,7 @@
#include "stdio.h"
#include "stdlib.h"
+#include "CommonLib.h"
#include "VfrUtilityLib.h"
#include "VfrFormPkg.h"
@@ -3283,7 +3284,7 @@
return NULL;
}
- if ((pInFile = fopen (mStringFileName, "rb")) == NULL) {
+ if ((pInFile = fopen (LongFilePath (mStringFileName), "rb")) == NULL) {
return NULL;
}
Modified: trunk/edk2/BaseTools/Source/C/VolInfo/VolInfo.c
===================================================================
--- trunk/edk2/BaseTools/Source/C/VolInfo/VolInfo.c 2014-08-14 20:42:40 UTC
(rev 15808)
+++ trunk/edk2/BaseTools/Source/C/VolInfo/VolInfo.c 2014-08-15 03:06:48 UTC
(rev 15809)
@@ -249,7 +249,7 @@
//
// Open the file containing the FV
//
- InputFile = fopen (argv[0], "rb");
+ InputFile = fopen (LongFilePath (argv[0]), "rb");
if (InputFile == NULL) {
Error (NULL, 0, 0001, "Error opening the input file", argv[0]);
return GetUtilityStatus ();
Modified: trunk/edk2/BaseTools/Source/Python/AutoGen/AutoGen.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/AutoGen/AutoGen.py 2014-08-14
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/AutoGen/AutoGen.py 2014-08-15
03:06:48 UTC (rev 15809)
@@ -13,7 +13,7 @@
## Import Modules
#
-import os
+import Common.LongFilePathOs as os
import re
import os.path as path
import copy
@@ -26,6 +26,7 @@
from StrGather import *
from BuildEngine import BuildRule
+from Common.LongFilePathSupport import CopyLongFilePath
from Common.BuildToolError import *
from Common.DataType import *
from Common.Misc import *
Modified: trunk/edk2/BaseTools/Source/Python/AutoGen/BuildEngine.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/AutoGen/BuildEngine.py 2014-08-14
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/AutoGen/BuildEngine.py 2014-08-15
03:06:48 UTC (rev 15809)
@@ -1,7 +1,7 @@
## @file
# The engine for building files
#
-# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2014, 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
@@ -14,10 +14,11 @@
##
# Import Modules
#
-import os
+import Common.LongFilePathOs as os
import re
import copy
import string
+from Common.LongFilePathSupport import OpenLongFilePath as open
from Common.GlobalData import *
from Common.BuildToolError import *
Modified: trunk/edk2/BaseTools/Source/Python/AutoGen/GenDepex.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/AutoGen/GenDepex.py 2014-08-14
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/AutoGen/GenDepex.py 2014-08-15
03:06:48 UTC (rev 15809)
@@ -1,7 +1,7 @@
## @file
# This file is used to generate DEPEX file for module's dependency expression
#
-# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2014, 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
@@ -13,10 +13,10 @@
## Import Modules
#
import sys
-import os
+import Common.LongFilePathOs as os
import re
import traceback
-
+from Common.LongFilePathSupport import OpenLongFilePath as open
from StringIO import StringIO
from struct import pack
from Common.BuildToolError import *
Modified: trunk/edk2/BaseTools/Source/Python/AutoGen/GenMake.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/AutoGen/GenMake.py 2014-08-14
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/AutoGen/GenMake.py 2014-08-15
03:06:48 UTC (rev 15809)
@@ -1,7 +1,7 @@
## @file
# Create makefile for MS nmake and GNU make
#
-# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2014, 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
@@ -13,11 +13,12 @@
## Import Modules
#
-import os
+import Common.LongFilePathOs as os
import sys
import string
import re
import os.path as path
+from Common.LongFilePathSupport import OpenLongFilePath as open
from Common.BuildToolError import *
from Common.Misc import *
Modified: trunk/edk2/BaseTools/Source/Python/AutoGen/StrGather.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/AutoGen/StrGather.py 2014-08-14
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/AutoGen/StrGather.py 2014-08-15
03:06:48 UTC (rev 15809)
@@ -1,4 +1,4 @@
-# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2014, 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
@@ -20,6 +20,7 @@
from UniClassObject import *
from StringIO import StringIO
from struct import pack
+from Common.LongFilePathSupport import OpenLongFilePath as open
##
# Static definitions
Modified: trunk/edk2/BaseTools/Source/Python/AutoGen/UniClassObject.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/AutoGen/UniClassObject.py
2014-08-14 20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/AutoGen/UniClassObject.py
2014-08-15 03:06:48 UTC (rev 15809)
@@ -1,4 +1,4 @@
-# Copyright (c) 2007 - 2012, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2014, 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
@@ -14,13 +14,13 @@
##
# Import Modules
#
-import os, codecs, re
+import Common.LongFilePathOs as os, codecs, re
import distutils.util
import Common.EdkLogger as EdkLogger
from Common.BuildToolError import *
from Common.String import GetLineNo
from Common.Misc import PathClass
-
+from Common.LongFilePathSupport import LongFilePath
##
# Static definitions
#
@@ -210,7 +210,7 @@
Lang = distutils.util.split_quoted((Line.split(u"//")[0]))
if len(Lang) != 3:
try:
- FileIn = codecs.open(File.Path, mode='rb',
encoding='utf-16').read()
+ FileIn = codecs.open(LongFilePath(File.Path), mode='rb',
encoding='utf-16').read()
except UnicodeError, X:
EdkLogger.error("build", FILE_READ_FAILURE, "File read
failure: %s" % str(X), ExtraData=File);
except:
@@ -292,7 +292,7 @@
EdkLogger.error("Unicode File Parser", FILE_NOT_FOUND,
ExtraData=File.Path)
try:
- FileIn = codecs.open(File.Path, mode='rb',
encoding='utf-16').readlines()
+ FileIn = codecs.open(LongFilePath(File.Path), mode='rb',
encoding='utf-16').readlines()
except UnicodeError, X:
EdkLogger.error("build", FILE_READ_FAILURE, "File read failure:
%s" % str(X), ExtraData=File.Path);
except:
Modified: trunk/edk2/BaseTools/Source/Python/BPDG/BPDG.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/BPDG/BPDG.py 2014-08-14 20:42:40 UTC
(rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/BPDG/BPDG.py 2014-08-15 03:06:48 UTC
(rev 15809)
@@ -6,7 +6,7 @@
# file of PCD layout for use during the build when the platform integrator
selects to use
# automatic offset calculation.
#
-# Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2010 - 2014, 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
@@ -20,7 +20,7 @@
##
# Import Modules
#
-import os
+import Common.LongFilePathOs as os
import sys
import encodings.ascii
Modified: trunk/edk2/BaseTools/Source/Python/BPDG/GenVpd.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/BPDG/GenVpd.py 2014-08-14 20:42:40 UTC
(rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/BPDG/GenVpd.py 2014-08-15 03:06:48 UTC
(rev 15809)
@@ -2,7 +2,7 @@
# This file include GenVpd class for fix the Vpd type PCD offset, and
PcdEntry for describe
# and process each entry of vpd type PCD.
#
-# Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2010 - 2014, 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
@@ -13,12 +13,12 @@
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR
IMPLIED.
#
-import os
+import Common.LongFilePathOs as os
import StringIO
import StringTable as st
import array
import re
-
+from Common.LongFilePathSupport import OpenLongFilePath as open
from struct import *
import Common.EdkLogger as EdkLogger
import Common.BuildToolError as BuildToolError
Modified: trunk/edk2/BaseTools/Source/Python/Common/Database.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Common/Database.py 2014-08-14
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Common/Database.py 2014-08-15
03:06:48 UTC (rev 15809)
@@ -1,7 +1,7 @@
## @file
# This file is used to create a database used by ECC tool
#
-# Copyright (c) 2007 - 2008, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2014, 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
@@ -15,7 +15,7 @@
# Import Modules
#
import sqlite3
-import os
+import Common.LongFilePathOs as os
import EdkLogger as EdkLogger
from CommonDataClass.DataClass import *
Modified: trunk/edk2/BaseTools/Source/Python/Common/DecClassObject.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Common/DecClassObject.py 2014-08-14
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Common/DecClassObject.py 2014-08-15
03:06:48 UTC (rev 15809)
@@ -1,7 +1,7 @@
## @file
# This file is used to define each component of DEC file
#
-# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2014, 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
@@ -14,7 +14,7 @@
##
# Import Modules
#
-import os
+import Common.LongFilePathOs as os
from String import *
from DataType import *
from Identification import *
@@ -26,6 +26,7 @@
import Database
from Parsing import *
import GlobalData
+from Common.LongFilePathSupport import OpenLongFilePath as open
#
# Global variable
Modified: trunk/edk2/BaseTools/Source/Python/Common/Dictionary.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Common/Dictionary.py 2014-08-14
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Common/Dictionary.py 2014-08-15
03:06:48 UTC (rev 15809)
@@ -1,7 +1,7 @@
## @file
# Define a dictionary structure
#
-# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2014, 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
@@ -16,6 +16,7 @@
#
import EdkLogger
from DataType import *
+from Common.LongFilePathSupport import OpenLongFilePath as open
## Convert a text file to a dictionary
#
Modified: trunk/edk2/BaseTools/Source/Python/Common/DscClassObject.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Common/DscClassObject.py 2014-08-14
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Common/DscClassObject.py 2014-08-15
03:06:48 UTC (rev 15809)
@@ -1,7 +1,7 @@
## @file
# This file is used to define each component of DSC file
#
-# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2014, 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
@@ -14,7 +14,7 @@
##
# Import Modules
#
-import os
+import Common.LongFilePathOs as os
import EdkLogger as EdkLogger
import Database
from String import *
@@ -28,6 +28,7 @@
from Misc import sdict
import GlobalData
from Table.TableDsc import TableDsc
+from Common.LongFilePathSupport import OpenLongFilePath as open
#
# Global variable
Modified: trunk/edk2/BaseTools/Source/Python/Common/EdkIIWorkspace.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Common/EdkIIWorkspace.py 2014-08-14
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Common/EdkIIWorkspace.py 2014-08-15
03:06:48 UTC (rev 15809)
@@ -1,7 +1,7 @@
## @file
# This is the base class for applications that operate on an EDK II Workspace
#
-# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2014, 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
@@ -14,8 +14,9 @@
##
# Import Modules
#
-import os, sys, time
+import Common.LongFilePathOs as os, sys, time
from DataType import *
+from Common.LongFilePathSupport import OpenLongFilePath as open
## EdkIIWorkspace
#
Modified: trunk/edk2/BaseTools/Source/Python/Common/EdkIIWorkspaceBuild.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Common/EdkIIWorkspaceBuild.py
2014-08-14 20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Common/EdkIIWorkspaceBuild.py
2014-08-15 03:06:48 UTC (rev 15809)
@@ -1,7 +1,7 @@
## @file
# This file is used to define each component of the build database
#
-# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2014, 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
@@ -14,7 +14,7 @@
##
# Import Modules
#
-import os, string, copy, pdb, copy
+import Common.LongFilePathOs as os, string, copy, pdb, copy
import EdkLogger
import DataType
from InfClassObject import *
Modified: trunk/edk2/BaseTools/Source/Python/Common/EdkLogger.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Common/EdkLogger.py 2014-08-14
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Common/EdkLogger.py 2014-08-15
03:06:48 UTC (rev 15809)
@@ -1,7 +1,7 @@
## @file
# This file implements the log mechanism for Python tools.
#
-# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2014, 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
@@ -12,7 +12,7 @@
#
## Import modules
-import sys, os, logging
+import Common.LongFilePathOs as os, sys, logging
import traceback
from BuildToolError import *
Modified: trunk/edk2/BaseTools/Source/Python/Common/FdfParserLite.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Common/FdfParserLite.py 2014-08-14
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Common/FdfParserLite.py 2014-08-15
03:06:48 UTC (rev 15809)
@@ -1,7 +1,7 @@
## @file
# parse FDF file
#
-# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2014, 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
@@ -16,9 +16,10 @@
# Import Modules
#
import re
-import os
+import Common.LongFilePathOs as os
import CommonDataClass.FdfClass
+from Common.LongFilePathSupport import OpenLongFilePath as open
##define T_CHAR_SPACE ' '
##define T_CHAR_NULL '\0'
Modified: trunk/edk2/BaseTools/Source/Python/Common/InfClassObject.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Common/InfClassObject.py 2014-08-14
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Common/InfClassObject.py 2014-08-15
03:06:48 UTC (rev 15809)
@@ -1,7 +1,7 @@
## @file
# This file is used to define each component of INF file
#
-# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2014, 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
@@ -14,7 +14,7 @@
##
# Import Modules
#
-import os
+import Common.LongFilePathOs as os
import re
import EdkLogger
from CommonDataClass.CommonClass import LibraryClassClass
@@ -29,6 +29,7 @@
from Table.TableInf import TableInf
import Database
from Parsing import *
+from Common.LongFilePathSupport import OpenLongFilePath as open
#
# Global variable
Added: trunk/edk2/BaseTools/Source/Python/Common/LongFilePathOs.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Common/LongFilePathOs.py
(rev 0)
+++ trunk/edk2/BaseTools/Source/Python/Common/LongFilePathOs.py 2014-08-15
03:06:48 UTC (rev 15809)
@@ -0,0 +1,73 @@
+## @file
+# Override built in module os to provide support for long file path
+#
+# Copyright (c) 2014, 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.
+#
+
+import os
+import LongFilePathOsPath
+from Common.LongFilePathSupport import LongFilePath
+from Common.LongFilePathSupport import UniToStr
+
+path = LongFilePathOsPath
+
+def access(path, mode):
+ return os.access(LongFilePath(path), mode)
+
+def remove(path):
+ return os.remove(LongFilePath(path))
+
+def removedirs(name):
+ return os.removedirs(LongFilePath(name))
+
+def rmdir(path):
+ return os.rmdir(LongFilePath(path))
+
+def mkdir(path):
+ return os.mkdir(LongFilePath(path))
+
+def makedirs(name, mode=0777):
+ return os.makedirs(LongFilePath(name), mode)
+
+def rename(old, new):
+ return os.rename(LongFilePath(old), LongFilePath(new))
+
+def chdir(path):
+ return os.chdir(LongFilePath(path))
+
+def chmod(path, mode):
+ return os.chmod(LongFilePath(path), mode)
+
+def stat(path):
+ return os.stat(LongFilePath(path))
+
+def utime(path):
+ return os.utime(LongFilePath(path), None)
+
+def listdir(path):
+ List = []
+ uList = os.listdir(u"%s" % LongFilePath(path))
+ for Item in uList:
+ List.append(UniToStr(Item))
+ return List
+
+environ = os.environ
+getcwd = os.getcwd
+chdir = os.chdir
+walk = os.walk
+W_OK = os.W_OK
+F_OK = os.F_OK
+sep = os.sep
+linesep = os.linesep
+getenv = os.getenv
+pathsep = os.pathsep
+name = os.name
+SEEK_SET = os.SEEK_SET
+SEEK_END = os.SEEK_END
Added: trunk/edk2/BaseTools/Source/Python/Common/LongFilePathOsPath.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Common/LongFilePathOsPath.py
(rev 0)
+++ trunk/edk2/BaseTools/Source/Python/Common/LongFilePathOsPath.py
2014-08-15 03:06:48 UTC (rev 15809)
@@ -0,0 +1,51 @@
+## @file
+# Override built in module os.path to provide support for long file path
+#
+# Copyright (c) 2014, 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.
+#
+
+import os
+from Common.LongFilePathSupport import LongFilePath
+
+def isfile(path):
+ return os.path.isfile(LongFilePath(path))
+
+def isdir(path):
+ return os.path.isdir(LongFilePath(path))
+
+def exists(path):
+ return os.path.exists(LongFilePath(path))
+
+def getsize(filename):
+ return os.path.getsize(LongFilePath(filename))
+
+def getmtime(filename):
+ return os.path.getmtime(LongFilePath(filename))
+
+def getatime(filename):
+ return os.path.getatime(LongFilePath(filename))
+
+def getctime(filename):
+ return os.path.getctime(LongFilePath(filename))
+
+join = os.path.join
+splitext = os.path.splitext
+splitdrive = os.path.splitdrive
+split = os.path.split
+abspath = os.path.abspath
+basename = os.path.basename
+commonprefix = os.path.commonprefix
+sep = os.path.sep
+normpath = os.path.normpath
+normcase = os.path.normcase
+dirname = os.path.dirname
+islink = os.path.islink
+isabs = os.path.isabs
+realpath = os.path.realpath
Added: trunk/edk2/BaseTools/Source/Python/Common/LongFilePathSupport.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Common/LongFilePathSupport.py
(rev 0)
+++ trunk/edk2/BaseTools/Source/Python/Common/LongFilePathSupport.py
2014-08-15 03:06:48 UTC (rev 15809)
@@ -0,0 +1,59 @@
+## @file
+# Override built in function file.open to provide support for long file path
+#
+# Copyright (c) 2014, 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.
+#
+
+import os
+import platform
+import shutil
+
+##
+# OpenLongPath
+# Convert a file path to a long file path
+#
+def LongFilePath(FileName):
+ FileName = os.path.normpath(FileName)
+ if platform.system() == 'Windows':
+ if FileName.startswith('\\\\?\\'):
+ return FileName
+ if FileName.startswith('\\\\'):
+ return '\\\\?\\UNC\\' + FileName[2:]
+ if os.path.isabs(FileName):
+ return '\\\\?\\' + FileName
+ return FileName
+
+##
+# OpenLongFilePath
+# wrap open to support opening a long file path
+#
+def OpenLongFilePath(FileName, Mode='r', Buffer= -1):
+ return open(LongFilePath(FileName), Mode, Buffer)
+
+##
+# CopyLongFilePath
+# wrap copyfile to support copy a long file path
+#
+def CopyLongFilePath(src, dst):
+ with open(LongFilePath(src), 'rb') as fsrc:
+ with open(LongFilePath(dst), 'wb') as fdst:
+ shutil.copyfileobj(fsrc, fdst)
+
+## Convert a python unicode string to a normal string
+#
+# Convert a python unicode string to a normal string
+# UniToStr(u'I am a string') is 'I am a string'
+#
+# @param Uni: The python unicode string
+#
+# @retval: The formatted normal string
+#
+def UniToStr(Uni):
+ return repr(Uni)[2:-1]
Modified: trunk/edk2/BaseTools/Source/Python/Common/MigrationUtilities.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Common/MigrationUtilities.py
2014-08-14 20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Common/MigrationUtilities.py
2014-08-15 03:06:48 UTC (rev 15809)
@@ -1,7 +1,7 @@
## @file
# Contains several utilitities shared by migration tools.
#
-# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2014, 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
@@ -14,13 +14,14 @@
##
# Import Modules
#
-import os
+import Common.LongFilePathOs as os
import re
import EdkLogger
from optparse import OptionParser
from Common.BuildToolError import *
from XmlRoutines import *
from CommonDataClass.CommonClass import *
+from Common.LongFilePathSupport import OpenLongFilePath as open
## Set all fields of CommonClass object.
#
Modified: trunk/edk2/BaseTools/Source/Python/Common/Misc.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Common/Misc.py 2014-08-14 20:42:40 UTC
(rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Common/Misc.py 2014-08-15 03:06:48 UTC
(rev 15809)
@@ -1,7 +1,7 @@
## @file
# Common routines used by all tools
#
-# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2014, 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
@@ -14,7 +14,7 @@
##
# Import Modules
#
-import os
+import Common.LongFilePathOs as os
import sys
import string
import thread
@@ -32,6 +32,7 @@
from BuildToolError import *
from CommonDataClass.DataClass import *
from Parsing import GetSplitValueList
+from Common.LongFilePathSupport import OpenLongFilePath as open
## Regular expression used to find out place holders in string template
gPlaceholderPattern = re.compile("\$\{([^$()\s]+)\}", re.MULTILINE|re.UNICODE)
Modified: trunk/edk2/BaseTools/Source/Python/Common/String.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Common/String.py 2014-08-14 20:42:40 UTC
(rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Common/String.py 2014-08-15 03:06:48 UTC
(rev 15809)
@@ -1,7 +1,7 @@
## @file
# This file is used to define common string related functions used in parsing
process
#
-# Copyright (c) 2007 - 2008, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2014, 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
@@ -16,13 +16,14 @@
#
import re
import DataType
-import os.path
+import Common.LongFilePathOs as os
import string
import EdkLogger as EdkLogger
import GlobalData
from BuildToolError import *
from CommonDataClass.Exceptions import *
+from Common.LongFilePathSupport import OpenLongFilePath as open
gHexVerPatt = re.compile('0x[a-f0-9]{4}[a-f0-9]{4}$', re.IGNORECASE)
gHumanReadableVerPatt = re.compile(r'([1-9][0-9]*|0)\.[0-9]{1,2}$')
Modified: trunk/edk2/BaseTools/Source/Python/Common/TargetTxtClassObject.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Common/TargetTxtClassObject.py
2014-08-14 20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Common/TargetTxtClassObject.py
2014-08-15 03:06:48 UTC (rev 15809)
@@ -1,7 +1,7 @@
## @file
# This file is used to define each component of Target.txt file
#
-# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2014, 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
@@ -14,11 +14,12 @@
##
# Import Modules
#
-import os
+import Common.LongFilePathOs as os
import EdkLogger
import DataType
from BuildToolError import *
import GlobalData
+from Common.LongFilePathSupport import OpenLongFilePath as open
gDefaultTargetTxtFile = "Conf/target.txt"
Modified: trunk/edk2/BaseTools/Source/Python/Common/ToolDefClassObject.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Common/ToolDefClassObject.py
2014-08-14 20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Common/ToolDefClassObject.py
2014-08-15 03:06:48 UTC (rev 15809)
@@ -1,7 +1,7 @@
## @file
# This file is used to define each component of tools_def.txt file
#
-# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2014, 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
@@ -14,13 +14,14 @@
##
# Import Modules
#
-import os
+import Common.LongFilePathOs as os
import re
import EdkLogger
from Dictionary import *
from BuildToolError import *
from TargetTxtClassObject import *
+from Common.LongFilePathSupport import OpenLongFilePath as open
##
# Static variables used for pattern
Modified: trunk/edk2/BaseTools/Source/Python/Common/VpdInfoFile.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Common/VpdInfoFile.py 2014-08-14
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Common/VpdInfoFile.py 2014-08-15
03:06:48 UTC (rev 15809)
@@ -6,7 +6,7 @@
# is pointed by *_*_*_VPD_TOOL_GUID in conf/tools_def.txt
#
#
-# Copyright (c) 2010, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2010 - 2014, 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
@@ -15,11 +15,12 @@
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#
-import os
+import Common.LongFilePathOs as os
import re
import Common.EdkLogger as EdkLogger
import Common.BuildToolError as BuildToolError
import subprocess
+from Common.LongFilePathSupport import OpenLongFilePath as open
FILE_COMMENT_TEMPLATE = \
"""
Modified: trunk/edk2/BaseTools/Source/Python/Ecc/Check.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Ecc/Check.py 2014-08-14 20:42:40 UTC
(rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Ecc/Check.py 2014-08-15 03:06:48 UTC
(rev 15809)
@@ -1,7 +1,7 @@
## @file
# This file is used to define checkpoints used by ECC tool
#
-# Copyright (c) 2008 - 2010, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2008 - 2014, 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
@@ -10,7 +10,7 @@
# THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#
-import os
+import Common.LongFilePathOs as os
import re
from CommonDataClass.DataClass import *
from Common.DataType import SUP_MODULE_LIST_STRING, TAB_VALUE_SPLIT
Modified: trunk/edk2/BaseTools/Source/Python/Ecc/CodeFragmentCollector.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Ecc/CodeFragmentCollector.py
2014-08-14 20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Ecc/CodeFragmentCollector.py
2014-08-15 03:06:48 UTC (rev 15809)
@@ -1,7 +1,7 @@
## @file
# preprocess source file
#
-# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2014, 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
@@ -17,7 +17,7 @@
#
import re
-import os
+import Common.LongFilePathOs as os
import sys
import antlr3
Modified: trunk/edk2/BaseTools/Source/Python/Ecc/Configuration.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Ecc/Configuration.py 2014-08-14
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Ecc/Configuration.py 2014-08-15
03:06:48 UTC (rev 15809)
@@ -14,10 +14,11 @@
##
# Import Modules
#
-import os
+import Common.LongFilePathOs as os
import Common.EdkLogger as EdkLogger
from Common.DataType import *
from Common.String import *
+from Common.LongFilePathSupport import OpenLongFilePath as open
## Configuration
#
Modified: trunk/edk2/BaseTools/Source/Python/Ecc/Database.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Ecc/Database.py 2014-08-14 20:42:40 UTC
(rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Ecc/Database.py 2014-08-15 03:06:48 UTC
(rev 15809)
@@ -1,7 +1,7 @@
## @file
# This file is used to create a database used by ECC tool
#
-# Copyright (c) 2007 - 2008, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2014, 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
@@ -15,7 +15,7 @@
# Import Modules
#
import sqlite3
-import os, time
+import Common.LongFilePathOs as os, time
import Common.EdkLogger as EdkLogger
import CommonDataClass.DataClass as DataClass
Modified: trunk/edk2/BaseTools/Source/Python/Ecc/Ecc.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Ecc/Ecc.py 2014-08-14 20:42:40 UTC
(rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Ecc/Ecc.py 2014-08-15 03:06:48 UTC
(rev 15809)
@@ -14,7 +14,7 @@
##
# Import Modules
#
-import os, time, glob, sys
+import Common.LongFilePathOs as os, time, glob, sys
import Common.EdkLogger as EdkLogger
import Database
import EccGlobalData
@@ -37,6 +37,7 @@
import c
import re, string
from Exception import *
+from Common.LongFilePathSupport import OpenLongFilePath as open
## Ecc
#
Modified: trunk/edk2/BaseTools/Source/Python/Ecc/EccGlobalData.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Ecc/EccGlobalData.py 2014-08-14
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Ecc/EccGlobalData.py 2014-08-15
03:06:48 UTC (rev 15809)
@@ -1,7 +1,7 @@
## @file
# This file is used to save global datas used by ECC tool
#
-# Copyright (c) 2008, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2008 - 2014, 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
@@ -14,7 +14,7 @@
##
# Import Modules
#
-import os
+import Common.LongFilePathOs as os
gWorkspace = ''
gTarget = ''
Modified: trunk/edk2/BaseTools/Source/Python/Ecc/Exception.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Ecc/Exception.py 2014-08-14 20:42:40 UTC
(rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Ecc/Exception.py 2014-08-15 03:06:48 UTC
(rev 15809)
@@ -1,7 +1,7 @@
## @file
# This file is used to parse exception items found by ECC tool
#
-# Copyright (c) 2009, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2009 - 2014, 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
@@ -15,7 +15,7 @@
# Import Modules
#
from Xml.XmlRoutines import *
-import os.path
+import Common.LongFilePathOs as os
# ExceptionXml to parse Exception Node of XML file
class ExceptionXml(object):
Modified: trunk/edk2/BaseTools/Source/Python/Ecc/FileProfile.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Ecc/FileProfile.py 2014-08-14
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Ecc/FileProfile.py 2014-08-15
03:06:48 UTC (rev 15809)
@@ -1,7 +1,7 @@
## @file
# fragments of source file
#
-# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2014, 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
@@ -17,8 +17,9 @@
#
import re
-import os
+import Common.LongFilePathOs as os
from ParserWarning import Warning
+from Common.LongFilePathSupport import OpenLongFilePath as open
CommentList = []
PPDirectiveList = []
Modified: trunk/edk2/BaseTools/Source/Python/Ecc/MetaDataParser.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Ecc/MetaDataParser.py 2014-08-14
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Ecc/MetaDataParser.py 2014-08-15
03:06:48 UTC (rev 15809)
@@ -1,7 +1,7 @@
## @file
# This file is used to define common parser functions for meta-data
#
-# Copyright (c) 2008, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2008 - 2014, 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
@@ -11,7 +11,7 @@
# WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
#
-import os
+import Common.LongFilePathOs as os
from CommonDataClass.DataClass import *
from EccToolError import *
import EccGlobalData
Modified:
trunk/edk2/BaseTools/Source/Python/Ecc/MetaFileWorkspace/MetaDataTable.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Ecc/MetaFileWorkspace/MetaDataTable.py
2014-08-14 20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Ecc/MetaFileWorkspace/MetaDataTable.py
2014-08-15 03:06:48 UTC (rev 15809)
@@ -1,7 +1,7 @@
## @file
# This file is used to create/update/query/erase table for files
#
-# Copyright (c) 2008, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2008 - 2014, 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
@@ -14,7 +14,7 @@
##
# Import Modules
#
-import os
+import Common.LongFilePathOs as os
import Common.EdkLogger as EdkLogger
from CommonDataClass import DataClass
Modified:
trunk/edk2/BaseTools/Source/Python/Ecc/MetaFileWorkspace/MetaFileParser.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Ecc/MetaFileWorkspace/MetaFileParser.py
2014-08-14 20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Ecc/MetaFileWorkspace/MetaFileParser.py
2014-08-15 03:06:48 UTC (rev 15809)
@@ -14,7 +14,7 @@
##
# Import Modules
#
-import os
+import Common.LongFilePathOs as os
import re
import time
import copy
@@ -31,7 +31,8 @@
from CommonDataClass.Exceptions import *
from MetaFileTable import MetaFileStorage
-from GenFds.FdfParser import FdfParser
+from GenFds.FdfParser import FdfParser
+from Common.LongFilePathSupport import OpenLongFilePath as open
## A decorator used to parse macro definition
def ParseMacro(Parser):
Modified: trunk/edk2/BaseTools/Source/Python/Ecc/Xml/XmlRoutines.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Ecc/Xml/XmlRoutines.py 2014-08-14
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Ecc/Xml/XmlRoutines.py 2014-08-15
03:06:48 UTC (rev 15809)
@@ -2,7 +2,7 @@
# This is an XML API that uses a syntax similar to XPath, but it is written in
# standard python so that no extra python packages are required to use it.
#
-# Copyright (c) 2007, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2014, 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
@@ -16,6 +16,7 @@
# Import Modules
#
import xml.dom.minidom
+from Common.LongFilePathSupport import OpenLongFilePath as open
## Create a element of XML
#
Modified: trunk/edk2/BaseTools/Source/Python/Ecc/c.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Ecc/c.py 2014-08-14 20:42:40 UTC (rev
15808)
+++ trunk/edk2/BaseTools/Source/Python/Ecc/c.py 2014-08-15 03:06:48 UTC (rev
15809)
@@ -1,7 +1,7 @@
## @file
# This file is used to be the c coding style checking of ECC tool
#
-# Copyright (c) 2009 - 2010, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2009 - 2014, 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
@@ -12,7 +12,7 @@
#
import sys
-import os
+import Common.LongFilePathOs as os
import re
import string
import CodeFragmentCollector
Modified: trunk/edk2/BaseTools/Source/Python/Eot/CodeFragmentCollector.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Eot/CodeFragmentCollector.py
2014-08-14 20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Eot/CodeFragmentCollector.py
2014-08-15 03:06:48 UTC (rev 15809)
@@ -1,7 +1,7 @@
## @file
# preprocess source file
#
-# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2014, 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
@@ -16,7 +16,7 @@
# Import Modules
#
import re
-import os
+import Common.LongFilePathOs as os
import sys
import antlr3
Modified: trunk/edk2/BaseTools/Source/Python/Eot/Database.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Eot/Database.py 2014-08-14 20:42:40 UTC
(rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Eot/Database.py 2014-08-15 03:06:48 UTC
(rev 15809)
@@ -1,7 +1,7 @@
## @file
# This file is used to create a database used by EOT tool
#
-# Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2007 - 2014, 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
@@ -15,7 +15,7 @@
# Import Modules
#
import sqlite3
-import os, time
+import Common.LongFilePathOs as os, time
import Common.EdkLogger as EdkLogger
import CommonDataClass.DataClass as DataClass
Modified: trunk/edk2/BaseTools/Source/Python/Eot/Eot.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Eot/Eot.py 2014-08-14 20:42:40 UTC
(rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Eot/Eot.py 2014-08-15 03:06:48 UTC
(rev 15809)
@@ -1,7 +1,7 @@
## @file
# This file is used to be the main entrance of EOT tool
#
-# Copyright (c) 2008 - 2010, Intel Corporation. All rights reserved.<BR>
+# Copyright (c) 2008 - 2014, 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
@@ -14,7 +14,7 @@
##
# Import Modules
#
-import os, time, glob
+import Common.LongFilePathOs as os, time, glob
import Common.EdkLogger as EdkLogger
import EotGlobalData
from optparse import OptionParser
@@ -30,6 +30,7 @@
from Common.Misc import ParseConsoleLog
from Common.BuildVersion import gBUILD_VERSION
from Parser import ConvertGuid
+from Common.LongFilePathSupport import OpenLongFilePath as open
## Class Eot
#
Modified: trunk/edk2/BaseTools/Source/Python/Eot/EotGlobalData.py
===================================================================
--- trunk/edk2/BaseTools/Source/Python/Eot/EotGlobalData.py 2014-08-14
20:42:40 UTC (rev 15808)
+++ trunk/edk2/BaseTools/Source/Python/Eot/EotGlobalData.py 2014-08-15
03:06:48 UTC (rev 15809)
@@ -1,7 +1,7 @@
## @file
# This file is used to save global datas
#
@@ Diff output truncated at 100000 characters. @@
This was sent by the SourceForge.net collaborative development platform, the
world's largest Open Source development site.
------------------------------------------------------------------------------
_______________________________________________
edk2-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/edk2-commits