console.h

来自「基于组件方式开发操作系统的OSKIT源代码」· C头文件 代码 · 共 636 行 · 第 1/2 页

H
636
字号
/*- * Copyright (c) 1991-1996 S鴕en Schmidt * All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright *    notice, this list of conditions and the following disclaimer *    in this position and unchanged. * 2. Redistributions in binary form must reproduce the above copyright *    notice, this list of conditions and the following disclaimer in the *    documentation and/or other materials provided with the distribution. * 3. The name of the author may not be used to endorse or promote products *    derived from this software without specific prior written permission * * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * *	$Id: console.h,v 1.43.2.2 1999/05/09 11:02:02 yokota Exp $ */#ifndef	_MACHINE_CONSOLE_H_#define	_MACHINE_CONSOLE_H_#ifndef KERNEL#include <sys/types.h>#endif#include <sys/ioccom.h>#define KDGKBMODE 	_IOR('K', 6, int)#define KDSKBMODE 	_IO('K', 7 /*, int */)#define KDMKTONE	_IO('K', 8 /*, int */)#define KDGETMODE	_IOR('K', 9, int)#define KDSETMODE	_IO('K', 10 /*, int */)#define KDSBORDER	_IO('K', 13 /*, int */)#define KDGKBSTATE	_IOR('K', 19, int)#define KDSKBSTATE	_IO('K', 20 /*, int */)#define KDENABIO	_IO('K', 60)#define KDDISABIO	_IO('K', 61)#define KIOCSOUND	_IO('K', 63 /*, int */)#define KDGKBTYPE	_IOR('K', 64, int)#define KDGETLED	_IOR('K', 65, int)#define KDSETLED	_IO('K', 66 /*, int */)#define KDSETRAD	_IO('K', 67 /*, int */)		/* obsolete */#define KDRASTER	_IOW('K', 100, scr_size_t)#define KDGKBINFO	_IOR('K', 101, keyboard_info_t)#define KDSETREPEAT	_IOW('K', 102, keyboard_delay_t)#define GETFKEY		_IOWR('k', 0, fkeyarg_t)#define SETFKEY		_IOWR('k', 1, fkeyarg_t)#define GIO_SCRNMAP	_IOR('k', 2, scrmap_t)#define PIO_SCRNMAP	_IOW('k', 3, scrmap_t)#define GIO_KEYMAP 	_IOR('k', 6, keymap_t)#define PIO_KEYMAP 	_IOW('k', 7, keymap_t)#define GIO_DEADKEYMAP 	_IOR('k', 8, accentmap_t)#define PIO_DEADKEYMAP 	_IOW('k', 9, accentmap_t)#define GIO_KEYMAPENT 	_IOWR('k', 10, keyarg_t)#define PIO_KEYMAPENT 	_IOW('k', 11, keyarg_t)#define GIO_ATTR	_IOR('a', 0, int)#define GIO_COLOR	_IOR('c', 0, int)#define CONS_CURRENT	_IOR('c', 1, int)#define CONS_GET	_IOR('c', 2, int)#define CONS_IO		_IO('c', 3)#define CONS_BLANKTIME	_IOW('c', 4, int)#define CONS_SSAVER	_IOW('c', 5, ssaver_t)#define CONS_GSAVER	_IOWR('c', 6, ssaver_t)#define CONS_CURSORTYPE	_IOW('c', 7, int)#define CONS_BELLTYPE	_IOW('c', 8, int)#define CONS_HISTORY	_IOW('c', 9, int)#define CONS_MOUSECTL	_IOWR('c', 10, mouse_info_t)#define CONS_IDLE	_IOR('c', 11, int)#define CONS_SAVERMODE	_IOW('c', 12, int)#define CONS_SAVERSTART	_IOW('c', 13, int)#define PIO_FONT8x8	_IOW('c', 64, fnt8_t)#define GIO_FONT8x8	_IOR('c', 65, fnt8_t)#define PIO_FONT8x14	_IOW('c', 66, fnt14_t)#define GIO_FONT8x14	_IOR('c', 67, fnt14_t)#define PIO_FONT8x16	_IOW('c', 68, fnt16_t)#define GIO_FONT8x16	_IOR('c', 69, fnt16_t)#define CONS_GETINFO    _IOWR('c', 73, vid_info_t)#define CONS_GETVERS	_IOR('c', 74, int)#define CONS_CURRENTADP	_IOR('c', 100, int)#define CONS_ADPINFO	_IOWR('c', 101, video_adapter_info_t)#define CONS_MODEINFO	_IOWR('c', 102, video_info_t)#define CONS_FINDMODE	_IOWR('c', 103, video_info_t)#define CONS_SETWINORG	_IO('c', 104 /* u_int */) #define CONS_SETKBD	_IO('c', 110 /* int */)#define CONS_RELKBD	_IO('c', 111)/* CONS_SAVERMODE */#define CONS_LKM_SAVER	0#define CONS_USR_SAVER	1#ifdef PC98#define ADJUST_CLOCK		_IO('t',100)		/* for 98note resume */#endif#define VT_OPENQRY	_IOR('v', 1, int)#define VT_SETMODE	_IOW('v', 2, vtmode_t)#define VT_GETMODE	_IOR('v', 3, vtmode_t)#define VT_RELDISP	_IO('v', 4 /*, int */)#define VT_ACTIVATE	_IO('v', 5 /*, int */)#define VT_WAITACTIVE	_IO('v', 6 /*, int */)#define VT_GETACTIVE	_IOR('v', 7, int)#define VT_FALSE	0#define VT_TRUE		1#define VT_ACKACQ	2#define VT_AUTO		0		/* switching is automatic 	*/#define VT_PROCESS	1		/* switching controlled by prog */#define VT_KERNEL	255		/* switching controlled in kernel */#ifndef _VT_MODE_DECLARED#define	_VT_MODE_DECLAREDstruct vt_mode {	char	mode;	char	waitv;			/* not implemented yet 	SOS	*/	short	relsig;	short	acqsig;	short	frsig;			/* not implemented yet	SOS	*/};typedef struct vt_mode vtmode_t;#endif /* !_VT_MODE_DECLARED */struct mouse_data {	int	x;	int 	y;	int 	z;	int 	buttons;};struct mouse_mode {	int	mode;	int	signal;};struct mouse_event {	int	id;			/* one based */	int	value;};#define MOUSE_SHOW		0x01#define MOUSE_HIDE		0x02#define MOUSE_MOVEABS		0x03#define MOUSE_MOVEREL		0x04#define MOUSE_GETINFO		0x05#define MOUSE_MODE		0x06#define MOUSE_ACTION		0x07#define MOUSE_MOTION_EVENT	0x08#define MOUSE_BUTTON_EVENT	0x09struct mouse_info {	int	operation;	union {		struct mouse_data data;		struct mouse_mode mode;		struct mouse_event event;	}u;};#define KD_MONO		1		/* monochrome adapter        	*/#define KD_HERCULES	2		/* hercules adapter          	*/#define KD_CGA		3		/* color graphics adapter    	*/#define KD_EGA		4		/* enhanced graphics adapter 	*/#define KD_VGA		5		/* video graphics adapter    	*/#define KD_PC98		6		/* PC-98 display            	*/#define KD_TEXT		0		/* set text mode restore fonts  */#define KD_TEXT0	0		/* ditto			*/#define KD_TEXT1	2		/* set text mode !restore fonts */#define KD_GRAPHICS	1		/* set graphics mode 		*/#define KD_PIXEL	3		/* set pixel mode		*/#define K_RAW		0		/* keyboard returns scancodes	*/#define K_XLATE		1		/* keyboard returns ascii 	*/#define K_CODE		2		/* keyboard returns keycodes 	*/#define KB_84		1		/* 'old' 84 key AT-keyboard	*/#define KB_101		2		/* MF-101 or MF-102 keyboard	*/#define KB_OTHER	3		/* keyboard not known 		*/#define CLKED		1		/* Caps locked			*/#define NLKED		2		/* Num locked			*/#define SLKED		4		/* Scroll locked		*/#define ALKED		8		/* AltGr locked			*/#define LOCK_MASK	(CLKED | NLKED | SLKED | ALKED)#define LED_CAP		1		/* Caps lock LED 		*/#define LED_NUM		2		/* Num lock LED 		*/#define LED_SCR		4		/* Scroll lock LED 		*/#define LED_MASK	(LED_CAP | LED_NUM | LED_SCR)/* possible flag values */#define	FLAG_LOCK_O	0#define	FLAG_LOCK_C	1#define FLAG_LOCK_N	2#define NUM_KEYS	256		/* number of keys in table	*/#define NUM_STATES	8		/* states per key		*/#define ALTGR_OFFSET	128		/* offset for altlock keys	*/#ifndef _KEYMAP_DECLARED#define	_KEYMAP_DECLAREDstruct keyent_t {	u_char map[NUM_STATES];	u_char spcl;	u_char flgs;};struct keymap {	u_short	n_keys;	struct keyent_t key[NUM_KEYS];};typedef struct keymap keymap_t;struct keyarg {	u_short	keynum;	struct keyent_t key;};typedef struct keyarg keyarg_t;#endif /* !_KEYMAP_DECLARED */#define NUM_DEADKEYS	15		/* number of accent keys */#define NUM_ACCENTCHARS	52		/* max number of accent chars */struct acc_t {	u_char accchar;	u_char map[NUM_ACCENTCHARS][2];};struct accentmap {	u_short n_accs;	struct acc_t acc[NUM_DEADKEYS];};#define MAXFK		16#define NUM_FKEYS	96struct fkeytab {	u_char	str[MAXFK];	u_char	len;};struct fkeyarg {	u_short	keynum;	char	keydef[MAXFK];	char	flen;};struct colors	{	char	fore;	char	back;};struct vid_info {	short	size;	short	m_num;	u_short	mv_row, mv_col;	u_short	mv_rsz, mv_csz;	struct colors	mv_norm,			mv_rev,			mv_grfc;	u_char	mv_ovscan;	u_char	mk_keylock;};#define MAXSSAVER	16struct ssaver	{	char	name[MAXSSAVER];	int	num;	long	time;};/* video mode information block */struct video_info {    int			vi_mode;    int			vi_flags;#define V_INFO_COLOR	(1<<0)#define V_INFO_GRAPHICS	(1<<1)#define V_INFO_LINEAR	(1<<2)#define V_INFO_VESA	(1<<3)    int			vi_width;    int			vi_height;    int			vi_cwidth;    int			vi_cheight;    int			vi_depth;    int			vi_planes;    u_int		vi_window;	/* physical address */    size_t		vi_window_size;    size_t		vi_window_gran;    u_int		vi_buffer;	/* physical address */    size_t		vi_buffer_size;    /* XXX pixel format, memory model,... */};/* adapter infromation block */struct video_adapter {    int			va_index;    int			va_type;    char		*va_name;    int			va_unit;    int			va_minor;    int			va_flags;

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?