18#if defined(SARCH_PC98)
19#define DEFAULT_DEBUG_PORT 2
20#define DEFAULT_DEBUG_COM1_IRQ 4
21#define DEFAULT_DEBUG_COM2_IRQ 5
22#define DEFAULT_DEBUG_BAUD_RATE 9600
23#define DEFAULT_BAUD_RATE 9600
25#define DEFAULT_DEBUG_PORT 2
26#define DEFAULT_DEBUG_COM1_IRQ 4
27#define DEFAULT_DEBUG_COM2_IRQ 3
28#define DEFAULT_DEBUG_BAUD_RATE 115200
29#define DEFAULT_BAUD_RATE 19200
32#if defined(_M_IX86) || defined(_M_AMD64)
33#if defined(SARCH_PC98)
34const ULONG BaseArray[] = {0, 0x30, 0x238};
36const ULONG BaseArray[] = {0, 0x3F8, 0x2F8, 0x3E8, 0x2E8};
39const ULONG BaseArray[] = {0, 0x800003F8};
41const ULONG BaseArray[] = {0, 0x80006000, 0x80007000};
43const ULONG BaseArray[] = {0, 0xF1012000};
45#error Unknown architecture
48#define MAX_COM_PORTS (sizeof(BaseArray) / sizeof(BaseArray[0]) - 1)
134 KDDBGPRINT(
"KdpPortInitialize, Port = COM%ld\n", ComPortNumber);
163 PCHAR CommandLine, PortString, BaudString, IrqString;
170 CommandLine = LoaderBlock->LoadOptions;
176 PortString =
strstr(CommandLine,
"DEBUGPORT");
177 BaudString =
strstr(CommandLine,
"BAUDRATE");
178 IrqString =
strstr(CommandLine,
"IRQ");
184 PortString +=
strlen(
"DEBUGPORT");
187 while (*PortString ==
' ') PortString++;
191 if (
strncmp(PortString,
"COM", 3) != 0)
199 if (
Value >=
sizeof(BaseArray) /
sizeof(BaseArray[0]))
205 ComPortNumber =
Value;
212 BaudString +=
strlen(
"BAUDRATE");
215 while (*BaudString ==
' ') BaudString++;
230 IrqString +=
strlen(
"IRQ");
233 while (*IrqString ==
' ') IrqString++;
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
#define BREAKIN_PACKET_BYTE
void int int ULONGLONG int va_list * ap