3 Copyright (c) 1998-2001 Klaus P. Gerlicher
24 15-Nov-2000: general cleanup of source files
28 This file may be distributed under the terms of the GNU Public License.
31 //void InstallKeyboardHook(void);
32 //void DeInstallKeyboardHook(void);
33 void InstallGlobalKeyboardHook(void);
34 void DeInstallGlobalKeyboardHook(void);
36 void RealIsr(ULONG dwReasonForBreak
);
37 void NewInt31Handler(void);
39 extern volatile BOOLEAN bNotifyToExit
;
40 extern volatile BOOLEAN bSingleStep
;
41 extern volatile UCHAR ucKeyPressedWhileIdle
;
42 extern volatile BOOLEAN bInDebuggerShell
;
44 extern ULONG CurrentEIP
,CurrentEFL
;
45 extern ULONG CurrentEAX
,CurrentEBX
,CurrentECX
,CurrentEDX
;
46 extern ULONG CurrentESP
,CurrentEBP
,CurrentESI
,CurrentEDI
;
47 extern ULONG CurrentDR0
,CurrentDR1
,CurrentDR2
,CurrentDR3
,CurrentDR6
,CurrentDR7
;
48 extern ULONG CurrentCR0
,CurrentCR2
,CurrentCR3
;
49 extern USHORT CurrentCS
,CurrentDS
,CurrentES
,CurrentFS
,CurrentGS
,CurrentSS
;
50 extern volatile BOOLEAN bControl
; // TRUE when CTRL key was pressed
51 extern volatile BOOLEAN bShift
; // TRUE when SHIFT key was pressed
52 extern volatile BOOLEAN bAlt
; // TRUE when SHIFT key was pressed
55 extern ULONG OldEIP
,OldEFL
;
56 extern ULONG OldEAX
,OldEBX
,OldECX
,OldEDX
;
57 extern ULONG OldESP
,OldEBP
,OldESI
,OldEDI
;
58 extern USHORT OldCS
,OldDS
,OldES
,OldFS
,OldGS
,OldSS
;
60 extern ULONG CurrentProcess
;
62 extern USHORT OldSelector
;
63 extern ULONG OldOffset
;
65 extern ULONG ulRealStackPtr
; // serves as current process pointer too!!
67 extern ULONG g_ulLineNumberStart
;
68 extern BOOLEAN bStepThroughSource
;
69 extern BOOLEAN bStepInto
;
71 #define REASON_INT3 (0)
72 #define REASON_SINGLESTEP (1)
73 #define REASON_CTRLF (2)
74 #define REASON_PAGEFAULT (3)
75 #define REASON_GP_FAULT (4)
76 #define REASON_HARDWARE_BP (5)
77 #define REASON_DOUBLE_FAULT (6)
78 #define REASON_MODULE_LOAD (7)
79 #define REASON_INTERNAL_ERROR (8)
81 extern volatile BOOLEAN bEnterNow
;
83 // keyboard controller defines
84 #define I8042_PHYSICAL_BASE 0x60
85 #define I8042_DATA_REGISTER_OFFSET 0
86 #define I8042_COMMAND_REGISTER_OFFSET 4
87 #define I8042_STATUS_REGISTER_OFFSET 4
89 void ShowStatusLine(void);
91 #define KEYBOARD_IRQ 1