summaryrefslogtreecommitdiffstats
path: root/private/ntos/fw/alpha/fwprint.c
diff options
context:
space:
mode:
authorAdam <you@example.com>2020-05-17 05:51:50 +0200
committerAdam <you@example.com>2020-05-17 05:51:50 +0200
commite611b132f9b8abe35b362e5870b74bce94a1e58e (patch)
treea5781d2ec0e085eeca33cf350cf878f2efea6fe5 /private/ntos/fw/alpha/fwprint.c
downloadNT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.gz
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.bz2
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.lz
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.xz
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.tar.zst
NT4.0-e611b132f9b8abe35b362e5870b74bce94a1e58e.zip
Diffstat (limited to 'private/ntos/fw/alpha/fwprint.c')
-rw-r--r--private/ntos/fw/alpha/fwprint.c138
1 files changed, 138 insertions, 0 deletions
diff --git a/private/ntos/fw/alpha/fwprint.c b/private/ntos/fw/alpha/fwprint.c
new file mode 100644
index 000000000..c6803cdcf
--- /dev/null
+++ b/private/ntos/fw/alpha/fwprint.c
@@ -0,0 +1,138 @@
+// TITLE("Debug Support Functions")
+//++
+//
+// Copyright (c) 1990 Microsoft Corporation
+// Copyright (c) 1993 Digital Equipment Corporation
+//
+// Module Name:
+//
+// fwprint.c
+//
+// Abstract:
+//
+// This module implements functions to support debugging NT.
+//
+// Author:
+//
+// Steven R. Wood (stevewo) 3-Aug-1989
+//
+// Environment:
+//
+// Any mode.
+//
+// Revision History:
+//
+// 18-Dec-1992 John DeRosa [DEC]
+//
+// Added Alpha_AXP/Jensen modifications.
+//--
+
+#include "fwp.h"
+#include <stdarg.h>
+#include "string.h"
+
+
+//
+// Define variable argument list parameters.
+//
+
+BOOLEAN DisplayOutput;
+BOOLEAN SerialOutput;
+BOOLEAN FwConsoleInitialized;
+
+
+
+//
+// Debug support, to let us direct printfs to the serial line.
+//
+
+#ifdef ALPHA_FW_SERDEB
+
+
+//
+// If this is TRUE, SerFwPrint will output to the serial line.
+// If this is FALSE, SerFwPrint will return without printing anything.
+// This lets me insert SerFwPrint into low-level functions, and enable
+// diagnostic output in a high-level caller.
+//
+
+BOOLEAN SerSnapshot;
+
+
+ULONG
+SerFwPrint (
+ PCHAR Format,
+ ...
+ )
+
+{
+
+ va_list arglist;
+ UCHAR Buffer[256];
+ ULONG Count;
+ ULONG Index;
+ ULONG Length;
+
+ if (SerSnapshot) {
+
+ //
+ // Format the output into a buffer and then print it.
+ //
+
+ va_start(arglist, Format);
+ Length = vsprintf(Buffer, Format, arglist);
+
+ for ( Index = 0 ; Index < Length ; Index++ ) {
+ SerialBootWrite(Buffer[Index], COMPORT1_VIRTUAL_BASE);
+ }
+
+ va_end(arglist);
+ }
+
+ return 0;
+}
+
+#endif
+
+
+ULONG
+FwPrint (
+ PCHAR Format,
+ ...
+ )
+
+{
+
+ va_list arglist;
+ UCHAR Buffer[256];
+ ULONG Count;
+ ULONG Index;
+ ULONG Length;
+
+ //
+ // Format the output into a buffer and then print it.
+ //
+
+ va_start(arglist, Format);
+ Length = vsprintf(Buffer, Format, arglist);
+
+ if (FwConsoleInitialized) {
+
+ FwWrite( ARC_CONSOLE_OUTPUT, Buffer, Length, &Count);
+
+ } else {
+
+ if (SerialOutput) {
+ for ( Index = 0 ; Index < Length ; Index++ ) {
+ SerialBootWrite(Buffer[Index],COMPORT1_VIRTUAL_BASE);
+ }
+ }
+
+ if (DisplayOutput) {
+ DisplayWrite( ARC_CONSOLE_OUTPUT, Buffer, Length, &Count);
+ }
+ }
+
+ va_end(arglist);
+ return 0;
+}