mkfs: symlink support
[minix.git] / kernel / debug.h
blobf84427e205827e74c404b905a9dbcc5dd42c1211
1 #ifndef DEBUG_H
2 #define DEBUG_H
4 /* This header file defines all debugging constants and macros, and declares
5 * some variables. Certain debugging features redefine standard constants
6 * and macros. Therefore, this header file should be included after the
7 * other kernel headers.
8 */
10 #ifndef __ASSEMBLY__
11 #include <minix/debug.h>
12 #include "config.h"
13 #endif
15 /* Debug info via serial (see ser_debug()) */
16 #define DEBUG_SERIAL 1
18 /* Enable prints such as
19 * . send/receive failed due to deadlock or dead source or dead destination
20 * . trap not allowed
21 * . bogus message pointer
22 * . kernel call number not allowed by this process
24 * Of course the call still fails, but nothing is printed if these warnings
25 * are disabled.
27 #define DEBUG_ENABLE_IPC_WARNINGS 1
29 /* Sanity checks. */
30 #define DEBUG_SANITYCHECKS 0
32 /* Verbose messages. */
33 #define DEBUG_TRACE 0
35 /* DEBUG_RACE makes every process preemptible, schedules
36 * every process on the same priority queue, and randomizes
37 * the next process to run, in order to help catch race
38 * conditions that could otherwise be masked.
40 #define DEBUG_RACE 0
42 /* DEBUG_DUMPIPC dumps all IPC to serial; due to the amount of logging it is
43 * strongly recommended to set "ctty 0" in the boot monitor and run inside a
44 * virtual machine if you enable this; on the hardware it would take forever
45 * just to boot
47 #define DEBUG_DUMPIPC 0
49 /* DEBUG_IPCSTATS collects information on who sends messages to whom. */
50 #define DEBUG_IPCSTATS 0
52 #if !USE_SYSDEBUG
53 #undef DEBUG_SERIAL
54 #undef DEBUG_ENABLE_IPC_WARNINGS
55 #endif
57 #if DEBUG_DUMPIPC || DEBUG_IPCSTATS /* either of these needs the hook */
58 #define DEBUG_IPC_HOOK 1
59 #endif
61 #if DEBUG_TRACE
63 #define VF_SCHEDULING (1L << 1)
64 #define VF_PICKPROC (1L << 2)
66 #define TRACE(code, statement) if(verboseflags & code) { printf("%s:%d: ", __FILE__, __LINE__); statement }
68 #else
69 #define TRACE(code, statement)
70 #endif
72 #ifdef CONFIG_BOOT_VERBOSE
73 #define BOOT_VERBOSE(x) x
74 #else
75 #define BOOT_VERBOSE(x)
76 #endif
78 #ifdef _SYSTEM
79 #define DEBUG_PRINT(params, level) do { \
80 if (verboseboot >= (level)) printf params; } while (0)
81 #define DEBUGBASIC(params) DEBUG_PRINT(params, VERBOSEBOOT_BASIC)
82 #define DEBUGEXTRA(params) DEBUG_PRINT(params, VERBOSEBOOT_EXTRA)
83 #define DEBUGMAX(params) DEBUG_PRINT(params, VERBOSEBOOT_MAX)
84 #endif
86 #endif /* DEBUG_H */