[KMTESTS]
authorThomas Faber <thomas.faber@reactos.org>
Tue, 1 May 2012 09:13:19 +0000 (09:13 +0000)
committerThomas Faber <thomas.faber@reactos.org>
Tue, 1 May 2012 09:13:19 +0000 (09:13 +0000)
- Fix 64 bit warnings
- Do not force assembly syntax on GCC in ExInterlocked

svn path=/trunk/; revision=56456

rostests/kmtests/include/kmt_test.h
rostests/kmtests/kmtest/support.c
rostests/kmtests/kmtest_drv/kmtest_drv.c
rostests/kmtests/kmtest_drv/printf_stubs.c
rostests/kmtests/ntos_ex/ExInterlocked.c
rostests/kmtests/rtl/RtlMemory.c

index b1ac21e..2670b9e 100644 (file)
@@ -234,7 +234,7 @@ static PKMT_RESULTBUFFER KmtAllocateResultBuffer(SIZE_T ResultBufferSize)
     Buffer->Failures = 0;
     Buffer->Skipped = 0;
     Buffer->LogBufferLength = 0;
-    Buffer->LogBufferMaxLength = ResultBufferSize - FIELD_OFFSET(KMT_RESULTBUFFER, LogBuffer);
+    Buffer->LogBufferMaxLength = (ULONG)ResultBufferSize - FIELD_OFFSET(KMT_RESULTBUFFER, LogBuffer);
 
     return Buffer;
 }
@@ -260,7 +260,7 @@ static VOID KmtAddToLogBuffer(PKMT_RESULTBUFFER Buffer, PCSTR String, SIZE_T Len
     do
     {
         OldLength = Buffer->LogBufferLength;
-        NewLength = OldLength + Length;
+        NewLength = OldLength + (ULONG)Length;
         if (NewLength > Buffer->LogBufferMaxLength)
             return;
     } while (InterlockedCompareExchange(&Buffer->LogBufferLength, NewLength, OldLength) != OldLength);
index 03c10af..4883382 100644 (file)
@@ -31,7 +31,7 @@ KmtRunKernelTest(
     DWORD Error = ERROR_SUCCESS;
     DWORD BytesRead;
 
-    if (!DeviceIoControl(KmtestHandle, IOCTL_KMTEST_RUN_TEST, (PVOID)TestName, strlen(TestName), NULL, 0, &BytesRead, NULL))
+    if (!DeviceIoControl(KmtestHandle, IOCTL_KMTEST_RUN_TEST, (PVOID)TestName, (DWORD)strlen(TestName), NULL, 0, &BytesRead, NULL))
         error(Error);
 
     return Error;
@@ -181,7 +181,7 @@ KmtSendStringToDriver(
 
     assert(ControlCode < 0x400);
 
-    if (!DeviceIoControl(TestDeviceHandle, KMT_MAKE_CODE(ControlCode), (PVOID)String, strlen(String), NULL, 0, &BytesRead, NULL))
+    if (!DeviceIoControl(TestDeviceHandle, KMT_MAKE_CODE(ControlCode), (PVOID)String, (DWORD)strlen(String), NULL, 0, &BytesRead, NULL))
         return GetLastError();
 
     return ERROR_SUCCESS;
index 52db06e..0c27dc3 100644 (file)
@@ -279,7 +279,7 @@ DriverIoControl(
 {
     NTSTATUS Status = STATUS_SUCCESS;
     PIO_STACK_LOCATION IoStackLocation;
-    ULONG Length = 0;
+    SIZE_T Length = 0;
 
     PAGED_CODE();
 
index 09e4d2b..c426533 100644 (file)
@@ -26,7 +26,7 @@ int __cdecl KmtVSNPrintF(char *buffer, size_t count, const char *format, va_list
     stream._base = (char *)buffer;
     stream._ptr = stream._base;
     stream._charbuf = 0;
-    stream._cnt = count;
+    stream._cnt = (int)count;
     stream._bufsiz = 0;
     stream._flag = _IOSTRG | _IOWRT;
     stream._tmpfname = 0;
index 4697fbe..83eab0f 100644 (file)
@@ -5,18 +5,18 @@
  * PROGRAMMER:      Thomas Faber <thfabba@gmx.de>
  */
 
+#include <stddef.h>
+
 /* missing prototypes >:| */
-#ifndef _MSC_VER
-typedef long long __int64;
-#endif
-struct _KSPIN_LOCK;
 __declspec(dllimport)   long            __fastcall  InterlockedCompareExchange(volatile long *, long, long);
 __declspec(dllimport)   __int64         __fastcall  ExInterlockedCompareExchange64(volatile __int64 *, __int64 *, __int64 *, void *);
 __declspec(dllimport)   __int64         __fastcall  ExfInterlockedCompareExchange64(volatile __int64 *, __int64 *, __int64 *);
 __declspec(dllimport)   long            __fastcall  InterlockedExchange(volatile long *, long);
 __declspec(dllimport)   unsigned long   __stdcall   ExInterlockedExchangeUlong(unsigned long *, unsigned long, void *);
 __declspec(dllimport)   long            __fastcall  InterlockedExchangeAdd(volatile long *, long);
-__declspec(dllimport)   unsigned long   __stdcall   ExInterlockedAddUlong(unsigned long *, unsigned long, void *);
+#ifdef _X86_
+__declspec(dllimport)   unsigned long   __stdcall   ExInterlockedAddUlong(unsigned long *, unsigned long, unsigned long *);
+#endif
 __declspec(dllimport)   unsigned long   __stdcall   Exi386InterlockedExchangeUlong(unsigned long *, unsigned long);
 __declspec(dllimport)   long            __fastcall  InterlockedIncrement(long *);
 __declspec(dllimport)   long            __fastcall  InterlockedDecrement(long *);
@@ -74,13 +74,11 @@ typedef int PROCESSOR_STATE;
 #elif defined(__GNUC__) && defined(_M_IX86)
 #define SaveState(State)                                                    \
     asm volatile(                                                           \
-        ".intel_syntax noprefix\n\t"                                        \
-        "mov\t[ecx], esi\n\t"                                               \
-        "mov\t[ecx+4], edi\n\t"                                             \
-        "mov\t[ecx+8], ebx\n\t"                                             \
-        "mov\t[ecx+12], ebp\n\t"                                            \
-        "mov\t[ecx+16], esp\n\t"                                            \
-        ".att_syntax prefix"                                                \
+        "movl\t%%esi, (%%ecx)\n\t"                                            \
+        "movl\t%%edi, 4(%%ecx)\n\t"                                           \
+        "movl\t%%ebx, 8(%%ecx)\n\t"                                           \
+        "movl\t%%ebp, 12(%%ecx)\n\t"                                          \
+        "movl\t%%esp, 16(%%ecx)"                                              \
         : : "c" (&State) : "memory"                                         \
     );
 
@@ -96,17 +94,15 @@ typedef int PROCESSOR_STATE;
 #elif defined(__GNUC__) && defined(_M_AMD64)
 #define SaveState(State)                                                    \
     asm volatile(                                                           \
-        ".intel_syntax noprefix\n\t"                                        \
-        "mov\t[rcx], rsi\n\t"                                               \
-        "mov\t[rcx+8], rdi\n\t"                                             \
-        "mov\t[rcx+16], rbx\n\t"                                            \
-        "mov\t[rcx+24], rbp\n\t"                                            \
-        "mov\t[rcx+32], rsp\n\t"                                            \
-        "mov\t[rcx+40], r12\n\t"                                            \
-        "mov\t[rcx+48], r13\n\t"                                            \
-        "mov\t[rcx+56], r14\n\t"                                            \
-        "mov\t[rcx+64], r15\n\t"                                            \
-        ".att_syntax prefix"                                                \
+        "mov\t%%rsi, (%%rcx)\n\t"                                             \
+        "mov\t%%rdi, 8(%%rcx)\n\t"                                            \
+        "mov\t%%rbx, 16(%%rcx)\n\t"                                           \
+        "mov\t%%rbp, 24(%%rcx)\n\t"                                           \
+        "mov\t%%rsp, 32(%%rcx)\n\t"                                           \
+        "mov\t%%r12, 40(%%rcx)\n\t"                                           \
+        "mov\t%%r13, 48(%%rcx)\n\t"                                           \
+        "mov\t%%r14, 56(%%rcx)\n\t"                                           \
+        "mov\t%%r15, 64(%%rcx)"                                               \
         : : "c" (&State) : "memory"                                         \
     );
 
@@ -124,7 +120,11 @@ typedef int PROCESSOR_STATE;
 } while (0)
 #else
 #define SaveState(State)
-#define CheckState(OldState, NewState)
+#define CheckState(OldState, NewState) do                                   \
+{                                                                           \
+    (void)OldState;                                                         \
+    (void)NewState;                                                         \
+} while (0)
 #endif
 
 static
index c33f056..08234ae 100644 (file)
@@ -160,7 +160,7 @@ START_TEST(RtlMemory)
     const SIZE_T HalfSize = Size / 2;
     SIZE_T RetSize;
     KIRQL Irql;
-    ULONG i;
+    SIZE_T i;
 
     KeRaiseIrql(HIGH_LEVEL, &Irql);
     /* zero everything behind 'Size'. Tests will check that this wasn't changed.