Please ignore this one, I will separate it into two patches. Best Regards, Zhu Yonghong
-----Original Message----- From: edk2-devel [mailto:edk2-devel-boun...@lists.01.org] On Behalf Of Yonghong Zhu Sent: Monday, September 17, 2018 2:43 PM To: edk2-devel@lists.01.org Cc: Gao, Liming <liming....@intel.com> Subject: [edk2] [Patch] BaseTools: remove PyUtility and open the file with unbuffered the PyUtility is not used, so we remove it. And update the open file with unbuffered to avoid the case that the file is not wrote but directly used in later when the host's multiple thread is very strong. Cc: Liming Gao <liming....@intel.com> Contributed-under: TianoCore Contribution Agreement 1.1 Signed-off-by: Yonghong Zhu <yonghong....@intel.com> --- BaseTools/Source/C/PyUtility/Makefile | 25 ------- BaseTools/Source/C/PyUtility/PyUtility.c | 106 --------------------------- BaseTools/Source/C/PyUtility/setup.py | 42 ----------- BaseTools/Source/Python/Common/Misc.py | 16 +--- BaseTools/Source/Python/Common/PyUtility.pyd | Bin 6144 -> 0 bytes 5 files changed, 3 insertions(+), 186 deletions(-) delete mode 100644 BaseTools/Source/C/PyUtility/Makefile delete mode 100644 BaseTools/Source/C/PyUtility/PyUtility.c delete mode 100644 BaseTools/Source/C/PyUtility/setup.py delete mode 100644 BaseTools/Source/Python/Common/PyUtility.pyd diff --git a/BaseTools/Source/C/PyUtility/Makefile b/BaseTools/Source/C/PyUtility/Makefile deleted file mode 100644 index 5829070..0000000 --- a/BaseTools/Source/C/PyUtility/Makefile +++ /dev/null @@ -1,25 +0,0 @@ -## @file -# Makefile -# -# 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 -# 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. -# - -!INCLUDE ..\Makefiles\ms.common - -APPNAME = GenSec - -LIBS = $(LIB_PATH)\Common.lib - -OBJECTS = PyUtility.obj - -#CFLAGS = $(CFLAGS) /nodefaultlib:libc.lib - -!INCLUDE ..\Makefiles\ms.app - diff --git a/BaseTools/Source/C/PyUtility/PyUtility.c b/BaseTools/Source/C/PyUtility/PyUtility.c deleted file mode 100644 index d14b872..0000000 --- a/BaseTools/Source/C/PyUtility/PyUtility.c +++ /dev/null @@ -1,106 +0,0 @@ -/** @file -Python Utility - -Copyright (c) 2009 - 2018, 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. - -**/ - -#include <Python.h> -#include <Windows.h> -#include <Common/UefiBaseTypes.h> - -/* - SaveFileToDisk(FilePath, Content) -*/ -STATIC -PyObject* -SaveFileToDisk ( - PyObject *Self, - PyObject *Args - ) -{ - CHAR8 *File; - UINT8 *Data; - UINTN DataLength; - UINTN WriteBytes; - UINTN Status; - HANDLE FileHandle; - PyObject *ReturnValue = Py_False; - - Status = PyArg_ParseTuple( - Args, - "ss#", - &File, - &Data, - &DataLength - ); - if (Status == 0) { - return NULL; - } - - FileHandle = CreateFile( - File, - GENERIC_WRITE, - FILE_SHARE_WRITE|FILE_SHARE_READ|FILE_SHARE_DELETE, - NULL, - CREATE_ALWAYS, - FILE_ATTRIBUTE_NORMAL, - NULL - ); - if (FileHandle == INVALID_HANDLE_VALUE) { - PyErr_SetString(PyExc_Exception, "File creation failure"); - return NULL; - } - - while (WriteFile(FileHandle, Data, DataLength, &WriteBytes, NULL)) { - if (DataLength <= WriteBytes) { - DataLength = 0; - break; - } - - Data += WriteBytes; - DataLength -= WriteBytes; - } - - if (DataLength != 0) { - // file saved unsuccessfully - PyErr_SetString(PyExc_Exception, "File write failure"); - goto Done; - } - - // - // Flush buffer may slow down the whole build performance (average 10s slower) - // - //if (!FlushFileBuffers(FileHandle)) { - // PyErr_SetString(PyExc_Exception, "File flush failure"); - // goto Done; - //} - - // success! - ReturnValue = Py_True; - -Done: - CloseHandle(FileHandle); - return ReturnValue; -} - -STATIC INT8 SaveFileToDiskDocs[] = "SaveFileToDisk(): Make sure the file is saved to disk\n"; - -STATIC PyMethodDef PyUtility_Funcs[] = { - {"SaveFileToDisk", (PyCFunction)SaveFileToDisk, METH_VARARGS, SaveFileToDiskDocs}, - {NULL, NULL, 0, NULL} -}; - -PyMODINIT_FUNC -initPyUtility(VOID) { - Py_InitModule3("PyUtility", PyUtility_Funcs, "Utilties Module Implemented C Language"); -} - - diff --git a/BaseTools/Source/C/PyUtility/setup.py b/BaseTools/Source/C/PyUtility/setup.py deleted file mode 100644 index e4d407d..0000000 --- a/BaseTools/Source/C/PyUtility/setup.py +++ /dev/null @@ -1,42 +0,0 @@ -## @file -# package and install PyEfiCompressor extension -# -# Copyright (c) 2008, 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 Modules -# -from distutils.core import setup, Extension -import os - -if 'BASE_TOOLS_PATH' not in os.environ: - raise "Please define BASE_TOOLS_PATH to the root of base tools tree" - -BaseToolsDir = os.environ['BASE_TOOLS_PATH'] -setup( - name="PyUtility", - version="0.01", - ext_modules=[ - Extension( - 'PyUtility', - sources=[ - 'PyUtility.c' - ], - include_dirs=[ - os.path.join(BaseToolsDir, 'Source', 'C', 'Include'), - os.path.join(BaseToolsDir, 'Source', 'C', 'Include', 'Ia32'), - os.path.join(BaseToolsDir, 'Source', 'C', 'Common') - ], - ) - ], - ) - diff --git a/BaseTools/Source/Python/Common/Misc.py b/BaseTools/Source/Python/Common/Misc.py index 430bf6b..3a8e7ca 100644 --- a/BaseTools/Source/Python/Common/Misc.py +++ b/BaseTools/Source/Python/Common/Misc.py @@ -470,23 +470,13 @@ def SaveFileOnChange(File, Content, IsBinaryFile=True): DirName = os.getcwd() if not os.access(DirName, os.W_OK): EdkLogger.error(None, PERMISSION_FAILURE, "Do not have write permission on directory %s" % DirName) try: - if GlobalData.gIsWindows: - try: - from .PyUtility import SaveFileToDisk - if not SaveFileToDisk(File, Content): - EdkLogger.error(None, FILE_CREATE_FAILURE, ExtraData=File) - except: - Fd = open(File, "wb") - Fd.write(Content) - Fd.close() - else: - Fd = open(File, "wb") - Fd.write(Content) - Fd.close() + Fd = open(File, "wb", 0) + Fd.write(Content) + Fd.close() except IOError as X: EdkLogger.error(None, FILE_CREATE_FAILURE, ExtraData='IOError %s' % X) return True diff --git a/BaseTools/Source/Python/Common/PyUtility.pyd b/BaseTools/Source/Python/Common/PyUtility.pyd deleted file mode 100644 index 856b508e4ea39a806fbe52264ac5e4db0956a2de..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6144 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 I{@=v?8;(I;UjP6A -- 2.6.1.windows.1 _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel _______________________________________________ edk2-devel mailing list edk2-devel@lists.01.org https://lists.01.org/mailman/listinfo/edk2-devel