Merge remote-tracking branch 'spi/for-5.20' into spi-6.0
[linux-block.git] / include / linux / consolemap.h
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__ */