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