blob: f85e70bd4793e00dc64fc4a4f714f212b8c1bc52 [file] [log] [blame]
Linus Torvalds1da177e2005-04-16 15:20:36 -07001/*
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;
Jan Beulich2f4516d2005-09-13 01:25:44 -070018 const char *name;
Linus Torvalds1da177e2005-04-16 15:20:36 -070019 int width, height;
Jan Beulich2f4516d2005-09-13 01:25:44 -070020 const void *data;
Linus Torvalds1da177e2005-04-16 15:20:36 -070021 int pref;
22};
23
24#define VGA8x8_IDX 0
25#define VGA8x16_IDX 1
26#define PEARL8x8_IDX 2
27#define VGA6x11_IDX 3
Jurriaan303b86d2005-06-21 17:17:06 -070028#define FONT7x14_IDX 4
29#define FONT10x18_IDX 5
30#define SUN8x16_IDX 6
31#define SUN12x22_IDX 7
32#define ACORN8x8_IDX 8
33#define MINI4x6_IDX 9
Maarten ter Huurne33ac9db2014-09-09 13:46:28 +020034#define FONT6x10_IDX 10
Linus Torvalds1da177e2005-04-16 15:20:36 -070035
Jan Beulich2f4516d2005-09-13 01:25:44 -070036extern const struct font_desc font_vga_8x8,
Jurriaan303b86d2005-06-21 17:17:06 -070037 font_vga_8x16,
38 font_pearl_8x8,
39 font_vga_6x11,
40 font_7x14,
41 font_10x18,
42 font_sun_8x16,
43 font_sun_12x22,
44 font_acorn_8x8,
Maarten ter Huurne33ac9db2014-09-09 13:46:28 +020045 font_mini_4x6,
46 font_6x10;
Linus Torvalds1da177e2005-04-16 15:20:36 -070047
48/* Find a font with a specific name */
49
Jan Beulich2f4516d2005-09-13 01:25:44 -070050extern const struct font_desc *find_font(const char *name);
Linus Torvalds1da177e2005-04-16 15:20:36 -070051
52/* Get the default font for a specific screen size */
53
Antonino A. Daplas2d2699d2007-05-08 00:39:11 -070054extern const struct font_desc *get_default_font(int xres, int yres,
55 u32 font_w, u32 font_h);
Linus Torvalds1da177e2005-04-16 15:20:36 -070056
57/* Max. length for the name of a predefined font */
58#define MAX_FONT_NAME 32
59
Peilin Ye7b9eaa72020-09-24 09:40:53 -040060/* Extra word getters */
61#define REFCOUNT(fd) (((int *)(fd))[-1])
62#define FNTSIZE(fd) (((int *)(fd))[-2])
63#define FNTCHARCNT(fd) (((int *)(fd))[-3])
64#define FNTSUM(fd) (((int *)(fd))[-4])
65
66#define FONT_EXTRA_WORDS 4
67
Peilin Ye2162bcb2020-09-24 09:42:22 -040068struct font_data {
69 unsigned int extra[FONT_EXTRA_WORDS];
70 const unsigned char data[];
71} __packed;
72
Linus Torvalds1da177e2005-04-16 15:20:36 -070073#endif /* _VIDEO_FONT_H */