ntdll: Implement nanosecond precision file time storage.
This commit is contained in:
parent
487c50c1e7
commit
5c95bec847
|
@ -13012,6 +13012,7 @@ for ac_func in \
|
||||||
fstatfs \
|
fstatfs \
|
||||||
fstatvfs \
|
fstatvfs \
|
||||||
ftruncate \
|
ftruncate \
|
||||||
|
futimens \
|
||||||
futimes \
|
futimes \
|
||||||
futimesat \
|
futimesat \
|
||||||
getattrlist \
|
getattrlist \
|
||||||
|
|
|
@ -2014,6 +2014,7 @@ AC_CHECK_FUNCS(\
|
||||||
fstatfs \
|
fstatfs \
|
||||||
fstatvfs \
|
fstatvfs \
|
||||||
ftruncate \
|
ftruncate \
|
||||||
|
futimens \
|
||||||
futimes \
|
futimes \
|
||||||
futimesat \
|
futimesat \
|
||||||
getattrlist \
|
getattrlist \
|
||||||
|
|
|
@ -1562,7 +1562,24 @@ static NTSTATUS set_file_times( int fd, const LARGE_INTEGER *mtime, const LARGE_
|
||||||
{
|
{
|
||||||
NTSTATUS status = STATUS_SUCCESS;
|
NTSTATUS status = STATUS_SUCCESS;
|
||||||
|
|
||||||
#if defined(HAVE_FUTIMES) || defined(HAVE_FUTIMESAT)
|
#ifdef HAVE_FUTIMENS
|
||||||
|
struct timespec tv[2];
|
||||||
|
|
||||||
|
tv[0].tv_sec = tv[1].tv_sec = 0;
|
||||||
|
tv[0].tv_nsec = tv[1].tv_nsec = UTIME_OMIT;
|
||||||
|
if (atime->QuadPart)
|
||||||
|
{
|
||||||
|
tv[0].tv_sec = atime->QuadPart / 10000000 - SECS_1601_TO_1970;
|
||||||
|
tv[0].tv_nsec = (atime->QuadPart % 10000000) * 100;
|
||||||
|
}
|
||||||
|
if (mtime->QuadPart)
|
||||||
|
{
|
||||||
|
tv[1].tv_sec = mtime->QuadPart / 10000000 - SECS_1601_TO_1970;
|
||||||
|
tv[1].tv_nsec = (mtime->QuadPart % 10000000) * 100;
|
||||||
|
}
|
||||||
|
if (futimens( fd, tv ) == -1) status = FILE_GetNtStatus();
|
||||||
|
|
||||||
|
#elif defined(HAVE_FUTIMES) || defined(HAVE_FUTIMESAT)
|
||||||
struct timeval tv[2];
|
struct timeval tv[2];
|
||||||
struct stat st;
|
struct stat st;
|
||||||
|
|
||||||
|
|
|
@ -179,6 +179,9 @@
|
||||||
/* Define to 1 if the system has the type `FT_TrueTypeEngineType'. */
|
/* Define to 1 if the system has the type `FT_TrueTypeEngineType'. */
|
||||||
#undef HAVE_FT_TRUETYPEENGINETYPE
|
#undef HAVE_FT_TRUETYPEENGINETYPE
|
||||||
|
|
||||||
|
/* Define to 1 if you have the `futimens' function. */
|
||||||
|
#undef HAVE_FUTIMENS
|
||||||
|
|
||||||
/* Define to 1 if you have the `futimes' function. */
|
/* Define to 1 if you have the `futimes' function. */
|
||||||
#undef HAVE_FUTIMES
|
#undef HAVE_FUTIMES
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue