| 30 | } |
| 31 | |
| 32 | void FileTimeToTimespec(const FILETIME& ft, struct timespec* ts) { |
| 33 | Y_ASSERT(ts); |
| 34 | TFTUnion ntTime; |
| 35 | ntTime.FTStruct = ft; |
| 36 | ntTime.FTScalar -= NUMBER_OF_100_NANO_BETWEEN_1601_1970; |
| 37 | ts->tv_sec = |
| 38 | static_cast<time_t>(ntTime.FTScalar / NUMBER_OF_100_NANO_IN_SECOND); |
| 39 | ts->tv_nsec = static_cast<long>( |
| 40 | (ntTime.FTScalar % NUMBER_OF_100_NANO_IN_SECOND) * LL(100)); |
| 41 | } |
| 42 | |
| 43 | int gettimeofday(timeval* tp, void*) { |
| 44 | FILETIME ft; |