b80a6a0bbfac3366214db5cdf6351c5836fb7350
[reactos.git] / reactos / drivers / network / ndis / include / ndissys.h
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS NDIS library
4 * FILE: ndissys.h
5 * PURPOSE: NDIS library definitions
6 * NOTES: Spin lock acquire order:
7 * - Miniport list lock
8 * - Adapter list lock
9 */
10 #ifndef __NDISSYS_H
11 #define __NDISSYS_H
12
13 #include <ndis.h>
14
15 #include "debug.h"
16 #include "miniport.h"
17 #include "protocol.h"
18 #include "efilter.h"
19 #include "buffer.h"
20
21 /* Exported functions */
22 #ifndef EXPORT
23 #define EXPORT NTAPI
24 #endif
25
26 /* the version of NDIS we claim to be */
27 #define NDIS_VERSION 0x00050001
28
29 #define NDIS_TAG 0x4e4d4953
30
31 #define MIN(value1, value2) \
32 ((value1 < value2)? value1 : value2)
33
34 #define MAX(value1, value2) \
35 ((value1 > value2)? value1 : value2)
36
37 #define ExInterlockedRemoveEntryList(_List,_Lock) \
38 { KIRQL OldIrql; \
39 KeAcquireSpinLock(_Lock, &OldIrql); \
40 RemoveEntryList(_List); \
41 KeReleaseSpinLock(_Lock, OldIrql); \
42 }
43
44 /* missing protypes */
45 VOID
46 NTAPI
47 ExGetCurrentProcessorCounts(
48 PULONG ThreadKernelTime,
49 PULONG TotalCpuTime,
50 PULONG ProcessorNumber);
51
52 VOID
53 NTAPI
54 ExGetCurrentProcessorCpuUsage(
55 PULONG CpuUsage);
56
57 /* portability fixes */
58 #ifdef _M_AMD64
59 #define KfReleaseSpinLock KeReleaseSpinLock
60 #define KefAcquireSpinLockAtDpcLevel KeAcquireSpinLockAtDpcLevel
61 #define KefReleaseSpinLockFromDpcLevel KeReleaseSpinLockFromDpcLevel
62 #endif
63
64 #endif /* __NDISSYS_H */