11da177e4SLinus Torvalds /* 21da177e4SLinus Torvalds * font.h -- `Soft' font definitions 31da177e4SLinus Torvalds * 41da177e4SLinus Torvalds * Created 1995 by Geert Uytterhoeven 51da177e4SLinus Torvalds * 61da177e4SLinus Torvalds * This file is subject to the terms and conditions of the GNU General Public 71da177e4SLinus Torvalds * License. See the file COPYING in the main directory of this archive 81da177e4SLinus Torvalds * for more details. 91da177e4SLinus Torvalds */ 101da177e4SLinus Torvalds 111da177e4SLinus Torvalds #ifndef _VIDEO_FONT_H 121da177e4SLinus Torvalds #define _VIDEO_FONT_H 131da177e4SLinus Torvalds 141da177e4SLinus Torvalds #include <linux/types.h> 151da177e4SLinus Torvalds 161da177e4SLinus Torvalds struct font_desc { 171da177e4SLinus Torvalds int idx; 182f4516dbSJan Beulich const char *name; 197cb41500SPeilin Ye unsigned int width, height; 204ee57308SPeilin Ye unsigned int charcount; 212f4516dbSJan Beulich const void *data; 221da177e4SLinus Torvalds int pref; 231da177e4SLinus Torvalds }; 241da177e4SLinus Torvalds 251da177e4SLinus Torvalds #define VGA8x8_IDX 0 261da177e4SLinus Torvalds #define VGA8x16_IDX 1 271da177e4SLinus Torvalds #define PEARL8x8_IDX 2 281da177e4SLinus Torvalds #define VGA6x11_IDX 3 29303b86d9SJurriaan #define FONT7x14_IDX 4 30303b86d9SJurriaan #define FONT10x18_IDX 5 31303b86d9SJurriaan #define SUN8x16_IDX 6 32303b86d9SJurriaan #define SUN12x22_IDX 7 33303b86d9SJurriaan #define ACORN8x8_IDX 8 34303b86d9SJurriaan #define MINI4x6_IDX 9 3533ac9dbaSMaarten ter Huurne #define FONT6x10_IDX 10 36ac8b6f14SAmanoel Dawod #define TER16x32_IDX 11 37e2028c8eSSven Schneider #define FONT6x8_IDX 12 381da177e4SLinus Torvalds 392f4516dbSJan Beulich extern const struct font_desc font_vga_8x8, 401da177e4SLinus Torvalds font_vga_8x16, 411da177e4SLinus Torvalds font_pearl_8x8, 421da177e4SLinus Torvalds font_vga_6x11, 43303b86d9SJurriaan font_7x14, 44303b86d9SJurriaan font_10x18, 451da177e4SLinus Torvalds font_sun_8x16, 461da177e4SLinus Torvalds font_sun_12x22, 471da177e4SLinus Torvalds font_acorn_8x8, 4833ac9dbaSMaarten ter Huurne font_mini_4x6, 49ac8b6f14SAmanoel Dawod font_6x10, 50e2028c8eSSven Schneider font_ter_16x32, 51e2028c8eSSven Schneider font_6x8; 521da177e4SLinus Torvalds 531da177e4SLinus Torvalds /* Find a font with a specific name */ 541da177e4SLinus Torvalds 552f4516dbSJan Beulich extern const struct font_desc *find_font(const char *name); 561da177e4SLinus Torvalds 571da177e4SLinus Torvalds /* Get the default font for a specific screen size */ 581da177e4SLinus Torvalds 592d2699d9SAntonino A. Daplas extern const struct font_desc *get_default_font(int xres, int yres, 60*15260979SSamuel Thibault unsigned long *font_w, 61*15260979SSamuel Thibault unsigned long *font_h); 621da177e4SLinus Torvalds 631da177e4SLinus Torvalds /* Max. length for the name of a predefined font */ 641da177e4SLinus Torvalds #define MAX_FONT_NAME 32 651da177e4SLinus Torvalds 66bb0890b4SPeilin Ye /* Extra word getters */ 67bb0890b4SPeilin Ye #define REFCOUNT(fd) (((int *)(fd))[-1]) 68bb0890b4SPeilin Ye #define FNTSIZE(fd) (((int *)(fd))[-2]) 69bb0890b4SPeilin Ye #define FNTCHARCNT(fd) (((int *)(fd))[-3]) 70bb0890b4SPeilin Ye #define FNTSUM(fd) (((int *)(fd))[-4]) 71bb0890b4SPeilin Ye 72bb0890b4SPeilin Ye #define FONT_EXTRA_WORDS 4 73bb0890b4SPeilin Ye 746735b463SPeilin Ye struct font_data { 756735b463SPeilin Ye unsigned int extra[FONT_EXTRA_WORDS]; 766735b463SPeilin Ye const unsigned char data[]; 776735b463SPeilin Ye } __packed; 786735b463SPeilin Ye 791da177e4SLinus Torvalds #endif /* _VIDEO_FONT_H */ 80