blob: e989700c99d9d87ac4e9c066432dea38fed9a3e9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
/* usb_keyboard.h - Implementation of a USB keyboard device
*
* Copyright (C) 2024 Luke T. Shumaker <lukeshu@lukeshu.com>
* 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_ */
|