From 2ab0757b32dca595fc0710245d50880f7e6ae7d0 Mon Sep 17 00:00:00 2001 From: Thomas Faber Date: Tue, 1 May 2012 09:13:19 +0000 Subject: [PATCH] [KMTESTS] - Fix 64 bit warnings - Do not force assembly syntax on GCC in ExInterlocked svn path=/trunk/; revision=56456 --- rostests/kmtests/include/kmt_test.h | 4 +- rostests/kmtests/kmtest/support.c | 4 +- rostests/kmtests/kmtest_drv/kmtest_drv.c | 2 +- rostests/kmtests/kmtest_drv/printf_stubs.c | 2 +- rostests/kmtests/ntos_ex/ExInterlocked.c | 48 +++++++++++----------- rostests/kmtests/rtl/RtlMemory.c | 2 +- 6 files changed, 31 insertions(+), 31 deletions(-) diff --git a/rostests/kmtests/include/kmt_test.h b/rostests/kmtests/include/kmt_test.h index b1ac21e72a6..2670b9ebe67 100644 --- a/rostests/kmtests/include/kmt_test.h +++ b/rostests/kmtests/include/kmt_test.h @@ -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); diff --git a/rostests/kmtests/kmtest/support.c b/rostests/kmtests/kmtest/support.c index 03c10af2cce..4883382f7ca 100644 --- a/rostests/kmtests/kmtest/support.c +++ b/rostests/kmtests/kmtest/support.c @@ -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; diff --git a/rostests/kmtests/kmtest_drv/kmtest_drv.c b/rostests/kmtests/kmtest_drv/kmtest_drv.c index 52db06e3b88..0c27dc3b994 100644 --- a/rostests/kmtests/kmtest_drv/kmtest_drv.c +++ b/rostests/kmtests/kmtest_drv/kmtest_drv.c @@ -279,7 +279,7 @@ DriverIoControl( { NTSTATUS Status = STATUS_SUCCESS; PIO_STACK_LOCATION IoStackLocation; - ULONG Length = 0; + SIZE_T Length = 0; PAGED_CODE(); diff --git a/rostests/kmtests/kmtest_drv/printf_stubs.c b/rostests/kmtests/kmtest_drv/printf_stubs.c index 09e4d2b96c3..c4265333c9c 100644 --- a/rostests/kmtests/kmtest_drv/printf_stubs.c +++ b/rostests/kmtests/kmtest_drv/printf_stubs.c @@ -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; diff --git a/rostests/kmtests/ntos_ex/ExInterlocked.c b/rostests/kmtests/ntos_ex/ExInterlocked.c index 4697fbe292f..83eab0f6f57 100644 --- a/rostests/kmtests/ntos_ex/ExInterlocked.c +++ b/rostests/kmtests/ntos_ex/ExInterlocked.c @@ -5,18 +5,18 @@ * PROGRAMMER: Thomas Faber */ +#include + /* 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 diff --git a/rostests/kmtests/rtl/RtlMemory.c b/rostests/kmtests/rtl/RtlMemory.c index c33f0561a6d..08234ae4b1d 100644 --- a/rostests/kmtests/rtl/RtlMemory.c +++ b/rostests/kmtests/rtl/RtlMemory.c @@ -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. -- 2.17.1