xref: /linux-6.15/include/linux/consolemap.h (revision 5a904a93)
1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
21da177e4SLinus Torvalds /*
31da177e4SLinus Torvalds  * consolemap.h
41da177e4SLinus Torvalds  *
51da177e4SLinus Torvalds  * Interface between console.c, selection.c  and consolemap.c
61da177e4SLinus Torvalds  */
7a29ccf6fSDavid Woodhouse #ifndef __LINUX_CONSOLEMAP_H__
8a29ccf6fSDavid Woodhouse #define __LINUX_CONSOLEMAP_H__
9a29ccf6fSDavid Woodhouse 
10*5a904a93SJiri Slaby enum translation_map {
11*5a904a93SJiri Slaby 	LAT1_MAP,
12*5a904a93SJiri Slaby 	GRAF_MAP,
13*5a904a93SJiri Slaby 	IBMPC_MAP,
14*5a904a93SJiri Slaby 	USER_MAP,
15*5a904a93SJiri Slaby 
16*5a904a93SJiri Slaby 	FIRST_MAP = LAT1_MAP,
17*5a904a93SJiri Slaby 	LAST_MAP = USER_MAP,
18*5a904a93SJiri Slaby };
191da177e4SLinus Torvalds 
20759448f4SJan Engelhardt #include <linux/types.h>
21759448f4SJan Engelhardt 
221da177e4SLinus Torvalds struct vc_data;
231da177e4SLinus Torvalds 
24f827c754SJiri Slaby #ifdef CONFIG_CONSOLE_TRANSLATIONS
25d9ebb906SJiri Slaby u16 inverse_translate(const struct vc_data *conp, u16 glyph, bool use_unicode);
26*5a904a93SJiri Slaby unsigned short *set_translate(enum translation_map m, struct vc_data *vc);
270b75f796SJiri Slaby int conv_uni_to_pc(struct vc_data *conp, long ucs);
280b75f796SJiri Slaby u32 conv_8bit_to_uni(unsigned char c);
290b75f796SJiri Slaby int conv_uni_to_8bit(u32 uni);
303cb340ecSAdrian Bunk void console_map_init(void);
31a29ccf6fSDavid Woodhouse #else
inverse_translate(const struct vc_data * conp,u16 glyph,bool use_unicode)32d9ebb906SJiri Slaby static inline u16 inverse_translate(const struct vc_data *conp, u16 glyph,
33d9ebb906SJiri Slaby 		bool use_unicode)
34f827c754SJiri Slaby {
35f827c754SJiri Slaby 	return glyph;
36f827c754SJiri Slaby }
37f827c754SJiri Slaby 
set_translate(enum translation_map m,struct vc_data * vc)38*5a904a93SJiri Slaby static inline unsigned short *set_translate(enum translation_map m,
39*5a904a93SJiri Slaby 		struct vc_data *vc)
40f827c754SJiri Slaby {
41f827c754SJiri Slaby 	return NULL;
42f827c754SJiri Slaby }
43f827c754SJiri Slaby 
conv_uni_to_pc(struct vc_data * conp,long ucs)44f827c754SJiri Slaby static inline int conv_uni_to_pc(struct vc_data *conp, long ucs)
45f827c754SJiri Slaby {
46f827c754SJiri Slaby 	return ucs > 0xff ? -1 : ucs;
47f827c754SJiri Slaby }
48f827c754SJiri Slaby 
conv_8bit_to_uni(unsigned char c)49f827c754SJiri Slaby static inline u32 conv_8bit_to_uni(unsigned char c)
50f827c754SJiri Slaby {
51f827c754SJiri Slaby 	return c;
52f827c754SJiri Slaby }
53f827c754SJiri Slaby 
conv_uni_to_8bit(u32 uni)54f827c754SJiri Slaby static inline int conv_uni_to_8bit(u32 uni)
55f827c754SJiri Slaby {
56f827c754SJiri Slaby 	return uni & 0xff;
57f827c754SJiri Slaby }
58f827c754SJiri Slaby 
console_map_init(void)59f827c754SJiri Slaby static inline void console_map_init(void) { }
60a29ccf6fSDavid Woodhouse #endif /* CONFIG_CONSOLE_TRANSLATIONS */
61a29ccf6fSDavid Woodhouse 
62a29ccf6fSDavid Woodhouse #endif /* __LINUX_CONSOLEMAP_H__ */
63