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 bool ucs_is_double_width(uint32_t cp);
32 bool ucs_is_zero_width(uint32_t cp);
33 u32 ucs_recompose(u32 base, u32 mark);
34 u32 ucs_get_fallback(u32 cp);
35 #else
inverse_translate(const struct vc_data * conp,u16 glyph,bool use_unicode)36 static inline u16 inverse_translate(const struct vc_data *conp, u16 glyph,
37 bool use_unicode)
38 {
39 return glyph;
40 }
41
set_translate(enum translation_map m,struct vc_data * vc)42 static inline unsigned short *set_translate(enum translation_map m,
43 struct vc_data *vc)
44 {
45 return NULL;
46 }
47
conv_uni_to_pc(struct vc_data * conp,long ucs)48 static inline int conv_uni_to_pc(struct vc_data *conp, long ucs)
49 {
50 return ucs > 0xff ? -1 : ucs;
51 }
52
conv_8bit_to_uni(unsigned char c)53 static inline u32 conv_8bit_to_uni(unsigned char c)
54 {
55 return c;
56 }
57
conv_uni_to_8bit(u32 uni)58 static inline int conv_uni_to_8bit(u32 uni)
59 {
60 return uni & 0xff;
61 }
62
console_map_init(void)63 static inline void console_map_init(void) { }
64
ucs_is_double_width(uint32_t cp)65 static inline bool ucs_is_double_width(uint32_t cp)
66 {
67 return false;
68 }
69
ucs_is_zero_width(uint32_t cp)70 static inline bool ucs_is_zero_width(uint32_t cp)
71 {
72 return false;
73 }
74
ucs_recompose(u32 base,u32 mark)75 static inline u32 ucs_recompose(u32 base, u32 mark)
76 {
77 return 0;
78 }
79
ucs_get_fallback(u32 cp)80 static inline u32 ucs_get_fallback(u32 cp)
81 {
82 return 0;
83 }
84 #endif /* CONFIG_CONSOLE_TRANSLATIONS */
85
86 #endif /* __LINUX_CONSOLEMAP_H__ */
87