// === IMPORTS ===
void Threads_Dump(void);
+void Heap_Stats(void);
// === PROTOTYPES ===
int KB_Install(char **Arguments);
// === CODE ===
/**
- * \fn int KB_Install(char **Arguments)
+ * \brief Install the keyboard driver
*/
int KB_Install(char **Arguments)
{
}
/**
- * \fn void KB_IRQHandler()
* \brief Called on a keyboard IRQ
+ * \param IRQNum IRQ number (unused)
*/
void KB_IRQHandler(int IRQNum)
{
{
switch(ch)
{
- case 'q': *((int*)1) = 0; break;
- case 'd': __asm__ __volatile__ ("xchg %bx, %bx"); break;
- case 'p': Threads_Dump(); break;
+ // Kernel Panic (Page Fault)
+ case 'q': *((int*)1) = 0; return;
+ // Bochs Magic Breakpoint
+ case 'd': __asm__ __volatile__ ("xchg %bx, %bx"); return;
+ // Thread List Dump
+ case 'p': Threads_Dump(); return;
+ // Heap Statistics
+ case 'h': Heap_Stats(); return;
}
}
#endif
// Is shift pressed
- // - Darn ugly hacks !(!x) means (bool)x
- if( !(!gbKB_ShiftState) ^ gbKB_CapsState)
+ // - Darn ugly hacks !!x means (bool)x
+ if( !!gbKB_ShiftState ^ gbKB_CapsState)
{
switch(ch)
{