[ros-diffs] [ion] 25835: - Add stubs for KdSave, KdRestore, KdDebuggerInitialize0, KdSendPacket, KdReceivePacket to kdcom.dll - Implement and export KeTryToAcquireSpinLockAtDpcLevel.
ion at svn.reactos.org
ion at svn.reactos.org
Sun Feb 18 17:50:38 CET 2007
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/base/kdcom/kdbg.c?rev=25835&r1=25834&r2=25835&view=diff
==============================================================================
--- 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/base/kdcom/kdcom.def?rev=25835&r1=25834&r2=25835&view=diff
==============================================================================
--- 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 at 4
-KdPortGetByteEx at 8
-KdPortInitialize at 12
-KdPortInitializeEx at 12
-KdPortPollByte at 4
-KdPortPollByteEx at 8
-KdPortPutByte at 4
-KdPortPutByteEx at 8
-KdPortRestore at 0
-KdPortSave at 0
-KdPortDisableInterrupts at 0
-KdPortEnableInterrupts at 0
+KdDebuggerInitialize0 at 4
+KdSave at 4
+KdRestore at 4
+KdReceivePacket at 20
+KdSendPacket at 16
Modified: branches/alex-kd-branch/reactos/ntoskrnl/ke/spinlock.c
URL: http://svn.reactos.org/svn/reactos/branches/alex-kd-branch/reactos/ntoskrnl/ke/spinlock.c?rev=25835&r1=25834&r2=25835&view=diff
==============================================================================
--- 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/ntoskrnl.def?rev=25835&r1=25834&r2=25835&view=diff
==============================================================================
--- 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 at 4
KeTickCount DATA
@KeTryToAcquireGuardedMutex at 4
+ at KeTryToAcquireSpinLockAtDpcLevel@4
KeUpdateRunTime at 4
KeUpdateSystemTime at 0
KeUnstackDetachProcess at 4
More information about the Ros-diffs
mailing list