diff options
author | David Woodhouse <dwmw2@infradead.org> | 2008-06-03 09:59:40 -0400 |
---|---|---|
committer | David Woodhouse <dwmw2@infradead.org> | 2008-06-04 09:56:12 -0400 |
commit | a29ccf6f823a84d89e1c7aaaf221cf7282022024 (patch) | |
tree | e65d84633a98d46ef81373e5d190c6cdc0e4282b /include | |
parent | 1beee8dc8cf58e3f605bd7b34d7a39939be7d8d2 (diff) |
Make console charset translation optional
By turning off the new CONSOLE_TRANSLATIONS option and dropping the
associated code and tables from the kernel, we can save about 7KiB.
Taken from linux-tiny project by Tim Bird and mangled further by dwmw2.
Signed-off-by: Tim Bird <tim.bird@am.sony.com>
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/consolemap.h | 14 | ||||
-rw-r--r-- | include/linux/vt_kern.h | 19 |
2 files changed, 33 insertions, 0 deletions
diff --git a/include/linux/consolemap.h b/include/linux/consolemap.h index e2bf7e5db39a..c4811da1338b 100644 --- a/include/linux/consolemap.h +++ b/include/linux/consolemap.h | |||
@@ -3,6 +3,9 @@ | |||
3 | * | 3 | * |
4 | * Interface between console.c, selection.c and consolemap.c | 4 | * Interface between console.c, selection.c and consolemap.c |
5 | */ | 5 | */ |
6 | #ifndef __LINUX_CONSOLEMAP_H__ | ||
7 | #define __LINUX_CONSOLEMAP_H__ | ||
8 | |||
6 | #define LAT1_MAP 0 | 9 | #define LAT1_MAP 0 |
7 | #define GRAF_MAP 1 | 10 | #define GRAF_MAP 1 |
8 | #define IBMPC_MAP 2 | 11 | #define IBMPC_MAP 2 |
@@ -10,6 +13,7 @@ | |||
10 | 13 | ||
11 | #include <linux/types.h> | 14 | #include <linux/types.h> |
12 | 15 | ||
16 | #ifdef CONFIG_CONSOLE_TRANSLATIONS | ||
13 | struct vc_data; | 17 | struct vc_data; |
14 | 18 | ||
15 | extern u16 inverse_translate(struct vc_data *conp, int glyph, int use_unicode); | 19 | extern u16 inverse_translate(struct vc_data *conp, int glyph, int use_unicode); |
@@ -18,3 +22,13 @@ extern int conv_uni_to_pc(struct vc_data *conp, long ucs); | |||
18 | extern u32 conv_8bit_to_uni(unsigned char c); | 22 | extern u32 conv_8bit_to_uni(unsigned char c); |
19 | extern int conv_uni_to_8bit(u32 uni); | 23 | extern int conv_uni_to_8bit(u32 uni); |
20 | void console_map_init(void); | 24 | void console_map_init(void); |
25 | #else | ||
26 | #define inverse_translate(conp, glyph, uni) ((uint16_t)glyph) | ||
27 | #define set_translate(m, vc) ((unsigned short *)NULL) | ||
28 | #define conv_uni_to_pc(conp, ucs) ((int) (ucs > 0xff ? -1: ucs)) | ||
29 | #define conv_8bit_to_uni(c) ((uint32_t)(c)) | ||
30 | #define conv_uni_to_8bit(c) ((int) ((c) & 0xff)) | ||
31 | #define console_map_init(c) do { ; } while (0) | ||
32 | #endif /* CONFIG_CONSOLE_TRANSLATIONS */ | ||
33 | |||
34 | #endif /* __LINUX_CONSOLEMAP_H__ */ | ||
diff --git a/include/linux/vt_kern.h b/include/linux/vt_kern.h index 9448ffbdcbf6..14c0e91be9b5 100644 --- a/include/linux/vt_kern.h +++ b/include/linux/vt_kern.h | |||
@@ -12,6 +12,7 @@ | |||
12 | #include <linux/mutex.h> | 12 | #include <linux/mutex.h> |
13 | #include <linux/console_struct.h> | 13 | #include <linux/console_struct.h> |
14 | #include <linux/mm.h> | 14 | #include <linux/mm.h> |
15 | #include <linux/consolemap.h> | ||
15 | 16 | ||
16 | /* | 17 | /* |
17 | * Presently, a lot of graphics programs do not restore the contents of | 18 | * Presently, a lot of graphics programs do not restore the contents of |
@@ -54,6 +55,7 @@ void redraw_screen(struct vc_data *vc, int is_switch); | |||
54 | struct tty_struct; | 55 | struct tty_struct; |
55 | int tioclinux(struct tty_struct *tty, unsigned long arg); | 56 | int tioclinux(struct tty_struct *tty, unsigned long arg); |
56 | 57 | ||
58 | #ifdef CONFIG_CONSOLE_TRANSLATIONS | ||
57 | /* consolemap.c */ | 59 | /* consolemap.c */ |
58 | 60 | ||
59 | struct unimapinit; | 61 | struct unimapinit; |
@@ -71,6 +73,23 @@ void con_free_unimap(struct vc_data *vc); | |||
71 | void con_protect_unimap(struct vc_data *vc, int rdonly); | 73 | void con_protect_unimap(struct vc_data *vc, int rdonly); |
72 | int con_copy_unimap(struct vc_data *dst_vc, struct vc_data *src_vc); | 74 | int con_copy_unimap(struct vc_data *dst_vc, struct vc_data *src_vc); |
73 | 75 | ||
76 | #define vc_translate(vc, c) ((vc)->vc_translate[(c) | \ | ||
77 | (vc)->vc_toggle_meta ? 0x80 : 0]) | ||
78 | #else | ||
79 | #define con_set_trans_old(arg) (0) | ||
80 | #define con_get_trans_old(arg) (-EINVAL) | ||
81 | #define con_set_trans_new(arg) (0) | ||
82 | #define con_get_trans_new(arg) (-EINVAL) | ||
83 | #define con_clear_unimap(vc, ui) (0) | ||
84 | #define con_set_unimap(vc, ct, list) (0) | ||
85 | #define con_set_default_unimap(vc) (0) | ||
86 | #define con_copy_unimap(d, s) (0) | ||
87 | #define con_get_unimap(vc, ct, uct, list) (-EINVAL) | ||
88 | #define con_free_unimap(vc) do { ; } while (0) | ||
89 | |||
90 | #define vc_translate(vc, c) (c) | ||
91 | #endif | ||
92 | |||
74 | /* vt.c */ | 93 | /* vt.c */ |
75 | int vt_waitactive(int vt); | 94 | int vt_waitactive(int vt); |
76 | void change_console(struct vc_data *new_vc); | 95 | void change_console(struct vc_data *new_vc); |