📄 gx.h
字号:
/* * @(#)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 + -