#ifndef SHELL_H #define SHELL_H #include <linux/input.h> #include <stdint.h> enum { SHELL_KEY_BITS_SIZE = (KEY_CNT + 7) / 8 }; enum { SHELL_MESSAGE_WELCOME, SHELL_MESSAGE_BUFFER_UNLOCKED, SHELL_MESSAGE_KEYBOARD_EVENT, SHELL_MESSAGE_KEYBOARD_ATTACHED, SHELL_MESSAGE_KEYBOARD_DETACHED, SHELL_MESSAGE_RESET, SHELL_MESSAGE_RESET_COMPLETED, SHELL_MESSAGE_SHOW, }; enum { SHELL_PACKET_SIZE_MAX = 512 }; struct shell_message_welcome { uint16_t class; uint32_t width; uint32_t height; }; struct shell_message_buffer_unlocked { uint16_t class; }; struct shell_message_keyboard_event { uint16_t class; uint16_t code; int32_t value; }; struct shell_message_keyboard_attached { uint16_t class; uint8_t key_bits[SHELL_KEY_BITS_SIZE]; }; struct shell_message_keyboard_detached { uint16_t class; }; struct shell_message_reset { uint16_t class; }; struct shell_message_reset_completed { uint16_t class; }; struct shell_message_show { uint16_t class; }; #endif