#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