Commit 5c95bec8 authored by Erich Hoover's avatar Erich Hoover Committed by Alexandre Julliard

ntdll: Implement nanosecond precision file time storage.

parent 487c50c1
......@@ -13012,6 +13012,7 @@ for ac_func in \
fstatfs \
fstatvfs \
ftruncate \
futimens \
futimes \
futimesat \
getattrlist \
......
......@@ -2014,6 +2014,7 @@ AC_CHECK_FUNCS(\
fstatfs \
fstatvfs \
ftruncate \
futimens \
futimes \
futimesat \
getattrlist \
......
......@@ -1562,7 +1562,24 @@ static NTSTATUS set_file_times( int fd, const LARGE_INTEGER *mtime, const LARGE_
{
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 stat st;
......
......@@ -179,6 +179,9 @@
/* Define to 1 if the system has the type `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. */
#undef HAVE_FUTIMES
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment