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/dlc/test/simplex/dlcdebug.h | |
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/dlc/test/simplex/dlcdebug.h')
-rw-r--r-- | private/ntos/dlc/test/simplex/dlcdebug.h | 161 |
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 |