Define time constants and refactor time routines to use them
Some checks failed
Builds / ExectOS (amd64, debug) (push) Successful in -59m24s
Builds / ExectOS (amd64, release) (push) Successful in -59m27s
Builds / ExectOS (i686, release) (push) Failing after -59m34s
Builds / ExectOS (i686, debug) (push) Failing after -59m33s

This commit is contained in:
2026-04-24 18:38:07 +02:00
parent 4afe678667
commit 8ab3ddb8eb
2 changed files with 13 additions and 5 deletions

View File

@@ -53,6 +53,13 @@
#define SHA1_BLOCK_SIZE 64 #define SHA1_BLOCK_SIZE 64
#define SHA1_DIGEST_SIZE 20 #define SHA1_DIGEST_SIZE 20
/* Time related definitions */
#define TIME_SECONDS_PER_MINUTE 60ULL
#define TIME_SECONDS_PER_HOUR 3600ULL
#define TIME_SECONDS_PER_DAY 86400ULL
#define TIME_TICKS_PER_SECOND 10000000ULL
#define TIME_TICKS_PER_MILLISECOND 10000ULL
/* C/C++ specific code */ /* C/C++ specific code */
#ifndef __XTOS_ASSEMBLER__ #ifndef __XTOS_ASSEMBLER__

View File

@@ -58,7 +58,7 @@ RTL::Time::TimeFieldsToUnixEpoch(IN PTIME_FIELDS TimeFields,
} }
/* Convert 100-nanosecond intervals (TICKS) to whole seconds */ /* Convert 100-nanosecond intervals (TICKS) to whole seconds */
TotalSeconds = XtTime.QuadPart / TICKS_PER_SECOND; TotalSeconds = XtTime.QuadPart / TIME_TICKS_PER_SECOND;
/* Subtract the number of seconds between January 1, 1601 and January 1, 1970 */ /* Subtract the number of seconds between January 1, 1601 and January 1, 1970 */
*UnixTime = TotalSeconds - 11644473600LL; *UnixTime = TotalSeconds - 11644473600LL;
@@ -116,13 +116,14 @@ RTL::Time::TimeFieldsToXtEpoch(IN PTIME_FIELDS TimeFields,
ElapsedDays += (TimeFields->Day - 1); ElapsedDays += (TimeFields->Day - 1);
/* Calculate a total number of seconds */ /* Calculate a total number of seconds */
TotalSeconds = ((ULONGLONG)ElapsedDays * SECONDS_PER_DAY) + TotalSeconds = ((ULONGLONG)ElapsedDays * TIME_SECONDS_PER_DAY) +
((ULONGLONG)TimeFields->Hour * SECONDS_PER_HOUR) + ((ULONGLONG)TimeFields->Hour * TIME_SECONDS_PER_HOUR) +
((ULONGLONG)TimeFields->Minute * SECONDS_PER_MINUTE) + ((ULONGLONG)TimeFields->Minute * TIME_SECONDS_PER_MINUTE) +
(ULONGLONG)TimeFields->Second; (ULONGLONG)TimeFields->Second;
/* Convert to 100-ns intervals and slap milliseconds on top */ /* Convert to 100-ns intervals and slap milliseconds on top */
Time->QuadPart = (TotalSeconds * TICKS_PER_SECOND) + ((ULONGLONG)TimeFields->Milliseconds * TICKS_PER_MILLISECOND); XtTime->QuadPart = (TotalSeconds * TIME_TICKS_PER_SECOND) +
((ULONGLONG)TimeFields->Milliseconds * TIME_TICKS_PER_MILLISECOND);
/* Return success */ /* Return success */
return STATUS_SUCCESS; return STATUS_SUCCESS;