Author: ion
Date: Sun Mar 4 22:54:39 2007
New Revision: 25986
URL:
http://svn.reactos.org/svn/reactos?rev=25986&view=rev
Log:
- Add kd64.h header from branch and format it nicely.
- Add support for _WINKD_ definition to use kd64.h instead of kd.h, as well as disable
usage of rossym.h
- Add KdSystemDebugControl, NtSet/QueryDebugFilterState to kdapi.c for the KD64 code.
Added:
trunk/reactos/ntoskrnl/include/internal/kd64.h
Modified:
trunk/reactos/ntoskrnl/include/internal/ntoskrnl.h
trunk/reactos/ntoskrnl/include/ntoskrnl.h
trunk/reactos/ntoskrnl/kd/kdmain.c
trunk/reactos/ntoskrnl/kd64/kdapi.c
Added: trunk/reactos/ntoskrnl/include/internal/kd64.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/include/internal/…
==============================================================================
--- trunk/reactos/ntoskrnl/include/internal/kd64.h (added)
+++ trunk/reactos/ntoskrnl/include/internal/kd64.h Sun Mar 4 22:54:39 2007
@@ -1,0 +1,265 @@
+/*
+ * PROJECT: ReactOS Kernel
+ * LICENSE: GPL - See COPYING in the top level directory
+ * FILE: ntoskrnl/include/kd64.h
+ * PURPOSE: Internal header for the KD64 Library
+ * PROGRAMMERS: Alex Ionescu (alex.ionescu(a)reactos.org)
+ */
+
+//
+// Breakpoint Status Flags
+//
+typedef enum _KDP_BREAKPOINT_FLAGS
+{
+ KdpBreakpointActive = 1,
+ KdpBreakpointPending = 2,
+ KdpBreakpointSuspended = 4,
+ KdpBreakpointExpired = 8
+} KDP_BREAKPOINT_FLAGS;
+
+//
+// Structure for Breakpoints
+//
+typedef struct _BREAKPOINT_ENTRY
+{
+ ULONG Flags;
+ PKPROCESS Process;
+ PVOID Address;
+ UCHAR Content;
+} BREAKPOINT_ENTRY, *PBREAKPOINT_ENTRY;
+
+//
+// Debug and Multi-Processor Switch Routine Definitions
+//
+typedef
+BOOLEAN
+(NTAPI *PKDEBUG_ROUTINE)(
+ IN PKTRAP_FRAME TrapFrame,
+ IN PKEXCEPTION_FRAME ExceptionFrame,
+ IN PEXCEPTION_RECORD ExceptionRecord,
+ IN PCONTEXT Context,
+ IN KPROCESSOR_MODE PreviousMode,
+ IN BOOLEAN SecondChance
+);
+
+typedef
+BOOLEAN
+(NTAPI *PKDEBUG_SWITCH_ROUTINE)(
+ IN PEXCEPTION_RECORD ExceptionRecord,
+ IN PCONTEXT Context,
+ IN BOOLEAN SecondChance
+);
+
+//
+// Debug and Multi-Processor Switch Routines
+//
+BOOLEAN
+NTAPI
+KdpEnterDebuggerException(
+ IN PKTRAP_FRAME TrapFrame,
+ IN PKEXCEPTION_FRAME ExceptionFrame,
+ IN PEXCEPTION_RECORD ExceptionRecord,
+ IN PCONTEXT Context,
+ IN KPROCESSOR_MODE PreviousMode,
+ IN BOOLEAN SecondChance
+);
+
+BOOLEAN
+NTAPI
+KdpSwitchProcessor(
+ IN PEXCEPTION_RECORD ExceptionRecord,
+ IN OUT PCONTEXT ContextRecord,
+ IN BOOLEAN SecondChanceException
+);
+
+//
+// Time Slip Support
+//
+VOID
+NTAPI
+KdpTimeSlipWork(
+ IN PVOID Context
+);
+
+VOID
+NTAPI
+KdpTimeSlipDpcRoutine(
+ IN PKDPC Dpc,
+ IN PVOID DeferredContext,
+ IN PVOID SystemArgument1,
+ IN PVOID SystemArgument2
+);
+
+//
+// Debug Trap Handlers
+//
+BOOLEAN
+NTAPI
+KdpStub(
+ IN PKTRAP_FRAME TrapFrame,
+ IN PKEXCEPTION_FRAME ExceptionFrame,
+ IN PEXCEPTION_RECORD ExceptionRecord,
+ IN PCONTEXT ContextRecord,
+ IN KPROCESSOR_MODE PreviousMode,
+ IN BOOLEAN SecondChanceException
+);
+
+BOOLEAN
+NTAPI
+KdpTrap(
+ IN PKTRAP_FRAME TrapFrame,
+ IN PKEXCEPTION_FRAME ExceptionFrame,
+ IN PEXCEPTION_RECORD ExceptionRecord,
+ IN PCONTEXT ContextRecord,
+ IN KPROCESSOR_MODE PreviousMode,
+ IN BOOLEAN SecondChanceException
+);
+
+//
+// Port Locking
+//
+VOID
+NTAPI
+KdpPortLock(
+ VOID
+);
+
+VOID
+NTAPI
+KdpPortUnlock(
+ VOID
+);
+
+BOOLEAN
+NTAPI
+KdpPollBreakInWithPortLock(
+ VOID
+);
+
+//
+// Debugger Enable, Enter and Exit
+//
+BOOLEAN
+NTAPI
+KdEnterDebugger(
+ IN PKTRAP_FRAME TrapFrame,
+ IN PKEXCEPTION_FRAME ExceptionFrame
+);
+
+VOID
+NTAPI
+KdExitDebugger(
+ IN BOOLEAN Entered
+);
+
+NTSTATUS
+NTAPI
+KdEnableDebuggerWithLock(
+ IN BOOLEAN NeedLock
+);
+
+//
+// Debug Event Handlers
+//
+ULONG
+NTAPI
+KdpPrint(
+ IN ULONG ComponentId,
+ IN ULONG ComponentMask,
+ IN LPSTR String,
+ IN ULONG Length,
+ IN KPROCESSOR_MODE PreviousMode,
+ IN PKTRAP_FRAME TrapFrame,
+ IN PKEXCEPTION_FRAME ExceptionFrame,
+ OUT PBOOLEAN Status
+);
+
+ULONG
+NTAPI
+KdpSymbol(
+ IN PSTRING DllPath,
+ IN PKD_SYMBOLS_INFO DllBase,
+ IN BOOLEAN Unload,
+ IN KPROCESSOR_MODE PreviousMode,
+ IN PCONTEXT ContextRecord,
+ IN PKTRAP_FRAME TrapFrame,
+ IN PKEXCEPTION_FRAME ExceptionFrame
+);
+
+//
+// State Change Notifications
+//
+BOOLEAN
+NTAPI
+KdpReportLoadSymbolsStateChange(
+ IN PSTRING PathName,
+ IN PKD_SYMBOLS_INFO SymbolInfo,
+ IN BOOLEAN Unload,
+ IN OUT PCONTEXT Context
+);
+
+BOOLEAN
+NTAPI
+KdpReportExceptionStateChange(
+ IN PEXCEPTION_RECORD ExceptionRecord,
+ IN OUT PCONTEXT Context,
+ IN BOOLEAN SecondChanceException
+);
+
+//
+// Breakpoint Support
+//
+VOID
+NTAPI
+KdpRestoreAllBreakpoints(
+ VOID
+);
+
+BOOLEAN
+NTAPI
+KdpDeleteBreakpoint(
+ IN ULONG BpEntry
+);
+
+//
+// Global KD Data
+//
+extern DBGKD_GET_VERSION64 KdVersionBlock;
+extern KDDEBUGGER_DATA64 KdDebuggerDataBlock;
+extern LIST_ENTRY KdpDebuggerDataListHead;
+extern KSPIN_LOCK KdpDataSpinLock;
+extern LARGE_INTEGER KdPerformanceCounterRate;
+extern LARGE_INTEGER KdTimerStart;
+extern ULONG KdDisableCount;
+extern KD_CONTEXT KdpContext;
+extern PKDEBUG_ROUTINE KiDebugRoutine;
+extern PKDEBUG_SWITCH_ROUTINE KiDebugSwitchRoutine;
+extern BOOLEAN KdBreakAfterSymbolLoad;
+extern BOOLEAN KdPitchDebugger;
+extern BOOLEAN _KdDebuggerNotPresent;
+extern BOOLEAN _KdDebuggerEnabled;
+extern BOOLEAN KdAutoEnableOnEvent;
+extern BOOLEAN KdPreviouslyEnabled;
+extern BOOLEAN KdpDebuggerStructuresInitialized;
+extern BOOLEAN KdEnteredDebugger;
+extern KDPC KdpTimeSlipDpc;
+extern KTIMER KdpTimeSlipTimer;
+extern WORK_QUEUE_ITEM KdpTimeSlipWorkItem;
+extern LONG KdpTimeSlipPending;
+extern PKEVENT KdpTimeSlipEvent;
+extern KSPIN_LOCK KdpTimeSlipEventLock;
+extern BOOLEAN KdpControlCPressed;
+extern BOOLEAN KdpControlCWaiting;
+extern BOOLEAN KdpPortLocked;
+extern KSPIN_LOCK KdpDebuggerLock;
+extern LARGE_INTEGER KdTimerStop, KdTimerStart, KdTimerDifference;
+extern ULONG KdComponentTableSize;
+extern ULONG Kd_WIN2000_Mask;
+extern PULONG KdComponentTable[104];
+extern CHAR KdpMessageBuffer[4096], KdpPathBuffer[4096];
+extern BREAKPOINT_ENTRY KdpBreakpointTable[20];
+extern ULONG KdpBreakpointInstruction;
+extern BOOLEAN KdpOweBreakpoint;
+extern BOOLEAN BreakpointsSuspended;
+extern ULONG KdpNumInternalBreakpoints;
+extern ULONG KdpCurrentSymbolStart, KdpCurrentSymbolEnd;
Modified: trunk/reactos/ntoskrnl/include/internal/ntoskrnl.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/include/internal/…
==============================================================================
--- trunk/reactos/ntoskrnl/include/internal/ntoskrnl.h (original)
+++ trunk/reactos/ntoskrnl/include/internal/ntoskrnl.h Sun Mar 4 22:54:39 2007
@@ -36,7 +36,11 @@
#include "po.h"
#include "se.h"
#include "ldr.h"
+#ifndef _WINKD_
#include "kd.h"
+#else
+#include "kd64.h"
+#endif
#include "fsrtl.h"
#include "lpc.h"
#include "rtl.h"
Modified: trunk/reactos/ntoskrnl/include/ntoskrnl.h
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/include/ntoskrnl.…
==============================================================================
--- trunk/reactos/ntoskrnl/include/ntoskrnl.h (original)
+++ trunk/reactos/ntoskrnl/include/ntoskrnl.h Sun Mar 4 22:54:39 2007
@@ -50,7 +50,6 @@
#include <reactos/bugcodes.h>
#define ExRaiseStatus RtlRaiseStatus
#include <reactos/probe.h>
-#include <reactos/rossym.h>
/* SetupLDR Support */
#include <arc/setupblk.h>
@@ -59,6 +58,9 @@
#include <windbgkd.h>
#include <wdbgexts.h>
#include <kddll.h>
+#ifndef _WINKD_
+#include <reactos/rossym.h>
+#endif
/* PNP GUIDs */
#include <umpnpmgr/sysguid.h>
Modified: trunk/reactos/ntoskrnl/kd/kdmain.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/kd/kdmain.c?rev=2…
==============================================================================
--- trunk/reactos/ntoskrnl/kd/kdmain.c (original)
+++ trunk/reactos/ntoskrnl/kd/kdmain.c Sun Mar 4 22:54:39 2007
@@ -328,6 +328,9 @@
return STATUS_SUCCESS;
}
+/*
+ * @unimplemented
+ */
NTSTATUS
NTAPI
KdSystemDebugControl(IN SYSDBG_COMMAND Command,
Modified: trunk/reactos/ntoskrnl/kd64/kdapi.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/kd64/kdapi.c?rev=…
==============================================================================
--- trunk/reactos/ntoskrnl/kd64/kdapi.c (original)
+++ trunk/reactos/ntoskrnl/kd64/kdapi.c Sun Mar 4 22:54:39 2007
@@ -1156,3 +1156,37 @@
return KdEnableDebuggerWithLock(TRUE);
}
+/*
+* @unimplemented
+*/
+NTSTATUS
+NTAPI
+KdSystemDebugControl(IN SYSDBG_COMMAND Command,
+ IN PVOID InputBuffer,
+ IN ULONG InputBufferLength,
+ OUT PVOID OutputBuffer,
+ IN ULONG OutputBufferLength,
+ IN OUT PULONG ReturnLength,
+ IN KPROCESSOR_MODE PreviousMode)
+{
+ /* HACK */
+ return STATUS_SUCCESS;
+}
+
+NTSTATUS
+NTAPI
+NtQueryDebugFilterState(ULONG ComponentId,
+ ULONG Level)
+{
+ return STATUS_SUCCESS;
+}
+
+NTSTATUS
+NTAPI
+NtSetDebugFilterState(ULONG ComponentId,
+ ULONG Level,
+ BOOLEAN State)
+{
+ return STATUS_SUCCESS;
+}
+