fix x64 build of hal
[reactos.git] / reactos / ntoskrnl / ke / amd64 / spinlock.c
1 /*
2 * PROJECT: ReactOS HAL
3 * LICENSE: GPL - See COPYING in the top level directory
4 * FILE: hal/halx86/up/spinlock.c
5 * PURPOSE: Spinlock and Queued Spinlock Support
6 * PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org)
7 */
8
9 /* INCLUDES ******************************************************************/
10
11 #include <ntoskrnl.h>
12 #define NDEBUG
13 #include <internal/debug.h>
14
15 #undef KeAcquireSpinLock
16 #undef KeReleaseSpinLock
17
18 /* FUNCTIONS *****************************************************************/
19
20 /*
21 * @implemented
22 */
23 KIRQL
24 KeAcquireSpinLockRaiseToSynch(PKSPIN_LOCK SpinLock)
25 {
26 #ifndef CONFIG_SMP
27 /* Simply raise to dispatch */
28 return KfRaiseIrql(DISPATCH_LEVEL);
29 #else
30 UNIMPLEMENTED;
31 #endif
32 }
33
34 /*
35 * @implemented
36 */
37 KIRQL
38 NTAPI
39 KeAcquireSpinLockRaiseToDpc(PKSPIN_LOCK SpinLock)
40 {
41 #ifndef CONFIG_SMP
42 /* Simply raise to dispatch */
43 return KfRaiseIrql(DISPATCH_LEVEL);
44 #else
45 UNIMPLEMENTED;
46 #endif
47 }
48
49 /*
50 * @implemented
51 */
52 VOID
53 NTAPI
54 KeReleaseSpinLock(PKSPIN_LOCK SpinLock,
55 KIRQL OldIrql)
56 {
57 #ifndef CONFIG_SMP
58 /* Simply lower IRQL back */
59 KfLowerIrql(OldIrql);
60 #else
61 UNIMPLEMENTED;
62 #endif
63 }
64
65 /*
66 * @implemented
67 */
68 KIRQL
69 KeAcquireQueuedSpinLock(IN KSPIN_LOCK_QUEUE_NUMBER LockNumber)
70 {
71 #ifndef CONFIG_SMP
72 /* Simply raise to dispatch */
73 return KfRaiseIrql(DISPATCH_LEVEL);
74 #else
75 UNIMPLEMENTED;
76 #endif
77 }
78
79 /*
80 * @implemented
81 */
82 KIRQL
83 KeAcquireQueuedSpinLockRaiseToSynch(IN KSPIN_LOCK_QUEUE_NUMBER LockNumber)
84 {
85 #ifndef CONFIG_SMP
86 /* Simply raise to dispatch */
87 return KfRaiseIrql(DISPATCH_LEVEL);
88 #else
89 UNIMPLEMENTED;
90 #endif
91 }
92
93 /*
94 * @implemented
95 */
96 VOID
97 KeAcquireInStackQueuedSpinLock(IN PKSPIN_LOCK SpinLock,
98 IN PKLOCK_QUEUE_HANDLE LockHandle)
99 {
100 #ifndef CONFIG_SMP
101 /* Simply raise to dispatch */
102 LockHandle->OldIrql = KfRaiseIrql(DISPATCH_LEVEL);
103 #else
104 UNIMPLEMENTED;
105 #endif
106 }
107
108 /*
109 * @implemented
110 */
111 VOID
112 KeAcquireInStackQueuedSpinLockRaiseToSynch(IN PKSPIN_LOCK SpinLock,
113 IN PKLOCK_QUEUE_HANDLE LockHandle)
114 {
115 #ifndef CONFIG_SMP
116 /* Simply raise to synch */
117 LockHandle->OldIrql = KfRaiseIrql(SYNCH_LEVEL);
118 #else
119 UNIMPLEMENTED;
120 #endif
121 }
122
123 /*
124 * @implemented
125 */
126 VOID
127 KeReleaseQueuedSpinLock(IN KSPIN_LOCK_QUEUE_NUMBER LockNumber,
128 IN KIRQL OldIrql)
129 {
130 #ifndef CONFIG_SMP
131 /* Simply lower IRQL back */
132 KfLowerIrql(OldIrql);
133 #else
134 UNIMPLEMENTED;
135 #endif
136 }
137
138 /*
139 * @implemented
140 */
141 VOID
142 KeReleaseInStackQueuedSpinLock(IN PKLOCK_QUEUE_HANDLE LockHandle)
143 {
144 #ifndef CONFIG_SMP
145 /* Simply lower IRQL back */
146 KfLowerIrql(LockHandle->OldIrql);
147 #else
148 UNIMPLEMENTED;
149 #endif
150 }
151
152 /*
153 * @implemented
154 */
155 BOOLEAN
156 KeTryToAcquireQueuedSpinLockRaiseToSynch(IN KSPIN_LOCK_QUEUE_NUMBER LockNumber,
157 IN PKIRQL OldIrql)
158 {
159 #ifndef CONFIG_SMP
160 /* Simply raise to dispatch */
161 *OldIrql = KfRaiseIrql(DISPATCH_LEVEL);
162
163 /* Always return true on UP Machines */
164 return TRUE;
165 #else
166 UNIMPLEMENTED;
167 #endif
168 }
169
170 /*
171 * @implemented
172 */
173 LOGICAL
174 KeTryToAcquireQueuedSpinLock(IN KSPIN_LOCK_QUEUE_NUMBER LockNumber,
175 OUT PKIRQL OldIrql)
176 {
177 #ifndef CONFIG_SMP
178 /* Simply raise to dispatch */
179 *OldIrql = KfRaiseIrql(DISPATCH_LEVEL);
180
181 /* Always return true on UP Machines */
182 return TRUE;
183 #else
184 UNIMPLEMENTED;
185 #endif
186 }
187
188 /* EOF */