Minor bug fixes
[reactos.git] / reactos / ntoskrnl / ke / bug.c
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS kernel
4 * FILE: ntoskrnl/ke/bug.c
5 * PURPOSE: Graceful system shutdown if a bug is detected
6 * PROGRAMMER: David Welch (welch@mcmail.com)
7 * UPDATE HISTORY:
8 * Created 22/05/98
9 */
10
11 /* INCLUDES *****************************************************************/
12
13 #include <ddk/ntddk.h>
14
15 #include <internal/debug.h>
16
17 /* GLOBALS ******************************************************************/
18
19 static LIST_ENTRY BugcheckCallbackListHead = {NULL,NULL};
20
21 /* FUNCTIONS *****************************************************************/
22
23 BOOLEAN KeDeregisterBugCheckCallback(PKBUGCHECK_CALLBACK_RECORD CallbackRecord)
24 {
25 UNIMPLEMENTED;
26 }
27
28 VOID KeInitializeBugCheck(VOID)
29 {
30 InitializeListHead(&BugcheckCallbackListHead);
31 }
32
33 VOID KeInitializeCallbackRecord(PKBUGCHECK_CALLBACK_RECORD CallbackRecord)
34 {
35 UNIMPLEMENTED;
36 }
37
38 BOOLEAN KeRegisterBugCheckCallback(PKBUGCHECK_CALLBACK_RECORD CallbackRecord,
39 PKBUGCHECK_CALLBACK_ROUTINE CallbackRoutine,
40 PVOID Buffer,
41 ULONG Length,
42 PUCHAR Component)
43 {
44 InsertTailList(&BugcheckCallbackListHead,&CallbackRecord->Entry);
45 CallbackRecord->Length=Length;
46 CallbackRecord->Buffer=Buffer;
47 CallbackRecord->Component=Component;
48 CallbackRecord->CallbackRoutine=CallbackRoutine;
49 }
50
51 VOID KeBugCheckEx(ULONG BugCheckCode,
52 ULONG BugCheckParameter1,
53 ULONG BugCheckParameter2,
54 ULONG BugCheckParameter3,
55 ULONG BugCheckParameter4)
56 /*
57 * FUNCTION: Brings the system down in a controlled manner when an
58 * inconsistency that might otherwise cause corruption has been detected
59 * ARGUMENTS:
60 * BugCheckCode = Specifies the reason for the bug check
61 * BugCheckParameter[1-4] = Additional information about bug
62 * RETURNS: Doesn't
63 */
64 {
65 DbgPrint("Bug detected (code %x param %x %x %x %x)\n",BugCheckCode,
66 BugCheckParameter1,BugCheckParameter2,BugCheckParameter3,
67 BugCheckParameter4);
68 KeDumpStackFrames();
69 for(;;);
70 }
71
72 VOID KeBugCheck(ULONG BugCheckCode)
73 /*
74 * FUNCTION: Brings the system down in a controlled manner when an
75 * inconsistency that might otherwise cause corruption has been detected
76 * ARGUMENTS:
77 * BugCheckCode = Specifies the reason for the bug check
78 * RETURNS: Doesn't
79 */
80 {
81 KeBugCheckEx(BugCheckCode,0,0,0,0);
82 }
83