summaryrefslogtreecommitdiffstats
path: root/private/ntos/dlc/test/simplex/dlcdebug.h
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/dlc/test/simplex/dlcdebug.h
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/dlc/test/simplex/dlcdebug.h')
-rw-r--r--private/ntos/dlc/test/simplex/dlcdebug.h161
1 files changed, 161 insertions, 0 deletions
diff --git a/private/ntos/dlc/test/simplex/dlcdebug.h b/private/ntos/dlc/test/simplex/dlcdebug.h
new file mode 100644
index 000000000..77122fcbe
--- /dev/null
+++ b/private/ntos/dlc/test/simplex/dlcdebug.h
@@ -0,0 +1,161 @@
+/*++
+
+Copyright (c) 1991 Microsoft Corporation
+
+Module Name:
+
+ dlcdebug.h
+
+Abstract:
+
+ Contains debugging prototypes and manifests for ACSLAN
+
+Author:
+
+ Richard L Firth (rfirth) 28-May-1992
+
+Revision History:
+
+--*/
+
+#define ARRAY_ELEMENTS(a) (sizeof(a)/sizeof((a)[0]))
+#define LAST_ELEMENT(a) (ARRAY_ELEMENTS(a)-1)
+
+#if DBG
+
+#define PRIVATE
+
+#define ACSLAN_DEBUG_ENV_VAR "ACSLAN_DEBUG_FLAGS"
+#define ACSLAN_DUMP_FILE_VAR "ACSLAN_DUMP_FILE"
+#define ACSLAN_DUMP_FILTER_VAR "ACSLAN_DUMP_FILTER"
+
+#define DEBUG_DUMP_INPUT_CCB 0x00000001L // dump CCB input to AcsLan
+#define DEBUG_DUMP_OUTPUT_CCB 0x00000002L // dump CCB output from AcsLan
+#define DEBUG_DUMP_TX_INFO 0x00000004L // dump transmit buffers
+#define DEBUG_DUMP_RX_INFO 0x00000008L // dump receive buffers
+#define DEBUG_DUMP_TX_DATA 0x00000010L // dump data buffer in TRANSMIT commands
+#define DEBUG_DUMP_RX_DATA 0x00000020L // dump received data frames
+#define DEBUG_DUMP_DATA_CHAIN 0x00000040L // dump entire chain of received data buffers
+#define DEBUG_DUMP_FRAME_CHAIN 0x00000080L // dump entire chain of received frames
+#define DEBUG_DUMP_TX_ASCII 0x00000100L // dump transmitted data as hex & ASCII
+#define DEBUG_DUMP_RX_ASCII 0x00000200L // dump received data as hex & ASCII
+#define DEBUG_DUMP_ASYNC_CCBS 0x00000400L // dump READ async. completed CCBs
+#define DEBUG_RETURN_CODE 0x01000000L // dump return code from AcsLan/NtAcsLan
+#define DEBUG_DUMP_NTACSLAN 0x02000000L // dump CCBs for NtAcsLan, not AcsLan
+#define DEBUG_DUMP_ACSLAN 0x04000000L // dump CCBs for AcsLan, not NtAcsLan
+#define DEBUG_DUMP_TIME 0x08000000L // dump relative time between commands
+#define DEBUG_DLL_INFO 0x10000000L // dump info about DLL attach/detach
+#define DEBUG_BREAKPOINT 0x20000000L // break at conditional breakpoints
+#define DEBUG_TO_FILE 0x40000000L // dump info to file
+#define DEBUG_TO_TERMINAL 0x80000000L // dump info to console
+
+#define IF_DEBUG(c) if (AcslanDebugFlags & DEBUG_##c)
+#define PUT(x) AcslanDebugPrint x
+#define DUMPCCB DumpCcb
+
+//
+// misc.
+//
+
+#define DEFAULT_FIELD_WIDTH 16 // amount of description before a number
+
+//
+// DumpData options
+//
+
+#define DD_DEFAULT_OPTIONS 0x00000000 // use defaults
+#define DD_NO_ADDRESS 0x00000001 // don't display address of data
+#define DD_LINE_BEFORE 0x00000002 // linefeed before first dumped line
+#define DD_LINE_AFTER 0x00000004 // linefeed after last dumped line
+#define DD_INDENT_ALL 0x00000008 // indent all lines
+#define DD_NO_ASCII 0x00000010 // don't dump ASCII respresentation
+#define DD_UPPER_CASE 0x00000020 // upper-case hex dump (F4 instead of f4)
+#define DD_DOT_DOT_SPACE 0x00000040 // fill unused hex space with '..'
+
+//
+// Filters for individual CCB commands: 4 flags max, because each command is
+// represented by a single ASCII character
+//
+
+#define CF_DUMP_CCB_IN 0x00000001 // dump CCB on input
+#define CF_DUMP_CCB_OUT 0x00000002 // dump CCB on output
+#define CF_DUMP_PARMS_IN 0x00000004 // dump parameter table on input
+#define CF_DUMP_PARMS_OUT 0x00000008 // dump parameter table on output
+
+//
+// global data
+//
+
+#ifndef ACSLAN_DEBUG_FLAGS
+#define ACSLAN_DEBUG_FLAGS (DEBUG_DUMP_INPUT_CCB \
+ | DEBUG_DUMP_OUTPUT_CCB \
+ | DEBUG_DUMP_TX_INFO \
+ | DEBUG_DUMP_RX_INFO \
+ | DEBUG_DUMP_TX_DATA \
+ | DEBUG_DUMP_RX_DATA \
+ | DEBUG_DUMP_DATA_CHAIN \
+ | DEBUG_DUMP_FRAME_CHAIN \
+ | DEBUG_DUMP_TX_ASCII \
+ | DEBUG_DUMP_RX_ASCII \
+ | DEBUG_DUMP_ASYNC_CCBS \
+ | DEBUG_RETURN_CODE \
+ | DEBUG_DUMP_NTACSLAN \
+ | DEBUG_DUMP_ACSLAN \
+ | DEBUG_DUMP_TIME \
+ | DEBUG_TO_TERMINAL \
+ )
+#endif
+
+extern DWORD AcslanDebugFlags;
+extern FILE* hDumpFile;
+
+//
+// prototypes
+//
+
+VOID
+GetAcslanDebugFlags(
+ VOID
+ );
+
+VOID
+SetAcslanDebugFlags(
+ IN DWORD Flags
+ );
+
+VOID
+AcslanDebugPrint(
+ IN LPSTR Format,
+ IN ...
+ );
+
+VOID
+DumpCcb(
+ IN PLLC_CCB Ccb,
+ IN BOOL DumpAll,
+ IN BOOL CcbIsInput
+ );
+
+VOID
+DumpData(
+ IN LPSTR Title,
+ IN PBYTE Address,
+ IN DWORD Length,
+ IN DWORD Options,
+ IN DWORD Indent
+ );
+
+LPSTR
+MapCcbRetcode(
+ IN BYTE Retcode
+ );
+
+#else
+
+#define PRIVATE static
+
+#define IF_DEBUG(c) if (0)
+#define PUT(x)
+#define DUMPCCB (void)
+
+#endif