https://git.reactos.org/?p=reactos.git;a=commitdiff;h=eb02a852144c89f82b236b...
commit eb02a852144c89f82b236b29160408edb6002230 Author: Hermès Bélusca-Maïto hermes.belusca-maito@reactos.org AuthorDate: Mon Mar 27 23:13:53 2023 +0200 Commit: Hermès Bélusca-Maïto hermes.belusca-maito@reactos.org CommitDate: Mon Mar 27 23:31:34 2023 +0200
[NTOS:KD] Split internal/kd.h into a part shared in the whole kernel and a private part only used within ntoskrnl/kd. --- ntoskrnl/include/internal/kd.h | 116 +-------------------------------- ntoskrnl/{include/internal => kd}/kd.h | 71 ++------------------ ntoskrnl/kd/kdmain.c | 4 -- ntoskrnl/kdbg/kdb.h | 2 +- 4 files changed, 8 insertions(+), 185 deletions(-)
diff --git a/ntoskrnl/include/internal/kd.h b/ntoskrnl/include/internal/kd.h index 64b83e7a168..a180acf5478 100644 --- a/ntoskrnl/include/internal/kd.h +++ b/ntoskrnl/include/internal/kd.h @@ -5,7 +5,6 @@ // // Kernel Debugger Port Definition // -struct _KD_DISPATCH_TABLE;
BOOLEAN NTAPI @@ -29,7 +28,7 @@ KdPortPutByteEx(
#ifdef _NTOSKRNL_
-/* KD ROUTINES ***************************************************************/ +/* KD GLOBALS ****************************************************************/
typedef enum _KD_CONTINUE_TYPE { @@ -38,94 +37,6 @@ typedef enum _KD_CONTINUE_TYPE kdHandleException } KD_CONTINUE_TYPE;
-typedef -NTSTATUS -(NTAPI *PKDP_INIT_ROUTINE)( - _In_ struct _KD_DISPATCH_TABLE *DispatchTable, - _In_ ULONG BootPhase); - -typedef -VOID -(NTAPI*PKDP_PRINT_ROUTINE)( - PCHAR String, - ULONG Length -); - -/* INIT ROUTINES *************************************************************/ - -KIRQL -NTAPI -KdbpAcquireLock( - _In_ PKSPIN_LOCK SpinLock); - -VOID -NTAPI -KdbpReleaseLock( - _In_ PKSPIN_LOCK SpinLock, - _In_ KIRQL OldIrql); - -VOID -KdpScreenAcquire(VOID); - -VOID -KdpScreenRelease(VOID); - -NTSTATUS -NTAPI -KdpScreenInit( - _In_ struct _KD_DISPATCH_TABLE *DispatchTable, - _In_ ULONG BootPhase); - -NTSTATUS -NTAPI -KdpSerialInit( - _In_ struct _KD_DISPATCH_TABLE *DispatchTable, - _In_ ULONG BootPhase); - -NTSTATUS -NTAPI -KdpDebugLogInit( - _In_ struct _KD_DISPATCH_TABLE *DispatchTable, - _In_ ULONG BootPhase); - -#ifdef KDBG -#define KdpKdbgInit KdbInitialize -#endif - - -/* KD GLOBALS ***************************************************************/ - -/* Serial debug connection */ -#define DEFAULT_DEBUG_PORT 2 /* COM2 */ -#define DEFAULT_DEBUG_COM1_IRQ 4 /* COM1 IRQ */ -#define DEFAULT_DEBUG_COM2_IRQ 3 /* COM2 IRQ */ -#define DEFAULT_DEBUG_BAUD_RATE 115200 /* 115200 Baud */ - -/* KD Native Modes */ -#define KdScreen 0 -#define KdSerial 1 -#define KdFile 2 -#define KdKdbg 3 -#define KdMax 4 - -/* KD Private Debug Modes */ -typedef struct _KDP_DEBUG_MODE -{ - union - { - struct - { - /* Native Modes */ - UCHAR Screen :1; - UCHAR Serial :1; - UCHAR File :1; - }; - - /* Generic Value */ - ULONG Value; - }; -} KDP_DEBUG_MODE; - /* KD Internal Debug Services */ typedef enum _KDP_DEBUG_SERVICE { @@ -143,31 +54,6 @@ typedef enum _KDP_DEBUG_SERVICE ThatsWhatSheSaid = 69 /* FIGURE IT OUT */ } KDP_DEBUG_SERVICE;
-/* Dispatch Table for Wrapper Functions */ -typedef struct _KD_DISPATCH_TABLE -{ - LIST_ENTRY KdProvidersList; - PKDP_INIT_ROUTINE KdpInitRoutine; - PKDP_PRINT_ROUTINE KdpPrintRoutine; - NTSTATUS InitStatus; -} KD_DISPATCH_TABLE, *PKD_DISPATCH_TABLE; - -/* The current Debugging Mode */ -extern KDP_DEBUG_MODE KdpDebugMode; - -/* Port Information for the Serial Native Mode */ -extern ULONG SerialPortNumber; -extern CPPORT SerialPortInfo; - -/* Init Functions for Native Providers */ -extern PKDP_INIT_ROUTINE InitRoutines[KdMax]; - -/* Dispatch Tables for Native Providers */ -extern KD_DISPATCH_TABLE DispatchTable[KdMax]; - -/* The KD Native Provider List */ -extern LIST_ENTRY KdProviders; - #endif // _NTOSKRNL_
#if DBG && defined(_M_IX86) && !defined(_WINKD_) // See ke/i386/traphdlr.c diff --git a/ntoskrnl/include/internal/kd.h b/ntoskrnl/kd/kd.h similarity index 60% copy from ntoskrnl/include/internal/kd.h copy to ntoskrnl/kd/kd.h index 64b83e7a168..5672408d4c6 100644 --- a/ntoskrnl/include/internal/kd.h +++ b/ntoskrnl/kd/kd.h @@ -1,42 +1,8 @@ #pragma once
-#include <cportlib/cportlib.h> - -// -// Kernel Debugger Port Definition -// -struct _KD_DISPATCH_TABLE; - -BOOLEAN -NTAPI -KdPortInitializeEx( - PCPPORT PortInformation, - ULONG ComPortNumber -); - -BOOLEAN -NTAPI -KdPortGetByteEx( - PCPPORT PortInformation, - PUCHAR ByteReceived); - -VOID -NTAPI -KdPortPutByteEx( - PCPPORT PortInformation, - UCHAR ByteToSend -); - -#ifdef _NTOSKRNL_ - /* KD ROUTINES ***************************************************************/
-typedef enum _KD_CONTINUE_TYPE -{ - kdContinue = 0, - kdDoNotHandleException, - kdHandleException -} KD_CONTINUE_TYPE; +struct _KD_DISPATCH_TABLE;
typedef NTSTATUS @@ -46,7 +12,7 @@ NTSTATUS
typedef VOID -(NTAPI*PKDP_PRINT_ROUTINE)( +(NTAPI *PKDP_PRINT_ROUTINE)( PCHAR String, ULONG Length ); @@ -93,7 +59,7 @@ KdpDebugLogInit( #endif
-/* KD GLOBALS ***************************************************************/ +/* KD GLOBALS ****************************************************************/
/* Serial debug connection */ #define DEFAULT_DEBUG_PORT 2 /* COM2 */ @@ -126,23 +92,6 @@ typedef struct _KDP_DEBUG_MODE }; } KDP_DEBUG_MODE;
-/* KD Internal Debug Services */ -typedef enum _KDP_DEBUG_SERVICE -{ - DumpNonPagedPool = 0x1e, /* a */ - ManualBugCheck = 0x30, /* b */ - DumpNonPagedPoolStats = 0x2e, /* c */ - DumpNewNonPagedPool = 0x20, /* d */ - DumpNewNonPagedPoolStats = 0x12, /* e */ - DumpAllThreads = 0x21, /* f */ - DumpUserThreads = 0x22, /* g */ - KdSpare1 = 0x23, /* h */ - KdSpare2 = 0x17, /* i */ - KdSpare3 = 0x24, /* j */ - EnterDebugger = 0x25, /* k */ - ThatsWhatSheSaid = 69 /* FIGURE IT OUT */ -} KDP_DEBUG_SERVICE; - /* Dispatch Table for Wrapper Functions */ typedef struct _KD_DISPATCH_TABLE { @@ -159,6 +108,9 @@ extern KDP_DEBUG_MODE KdpDebugMode; extern ULONG SerialPortNumber; extern CPPORT SerialPortInfo;
+/* Logging file path */ +extern ANSI_STRING KdpLogFileName; + /* Init Functions for Native Providers */ extern PKDP_INIT_ROUTINE InitRoutines[KdMax];
@@ -167,14 +119,3 @@ extern KD_DISPATCH_TABLE DispatchTable[KdMax];
/* The KD Native Provider List */ extern LIST_ENTRY KdProviders; - -#endif // _NTOSKRNL_ - -#if DBG && defined(_M_IX86) && !defined(_WINKD_) // See ke/i386/traphdlr.c -#define ID_Win32PreServiceHook 'WSH0' -#define ID_Win32PostServiceHook 'WSH1' -typedef void (NTAPI *PKDBG_PRESERVICEHOOK)(ULONG, PULONG_PTR); -typedef ULONG_PTR (NTAPI *PKDBG_POSTSERVICEHOOK)(ULONG, ULONG_PTR); -extern PKDBG_PRESERVICEHOOK KeWin32PreServiceHook; -extern PKDBG_POSTSERVICEHOOK KeWin32PostServiceHook; -#endif diff --git a/ntoskrnl/kd/kdmain.c b/ntoskrnl/kd/kdmain.c index 6281f43ab8f..77515b0bf3c 100644 --- a/ntoskrnl/kd/kdmain.c +++ b/ntoskrnl/kd/kdmain.c @@ -11,10 +11,6 @@ #define NDEBUG #include <debug.h>
-/* VARIABLES ***************************************************************/ - -extern ANSI_STRING KdpLogFileName; - /* PUBLIC FUNCTIONS *********************************************************/
static PCHAR diff --git a/ntoskrnl/kdbg/kdb.h b/ntoskrnl/kdbg/kdb.h index 6a5027ec2e8..cd7a0b5bec6 100644 --- a/ntoskrnl/kdbg/kdb.h +++ b/ntoskrnl/kdbg/kdb.h @@ -1,5 +1,5 @@ #pragma once -#include "internal/kd.h" +#include "../kd/kd.h"
/* TYPES *********************************************************************/