[KMTESTS]

- Fix 64 bit warnings
- Do not force assembly syntax on GCC in ExInterlocked

svn path=/trunk/; revision=56456
This commit is contained in:
Thomas Faber 2012-05-01 09:13:19 +00:00
parent 67d9295a2d
commit 2ab0757b32
6 changed files with 31 additions and 31 deletions

View 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);

View 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;

View file

@ -279,7 +279,7 @@ DriverIoControl(
{
NTSTATUS Status = STATUS_SUCCESS;
PIO_STACK_LOCATION IoStackLocation;
ULONG Length = 0;
SIZE_T Length = 0;
PAGED_CODE();

View 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;

View 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

View 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.