diff --git a/src/coreclr/pal/inc/pal.h b/src/coreclr/pal/inc/pal.h index e3a779a3d3704b..5f6caecd340ee8 100644 --- a/src/coreclr/pal/inc/pal.h +++ b/src/coreclr/pal/inc/pal.h @@ -416,7 +416,6 @@ typedef struct _SECURITY_ATTRIBUTES { #define FILE_ATTRIBUTE_NORMAL 0x00000080 #define FILE_FLAG_WRITE_THROUGH 0x80000000 -#define FILE_FLAG_NO_BUFFERING 0x20000000 #define FILE_FLAG_RANDOM_ACCESS 0x10000000 #define FILE_FLAG_SEQUENTIAL_SCAN 0x08000000 #define FILE_FLAG_BACKUP_SEMANTICS 0x02000000 diff --git a/src/coreclr/pal/src/config.h.in b/src/coreclr/pal/src/config.h.in index adbd8a2566611f..3b2cf8db6f2260 100644 --- a/src/coreclr/pal/src/config.h.in +++ b/src/coreclr/pal/src/config.h.in @@ -48,7 +48,6 @@ #cmakedefine01 HAVE_SIGALTSTACK #cmakedefine01 HAVE_VM_ALLOCATE #cmakedefine01 HAVE_VM_READ -#cmakedefine01 HAVE_DIRECTIO #cmakedefine01 HAVE_SEMAPHORE_H #cmakedefine01 HAS_SYSV_SEMAPHORES #cmakedefine01 HAS_PTHREAD_MUTEXES diff --git a/src/coreclr/pal/src/configure.cmake b/src/coreclr/pal/src/configure.cmake index 66e036c3fd26b3..07b4ac4b7c706f 100644 --- a/src/coreclr/pal/src/configure.cmake +++ b/src/coreclr/pal/src/configure.cmake @@ -136,7 +136,6 @@ int main(int argc, char **argv) { }" HAVE_SIGALTSTACK) check_function_exists(vm_allocate HAVE_VM_ALLOCATE) check_function_exists(vm_read HAVE_VM_READ) -check_function_exists(directio HAVE_DIRECTIO) check_function_exists(semget HAS_SYSV_SEMAPHORES) check_function_exists(pthread_mutex_init HAS_PTHREAD_MUTEXES) check_function_exists(ttrace HAVE_TTRACE) diff --git a/src/coreclr/pal/src/file/file.cpp b/src/coreclr/pal/src/file/file.cpp index 6c8df8cb67815f..b09b3d56d024e3 100644 --- a/src/coreclr/pal/src/file/file.cpp +++ b/src/coreclr/pal/src/file/file.cpp @@ -149,7 +149,6 @@ typedef enum #define PAL_LEGAL_FLAGS_ATTRIBS (FILE_ATTRIBUTE_NORMAL| \ FILE_FLAG_SEQUENTIAL_SCAN| \ FILE_FLAG_WRITE_THROUGH| \ - FILE_FLAG_NO_BUFFERING| \ FILE_FLAG_RANDOM_ACCESS| \ FILE_FLAG_BACKUP_SEMANTICS) @@ -576,18 +575,6 @@ CorUnix::InternalCreateFile( goto done; } - if ( dwFlagsAndAttributes & FILE_FLAG_NO_BUFFERING ) - { - TRACE("I/O will be unbuffered\n"); -#ifdef O_DIRECT - open_flags |= O_DIRECT; -#endif - } - else - { - TRACE("I/O will be buffered\n"); - } - filed = InternalOpen(lpUnixPath, open_flags, create_flags); TRACE("Allocated file descriptor [%d]\n", filed); @@ -606,31 +593,6 @@ CorUnix::InternalCreateFile( dwCreationDisposition == OPEN_ALWAYS) && !fFileExists; -#ifndef O_DIRECT - if ( dwFlagsAndAttributes & FILE_FLAG_NO_BUFFERING ) - { -#ifdef F_NOCACHE - if (-1 == fcntl(filed, F_NOCACHE, 1)) - { - ASSERT("Can't set F_NOCACHE; fcntl() failed. errno is %d (%s)\n", - errno, strerror(errno)); - palError = ERROR_INTERNAL_ERROR; - goto done; - } -#elif HAVE_DIRECTIO - if (-1 == directio(filed, DIRECTIO_ON)) - { - ASSERT("Can't set DIRECTIO_ON; directio() failed. errno is %d (%s)\n", - errno, strerror(errno)); - palError = ERROR_INTERNAL_ERROR; - goto done; - } -#else -#error Insufficient support for uncached I/O on this platform -#endif - } -#endif - /* make file descriptor close-on-exec; inheritable handles will get "uncloseonexeced" in CreateProcess if they are actually being inherited*/ if(-1 == fcntl(filed,F_SETFD, FD_CLOEXEC)) diff --git a/src/coreclr/pal/tests/palsuite/file_io/CreateFileA/test1/CreateFileA.cpp b/src/coreclr/pal/tests/palsuite/file_io/CreateFileA/test1/CreateFileA.cpp index 6723f19db31621..4f95db199814fc 100644 --- a/src/coreclr/pal/tests/palsuite/file_io/CreateFileA/test1/CreateFileA.cpp +++ b/src/coreclr/pal/tests/palsuite/file_io/CreateFileA/test1/CreateFileA.cpp @@ -19,7 +19,7 @@ BOOL Cleanup_CreateFileA_test1(void) BOOL bRet = TRUE; // assume success // loop through all accesses, modes, dispositions and flags - for (i=0; i<4*8*4*5; ++i) { + for (i=0; i<4*8*4*4; ++i) { sprintf_s(FileName, ARRAY_SIZE(FileName), "test%03d.txt", i); if (DeleteFileA(FileName) == FALSE) { if (GetLastError() != ERROR_FILE_NOT_FOUND) { @@ -57,11 +57,10 @@ PALTEST(file_io_CreateFileA_test1_paltest_createfilea_test1, "file_io/CreateFile CREATE_ALWAYS, // 1 OPEN_EXISTING, // 2 OPEN_ALWAYS}; // 3 - DWORD dwFlagsAttrib[5] = {FILE_ATTRIBUTE_NORMAL, // 0 + DWORD dwFlagsAttrib[4] = {FILE_ATTRIBUTE_NORMAL, // 0 FILE_FLAG_SEQUENTIAL_SCAN, // 1 FILE_FLAG_WRITE_THROUGH, // 2 - FILE_FLAG_NO_BUFFERING, // 3 - FILE_FLAG_RANDOM_ACCESS}; // 4 + FILE_FLAG_RANDOM_ACCESS}; // 3 HANDLE hTemplate = NULL; @@ -95,7 +94,7 @@ PALTEST(file_io_CreateFileA_test1_paltest_createfilea_test1, "file_io/CreateFile for (k = 0; k < 4; k++) { // creation disp loop - for (l = 0; l < 5; l++) + for (l = 0; l < 4; l++) { sprintf_s(lpFileName, ARRAY_SIZE(lpFileName), "test%03d.txt", nCounter); hFile = CreateFile(lpFileName, diff --git a/src/coreclr/pal/tests/palsuite/file_io/CreateFileW/test1/CreateFileW.cpp b/src/coreclr/pal/tests/palsuite/file_io/CreateFileW/test1/CreateFileW.cpp index f256a84c56c8a0..42c4d12d228eed 100644 --- a/src/coreclr/pal/tests/palsuite/file_io/CreateFileW/test1/CreateFileW.cpp +++ b/src/coreclr/pal/tests/palsuite/file_io/CreateFileW/test1/CreateFileW.cpp @@ -19,7 +19,7 @@ BOOL Cleanup_CreateFileW_test1(void) BOOL bRet = TRUE; // assume success // loop through all accesses, modes, dispositions and flags - for (i=0; i<4*8*4*5; ++i) { + for (i=0; i<4*8*4*4; ++i) { sprintf_s(FileName, ARRAY_SIZE(FileName), "test%03d.txt", i); if (DeleteFileA(FileName) == FALSE) { if (GetLastError() != ERROR_FILE_NOT_FOUND) { @@ -59,11 +59,10 @@ PALTEST(file_io_CreateFileW_test1_paltest_createfilew_test1, "file_io/CreateFile CREATE_ALWAYS, // 1 OPEN_EXISTING, // 2 OPEN_ALWAYS}; // 3 - DWORD dwFlagsAttrib[5] = {FILE_ATTRIBUTE_NORMAL, // 0 + DWORD dwFlagsAttrib[4] = {FILE_ATTRIBUTE_NORMAL, // 0 FILE_FLAG_SEQUENTIAL_SCAN, // 1 FILE_FLAG_WRITE_THROUGH, // 2 - FILE_FLAG_NO_BUFFERING, // 3 - FILE_FLAG_RANDOM_ACCESS}; // 4 + FILE_FLAG_RANDOM_ACCESS}; // 3 HANDLE hTemplate = NULL; @@ -96,7 +95,7 @@ PALTEST(file_io_CreateFileW_test1_paltest_createfilew_test1, "file_io/CreateFile for (k = 0; k < 4; k++) { // creation disp loop - for (l = 0; l < 5; l++) + for (l = 0; l < 4; l++) { sprintf_s(string, ARRAY_SIZE(string), "test%03d.txt", nCounter); lpFileName = convert(string);