Author: ion Date: Sun Feb 18 19:50:37 2007 New Revision: 25835
URL: http://svn.reactos.org/svn/reactos?rev=25835&view=rev Log: - Add stubs for KdSave, KdRestore, KdDebuggerInitialize0, KdSendPacket, KdReceivePacket to kdcom.dll - Implement and export KeTryToAcquireSpinLockAtDpcLevel.
Modified: branches/alex-kd-branch/reactos/drivers/base/kdcom/kdbg.c branches/alex-kd-branch/reactos/drivers/base/kdcom/kdcom.def branches/alex-kd-branch/reactos/ntoskrnl/ke/spinlock.c branches/alex-kd-branch/reactos/ntoskrnl/ntoskrnl.def
Modified: branches/alex-kd-branch/reactos/drivers/base/kdcom/kdbg.c URL: http://svn.reactos.org/svn/reactos/branches/alex-kd-branch/reactos/drivers/b... ============================================================================== --- branches/alex-kd-branch/reactos/drivers/base/kdcom/kdbg.c (original) +++ branches/alex-kd-branch/reactos/drivers/base/kdcom/kdbg.c Sun Feb 18 19:50:37 2007 @@ -17,6 +17,8 @@ #include <halfuncs.h> #include <stdio.h> #include <debug.h> +#include "arc/arc.h" +#include "windbgkd.h"
typedef struct _KD_PORT_INFORMATION { @@ -553,4 +555,66 @@ return TRUE; }
+/* + * @unimplemented + */ +NTSTATUS +NTAPI +KdDebuggerInitialize0(IN PLOADER_PARAMETER_BLOCK LoaderBlock OPTIONAL) +{ + /* FIXME: TODO */ + return STATUS_UNSUCCESSFUL; +} + +/* + * @implemented + */ +NTSTATUS +NTAPI +KdSave(IN BOOLEAN SleepTransition) +{ + /* Nothing to do on COM ports */ + return STATUS_SUCCESS; +} + +/* + * @implemented + */ +NTSTATUS +NTAPI +KdRestore(IN BOOLEAN SleepTransition) +{ + /* Nothing to do on COM ports */ + return STATUS_SUCCESS; +} + +/* + * @unimplemented + */ +VOID +NTAPI +KdSendPacket(IN USHORT PacketType, + IN PSTRING Header, + IN PSTRING Data OPTIONAL, + OUT PKD_CONTEXT Context) +{ + /* FIXME: TODO */ + return; +} + +/* + * @unimplemented + */ +ULONG +NTAPI +KdReceivePacket(IN USHORT PacketType, + OUT PSTRING Header, + OUT PSTRING Data, + OUT PUSHORT DataSize, + OUT PKD_CONTEXT Context OPTIONAL) +{ + /* FIXME: TODO */ + return 0; +} + /* EOF */
Modified: branches/alex-kd-branch/reactos/drivers/base/kdcom/kdcom.def URL: http://svn.reactos.org/svn/reactos/branches/alex-kd-branch/reactos/drivers/b... ============================================================================== --- branches/alex-kd-branch/reactos/drivers/base/kdcom/kdcom.def (original) +++ branches/alex-kd-branch/reactos/drivers/base/kdcom/kdcom.def Sun Feb 18 19:50:37 2007 @@ -1,15 +1,8 @@ LIBRARY kdcom.dll EXPORTS
-KdPortGetByte@4 -KdPortGetByteEx@8 -KdPortInitialize@12 -KdPortInitializeEx@12 -KdPortPollByte@4 -KdPortPollByteEx@8 -KdPortPutByte@4 -KdPortPutByteEx@8 -KdPortRestore@0 -KdPortSave@0 -KdPortDisableInterrupts@0 -KdPortEnableInterrupts@0 +KdDebuggerInitialize0@4 +KdSave@4 +KdRestore@4 +KdReceivePacket@20 +KdSendPacket@16
Modified: branches/alex-kd-branch/reactos/ntoskrnl/ke/spinlock.c URL: http://svn.reactos.org/svn/reactos/branches/alex-kd-branch/reactos/ntoskrnl/... ============================================================================== --- branches/alex-kd-branch/reactos/ntoskrnl/ke/spinlock.c (original) +++ branches/alex-kd-branch/reactos/ntoskrnl/ke/spinlock.c Sun Feb 18 19:50:37 2007 @@ -168,6 +168,40 @@ /* * @implemented */ +BOOLEAN +FASTCALL +KeTryToAcquireSpinLockAtDpcLevel(IN OUT PKSPIN_LOCK SpinLock) +{ +#ifdef CONFIG_SMP + /* Check if it's already acquired */ + if (!(*SpinLock)) + { + /* Try to acquire it */ + if (InterlockedBitTestAndSet((PLONG)SpinLock, 0)) + { + /* Someone else acquired it */ + return FALSE; + } + } + else + { + /* It was already acquired */ + return FALSE; + } + +#ifdef DBG + /* On debug builds, we OR in the KTHREAD */ + *SpinLock = (ULONG_PTR)KeGetCurrentThread() | 1; +#endif +#endif + + /* All is well, return TRUE */ + return TRUE; +} + +/* + * @implemented + */ VOID FASTCALL KeAcquireInStackQueuedSpinLockAtDpcLevel(IN PKSPIN_LOCK SpinLock,
Modified: branches/alex-kd-branch/reactos/ntoskrnl/ntoskrnl.def URL: http://svn.reactos.org/svn/reactos/branches/alex-kd-branch/reactos/ntoskrnl/... ============================================================================== --- branches/alex-kd-branch/reactos/ntoskrnl/ntoskrnl.def (original) +++ branches/alex-kd-branch/reactos/ntoskrnl/ntoskrnl.def Sun Feb 18 19:50:37 2007 @@ -650,6 +650,7 @@ KeTerminateThread@4 KeTickCount DATA @KeTryToAcquireGuardedMutex@4 +@KeTryToAcquireSpinLockAtDpcLevel@4 KeUpdateRunTime@4 KeUpdateSystemTime@0 KeUnstackDetachProcess@4