1/*
2 *  font.h -- `Soft' font definitions
3 *
4 *  Created 1995 by Geert Uytterhoeven
5 *
6 *  This file is subject to the terms and conditions of the GNU General Public
7 *  License.  See the file COPYING in the main directory of this archive
8 *  for more details.
9 */
10
11#ifndef _VIDEO_FONT_H
12#define _VIDEO_FONT_H
13
14#include <linux/types.h>
15
16struct font_desc {
17    int idx;
18    const char *name;
19    unsigned int width, height;
20    unsigned int charcount;
21    const void *data;
22    int pref;
23};
24
25#define VGA8x8_IDX	0
26#define VGA8x16_IDX	1
27#define PEARL8x8_IDX	2
28#define VGA6x11_IDX	3
29#define FONT7x14_IDX	4
30#define	FONT10x18_IDX	5
31#define SUN8x16_IDX	6
32#define SUN12x22_IDX	7
33#define ACORN8x8_IDX	8
34#define	MINI4x6_IDX	9
35#define FONT6x10_IDX	10
36#define TER16x32_IDX	11
37#define FONT6x8_IDX	12
38
39extern const struct font_desc	font_vga_8x8,
40			font_vga_8x16,
41			font_pearl_8x8,
42			font_vga_6x11,
43			font_7x14,
44			font_10x18,
45			font_sun_8x16,
46			font_sun_12x22,
47			font_acorn_8x8,
48			font_mini_4x6,
49			font_6x10,
50			font_ter_16x32,
51			font_6x8;
52
53/* Find a font with a specific name */
54
55extern const struct font_desc *find_font(const char *name);
56
57/* Get the default font for a specific screen size */
58
59extern const struct font_desc *get_default_font(int xres, int yres,
60						unsigned long *font_w,
61						unsigned long *font_h);
62
63/* Max. length for the name of a predefined font */
64#define MAX_FONT_NAME	32
65
66/* Extra word getters */
67#define REFCOUNT(fd)	(((int *)(fd))[-1])
68#define FNTSIZE(fd)	(((int *)(fd))[-2])
69#define FNTCHARCNT(fd)	(((int *)(fd))[-3])
70#define FNTSUM(fd)	(((int *)(fd))[-4])
71
72#define FONT_EXTRA_WORDS 4
73
74struct font_data {
75	unsigned int extra[FONT_EXTRA_WORDS];
76	const unsigned char data[];
77} __packed;
78
79#endif /* _VIDEO_FONT_H */
80