3 #include <Common/UefiBaseTypes.h>
6 SaveFileToDisk(FilePath, Content)
21 PyObject
*ReturnValue
= Py_False
;
23 Status
= PyArg_ParseTuple(
34 FileHandle
= CreateFile(
37 FILE_SHARE_WRITE
|FILE_SHARE_READ
|FILE_SHARE_DELETE
,
40 FILE_ATTRIBUTE_NORMAL
,
43 if (FileHandle
== INVALID_HANDLE_VALUE
) {
44 PyErr_SetString(PyExc_Exception
, "File creation failure");
48 while (WriteFile(FileHandle
, Data
, DataLength
, &WriteBytes
, NULL
)) {
49 if (DataLength
<= WriteBytes
) {
55 DataLength
-= WriteBytes
;
58 if (DataLength
!= 0) {
59 // file saved unsuccessfully
60 PyErr_SetString(PyExc_Exception
, "File write failure");
65 // Flush buffer may slow down the whole build performance (average 10s slower)
67 //if (!FlushFileBuffers(FileHandle)) {
68 // PyErr_SetString(PyExc_Exception, "File flush failure");
73 ReturnValue
= Py_True
;
76 CloseHandle(FileHandle
);
80 STATIC INT8 SaveFileToDiskDocs
[] = "SaveFileToDisk(): Make sure the file is saved to disk\n";
82 STATIC PyMethodDef PyUtility_Funcs
[] = {
83 {"SaveFileToDisk", (PyCFunction
)SaveFileToDisk
, METH_VARARGS
, SaveFileToDiskDocs
},
89 Py_InitModule3("PyUtility", PyUtility_Funcs
, "Utilties Module Implemented C Language");