xref: /reactos/drivers/network/ndis/include/ndissys.h (revision c2c66aff)
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 */
65