Add RtlLargeInteger macros to wdm.h
authorTimo Kreuzer <timo.kreuzer@reactos.org>
Mon, 29 Mar 2010 05:48:15 +0000 (05:48 +0000)
committerTimo Kreuzer <timo.kreuzer@reactos.org>
Mon, 29 Mar 2010 05:48:15 +0000 (05:48 +0000)
svn path=/trunk/; revision=46560

reactos/drivers/filesystems/ext2/inc/ext2fsd.h
reactos/include/ddk/wdm.h

index bf2b784..dcf35d9 100644 (file)
@@ -42,8 +42,11 @@ typedef unsigned char   BYTE;
 /* REACTOS FIXME */
 #undef DeleteFile
 /* This is deprecated and should be changed in the EXT2FS driver. */
+
+/* FIXME : Those two definitions already exist in wdm.h
 #define RtlLargeIntegerLessThan(a, b) (a).QuadPart < (b).QuadPart
 #define RtlLargeIntegerGreaterThan(a, b) (a).QuadPart > (b).QuadPart
+*/
 
 
 // the following include files should be in the inc sub-dir associated with this driver
index 526069d..e4aed4f 100644 (file)
@@ -6603,7 +6603,46 @@ RtlCheckBit(
 #define RtlCheckBit(BMH,BP) (((((PLONG)(BMH)->Buffer)[(BP)/32]) >> ((BP)%32)) & 0x1)
 #endif // defined(_M_AMD64)
 
-#endif // !defined(MIDL_PASS)
+#define RtlLargeIntegerGreaterThan(X,Y) (                              \
+    (((X).HighPart == (Y).HighPart) && ((X).LowPart > (Y).LowPart)) || \
+    ((X).HighPart > (Y).HighPart)                                      \
+)
+
+#define RtlLargeIntegerGreaterThanOrEqualTo(X,Y) (                      \
+    (((X).HighPart == (Y).HighPart) && ((X).LowPart >= (Y).LowPart)) || \
+    ((X).HighPart > (Y).HighPart)                                       \
+)
+
+#define RtlLargeIntegerNotEqualTo(X,Y) (                          \
+    (((X).LowPart ^ (Y).LowPart) | ((X).HighPart ^ (Y).HighPart)) \
+)
+
+#define RtlLargeIntegerLessThan(X,Y) (                                 \
+    (((X).HighPart == (Y).HighPart) && ((X).LowPart < (Y).LowPart)) || \
+    ((X).HighPart < (Y).HighPart)                                      \
+)
+
+#define RtlLargeIntegerLessThanOrEqualTo(X,Y) (                         \
+    (((X).HighPart == (Y).HighPart) && ((X).LowPart <= (Y).LowPart)) || \
+    ((X).HighPart < (Y).HighPart)                                       \
+)
+
+#define RtlLargeIntegerGreaterThanZero(X) (       \
+    (((X).HighPart == 0) && ((X).LowPart > 0)) || \
+    ((X).HighPart > 0 )                           \
+)
+
+#define RtlLargeIntegerGreaterOrEqualToZero(X) ( (X).HighPart >= 0 )
+
+#define RtlLargeIntegerEqualToZero(X) ( !((X).LowPart | (X).HighPart) )
+
+#define RtlLargeIntegerNotEqualToZero(X) ( ((X).LowPart | (X).HighPart) )
+
+#define RtlLargeIntegerLessThanZero(X) ( ((X).HighPart < 0) )
+
+#define RtlLargeIntegerLessOrEqualToZero(X) ( ((X).HighPart < 0) || !((X).LowPart | (X).HighPart) )
+
+#endif /* !defined(MIDL_PASS) */
 
 /* Byte Swap Functions */
 #if (defined(_M_IX86) && (_MSC_FULL_VER > 13009037 || defined(__GNUC__))) || \