1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | /* |
3 | * consolemap.h |
4 | * |
5 | * Interface between console.c, selection.c and consolemap.c |
6 | */ |
7 | #ifndef __LINUX_CONSOLEMAP_H__ |
8 | #define __LINUX_CONSOLEMAP_H__ |
9 | |
10 | enum translation_map { |
11 | LAT1_MAP, |
12 | GRAF_MAP, |
13 | IBMPC_MAP, |
14 | USER_MAP, |
15 | |
16 | FIRST_MAP = LAT1_MAP, |
17 | LAST_MAP = USER_MAP, |
18 | }; |
19 | |
20 | #include <linux/types.h> |
21 | |
22 | struct vc_data; |
23 | |
24 | #ifdef CONFIG_CONSOLE_TRANSLATIONS |
25 | u16 inverse_translate(const struct vc_data *conp, u16 glyph, bool use_unicode); |
26 | unsigned short *set_translate(enum translation_map m, struct vc_data *vc); |
27 | int conv_uni_to_pc(struct vc_data *conp, long ucs); |
28 | u32 conv_8bit_to_uni(unsigned char c); |
29 | int conv_uni_to_8bit(u32 uni); |
30 | void console_map_init(void); |
31 | #else |
32 | static inline u16 inverse_translate(const struct vc_data *conp, u16 glyph, |
33 | bool use_unicode) |
34 | { |
35 | return glyph; |
36 | } |
37 | |
38 | static inline unsigned short *set_translate(enum translation_map m, |
39 | struct vc_data *vc) |
40 | { |
41 | return NULL; |
42 | } |
43 | |
44 | static inline int conv_uni_to_pc(struct vc_data *conp, long ucs) |
45 | { |
46 | return ucs > 0xff ? -1 : ucs; |
47 | } |
48 | |
49 | static inline u32 conv_8bit_to_uni(unsigned char c) |
50 | { |
51 | return c; |
52 | } |
53 | |
54 | static inline int conv_uni_to_8bit(u32 uni) |
55 | { |
56 | return uni & 0xff; |
57 | } |
58 | |
59 | static inline void console_map_init(void) { } |
60 | #endif /* CONFIG_CONSOLE_TRANSLATIONS */ |
61 | |
62 | #endif /* __LINUX_CONSOLEMAP_H__ */ |
63 | |