4ec8175fd31eae01d501354065aa84b5439f60aa
[reactos.git] / reactos / drivers / net / ndis / ndis / time.c
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS NDIS library
4 * FILE: ndis/time.c
5 * PURPOSE: Time related routines
6 * PROGRAMMERS: Casper S. Hornstrup (chorns@users.sourceforge.net)
7 * REVISIONS:
8 * CSH 01/08-2000 Created
9 */
10 #include <ndissys.h>
11
12
13 VOID STDCALL
14 MiniportTimerDpc(
15 PKDPC Dpc,
16 PVOID DeferredContext,
17 PVOID SystemArgument1,
18 PVOID SystemArgument2)
19 {
20 PNDIS_MINIPORT_TIMER Timer;
21
22 Timer = (PNDIS_MINIPORT_TIMER)DeferredContext;
23
24 Timer->MiniportTimerFunction (NULL, Timer->MiniportTimerContext, NULL, NULL);
25 }
26
27
28 VOID
29 EXPORT
30 NdisCancelTimer(
31 IN PNDIS_TIMER Timer,
32 OUT PBOOLEAN TimerCancelled)
33 {
34 *TimerCancelled = KeCancelTimer (&Timer->Timer);
35 }
36
37
38 VOID
39 EXPORT
40 NdisGetCurrentSystemTime (
41 IN OUT PLONGLONG pSystemTime)
42 {
43 KeQuerySystemTime (pSystemTime);
44 }
45
46
47 VOID
48 EXPORT
49 NdisInitializeTimer(
50 IN OUT PNDIS_TIMER Timer,
51 IN PNDIS_TIMER_FUNCTION TimerFunction,
52 IN PVOID FunctionContext)
53 {
54 KeInitializeTimer (&Timer->Timer);
55
56 KeInitializeDpc (&Timer->Dpc, TimerFunction, FunctionContext);
57 }
58
59
60 VOID
61 EXPORT
62 NdisMCancelTimer(
63 IN PNDIS_MINIPORT_TIMER Timer,
64 OUT PBOOLEAN TimerCancelled)
65 {
66 *TimerCancelled = KeCancelTimer (&Timer->Timer);
67 }
68
69
70 VOID
71 EXPORT
72 NdisMInitializeTimer(
73 IN OUT PNDIS_MINIPORT_TIMER Timer,
74 IN NDIS_HANDLE MiniportAdapterHandle,
75 IN PNDIS_TIMER_FUNCTION TimerFunction,
76 IN PVOID FunctionContext)
77 {
78 KeInitializeTimer (&Timer->Timer);
79
80 KeInitializeDpc (&Timer->Dpc, MiniportTimerDpc, (PVOID) Timer);
81
82 Timer->MiniportTimerFunction = TimerFunction;
83 Timer->MiniportTimerContext = FunctionContext;
84 Timer->Miniport = MiniportAdapterHandle;
85 }
86
87
88 VOID
89 EXPORT
90 NdisMSetPeriodicTimer(
91 IN PNDIS_MINIPORT_TIMER Timer,
92 IN UINT MillisecondsPeriod)
93 {
94 LARGE_INTEGER Timeout;
95
96 Timeout.QuadPart = MillisecondsPeriod * -10000;
97
98 KeSetTimerEx (&Timer->Timer, Timeout, MillisecondsPeriod, &Timer->Dpc);
99 }
100
101
102 VOID
103 EXPORT
104 NdisMSetTimer(
105 IN PNDIS_MINIPORT_TIMER Timer,
106 IN UINT MillisecondsToDelay)
107 {
108 LARGE_INTEGER Timeout;
109
110 Timeout.QuadPart = MillisecondsToDelay * -10000;
111
112 KeSetTimer (&Timer->Timer, Timeout, &Timer->Dpc);
113 }
114
115
116 VOID
117 EXPORT
118 NdisSetTimer(
119 IN PNDIS_TIMER Timer,
120 IN UINT MillisecondsToDelay)
121 {
122 LARGE_INTEGER Timeout;
123
124 Timeout.QuadPart = MillisecondsToDelay * -10000;
125
126 KeSetTimer (&Timer->Timer, Timeout, &Timer->Dpc);
127 }
128
129 /* EOF */