#include "keymap_int.h"
#include "layout_kbdus.h"
#include <hal_proc.h>
+#include <debug_hooks.h>
#define USE_KERNEL_MAGIC 1
-// === IMPORTS ===
-#if USE_KERNEL_MAGIC
-extern void Threads_ToggleTrace(int TID);
-extern void Threads_Dump(void);
-extern void Heap_Stats(void);
-#endif
-
// === PROTOTYPES ===
int Keyboard_Install(char **Arguments);
int Keyboard_Cleanup(void);
Uint32 flag;
Uint8 layer;
+ if( !Source ) {
+ Log_Error("Keyboard", "Passed NULL handle");
+ return ;
+ }
+ if( !Source->Node ) {
+ Log_Error("Keyboard", "Passed handle with NULL node");
+ return ;
+ }
+
bPressed = !(HIDKeySym & (1 << 31));
HIDKeySym &= 0x7FFFFFFF;
}
#endif
+ #if defined(ARCHDIR_is_x86) || defined(ARCHDIR_is_x86_64)
+ if(bPressed
+ && Source->KeyStates[KEYSYM_LEFTCTRL/8] & (1 << (KEYSYM_LEFTCTRL&7))
+ && Source->KeyStates[KEYSYM_LEFTALT/8] & (1 << (KEYSYM_LEFTALT &7)) )
+ {
+ if( HIDKeySym == KEYSYM_DELETE )
+ {
+ // Trigger triple fault
+ __asm__ __volatile__ ("lgdt (%esp) ; int $0x0");
+ for(;;);
+ }
+ }
+ #endif
+
}