Commit in reactos/lib/ntdll on MAIN
def/ntdll.def+2-11.132 -> 1.133
makefile+6-21.109 -> 1.110
ver/.cvsignore+3added 1.1
   /ver.c+76added 1.1
+87-3
2 added + 2 modified, total 4 files
Implemented VerSetConditionMask.
[HEADER HELL] VER_XXX macros defined inside the source file. Sorry

reactos/lib/ntdll/def
ntdll.def 1.132 -> 1.133
diff -u -r1.132 -r1.133
--- ntdll.def	23 Sep 2004 17:03:59 -0000	1.132
+++ ntdll.def	7 Nov 2004 13:08:24 -0000	1.133
@@ -1,4 +1,4 @@
-; $Id: ntdll.def,v 1.132 2004/09/23 17:03:59 weiden Exp $
+; $Id: ntdll.def,v 1.133 2004/11/07 13:08:24 hyperion Exp $
 ;
 ; ReactOS Operating System
 ;
@@ -681,6 +681,7 @@
 RtlxUnicodeStringToAnsiSize@4
 RtlxUnicodeStringToOemSize@4
 ;SaveEm87Context
+VerSetConditionMask@16
 ZwAcceptConnectPort@24
 ZwAccessCheck@32
 ZwAccessCheckAndAuditAlarm@44

reactos/lib/ntdll
makefile 1.109 -> 1.110
diff -u -r1.109 -r1.110
--- makefile	10 Sep 2004 23:29:18 -0000	1.109
+++ makefile	7 Nov 2004 13:08:24 -0000	1.110
@@ -1,4 +1,4 @@
-# $Id: makefile,v 1.109 2004/09/10 23:29:18 sedwards Exp $
+# $Id: makefile,v 1.110 2004/11/07 13:08:24 hyperion Exp $
 
 PATH_TO_TOP = ../..
 
@@ -122,6 +122,9 @@
 	string/strupr.o \
 	string/wstring.o
 
+VER_OBJECTS = \
+	ver/ver.o
+
 ARCH_OBJECTS = \
 	$(RTL_I386_OBJECTS)
 
@@ -134,7 +137,8 @@
 	$(RTL_OBJECTS) \
 	$(STDIO_OBJECTS) \
 	$(STDLIB_OBJECTS) \
-	$(STRING_OBJECTS)
+	$(STRING_OBJECTS) \
+        $(VER_OBJECTS)
 
 DEP_OBJECTS = $(TARGET_OBJECTS)
 DEP_EXCLUDE_FILTER = napi.%

reactos/lib/ntdll/ver
.cvsignore added at 1.1
diff -N .cvsignore
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ .cvsignore	7 Nov 2004 13:08:24 -0000	1.1
@@ -0,0 +1,3 @@
+*.d
+*.o
+*.sym

reactos/lib/ntdll/ver
ver.c added at 1.1
diff -N ver.c
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ ver.c	7 Nov 2004 13:08:24 -0000	1.1
@@ -0,0 +1,76 @@
+/* $Id: ver.c,v 1.1 2004/11/07 13:08:24 hyperion Exp $
+ *
+ * COPYRIGHT:       See COPYING in the top level directory
+ * PROJECT:         ReactOS NT Layer DLL
+ * FILE:            lib/ntdll/ver/ver.c
+ * PURPOSE:         Operating system version checking
+ * PROGRAMMERS:     KJK::Hyperion
+ * HISTORY:         2004-11-07: Created (imported from Wine)
+ */
+
+#include <ddk/ntddk.h>
+
+/*
+ Header hell made me do it, don't blame me. Please move these somewhere more
+ sensible
+*/
+#define VER_EQUAL         1
+#define VER_GREATER       2
+#define VER_GREATER_EQUAL 3
+#define VER_LESS          4
+#define VER_LESS_EQUAL    5
+#define VER_AND           6
+#define VER_OR            7
+
+#define VER_CONDITION_MASK              7
+#define VER_NUM_BITS_PER_CONDITION_MASK 3
+
+#define VER_MINORVERSION     0x0000001
+#define VER_MAJORVERSION     0x0000002
+#define VER_BUILDNUMBER      0x0000004
+#define VER_PLATFORMID       0x0000008
+#define VER_SERVICEPACKMINOR 0x0000010
+#define VER_SERVICEPACKMAJOR 0x0000020
+#define VER_SUITENAME        0x0000040
+#define VER_PRODUCT_TYPE     0x0000080
+
+#define VER_NT_WORKSTATION       0x0000001
+#define VER_NT_DOMAIN_CONTROLLER 0x0000002
+#define VER_NT_SERVER            0x0000003
+
+ULONGLONG NTAPI VerSetConditionMask
+(
+ IN ULONGLONG dwlConditionMask,
+ IN DWORD dwTypeBitMask,
+ IN BYTE dwConditionMask
+)
+{
+ if(dwTypeBitMask == 0)
+  return dwlConditionMask;
+
+ dwConditionMask &= VER_CONDITION_MASK;
+
+ if(dwConditionMask == 0)
+  return dwlConditionMask;
+
+ if(dwTypeBitMask & VER_PRODUCT_TYPE)
+  dwlConditionMask |= dwConditionMask << 7 * VER_NUM_BITS_PER_CONDITION_MASK;
+ else if(dwTypeBitMask & VER_SUITENAME)
+  dwlConditionMask |= dwConditionMask << 6 * VER_NUM_BITS_PER_CONDITION_MASK;
+ else if(dwTypeBitMask & VER_SERVICEPACKMAJOR)
+  dwlConditionMask |= dwConditionMask << 5 * VER_NUM_BITS_PER_CONDITION_MASK;
+ else if(dwTypeBitMask & VER_SERVICEPACKMINOR)
+  dwlConditionMask |= dwConditionMask << 4 * VER_NUM_BITS_PER_CONDITION_MASK;
+ else if(dwTypeBitMask & VER_PLATFORMID)
+  dwlConditionMask |= dwConditionMask << 3 * VER_NUM_BITS_PER_CONDITION_MASK;
+ else if(dwTypeBitMask & VER_BUILDNUMBER)
+  dwlConditionMask |= dwConditionMask << 2 * VER_NUM_BITS_PER_CONDITION_MASK;
+ else if(dwTypeBitMask & VER_MAJORVERSION)
+  dwlConditionMask |= dwConditionMask << 1 * VER_NUM_BITS_PER_CONDITION_MASK;
+ else if(dwTypeBitMask & VER_MINORVERSION)
+  dwlConditionMask |= dwConditionMask << 0 * VER_NUM_BITS_PER_CONDITION_MASK;
+
+ return dwlConditionMask;
+}
+
+/* EOF */
CVSspam 0.2.8