-/*
+/*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
* FILE: ntoskrnl/kd/wrappers/bochs.c
* PURPOSE: BOCHS Wrapper for Kd
- *
+ *
* PROGRAMMERS: Alex Ionescu (alex@relsoft.net)
*/
VOID
STDCALL
-KdpBochsDebugPrint(IN PCH Message)
+KdpBochsDebugPrint(IN PCH Message,
+ IN ULONG Length)
{
while (*Message != 0)
{
if (*Message == '\n')
{
- WRITE_PORT_UCHAR((PUCHAR)BOCHS_LOGGER_PORT, '\r');
+#if defined(_M_IX86) && defined(__GNUC__)
+ /* Don't use WRITE_PORT_UCHAR because hal isn't initialized yet in the very early boot phase. */
+ __asm__("outb %b0, %w1\n\t" :: "a" ('\r'), "d" (BOCHS_LOGGER_PORT));
+#else
+ WRITE_PORT_UCHAR((PUCHAR)BOCHS_LOGGER_PORT, '\r');
+#endif
}
+#if defined(_M_IX86) && defined(__GNUC__)
+ /* Don't use WRITE_PORT_UCHAR because hal isn't initialized yet in the very early boot phase. */
+ __asm__("outb %b0, %w1\n\t" :: "a" (*Message), "d" (BOCHS_LOGGER_PORT));
+#else
WRITE_PORT_UCHAR((PUCHAR)BOCHS_LOGGER_PORT, *Message);
+#endif
Message++;
}
}
KdpBochsInit(PKD_DISPATCH_TABLE WrapperTable,
ULONG BootPhase)
{
- if (!KdDebuggerEnabled || !KdpDebugMode.Bochs) return;
+ if (!KdpDebugMode.Bochs) return;
if (BootPhase == 0)
{
else if (BootPhase == 2)
{
HalDisplayString("\n Bochs debugging enabled\n\n");
- }
+ }
}
/* EOF */