Add a new keyboard module which handles the kbd_read syscall and add the

required headers and keycode constants to make it work.
This commit is contained in:
csd4ni3l
2026-04-10 12:49:43 +02:00
parent ba6ff0c94a
commit 1999794056
4 changed files with 305 additions and 1 deletions

137
include/keyboard.h Normal file
View File

@@ -0,0 +1,137 @@
#include <stdint.h>
#define ESCAPE 0
#define F1 1
#define F2 2
#define F3 3
#define F4 4
#define F5 5
#define F6 6
#define F7 7
#define F8 8
#define F9 9
#define F10 10
#define F11 11
#define F12 12
#define PRINT_SCREEN 13
#define SYS_RQ 14
#define SCROLL_LOCK 15
#define PAUSE_BREAK 16
#define OEM8 17
#define KEY1 18
#define KEY2 19
#define KEY3 20
#define KEY4 21
#define KEY5 22
#define KEY6 23
#define KEY7 24
#define KEY8 25
#define KEY9 26
#define KEY0 27
#define OEM_MINUS 28
#define OEM_PLUS 29
#define BACKSPACE 30
#define INSERT 31
#define HOME 32
#define PAGE_UP 33
#define NUMPAD_LOCK 34
#define NUMPAD_DIVIDE 35
#define NUMPAD_MULTIPLY 36
#define NUMPAD_SUBTRACT 37
#define TAB 38
#define Q 39
#define W 40
#define E 41
#define R 42
#define T 43
#define Y 44
#define U 45
#define I 46
#define O 47
#define P 48
#define OEM4 49
#define OEM6 50
#define OEM5 51
#define OEM7 52
#define DELETE 53
#define END 54
#define PAGE_DOWN 55
#define NUMPAD7 56
#define NUMPAD8 57
#define NUMPAD9 58
#define NUMPAD_ADD 59
#define CAPS_LOCK 60
#define A 61
#define S 62
#define D 63
#define F 64
#define G 65
#define H 66
#define J 67
#define K 68
#define L 69
#define OEM1 70
#define OEM3 71
#define RETURN 72
#define NUMPAD4 73
#define NUMPAD5 74
#define NUMPAD6 75
#define L_SHIFT 76
#define Z 77
#define X 78
#define C 79
#define V 80
#define B 81
#define N 82
#define M 83
#define OEM_COMMA 84
#define OEM_PERIOD 85
#define OEM2 86
#define R_SHIFT 87
#define ARROW_UP 88
#define NUMPAD1 89
#define NUMPAD2 90
#define NUMPAD3 91
#define NUMPAD_ENTER 92
#define L_CONTROL 93
#define L_WIN 94
#define L_ALT 95
#define SPACEBAR 96
#define R_ALT_GR 97
#define R_WIN 98
#define APPS 99
#define R_CONTROL 100
#define ARROW_LEFT 101
#define ARROW_DOWN 102
#define ARROW_RIGHT 103
#define NUMPAD0 104
#define NUMPAD_PERIOD 105
#define OEM9 106
#define OEM10 107
#define OEM11 108
#define OEM12 109
#define OEM13 110
#define PREV_TRACK 111
#define NEXT_TRACK 112
#define MUTE 113
#define CALCULATOR 114
#define PLAY 115
#define STOP 116
#define VOLUME_DOWN 117
#define VOLUME_UP 118
#define WWW_HOME 119
#define POWER_ON_TEST_OK 120
#define TOO_MANY_KEYS 121
#define R_CONTROL2 122
#define R_ALT2 123
typedef struct __attribute__((packed)) {
uint8_t state;
uint8_t _pad1;
uint16_t key;
uint16_t mods;
uint16_t _pad2;
uint32_t unicode;
} xunil_kbd_event_t;
int kbd_read(void *buf, uint8_t n);