#pragma once
-#ifdef _M_PPC
-#define KdDebuggerEnabled _KdDebuggerEnabled
-#define KdDebuggerNotPresent _KdDebuggerNotPresent
-#endif
+#include <cportlib/cportlib.h>
//
// Kernel Debugger Port Definition
//
-typedef struct _KD_PORT_INFORMATION
-{
- ULONG ComPort;
- ULONG BaudRate;
- ULONG BaseAddress;
-} KD_PORT_INFORMATION, *PKD_PORT_INFORMATION;
-
struct _KD_DISPATCH_TABLE;
-extern KD_PORT_INFORMATION GdbPortInfo;
-extern BOOLEAN _KdDebuggerEnabled;
-extern BOOLEAN _KdDebuggerNotPresent;
+extern CPPORT GdbPortInfo;
extern BOOLEAN KdBreakAfterSymbolLoad;
extern BOOLEAN KdPitchDebugger;
extern BOOLEAN KdIgnoreUmExceptions;
-BOOLEAN
-NTAPI
-KdPortInitialize(
- PKD_PORT_INFORMATION PortInformation,
- ULONG Unknown1,
- ULONG Unknown2
-);
-
BOOLEAN
NTAPI
KdPortInitializeEx(
- PKD_PORT_INFORMATION PortInformation,
- ULONG Unknown1,
- ULONG Unknown2
+ PCPPORT PortInformation,
+ ULONG ComPortNumber
);
-BOOLEAN
-NTAPI
-KdPortGetByte(
- PUCHAR ByteRecieved);
-
BOOLEAN
NTAPI
KdPortGetByteEx(
- PKD_PORT_INFORMATION PortInformation,
- PUCHAR ByteRecieved);
-
-VOID
-NTAPI
-KdPortPutByte(
- UCHAR ByteToSend
-);
+ PCPPORT PortInformation,
+ PUCHAR ByteReceived);
VOID
NTAPI
KdPortPutByteEx(
- PKD_PORT_INFORMATION PortInformation,
+ PCPPORT PortInformation,
UCHAR ByteToSend
);
#if defined(KDBG) || DBG
-#if KDBG
+#if defined(KDBG)
typedef
BOOLEAN
(NTAPI *PKDBG_CLI_ROUTINE)(
IN PROSSYM_INFO RosSymInfo,
IN ULONG_PTR RelativeAddress,
#ifdef __ROS_DWARF__
- IN PROSSYM_LINEINFO RosSymLineInfo
+ IN PROSSYM_LINEINFO RosSymLineInfo
#else
OUT PULONG LineNumber OPTIONAL,
OUT PCH FileName OPTIONAL,
ULONG
NTAPI
KdpPrintString(
- LPSTR String,
- ULONG Length);
+ _In_reads_bytes_(Length) PCHAR UnsafeString,
+ _In_ ULONG Length,
+ _In_ KPROCESSOR_MODE PreviousMode);
ULONG
NTAPI
KdpPrompt(
- IN LPSTR InString,
- IN USHORT InStringLength,
- OUT LPSTR OutString,
- IN USHORT OutStringLength
+ _In_reads_bytes_(InStringLength) PCHAR UnsafeInString,
+ _In_ USHORT InStringLength,
+ _Out_writes_bytes_(OutStringLength) PCHAR UnsafeOutString,
+ _In_ USHORT OutStringLength,
+ _In_ KPROCESSOR_MODE PreviousMode
);
BOOLEAN
extern ULONG KdpPort;
/* Port Information for the Serial Native Mode */
-extern KD_PORT_INFORMATION SerialPortInfo;
+extern ULONG SerialPortNumber;
+extern CPPORT SerialPortInfo;
/* Init Functions for Native Providers */
extern PKDP_INIT_ROUTINE InitRoutines[KdMax];
#endif
-#if DBG
+#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);