VOID
STDCALL
-KdpPrintToLog(PCH String)
+KdpPrintToLog(PCH String,
+ ULONG StringLength)
{
- ULONG StringLength = strlen(String);
-
/* Don't overflow */
if ((CurrentPosition + StringLength) > BufferSize) return;
KdpInitDebugLog(PKD_DISPATCH_TABLE DispatchTable,
ULONG BootPhase)
{
- if (!KdpDebugMode.File) return;
NTSTATUS Status;
OBJECT_ATTRIBUTES ObjectAttributes;
UNICODE_STRING FileName;
IO_STATUS_BLOCK Iosb;
+ if (!KdpDebugMode.File) return;
+
if (BootPhase == 0)
{
/* Write out the functions that we support for now */
VOID
STDCALL
-KdpSerialDebugPrint(LPSTR Message)
+KdpSerialDebugPrint(LPSTR Message,
+ ULONG Length)
{
PCHAR pch = (PCHAR) Message;
DispatchTable->KdpPrintRoutine = KdpSerialDebugPrint;
/* Initialize the Port */
- KdPortInitializeEx(&SerialPortInfo, 0, 0);
+ if (!KdPortInitializeEx(&SerialPortInfo, 0, 0))
+ {
+ KdpDebugMode.Serial = FALSE;
+ return;
+ }
/* Register as a Provider */
InsertTailList(&KdProviders, &DispatchTable->KdProvidersList);
/* SCREEN FUNCTIONS **********************************************************/
+VOID
+STDCALL
+KdpScreenPrint(LPSTR Message,
+ ULONG Length)
+{
+ /* Call HAL */
+ HalDisplayString(Message);
+}
+
VOID
STDCALL
KdpScreenInit(PKD_DISPATCH_TABLE DispatchTable,
{
/* Write out the functions that we support for now */
DispatchTable->KdpInitRoutine = KdpScreenInit;
- DispatchTable->KdpPrintRoutine = HalDisplayString;
+ DispatchTable->KdpPrintRoutine = KdpScreenPrint;
/* Register as a Provider */
InsertTailList(&KdProviders, &DispatchTable->KdProvidersList);
ULONG
STDCALL
-KdpPrintString(PANSI_STRING String)
+KdpPrintString(LPSTR String,
+ ULONG Length)
{
- if (!KdpDebugMode.Value) return 0;
- PCH pch = String->Buffer;
PLIST_ENTRY CurrentEntry;
PKD_DISPATCH_TABLE CurrentTable;
+ if (!KdpDebugMode.Value) return 0;
+
/* Call the registered handlers */
CurrentEntry = KdProviders.Flink;
while (CurrentEntry != &KdProviders)
KdProvidersList);
/* Call it */
- CurrentTable->KdpPrintRoutine(pch);
+ CurrentTable->KdpPrintRoutine(String, Length);
/* Next Table */
CurrentEntry = CurrentEntry->Flink;
}
/* Call the Wrapper Routine */
- if (WrapperInitRoutine) WrapperTable.KdpPrintRoutine(pch);
+ if (WrapperInitRoutine) WrapperTable.KdpPrintRoutine(String, Length);
/* Return the Length */
- return((ULONG)String->Length);
+ return Length;
}
/* EOF */