#define DAYSPERLEAPYEAR 366
#define MONSPERYEAR 12
-#define TICKSTO1970 0x019db1ded53e8000
-#define TICKSTO1980 0x01a8e79fe1d58000
+#define TICKSTO1970 0x019db1ded53e8000LL
+#define TICKSTO1980 0x01a8e79fe1d58000LL
static const int YearLengths[2] = {DAYSPERNORMALYEAR, DAYSPERLEAPYEAR};
static const int MonthLengths[2][MONSPERYEAR] =
/* FUNCTIONS *****************************************************************/
-VOID STDCALL
-RtlTimeToElapsedTimeFields(IN PLARGE_INTEGER Time,
- OUT PTIME_FIELDS TimeFields)
-{
- ULONGLONG ElapsedSeconds;
- ULONG SecondsInDay;
- ULONG SecondsInMinute;
-
- /* Extract millisecond from time */
- TimeFields->Milliseconds = (CSHORT)((Time->QuadPart % TICKSPERSEC) / TICKSPERMSEC);
-
- /* Compute elapsed seconds */
- ElapsedSeconds = (ULONGLONG)Time->QuadPart / TICKSPERSEC;
-
- /* Compute seconds within the day */
- SecondsInDay = ElapsedSeconds % SECSPERDAY;
-
- /* Compute elapsed minutes within the day */
- SecondsInMinute = SecondsInDay % SECSPERHOUR;
-
- /* Compute elapsed time of day */
- TimeFields->Hour = (CSHORT)(SecondsInDay / SECSPERHOUR);
- TimeFields->Minute = (CSHORT)(SecondsInMinute / SECSPERMIN);
- TimeFields->Second = (CSHORT)(SecondsInMinute % SECSPERMIN);
-
- /* Compute elapsed days */
- TimeFields->Day = (CSHORT)(ElapsedSeconds / SECSPERDAY);
-
- /* The elapsed number of months and days cannot be calculated */
- TimeFields->Month = 0;
- TimeFields->Year = 0;
-}
-
-
-VOID STDCALL
-RtlTimeToTimeFields(PLARGE_INTEGER liTime,
- PTIME_FIELDS TimeFields)
+/*
+ * @unimplemented
+ */
+VOID
+STDCALL
+RtlTimeToTimeFields(
+ PLARGE_INTEGER liTime,
+ PTIME_FIELDS TimeFields)
{
const int *Months;
int LeapSecondCorrections, SecondsInDay, CurYear;
}
-BOOLEAN STDCALL
-RtlTimeFieldsToTime(PTIME_FIELDS tfTimeFields,
- PLARGE_INTEGER Time)
+/*
+ * @unimplemented
+ */
+BOOLEAN
+STDCALL
+RtlTimeFieldsToTime(
+ PTIME_FIELDS tfTimeFields,
+ PLARGE_INTEGER Time)
{
- int CurYear, CurMonth;
+ int CurYear;
+ int CurMonth;
long long int rcTime;
TIME_FIELDS TimeFields = *tfTimeFields;
}
-VOID STDCALL
-RtlSecondsSince1970ToTime(ULONG SecondsSince1970,
- PLARGE_INTEGER Time)
+/*
+ * @implemented
+ */
+VOID
+STDCALL
+RtlSecondsSince1970ToTime(
+ ULONG SecondsSince1970,
+ PLARGE_INTEGER Time)
{
- LONGLONG llTime;
-
- llTime = (SecondsSince1970 * TICKSPERSEC) + TICKSTO1970;
-
- *Time = *(LARGE_INTEGER *)&llTime;
+ Time->QuadPart = (SecondsSince1970 * TICKSPERSEC) + TICKSTO1970;
}
-VOID STDCALL
-RtlSecondsSince1980ToTime(ULONG SecondsSince1980,
- PLARGE_INTEGER Time)
+/*
+ * @implemented
+ */
+VOID
+STDCALL
+RtlSecondsSince1980ToTime(
+ ULONG SecondsSince1980,
+ PLARGE_INTEGER Time)
{
- LONGLONG llTime;
-
- llTime = (SecondsSince1980 * TICKSPERSEC) + TICKSTO1980;
-
- *Time = *(LARGE_INTEGER *)&llTime;
+ Time->QuadPart = (SecondsSince1980 * TICKSPERSEC) + TICKSTO1980;
}
-BOOLEAN STDCALL
-RtlTimeToSecondsSince1970(PLARGE_INTEGER Time,
- PULONG SecondsSince1970)
+/*
+ * @implemented
+ */
+BOOLEAN
+STDCALL
+RtlTimeToSecondsSince1970(
+ PLARGE_INTEGER Time,
+ PULONG SecondsSince1970)
{
LARGE_INTEGER liTime;
liTime.QuadPart = liTime.QuadPart / TICKSPERSEC;
if (liTime.u.HighPart != 0)
- return(FALSE);
+ return FALSE;
*SecondsSince1970 = liTime.u.LowPart;
- return(TRUE);
+ return TRUE;
}
-BOOLEAN STDCALL
-RtlTimeToSecondsSince1980(PLARGE_INTEGER Time,
- PULONG SecondsSince1980)
+/*
+ * @implemented
+ */
+BOOLEAN
+STDCALL
+RtlTimeToSecondsSince1980(
+ PLARGE_INTEGER Time,
+ PULONG SecondsSince1980)
{
LARGE_INTEGER liTime;
liTime.QuadPart = liTime.QuadPart / TICKSPERSEC;
if (liTime.u.HighPart != 0)
- return(FALSE);
+ return FALSE;
*SecondsSince1980 = liTime.u.LowPart;
- return(TRUE);
+ return TRUE;
}
-NTSTATUS STDCALL
+/*
+ * @implemented
+ */
+NTSTATUS
+STDCALL
RtlLocalTimeToSystemTime(PLARGE_INTEGER LocalTime,
PLARGE_INTEGER SystemTime)
{
}
-NTSTATUS STDCALL
+/*
+ * @implemented
+ */
+NTSTATUS
+STDCALL
RtlSystemTimeToLocalTime(PLARGE_INTEGER SystemTime,
PLARGE_INTEGER LocalTime)
{
return(STATUS_SUCCESS);
}
+
+/*
+ * @implemented
+ */
+VOID
+STDCALL
+RtlTimeToElapsedTimeFields(IN PLARGE_INTEGER Time,
+ OUT PTIME_FIELDS TimeFields)
+{
+ ULONGLONG ElapsedSeconds;
+ ULONG SecondsInDay;
+ ULONG SecondsInMinute;
+
+ /* Extract millisecond from time */
+ TimeFields->Milliseconds = (CSHORT)((Time->QuadPart % TICKSPERSEC) / TICKSPERMSEC);
+
+ /* Compute elapsed seconds */
+ ElapsedSeconds = (ULONGLONG)Time->QuadPart / TICKSPERSEC;
+
+ /* Compute seconds within the day */
+ SecondsInDay = ElapsedSeconds % SECSPERDAY;
+
+ /* Compute elapsed minutes within the day */
+ SecondsInMinute = SecondsInDay % SECSPERHOUR;
+
+ /* Compute elapsed time of day */
+ TimeFields->Hour = (CSHORT)(SecondsInDay / SECSPERHOUR);
+ TimeFields->Minute = (CSHORT)(SecondsInMinute / SECSPERMIN);
+ TimeFields->Second = (CSHORT)(SecondsInMinute % SECSPERMIN);
+
+ /* Compute elapsed days */
+ TimeFields->Day = (CSHORT)(ElapsedSeconds / SECSPERDAY);
+
+ /* The elapsed number of months and days cannot be calculated */
+ TimeFields->Month = 0;
+ TimeFields->Year = 0;
+}
+
+
/* EOF */