Current Path : /usr/include/lct/ |
Current File : //usr/include/lct/console.h |
#ifndef _LCT_CONSOLE_H #define _LCT_CONSOLE_H #include <stdio.h> #include <linux/kd.h> #include <lct/unicode.h> #include <lct/font.h> /* * Default keymap, and where the kernel copy of it lives. */ #ifdef __sparc__ # define DEFKMAP "sunkeymap" # define KERNDIR "/usr/src/linux/drivers/sbus/char" #else # define DEFKMAP "defkeymap" # define KERNDIR "/usr/src/linux/drivers/char" #endif /* misc-console-utils.c */ int is_a_console(int fd); int get_console_fd(char* tty_name); int acm_activate(int tty_fd, int g_set); /* from acm.c */ void saveoldmap (int fd, char* omfil); int screen_map_load (int fd, FILE *fp); int uni_screen_map_read_ascii (FILE *fp, unicode buf[], int *is_unicode); int old_screen_map_read_ascii (FILE *fp, unsigned char buf[]); /* from saveunimap.c */ void saveunicodemap(int fd, char *oufil, int verbose, int no_act); /* unimap-misc.c */ int set_kernel_unimap(int fd, struct unimapdesc *); int get_kernel_unimap(int fd, struct unimapdesc *); /* kernelfont.c */ cfontdesc* get_kernel_font(int fd); int set_kernel_font(int fd, cfontdesc *); void restore_rom_font(int fd); /* testUTF8.c */ int is_in_UTF8_mode (int fd); /* * provide kernel defs for compatibility */ /* * Linux pre-0.96 introduced, and 1.1.63 removed the defines * #define GIO_FONT8x8 0x4B28 * #define PIO_FONT8x8 0x4B29 * #define GIO_FONT8x14 0x4B2A * #define PIO_FONT8x14 0x4B2B * #define GIO_FONT8x16 0x4B2C * #define PIO_FONT8x16 0x4B2D * but these ioctls have never been implemented. */ /* * Linux 0.99.15 introduces the GIO_FONT and PIO_FONT ioctls. * Usage: char buf[8192]; ioctl(fd, GIO_FONT, buf); * to get 256*32=8192 bytes of data for 256 characters, * 32 for each symbol, of which only the first H are used * for an 8xH font. * Changes in use: 1.1.74: you have to be root for PIO_FONT. */ #ifndef GIO_FONT # define GIO_FONT 0x4B60 /* gets font in expanded form */ # define PIO_FONT 0x4B61 /* use font in expanded form */ #endif /* * Linux 1.3.1 introduces 512-character fonts and the * GIO_FONTX and PIO_FONTX ioctls to read and load them. * The PIO_FONTX ioctl also adjusts screen character height. * Usage: char buf[16384]; struct consolefontdesc cfd; cfd.charcount = fontsize; cfd.charheight = height; cfd.chardata = buf; ioctl(fd, PIO_FONTX, &cfd); * and char buf[32*N]; cfd.charcount = N; cfd.chardata = buf; ioctl(fd, GIO_FONTX, &cfd); * (where the ioctl will fail if N was too small); * the ioctl fills cfd.charcount and cfd.charheight. * With GIO_FONTX, the chardata pointer may be NULL. * The old GIO_FONT will fail if the fontsize is 512. */ #ifndef GIO_FONTX # define GIO_FONTX 0x4B6B /* get font using struct consolefontdesc */ # define PIO_FONTX 0x4B6C /* set font using struct consolefontdesc */ struct consolefontdesc { unsigned short charcount; /* characters in font (256 or 512) */ unsigned short charheight; /* scan lines per character (1-32) */ char *chardata; /* font data in expanded form */ }; #endif /* * Linux 2.1.111 introduces the KDFONTOP ioctl. * Details of use have changed a bit in 2.1.111-115,124. * Usage: struct console_font_op cfo; ioctl(fd, KDFONTOP, &cfo); */ #ifndef KDFONTOP # define KDFONTOP 0x4B72 /* font operations */ struct console_font_op { unsigned int op; /* operation code KD_FONT_OP_* */ unsigned int flags; /* KD_FONT_FLAG_* */ unsigned int width, height; /* font size */ unsigned int charcount; unsigned char *data; /* font data with height fixed to 32 */ }; # define KD_FONT_OP_SET 0 /* Set font */ # define KD_FONT_OP_GET 1 /* Get font */ # define KD_FONT_OP_SET_DEFAULT 2 /* Set font to default, data points to name / NULL */ # define KD_FONT_OP_COPY 3 /* Copy from another console */ # define KD_FONT_FLAG_DONT_RECALC 1 /* Don't call adjust_height() */ /* (Used internally for PIO_FONT support) */ #endif #endif /* _LCT_CONSOLE_H */