Partial Implementation of NtQuerySystemInformation and NtSetSystemInformation
[reactos.git] / reactos / ntoskrnl / ex / time.c
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS kernel
4 * FILE: kernel/excutive/time.c
5 * PURPOSE: Time
6 * PROGRAMMER: David Welch (welch@mcmail.com)
7 * UPDATE HISTORY:
8 * Created 22/05/98
9 */
10
11 /* INCLUDES *****************************************************************/
12
13 #include <ddk/ntddk.h>
14 #include <internal/ex.h>
15 #include <string.h>
16
17 #include <internal/debug.h>
18
19
20 #define TICKSPERMINUTE 600000000
21
22 /* GLOBALS ******************************************************************/
23
24 /* Note: Bias[minutes] = UTC - local time */
25 TIME_ZONE_INFORMATION SystemTimeZoneInfo;
26
27 /* FUNCTIONS ****************************************************************/
28
29 VOID
30 ExInitTimeZoneInfo (VOID)
31 {
32 /* Initialize system time zone information */
33 memset (&SystemTimeZoneInfo, 0, sizeof(TIME_ZONE_INFORMATION));
34
35 /* FIXME: Read time zone information from the registry */
36
37 }
38
39 NTSTATUS
40 STDCALL
41 NtSetSystemTime (
42 IN PLARGE_INTEGER SystemTime,
43 IN PLARGE_INTEGER NewSystemTime OPTIONAL
44 )
45 {
46 UNIMPLEMENTED;
47 }
48
49
50 NTSTATUS
51 STDCALL
52 NtQuerySystemTime (
53 OUT TIME * CurrentTime
54 )
55 {
56 KeQuerySystemTime((PLARGE_INTEGER)CurrentTime);
57 return STATUS_SUCCESS;
58 }
59
60
61 VOID
62 STDCALL
63 ExLocalTimeToSystemTime (
64 PLARGE_INTEGER LocalTime,
65 PLARGE_INTEGER SystemTime
66 )
67 {
68 SystemTime->QuadPart = LocalTime->QuadPart +
69 SystemTimeZoneInfo.Bias * TICKSPERMINUTE;
70 }
71
72
73 VOID
74 STDCALL
75 ExSystemTimeToLocalTime (
76 PLARGE_INTEGER SystemTime,
77 PLARGE_INTEGER LocalTime
78 )
79 {
80 LocalTime->QuadPart = SystemTime->QuadPart -
81 SystemTimeZoneInfo.Bias * TICKSPERMINUTE;
82 }
83
84 /* EOF */