diff options
Diffstat (limited to 'include/linux/font.h')
-rw-r--r-- | include/linux/font.h | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/include/linux/font.h b/include/linux/font.h new file mode 100644 index 000000000..abf1442ce --- /dev/null +++ b/include/linux/font.h @@ -0,0 +1,78 @@ +/* + * font.h -- `Soft' font definitions + * + * Created 1995 by Geert Uytterhoeven + * + * This file is subject to the terms and conditions of the GNU General Public + * License. See the file COPYING in the main directory of this archive + * for more details. + */ + +#ifndef _VIDEO_FONT_H +#define _VIDEO_FONT_H + +#include <linux/types.h> + +struct font_desc { + int idx; + const char *name; + unsigned int width, height; + unsigned int charcount; + const void *data; + int pref; +}; + +#define VGA8x8_IDX 0 +#define VGA8x16_IDX 1 +#define PEARL8x8_IDX 2 +#define VGA6x11_IDX 3 +#define FONT7x14_IDX 4 +#define FONT10x18_IDX 5 +#define SUN8x16_IDX 6 +#define SUN12x22_IDX 7 +#define ACORN8x8_IDX 8 +#define MINI4x6_IDX 9 +#define FONT6x10_IDX 10 +#define TER16x32_IDX 11 +#define FONT6x8_IDX 12 + +extern const struct font_desc font_vga_8x8, + font_vga_8x16, + font_pearl_8x8, + font_vga_6x11, + font_7x14, + font_10x18, + font_sun_8x16, + font_sun_12x22, + font_acorn_8x8, + font_mini_4x6, + font_6x10, + font_ter_16x32, + font_6x8; + +/* Find a font with a specific name */ + +extern const struct font_desc *find_font(const char *name); + +/* Get the default font for a specific screen size */ + +extern const struct font_desc *get_default_font(int xres, int yres, + u32 font_w, u32 font_h); + +/* Max. length for the name of a predefined font */ +#define MAX_FONT_NAME 32 + +/* Extra word getters */ +#define REFCOUNT(fd) (((int *)(fd))[-1]) +#define FNTSIZE(fd) (((int *)(fd))[-2]) +#define FNTCHARCNT(fd) (((int *)(fd))[-3]) +#define FNTSUM(fd) (((int *)(fd))[-4]) + +#define FONT_EXTRA_WORDS 4 + +struct font_data { + unsigned int extra[FONT_EXTRA_WORDS]; + const unsigned char data[]; +} __packed; + +#endif /* _VIDEO_FONT_H */ |