/* usb_keyboard.h - Implementation of a USB keyboard device * * Copyright (C) 2024 Luke T. Shumaker * SPDX-Licence-Identifier: AGPL-3.0-or-later */ #ifndef _USB_KEYBOARD_H_ #define _USB_KEYBOARD_H_ #include "coroutine.h" typedef cr_chan_t(uint32_t, int) usb_keyboard_chan_t; typedef struct { usb_keyboard_chan_t *chan; uint32_t rune; uint8_t report_id; uint8_t modifier; uint8_t keycodes[0]; } usb_keyboard_stack_t; void usb_keyboard_init(void); void usb_keyboard_cr(void *stack); #endif /* _USB_KEYBOARD_H_ */