[KMTESTS]

- Fix AMD64 build

svn path=/trunk/; revision=54353
This commit is contained in:
Thomas Faber 2011-11-11 23:04:26 +00:00
parent ec82957d59
commit 218b87ee29
4 changed files with 14 additions and 1 deletions

View file

@ -44,6 +44,7 @@ TestFastMutex(
ExReleaseFastMutex(Mutex);
CheckMutex(Mutex, 1L, NULL, 0LU, OriginalIrql, OriginalIrql);
#ifdef _M_X86
/* ntoskrnl's fastcall version */
ExiAcquireFastMutex(Mutex);
CheckMutex(Mutex, 0L, Thread, 0LU, OriginalIrql, APC_LEVEL);
@ -51,6 +52,7 @@ TestFastMutex(
CheckMutex(Mutex, 0L, Thread, 0LU, OriginalIrql, APC_LEVEL);
ExiReleaseFastMutex(Mutex);
CheckMutex(Mutex, 1L, NULL, 0LU, OriginalIrql, OriginalIrql);
#endif
/* try to acquire */
ok_bool_true(ExTryToAcquireFastMutex(Mutex), "ExTryToAcquireFastMutex returned");

View file

@ -5,9 +5,10 @@
* PROGRAMMER: Thomas Faber <thfabba@gmx.de>
*/
#ifndef _M_AMD64
__declspec(dllimport) void __stdcall KeRaiseIrql(unsigned char, unsigned char *);
__declspec(dllimport) void __stdcall KeLowerIrql(unsigned char);
#ifdef _M_AMD64
#else
#define CLOCK1_LEVEL CLOCK_LEVEL
#define CLOCK2_LEVEL CLOCK_LEVEL
#endif
@ -137,6 +138,7 @@ START_TEST(KeIrql)
KeLowerIrql(PASSIVE_LEVEL);
}
#ifndef _M_AMD64
/* try the actual exports, not only the fastcall versions */
ok_irql(PASSIVE_LEVEL);
(KeRaiseIrql)(HIGH_LEVEL, &Irql);
@ -144,6 +146,7 @@ START_TEST(KeIrql)
ok_eq_uint(Irql, PASSIVE_LEVEL);
(KeLowerIrql)(Irql);
ok_irql(PASSIVE_LEVEL);
#endif
/* make sure we exit gracefully */
ok_irql(PASSIVE_LEVEL);

View file

@ -122,8 +122,13 @@ DEFINE_RELEASE(ReleaseForDpc, TRUE, KeReleaseSpinLockForDpc(SpinLock, C
DEFINE_ACQUIRE(AcquireInStackForDpc, FALSE, KeAcquireInStackQueuedSpinLockForDpc(SpinLock, &CheckData->QueueHandle))
DEFINE_RELEASE(ReleaseInStackForDpc, FALSE, KeReleaseInStackQueuedSpinLockForDpc(&CheckData->QueueHandle))
#ifdef _X86_
DEFINE_ACQUIRE(AcquireInt, FALSE, KiAcquireSpinLock(SpinLock))
DEFINE_RELEASE(ReleaseInt, FALSE, KiReleaseSpinLock(SpinLock))
#else
DEFINE_ACQUIRE(AcquireInt, TRUE, KeAcquireSpinLock(SpinLock, &CheckData->Irql))
DEFINE_RELEASE(ReleaseInt, TRUE, KeReleaseSpinLock(SpinLock, CheckData->Irql))
#endif
BOOLEAN TryQueued(PKSPIN_LOCK SpinLock, PCHECK_DATA CheckData) {
LOGICAL Ret = KeTryToAcquireQueuedSpinLock(CheckData->QueueNumber, &CheckData->Irql);

View file

@ -440,6 +440,8 @@ START_TEST(RtlMemory)
ok_eq_hex(Status, STATUS_SUCCESS);
KeRaiseIrql(HIGH_LEVEL, &Irql);
/* TODO: fix NDK. This should work! */
#if !defined _M_AMD64 || defined KMT_KERNEL_MODE
/* RtlFillMemoryUlong */
MakeBuffer(Buffer, Size, 0, 0);
RtlFillMemoryUlong(Buffer, HalfSize, 0x01234567LU);
@ -459,6 +461,7 @@ START_TEST(RtlMemory)
} _SEH2_END;
ok_eq_hex(Status, STATUS_SUCCESS);
KeRaiseIrql(HIGH_LEVEL, &Irql);
#endif
/* RtlFillMemoryUlonglong */
/* TODO: this function doesn't exist in 2k3/x86? wdm.h error? */