+#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
+
+typedef unsigned char kbd_scancode_t;
+
+struct kdb_keyinfo_pkt {
+ kbd_scancode_t scancode;
+ kbd_keycode_t keycode;
+ kbd_kstate_t state;
+ time_t timestamp;
+};
+
+int kbd_recv_key(struct kdb_keyinfo_pkt* key_event);
+