diff options
author | Adam <you@example.com> | 2020-05-17 05:51:50 +0200 |
---|---|---|
committer | Adam <you@example.com> | 2020-05-17 05:51:50 +0200 |
commit | e611b132f9b8abe35b362e5870b74bce94a1e58e (patch) | |
tree | a5781d2ec0e085eeca33cf350cf878f2efea6fe5 /private/ntos/fw/mips/fwprint.c | |
download | NT4.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/mips/fwprint.c')
-rw-r--r-- | private/ntos/fw/mips/fwprint.c | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/private/ntos/fw/mips/fwprint.c b/private/ntos/fw/mips/fwprint.c new file mode 100644 index 000000000..2307152e5 --- /dev/null +++ b/private/ntos/fw/mips/fwprint.c @@ -0,0 +1,84 @@ +// TITLE("Debug Support Functions") +//++ +// +// Copyright (c) 1990 Microsoft 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: +// +//-- + +#include "fwp.h" +#include <stdarg.h> +#include "string.h" + +// +// Define variable argument list parameters. +// + +BOOLEAN DisplayOutput; +BOOLEAN SerialOutput; +BOOLEAN FwConsoleInitialized = FALSE; + + +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++ ) { + if (Buffer[Index] == ASCII_CSI) { + SerialBootWrite(ASCII_ESC, COMPORT2_VIRTUAL_BASE); + SerialBootWrite('[', COMPORT2_VIRTUAL_BASE); + } else { + SerialBootWrite(Buffer[Index],COMPORT2_VIRTUAL_BASE); + } + } + } + + if (DisplayOutput) { + DisplayWrite( ARC_CONSOLE_OUTPUT, Buffer, Length, &Count); + } + } + + va_end(arglist); + return 0; +} |