16#if defined(SARCH_PC98)
17#define DEFAULT_DEBUG_PORT 2
18#define DEFAULT_DEBUG_COM1_IRQ 4
19#define DEFAULT_DEBUG_COM2_IRQ 5
20#define DEFAULT_DEBUG_BAUD_RATE 9600
21#define DEFAULT_BAUD_RATE 9600
23#define DEFAULT_DEBUG_PORT 2
24#define DEFAULT_DEBUG_COM1_IRQ 4
25#define DEFAULT_DEBUG_COM2_IRQ 3
26#define DEFAULT_DEBUG_BAUD_RATE 115200
27#define DEFAULT_BAUD_RATE 19200
30#if defined(_M_IX86) || defined(_M_AMD64)
31#if defined(SARCH_PC98)
32const ULONG BaseArray[] = {0, 0x30, 0x238};
34const ULONG BaseArray[] = {0, 0x3F8, 0x2F8, 0x3E8, 0x2E8};
37const ULONG BaseArray[] = {0, 0x800003F8};
39const ULONG BaseArray[] = {0, 0x80006000, 0x80007000};
41const ULONG BaseArray[] = {0, 0xF1012000};
43#error Unknown architecture
46#define MAX_COM_PORTS (sizeof(BaseArray) / sizeof(BaseArray[0]) - 1)
157 PCHAR CommandLine, PortString, BaudString, IrqString;
164 CommandLine = LoaderBlock->LoadOptions;
170 PortString =
strstr(CommandLine,
"DEBUGPORT");
171 BaudString =
strstr(CommandLine,
"BAUDRATE");
172 IrqString =
strstr(CommandLine,
"IRQ");
178 PortString +=
strlen(
"DEBUGPORT");
181 while (*PortString ==
' ') PortString++;
185 if (
strncmp(PortString,
"COM", 3) != 0)
193 if (
Value >=
sizeof(BaseArray) /
sizeof(BaseArray[0]))
199 ComPortNumber =
Value;
206 BaudString +=
strlen(
"BAUDRATE");
209 while (*BaudString ==
' ') BaudString++;
224 IrqString +=
strlen(
"IRQ");
227 while (*IrqString ==
' ') IrqString++;
339 else if (
Byte ==
'$')
char * strstr(char *String1, char *String2)
ACPI_SIZE strlen(const char *String)
int strncmp(const char *String1, const char *String2, ACPI_SIZE Count)
VOID NTAPI CpPutByte(IN PCPPORT Port, IN UCHAR Byte)
NTSTATUS NTAPI CpInitialize(IN PCPPORT Port, IN PUCHAR Address, IN ULONG BaudRate)
USHORT NTAPI CpGetByte(IN PCPPORT Port, OUT PUCHAR Byte, IN BOOLEAN Wait, IN BOOLEAN Poll)
BOOLEAN NTAPI CpDoesPortExist(IN PUCHAR Address)
#define NT_SUCCESS(StatCode)
_Check_return_ long __cdecl atol(_In_z_ const char *_Str)
NTSTATUS NTAPI KdDebuggerInitialize1(IN PLOADER_PARAMETER_BLOCK LoaderBlock OPTIONAL)
#define DEFAULT_DEBUG_PORT
NTSTATUS NTAPI KdD0Transition(VOID)
NTSTATUS NTAPI KdRestore(IN BOOLEAN SleepTransition)
#define DEFAULT_DEBUG_BAUD_RATE
NTSTATUS NTAPI KdD3Transition(VOID)
KDP_STATUS NTAPI KdpReceiveByte(OUT PUCHAR OutByte)
KDP_STATUS NTAPI KdpPollByte(OUT PUCHAR OutByte)
NTSTATUS NTAPI KdpPortInitialize(IN ULONG ComPortNumber, IN ULONG ComPortBaudRate)
#define DEFAULT_BAUD_RATE
VOID NTAPI KdpSendByte(IN UCHAR Byte)
KDP_STATUS NTAPI KdpPollBreakIn(VOID)
NTSTATUS NTAPI KdDebuggerInitialize0(IN PLOADER_PARAMETER_BLOCK LoaderBlock OPTIONAL)
NTSTATUS NTAPI KdSave(IN BOOLEAN SleepTransition)
_In_ ULONG _In_ ULONG _In_ ULONG Length
PULONG MinorVersion OPTIONAL
#define STATUS_INVALID_PARAMETER
_Must_inspect_result_ _In_ WDFKEY _In_ PCUNICODE_STRING _Out_opt_ PUSHORT _Inout_opt_ PUNICODE_STRING Value
void int int ULONGLONG int va_list * ap