+static waitq_t lx_reader;
+static volatile char key;
+
+int
+__lxconsole_listener(struct input_device* dev)
+{
+ uint32_t keycode = dev->current_pkt.sys_code;
+ uint32_t type = dev->current_pkt.pkt_type;
+ if (type == PKT_PRESS) {
+ if (keycode == KEY_UP) {
+ console_view_up();
+ } else if (keycode == KEY_DOWN) {
+ console_view_down();
+ }
+ goto done;
+ }
+ if ((keycode & 0xff00) > KEYPAD) {
+ goto done;
+ }
+
+ key = (char)(keycode & 0x00ff);
+
+ pwake_all(&lx_reader);
+
+done:
+ return INPUT_EVT_NEXT;
+}
+