|
|
1.1 root 1: /*
2: Copyright (c) 2008 TrueCrypt Foundation. All rights reserved.
3:
1.1.1.5 ! root 4: Governed by the TrueCrypt License 2.7 the full text of which is contained
1.1 root 5: in the file License.txt included in TrueCrypt binary and source code
6: distribution packages.
7: */
8:
9: #ifndef TC_HEADER_Boot_BootDebug
10: #define TC_HEADER_Boot_BootDebug
11:
12: #include "Platform.h"
13: #include "BootConsoleIo.h"
14:
1.1.1.2 root 15: #if 0
16: # define TC_BOOT_DEBUG_ENABLED
17: #endif
1.1 root 18:
1.1.1.2 root 19: #if 0 || defined (TC_BOOT_DEBUG_ENABLED)
20: # define TC_BOOT_STACK_CHECKING_ENABLED
21: extern "C" void CheckStack ();
22: #else
23: # define CheckStack()
1.1 root 24: #endif
25:
1.1.1.2 root 26: #if 0
27: # define TC_BOOT_TRACING_ENABLED
1.1 root 28: # if 1
29: # define TC_TRACE_INT13
30: # endif
1.1.1.3 root 31: # if 0
1.1 root 32: # define TC_TRACE_INT15
33: # endif
34: #endif
35:
1.1.1.3 root 36: #ifdef TC_BOOT_DEBUG_ENABLED
37: # define trace_point do { Print(__FILE__); PrintChar (':'); Print (TC_TO_STRING (__LINE__)); PrintEndl(); } while (false)
38: # define trace_val(VAL) PrintVal (#VAL, VAL);
39: # define trace_hex(VAL) do { Print (#VAL), PrintChar (':'); PrintHex (VAL); PrintEndl(); } while (false)
40: # define assert(COND) do { if (!(COND)) { trace_point; __asm jmp $ } } while (false)
41: #else
42: # define trace_point
43: # define trace_val(VAL)
44: # define trace_hex(VAL)
45: # define assert(COND)
46: #endif
1.1 root 47:
48: void InitDebugPort ();
1.1.1.2 root 49: void InitStackChecker ();
1.1 root 50: void WriteDebugPort (byte dataByte);
51: void PrintHexDump (byte *mem, size_t size, uint16 *memSegment = nullptr);
52: void PrintHexDump (uint16 memSegment, uint16 memOffset, size_t size);
53: void PrintVal (const char *message, const uint32 value, bool newLine = true, bool hex = false);
54: void PrintVal (const char *message, const uint64 &value, bool newLine = true, bool hex = false);
55:
1.1.1.2 root 56: #endif // TC_HEADER_Boot_BootDebug
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.