X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;ds=sidebyside;f=KernelLand%2FModules%2FInput%2FKeyboard%2Fmain.c;h=9c2e20e61bc4b44252cedcc20b2f423574557a78;hb=015f48988e0ff398409d71dfc692005ab439490a;hp=ccec8f5c4faeaa995ebaba6efb92b29d952b2b87;hpb=66cb73e82a05896035f605c96fde8b8a68e07bb9;p=tpg%2Facess2.git
diff --git a/KernelLand/Modules/Input/Keyboard/main.c b/KernelLand/Modules/Input/Keyboard/main.c
index ccec8f5c..9c2e20e6 100644
--- a/KernelLand/Modules/Input/Keyboard/main.c
+++ b/KernelLand/Modules/Input/Keyboard/main.c
@@ -16,6 +16,7 @@
#include
#include "keymap_int.h"
#include "layout_kbdus.h"
+#include
#define USE_KERNEL_MAGIC 1
@@ -28,11 +29,11 @@ extern void Heap_Stats(void);
// === PROTOTYPES ===
int Keyboard_Install(char **Arguments);
-void Keyboard_Cleanup(void);
+ int Keyboard_Cleanup(void);
// - Internal
tKeymap *Keyboard_LoadMap(const char *Name);
void Keyboard_FreeMap(tKeymap *Keymap);
-// - User side
+// - "User" side (Actually VT)
int Keyboard_IOCtl(tVFS_Node *Node, int ID, void *Data);
// - Device Side
tKeyboard *Keyboard_CreateInstance(int MaxSym, const char *Name);
@@ -67,9 +68,10 @@ int Keyboard_Install(char **Arguments)
/**
* \brief Pre-unload cleanup function
*/
-void Keyboard_Cleanup(void)
+int Keyboard_Cleanup(void)
{
// TODO: Do I need this?
+ return 0;
}
// --- Map Management ---
@@ -162,6 +164,15 @@ void Keyboard_HandleKey(tKeyboard *Source, Uint32 HIDKeySym)
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;
@@ -279,6 +290,8 @@ void Keyboard_HandleKey(tKeyboard *Source, Uint32 HIDKeySym)
case 'p': Threads_Dump(); return;
// Heap Statistics
case 'h': Heap_Stats(); return;
+ // PMem Statistics
+ case 'm': MM_DumpStatistics(); return;
// Dump Structure
case 's': return;
}