minix3/kernel/debug.h

90 lines
2.4 KiB
C
Raw Permalink Normal View History

2020-02-21 00:59:27 +05:30
#ifndef DEBUG_H
#define DEBUG_H
/* This header file defines all debugging constants and macros, and declares
* some variables. Certain debugging features redefine standard constants
* and macros. Therefore, this header file should be included after the
* other kernel headers.
*/
#ifndef __ASSEMBLY__
#include <minix/debug.h>
#include "config.h"
#endif
/* Debug info via serial (see ser_debug()) */
#define DEBUG_SERIAL 1
/* Enable prints such as
* . send/receive failed due to deadlock or dead source or dead destination
* . trap not allowed
* . bogus message pointer
* . kernel call number not allowed by this process
*
* Of course the call still fails, but nothing is printed if these warnings
* are disabled.
*/
#define DEBUG_ENABLE_IPC_WARNINGS 1
/* Sanity checks. */
#define DEBUG_SANITYCHECKS 0
/* Verbose messages. */
#define DEBUG_TRACE 0
/* DEBUG_RACE makes every process preemptible, schedules
* every process on the same priority queue, and randomizes
* the next process to run, in order to help catch race
* conditions that could otherwise be masked.
*/
#define DEBUG_RACE 0
/* DEBUG_DUMPIPC dumps all IPC to serial; due to the amount of logging it is
* strongly recommended to set "ctty 0" in the boot monitor and run inside a
* virtual machine if you enable this; on the hardware it would take forever
* just to boot
*/
#define DEBUG_DUMPIPC 0
/* If defined, restrict DEBUG_DUMPIPC to particular process names */
/* #define DEBUG_DUMPIPC_NAMES { "tty", "inet" } */
/* DEBUG_IPCSTATS collects information on who sends messages to whom. */
#define DEBUG_IPCSTATS 0
#if !USE_SYSDEBUG
#undef DEBUG_SERIAL
#undef DEBUG_ENABLE_IPC_WARNINGS
#endif
#if DEBUG_DUMPIPC || DEBUG_IPCSTATS /* either of these needs the hook */
#define DEBUG_IPC_HOOK 1
#endif
#if DEBUG_TRACE
#define VF_SCHEDULING (1L << 1)
#define VF_PICKPROC (1L << 2)
#define TRACE(code, statement) if(verboseflags & code) { printf("%s:%d: ", __FILE__, __LINE__); statement }
#else
#define TRACE(code, statement)
#endif
#ifdef CONFIG_BOOT_VERBOSE
#define BOOT_VERBOSE(x) x
#else
#define BOOT_VERBOSE(x)
#endif
#ifdef _SYSTEM
#define DEBUG_PRINT(params, level) do { \
if (verboseboot >= (level)) printf params; } while (0)
#define DEBUGBASIC(params) DEBUG_PRINT(params, VERBOSEBOOT_BASIC)
#define DEBUGEXTRA(params) DEBUG_PRINT(params, VERBOSEBOOT_EXTRA)
#define DEBUGMAX(params) DEBUG_PRINT(params, VERBOSEBOOT_MAX)
#endif
#endif /* DEBUG_H */