67a7102658
even if "kernel_startup" was "true". Page faults are now no longer allowed during kernel startup (and could be easily avoided). The only situation where we accept page faults with interrupts turned off now is during a kernel debugger session. Added a command debug_debugger_running() to test for that situation. kernel_debugger() no longer sets kernel_startup while it's running; there should be no situation when this could be helpful. Interrupts are no longer enabled when a page fault happens in the kernel debugger. This potentially fixes all sorts of problems, and not only in the kernel debugger, it could also have affected SMP (will test later). git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14045 a95241bf-73f2-0310-859d-f6bbb57e9c96
44 lines
945 B
C
44 lines
945 B
C
/*
|
|
* Copyright 2002-2005, Axel Dörfler, axeld@pinc-software.de
|
|
* Distributed under the terms of the Haiku License.
|
|
*
|
|
* Copyright 2001-2002, Travis Geiselbrecht. All rights reserved.
|
|
* Distributed under the terms of the NewOS License.
|
|
*/
|
|
#ifndef _KERNEL_DEBUG_H
|
|
#define _KERNEL_DEBUG_H
|
|
|
|
|
|
#include <OS.h>
|
|
|
|
struct kernel_args;
|
|
|
|
|
|
#if DEBUG
|
|
# define ASSERT(x) \
|
|
if (x) {} else { panic("ASSERT FAILED (%s:%d): %s\n", __FILE__, __LINE__, #x); }
|
|
#else
|
|
# define ASSERT(x)
|
|
#endif
|
|
|
|
extern int dbg_register_file[B_MAX_CPU_COUNT][14];
|
|
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
extern status_t debug_init(struct kernel_args *args);
|
|
extern status_t debug_init_post_vm(struct kernel_args *args);
|
|
extern void debug_early_boot_message(const char *string);
|
|
extern void debug_puts(const char *s);
|
|
extern bool debug_debugger_running(void);
|
|
|
|
extern void _user_debug_output(const char *userString);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* _KERNEL_DEBUG_H */
|