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