regression: mmap for fd
[lunaix-os.git] / lunaix-os / includes / lunaix / keyboard.h
index f573316b605d15bc54197403a99e0bf2a74c3baf..aa4d6581a78959275f96475ad8b316587c9721e4 100644 (file)
@@ -1,5 +1,6 @@
 #ifndef __LUNAIX_KEYBOARD_H
 #define __LUNAIX_KEYBOARD_H
+#include <lunaix/clock.h>
 
 //      Lunaix Keycode
 //       15        7         0
@@ -7,41 +8,42 @@
 // key[0:7] = sequence
 // key[8:15] = category
 //   0x0: ASCII codes
-//   0x1: Function keys
-//   0x2: keypad keys
+//   0x1: keypad keys
+//   0x2: Function keys
 //   0x3: Cursor keys (arrow keys)
 //   0x4: Modifier keys
 //   0xff: Other keys (Un-categorized)
 
-typedef unsigned short kbd_keycode;
+typedef unsigned short kbd_keycode_t;
+typedef unsigned short kbd_kstate_t;
 
-#define FN_KEY  0x0100
-#define KEYPAD  0x0200
-#define CURSOR  0x0300
-#define MODIFR  0x0400
-#define OTHERS  0xff00
+#define KEYPAD 0x0100
+#define FN_KEY 0x0200
+#define CURSOR 0x0300
+#define MODIFR 0x0400
+#define OTHERS 0xff00
 
-#define ON_KEYPAD(x)    ((x & 0xff) | KEYPAD)
+#define ON_KEYPAD(x) ((x & 0xff) | KEYPAD)
 
 // backspace key
-#define KEY_BS  (0x08)
+#define KEY_BS (0x08)
 
 // enter/return key
-#define KEY_LF  (0x0a)
+#define KEY_LF (0x0a)
 
 #define KEY_HTAB (0x9)
 #define KEY_SPACE (0x20)
 #define KEY_ESC (0x1b)
 
-#define KEY_F1  (0x00 | FN_KEY)
-#define KEY_F2  (0x01 | FN_KEY)
-#define KEY_F3  (0x02 | FN_KEY)
-#define KEY_F4  (0x03 | FN_KEY)
-#define KEY_F5  (0x04 | FN_KEY)
-#define KEY_F6  (0x05 | FN_KEY)
-#define KEY_F7  (0x06 | FN_KEY)
-#define KEY_F8  (0x07 | FN_KEY)
-#define KEY_F9  (0x08 | FN_KEY)
+#define KEY_F1 (0x00 | FN_KEY)
+#define KEY_F2 (0x01 | FN_KEY)
+#define KEY_F3 (0x02 | FN_KEY)
+#define KEY_F4 (0x03 | FN_KEY)
+#define KEY_F5 (0x04 | FN_KEY)
+#define KEY_F6 (0x05 | FN_KEY)
+#define KEY_F7 (0x06 | FN_KEY)
+#define KEY_F8 (0x07 | FN_KEY)
+#define KEY_F9 (0x08 | FN_KEY)
 #define KEY_F10 (0x09 | FN_KEY)
 #define KEY_F11 (0x0a | FN_KEY)
 #define KEY_F12 (0x0b | FN_KEY)
@@ -49,24 +51,37 @@ typedef unsigned short kbd_keycode;
 #define KEY_NUMSLK (0x0d | FN_KEY)
 #define KEY_SCRLLK (0x0e | FN_KEY)
 
-#define KEY_PG_UP       (0x0 | OTHERS)
-#define KEY_PG_DOWN     (0x1 | OTHERS)
-#define KEY_INSERT      (0x2 | OTHERS)
-#define KEY_DELETE      (0x3 | OTHERS)
-#define KEY_HOME        (0x4 | OTHERS)
-#define KEY_END         (0x5 | OTHERS)
-#define KEY_PAUSE       (0x6 | OTHERS)
+#define KEY_PG_UP (0x0 | OTHERS)
+#define KEY_PG_DOWN (0x1 | OTHERS)
+#define KEY_INSERT (0x2 | OTHERS)
+#define KEY_DELETE (0x3 | OTHERS)
+#define KEY_HOME (0x4 | OTHERS)
+#define KEY_END (0x5 | OTHERS)
+#define KEY_PAUSE (0x6 | OTHERS)
 
-#define KEY_LEFT        (0x0 | CURSOR)
-#define KEY_RIGHT       (0x1 | CURSOR)
-#define KEY_UP          (0x2 | CURSOR)
-#define KEY_DOWN        (0x3 | CURSOR)
+#define KEY_LEFT (0x0 | CURSOR)
+#define KEY_RIGHT (0x1 | CURSOR)
+#define KEY_UP (0x2 | CURSOR)
+#define KEY_DOWN (0x3 | CURSOR)
 
-#define KEY_LSHIFT       (0x0 | MODIFR)
-#define KEY_RSHIFT       (0x1 | MODIFR)
-#define KEY_LCTRL        (0x2 | MODIFR)
-#define KEY_RCTRL        (0x3 | MODIFR)
-#define KEY_LALT         (0x4 | MODIFR)
-#define KEY_RALT         (0x5 | MODIFR)
+#define KEY_LSHIFT (0x0 | MODIFR)
+#define KEY_RSHIFT (0x1 | MODIFR)
+#define KEY_LCTRL (0x2 | MODIFR)
+#define KEY_RCTRL (0x3 | MODIFR)
+#define KEY_LALT (0x4 | MODIFR)
+#define KEY_RALT (0x5 | MODIFR)
+
+#define KBD_KEY_FRELEASED 0x0
+#define KBD_KEY_FPRESSED 0x1
+#define KBD_KEY_FSCRLLKED 0x2
+#define KBD_KEY_FNUMBLKED 0x4
+#define KBD_KEY_FCAPSLKED 0x8
+
+#define KBD_KEY_FLSHIFT_HELD 0x10
+#define KBD_KEY_FRSHIFT_HELD 0x20
+#define KBD_KEY_FLCTRL_HELD 0x40
+#define KBD_KEY_FRCTRL_HELD 0x80
+#define KBD_KEY_FLALT_HELD 0x100
+#define KBD_KEY_FRALT_HELD 0x200
 
 #endif /* __LUNAIX_KEYBOARD_H */