⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gx.h

📁 <B>Digital的Unix操作系统VAX 4.2源码</B>
💻 H
📖 第 1 页 / 共 2 页
字号:
/* * @(#)gx.h	4.5	(ULTRIX)	12/6/90 * * 06-Dec-90 -- Randall Brown  *	Added #define LK_MODE_CHG_ACK. * * 22-Oct-90 -- Sam Hsu *	Change tablet puck button definitions to match tablet.h. * * 20-Apr-90  -- Sam Hsu *	Add GX_CONSOLE.  Remove extraneous test in GX_HAVESERVER.  Define *	GX_MULTIOPEN.  Add STIC_INT_WE.  Remove QIO_MAPSLOT.  Moved cursor *	and colormap to common area, then backed out of that change due to *	apprehension over interface change. * * 04-Apr-90  -- Sam Hsu *	Turn off debugging for UEG copy.  Add IPLTTY() macro. * * 28-Mar-90  -- Sam Hsu *	gxInfo->gxo is now a permanent fixture.  Put in bug fix for STIC *	addressing found by Paul.  Set debug level on panic to reduce output. *	Remove some no-longer-used #define's.  Add mapslot ioctl for bmk. *	IAMSERVER/HAVESERVER macros.  Console font cell size 12x21->11x20. *	Console text fg index 0x1 instead of 0xff.  Clean up DUPBYTEs to *      generate less code. * * 29-Jan-90  -- Sam Hsu *	Redefine debugging macros to be dynamic, so one can change them *	in a running kernel. * * 17-Jan-90  -- Sam Hsu *	Move STIC definitions from stamp.h into here... get rid of 3.1C *	ioctl definitions. * * 18-Dec-89  -- Sam Hsu *	Include Paul J's macros for cons'ing up STIC DMA poll addresses, *	with the usual name changes from GA_ to GX_.  Both 2/3DA systems *	use the same scheme (originally in ga.h). * * 12-Dec-89  -- Paul Jensen *	Use new Bt459 interface.  Change _TEXT_FG to something which *	works on 8- and 24-plane systems.  Define verbosity levels *	for FDEBUG, as per Sam's suggestion. * *  7-Dec-89  -- Paul Jensen *	Define the ring buffer to be an offset from the top of the *	gxPriv structure (ringbufferoffset), instead of an *	array-of-int. * * 30-Nov-89  -- Sam Hsu *	Convert/merge into 4.0 source pool. * * 16-Oct-89  -- Sam Hsu *	non-KERNEL programs needn't include stamp.h and gao.h anymore. * * 21-Sep-89  -- Sam Hsu *	KMAX3D ioctl.h file.  Removed extraneous fields from pm_info. * * 22-Aug-89  -- Sam Hsu *	Based on pm.h  Add KMAX3D changes.  Include gao.h and stamp.h. * *    $Header: /nfs/kodak/local/4.0-12/io/tc/RCS/gx.h,v 1.32 90/06/25 11:06:27 fhsu Exp Locker: fhsu $; */#ifndef _GX_H_#define _GX_H_/* * Graphics Accelerator Option common header file */#define GX_MULTIOPEN			/* multi-open */#define GX_SILENT	0#define GX_CONSOLE	1		/* allow output (at all) on SLU3 */#define GX_PSST		2#define GX_TERSE	3#define GX_TALK		4#define GX_YAK		5#define GX_GAB		7#define GX_BLAB		10#define GX_YOW		13#define GX_NEVER	99#define GX_DEBUGGING	GX_TERSE	/* default debug level */#define GX_PANIC	GX_SILENT	/* msgs allowed when panic'ing */#define GX_NODEBUG			/* define this to compile out */					/* debugging code */#ifdef  GX_NODEBUG#	define GX_DEBUG(L,S)#else#	define GX_DEBUG(L,S)	if ((gx_level=(L)) <= gx_debug) { S }#endif#ifdef KERNEL#      include "../io/tc/pmevent.h"#      include "../h/types.h"#      include "../h/ioctl.h"#      include "../io/tc/stamp.h"#      define WBFLUSH()			/* 3MAX wb doesn't merge writes *//* only do an spltty() if we are at a lower spl. */#      define IPLTTY(L)		{ (L) = getspl(); \				  if (whatspl((L)) < SPLTTY) \				  	(L) = spltty(); \				}#else#      include <io/tc/pmevent.h>#      include <sys/param.h>#      include <sys/ioctl.h>#endif/* * This all belongs in a common header file!!!		XXX * * VAXstar Monochrome definitions. */#define	SELF_TEST	'T'#define	INCREMENTAL	'R'#define	PROMPT		'D'#define	MOUSE_ID	0x2#define TABLET_ID	0x4#define START_FRAME	0x80		/* start of report frame bit */#define X_SIGN		0x10		/* sign bit for X */#define Y_SIGN		0x08		/* sign bit for Y *//* * Line Prameter Register bits */#define	SER_KBD      000000#define	SER_POINTER  000001#define	SER_COMLINE  000002#define	SER_PRINTER  000003#define	SER_CHARW    000030#define	SER_STOP     000040#define	SER_PARENB   000100#define	SER_ODDPAR   000200#define	SER_SPEED    006000#define	SER_RXENAB   010000/* * Mouse definitions */#define MOTION_BUFFER_SIZE 100#define	SELF_TEST	'T'#define EVENT_T_LEFT_BUTTON	0x01#define EVENT_T_FRONT_BUTTON	0x02#define EVENT_T_RIGHT_BUTTON	0x03#define EVENT_T_BACK_BUTTON	0x04/* * puck buttons */#define T_LEFT_BUTTON		0x02#define T_FRONT_BUTTON		0x04#define T_RIGHT_BUTTON		0x08#define T_BACK_BUTTON		0x10/* * Lk201 keyboard  */#define LK_UPDOWN	0x86		/* bits for setting lk201 modes */#define LK_AUTODOWN	0x82#define LK_DOWN		0x80#define LK_DEFAULTS	0xd3		/* reset (some) default settings*/#define LK_AR_ENABLE	0xe3		/* global auto repeat enable	*/#define LK_CL_ENABLE	0x1b		/* keyclick enable		*/#define LK_KBD_ENABLE	0x8b		/* keyboard enable		*/#define LK_BELL_ENABLE	0x23		/* the bell			*/#define LK_LED_ENABLE	0x13		/* light led			*/#define LK_LED_DISABLE	0x11		/* turn off led			*/#define LK_RING_BELL	0xa7		/* ring keyboard bell		*/#define LED_1		0x81		/* led bits			*/#define LED_2		0x82#define LED_3		0x84#define LED_4		0x88#define LED_ALL		0x8f#define LK_KDOWN_ERROR	0x3d		/* key down on powerup error	*/#define LK_POWER_ERROR	0x3e		/* keyboard failure on pwrup tst*/#define LK_OUTPUT_ERROR 0xb5		/* keystrokes lost during inhbt */#define LK_INPUT_ERROR	0xb6		/* garbage command to keyboard	*/#define LK_MODE_CHG_ACK	0xba		/* mode change acknowledge	*/#define LK_LOWEST	0x56		/* lowest significant keycode	*/#define LK_DIV6_START	0xad		/* start of div 6		*/#define LK_DIV5_END	0xb2		/* end of div 5			*//* * Keycodes for special keys and functions */#define SHIFT	0xae#define LOCK	0xb0#define REPEAT	0xb4#define CNTRL	0xaf#define ALLUP	0xb3#define	HOLD	0x56/* * And stuff that appears all over creation... */#define	CONSOLEMAJOR	0#define CONS_DEV	0x01#define GRAPHIC_DEV	0x02#define SLU3_DEV	0x04#define TOY ((time.tv_sec * 1000) + (time.tv_usec / 1000))#define IS_MONO	  (0)#define _TEXT_WIDTH	11#define _TEXT_HEIGHT	20#define _TEXT_CFG	(0xffffff)	/* cursor color = white */#define _TEXT_TFG	(0x010101)	/* text color = white */#define _TEXT_ROWS	((BT459_MAXY/_TEXT_HEIGHT)-1)#define _TEXT_COLS	((BT459_MAXX/_TEXT_WIDTH)-1)#define _TEXT_SCROLL	(_TEXT_ROWS/9)#define GX_LOAD(A,B) 	((A)&0xfff) | (((B)&0xfff) << 16)#define GX_GET2ROWS(C)	GX_LOAD((int)(*(C)),(int)(*((C)+1)));(C)+=2/* * ULTRIX settings for first open.		   */#define IFLAGS	(EVENP|ECHO|XTABS|CRMOD)/* * Termio flags will be set to these default values in non-termio mode to * provide a backward compatible ULTRIX environment.  */#define IFLAG (BRKINT|IGNPAR|ISTRIP|IXON|IXANY|ICRNL)#define OFLAG (OPOST|TAB3|ONLCR)#define LFLAG (ISIG|ICANON|ECHO)#define CFLAG (PARENB|CREAD|CS7|CLOCAL)#define GX_CALL(P)	if (P) (*(P))#define GX_IAMSERVER	(u.u_procp->p_pid == gx_server.pid)#ifdef GX_MULTIOPEN#      define GX_HAVESERVER (gx_serverp && (!gx_info_gone(gx_server.pid)))#else#      define GX_HAVESERVER (gx_serverp)#endif/* * STamp Interface Chip */typedef struct _stic_regs {    int __pad0;			/* 0x..180000 */    int __pad1;			/* 0x..180004 */    int	hsync;			/* 0x..180008 */    int	hsync2;			/* 0x..18000c */    int	hblank;			/* 0x..180010 */    int	vsync;			/* 0x..180014 */    int	vblank;			/* 0x..180018 */    int	vtest;			/* 0x..18001c */    int	ipdvint;		/* 0x..180020 */    int	__pad2;			/* 0x..180024 */    int	sticsr;			/* 0x..180028 */    int	busdat;			/* 0x..18002c */    int	busadr;			/* 0x..180030 */    int	__pad3;			/* 0x..180034 */    int	buscsr;			/* 0x..180038 */    int	modcl;			/* 0x..18003c */} sticRegs;#define STIC_regs	sticRegstypedef struct _stic_csr {    unsigned tstfnc : 2;    unsigned checkpar : 1;    unsigned startvt : 1;    unsigned start : 1;    unsigned reset : 1;    unsigned autoread : 1;    unsigned startst : 1;    unsigned : 24;} stic_csr;/* masks for STIC CSR register */#define STIC_CSR_TSTFNC		0x00000003#define STIC_CSR_TSTFNC_NORMAL 	0#define STIC_CSR_TSTFNC_PARITY 	1#define STIC_CSR_TSTFNC_CNTPIX 	2#define STIC_CSR_TSTFNC_TSTDAC 	3#define STIC_CSR_CHECKPAR	0x00000004#define STIC_CSR_STARTVT	0x00000008#define STIC_CSR_START		0x00000010#define STIC_CSR_RESET		0x00000020#define STIC_CSR_AUTOREAD	0x00000040#define STIC_CSR_STARTST	0x00000080typedef struct _stic_intr {    unsigned	eint_en : 1;	     /* 0 */    unsigned	eint : 1;	     /* 1 */    unsigned	eint_mask : 1;	     /* 2 */    unsigned	: 5;    unsigned	vint_en : 1;	     /* 8 */    unsigned	vint : 1;	     /* 9 */    unsigned	vint_mask : 1;	     /* 10 */    unsigned	: 5;    unsigned	pint : 1;	     /* 16 */    unsigned	pint_en : 1;	     /* 17 */    unsigned	pint_mask : 1;	     /* 18 */} sticIntr;#define STIC_intr	sticIntr/* masks for %int register */#define STIC_INT_E_EN 0x00000001#define STIC_INT_E    0x00000002#define STIC_INT_E_WE 0x00000004#define STIC_INT_V_EN 0x00000100#define STIC_INT_V    0x00000200#define STIC_INT_V_WE 0x00000400#define STIC_INT_P_EN 0x00010000#define STIC_INT_P    0x00020000#define STIC_INT_P_WE 0x00040000#define STIC_INT_WE   (STIC_INT_E_WE|STIC_INT_V_WE|STIC_INT_P_WE)#define STIC_INT_CLR  (STIC_INT_E_EN|STIC_INT_E_WE|STIC_INT_V_WE|STIC_INT_P_WE)typedef struct _stic_modtype {    unsigned	: 8;    unsigned	vdac : 1;    unsigned	yconfig : 2;    unsigned	xconfig : 1;    unsigned	option : 3;    unsigned	: 9;    unsigned	revision : 8;} sticCf;#define STIC_cf		sticCf

⌨️ 快捷键说明

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