[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