hardcode value of filetime epoch
avoid unnecessary calls to SystemTimeToFileTime() in get_file_epoch() by hardcoding the FILETIME value of jan_1_1970 Signed-off-by: Casey Bodley <cbodley@citi.umich.edu>
This commit is contained in:
parent
5880a8bb1d
commit
3a115a39fa
2 changed files with 22 additions and 39 deletions
|
|
@ -94,13 +94,30 @@ void nfs_to_standard_info(
|
|||
IN const nfs41_file_info *info,
|
||||
OUT PFILE_STANDARD_INFO std_out);
|
||||
|
||||
/* nfstime4 */
|
||||
void file_time_to_nfs_time(
|
||||
/* http://msdn.microsoft.com/en-us/library/ms724290%28VS.85%29.aspx:
|
||||
* A file time is a 64-bit value that represents the number of
|
||||
* 100-nanosecond intervals that have elapsed since 12:00 A.M.
|
||||
* January 1, 1601 Coordinated Universal Time (UTC). */
|
||||
#define FILETIME_EPOCH 116444736000000000LL
|
||||
|
||||
static __inline void file_time_to_nfs_time(
|
||||
IN const PLARGE_INTEGER file_time,
|
||||
OUT nfstime4 *nfs_time);
|
||||
void nfs_time_to_file_time(
|
||||
OUT nfstime4 *nfs_time)
|
||||
{
|
||||
LONGLONG diff = file_time->QuadPart - FILETIME_EPOCH;
|
||||
nfs_time->seconds = diff / 10000000;
|
||||
nfs_time->nseconds = (uint32_t)((diff % 10000000)*100);
|
||||
}
|
||||
|
||||
static __inline void nfs_time_to_file_time(
|
||||
IN const nfstime4 *nfs_time,
|
||||
OUT PLARGE_INTEGER file_time);
|
||||
OUT PLARGE_INTEGER file_time)
|
||||
{
|
||||
file_time->QuadPart = FILETIME_EPOCH +
|
||||
nfs_time->seconds * 10000000 +
|
||||
nfs_time->nseconds / 100;
|
||||
}
|
||||
|
||||
void get_file_time(
|
||||
OUT PLARGE_INTEGER file_time);
|
||||
void get_nfs_time(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue