5f385237e9c4402f77b2de2321bd6323f7dfe3aa
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS NDIS library
5 * PURPOSE: NDIS library definitions
6 * NOTES: Spin lock acquire order:
13 #define NDIS50 1 /* Use NDIS 5.0 structures by default */
21 #include <ddk/ntddk.h>
23 #include <ddk/xfilter.h>
24 #include <ddk/afilter.h>
25 typedef struct _ATM_ADDRESS
*PATM_ADDRESS
;
26 /* FIXME: Get rid of this dependance. */
27 #include <ddk/ntapi.h>
35 /* Exported functions */
37 #define EXPORT __declspec(dllexport)
39 #define EXPORT STDCALL
42 #define NDIS_TAG 0x4e4d4953
46 #define DEBUG_REFCHECK(Object) { \
47 if ((Object)->RefCount <= 0) { \
48 NDIS_DbgPrint(MIN_TRACE, ("Object at (0x%X) has invalid reference count (%d).\n", \
49 (Object), (Object)->RefCount)); \
55 #define DEBUG_REFCHECK(Object)
61 * VOID ReferenceObject(
64 #define ReferenceObject(Object) \
66 DEBUG_REFCHECK(Object); \
67 NDIS_DbgPrint(DEBUG_REFCOUNT, ("Referencing object at (0x%X). RefCount (%d).\n", \
68 (Object), (Object)->RefCount)); \
70 InterlockedIncrement((PLONG)&((Object)->RefCount)); \
74 * VOID DereferenceObject(
77 #define DereferenceObject(Object) \
79 DEBUG_REFCHECK(Object); \
80 NDIS_DbgPrint(DEBUG_REFCOUNT, ("Dereferencing object at (0x%X). RefCount (%d).\n", \
81 (Object), (Object)->RefCount)); \
83 if (InterlockedDecrement((PLONG)&((Object)->RefCount)) == 0) \
84 PoolFreeBuffer(Object); \
88 #define MIN(value1, value2) \
89 ((value1 < value2)? value1 : value2)
91 #define MAX(value1, value2) \
92 ((value1 > value2)? value1 : value2)
94 #endif /* __NDISSYS_H */