• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef __KEYMAP_H
3 #define __KEYMAP_H
4 
5 #include <stdint.h>
6 
7 struct keymap {
8 	struct keymap *next;
9 	char *name;
10 	char *protocol;
11 	char *variant;
12 	struct protocol_param *param;
13 	struct scancode_entry *scancode;
14 	struct raw_entry *raw;
15 };
16 
17 struct protocol_param {
18 	struct protocol_param *next;
19 	char *name;
20 	long int value;
21 };
22 
23 struct scancode_entry {
24 	struct scancode_entry *next;
25 	uint64_t scancode;
26 	char *keycode;
27 };
28 
29 struct raw_entry {
30 	struct raw_entry *next;
31 	uint64_t scancode;
32 	uint32_t raw_length;
33 	char *keycode;
34 	uint32_t raw[1];
35 };
36 
37 void free_keymap(struct keymap *map);
38 error_t parse_keymap(char *fname, struct keymap **keymap, bool verbose);
39 int keymap_param(struct keymap *map, const char *name, int fallback);
40 
41 #endif
42