diff options
Diffstat (limited to 'hw/kdrive/trident/trident.h')
-rw-r--r-- | hw/kdrive/trident/trident.h | 272 |
1 files changed, 0 insertions, 272 deletions
diff --git a/hw/kdrive/trident/trident.h b/hw/kdrive/trident/trident.h deleted file mode 100644 index 0b0d8cb48..000000000 --- a/hw/kdrive/trident/trident.h +++ /dev/null @@ -1,272 +0,0 @@ -/* - * Id: trident.h,v 1.2 1999/11/02 08:17:24 keithp Exp $ - * - * Copyright © 1999 Keith Packard - * - * Permission to use, copy, modify, distribute, and sell this software and its - * documentation for any purpose is hereby granted without fee, provided that - * the above copyright notice appear in all copies and that both that - * copyright notice and this permission notice appear in supporting - * documentation, and that the name of Keith Packard not be used in - * advertising or publicity pertaining to distribution of the software without - * specific, written prior permission. Keith Packard makes no - * representations about the suitability of this software for any purpose. It - * is provided "as is" without express or implied warranty. - * - * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, - * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO - * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR - * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, - * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER - * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR - * PERFORMANCE OF THIS SOFTWARE. - */ -/* $RCSId: xc/programs/Xserver/hw/kdrive/trident/trident.h,v 1.8 2000/10/20 00:19:51 keithp Exp $ */ - -#ifndef _TRIDENT_H_ -#define _TRIDENT_H_ -#ifdef VESA -#include <vesa.h> -#else -#include <fbdev.h> -#endif - -/* - * offset from ioport beginning - */ - -#ifdef USE_PCI -#define TRIDENT_COP_BASE(c) (c->attr.address[1]) -#define TRIDENT_COP_OFF(c) 0x2100 -#define TRIDENT_COP_SIZE(c) 0x20000 -#else -#define TRIDENT_COP_BASE(c) 0xbf000 -#define TRIDENT_COP_OFF(c) 0x00f00 -#define TRIDENT_COP_SIZE(c) (0x2000) -#endif - -typedef volatile CARD8 VOL8; -typedef volatile CARD16 VOL16; -typedef volatile CARD32 VOL32; - -typedef struct _cop { - VOL32 src_start_xy; /* 0x00 */ - VOL32 src_end_xy; /* 0x04 */ - VOL32 dst_start_xy; /* 0x08 */ - VOL32 dst_end_xy; /* 0x0c */ - VOL32 alpha; /* 0x10 */ - CARD8 pad14[0xc]; /* 0x14 */ - VOL32 multi; /* 0x20 */ - -#define COP_MULTI_CLIP_TOP_LEFT 0x10000000 -#define COP_MULTI_DEPTH 0x40000000 -#define COP_MULTI_COLOR_KEY 0x70000000 -#define COP_MULTI_STYLE 0x50000000 -#define COP_MULTI_PATTERN 0x80000000 -#define COP_MULTI_ROP 0x90000000 -#define COP_MULTI_STRIDE 0x60000000 -#define COP_MULTI_Z 0xa0000000 -#define COP_MULTI_ALPHA 0xb0000000 -#define COP_MULTI_TEXTURE 0xd0000000 -#define COP_MULTI_TEXTURE_BOUND 0xe0000000 -#define COP_MULTI_TEXTURE_ADVANCED 0x20000000 -#define COP_MULTI_MASK 0xf0000000 - -#define COP_DEPTH_8 0x00000000 -#define COP_DEPTH_16 0x00000001 -#define COP_DEPTH_24_32 0x00000002 -#define COP_DEPTH_15 0x00000005 -#define COP_DEPTH_DITHER_DISABLE 0x00000008 - - -#define COP_ALPHA_SRC_BLEND_0 0x00000000 -#define COP_ALPHA_SRC_BLEND_1 0x00000001 -#define COP_ALPHA_SRC_BLEND_SRC_C 0x00000002 -#define COP_ALPHA_SRC_BLEND_1_SRC_C 0x00000003 -#define COP_ALPHA_SRC_BLEND_SRC_A 0x00000004 -#define COP_ALPHA_SRC_BLEND_1_SRC_A 0x00000005 -#define COP_ALPHA_SRC_BLEND_DST_A 0x00000006 -#define COP_ALPHA_SRC_BLEND_1_DST_A 0x00000007 -#define COP_ALPHA_SRC_BLEND_DST_C 0x00000008 -#define COP_ALPHA_SRC_BLEND_1_DST_C 0x00000009 -#define COP_ALPHA_SRC_BLEND_SAT 0x0000000A -#define COP_ALPHA_SRC_BLEND_BG 0x0000000B - -#define COP_ALPHA_DST_BLEND_0 0x00000000 -#define COP_ALPHA_DST_BLEND_1 0x00000010 -#define COP_ALPHA_DST_BLEND_SRC_C 0x00000020 -#define COP_ALPHA_DST_BLEND_1_SRC_C 0x00000030 -#define COP_ALPHA_DST_BLEND_SRC_A 0x00000040 -#define COP_ALPHA_DST_BLEND_1_SRC_A 0x00000050 -#define COP_ALPHA_DST_BLEND_DST_A 0x00000060 -#define COP_ALPHA_DST_BLEND_1_DST_A 0x00000070 -#define COP_ALPHA_DST_BLEND_DST_C 0x00000080 -#define COP_ALPHA_DST_BLEND_1_DST_C 0x00000090 -#define COP_ALPHA_DST_BLEND_OTHER 0x000000A0 - -#define COP_ALPHA_RESULT_ALPHA 0x00100000 -#define COP_ALPHA_DEST_ALPHA 0x00200000 -#define COP_ALPHA_SOURCE_ALPHA 0x00400000 -#define COP_ALPHA_WRITE_ENABLE 0x00800000 -#define COP_ALPHA_TEST_ENABLE 0x01000000 -#define COP_ALPHA_BLEND_ENABLE 0x02000000 -#define COP_ALPHA_DEST_VALUE 0x04000000 -#define COP_ALPHA_SOURCE_VALUE 0x08000000 - - VOL32 command; /* 0x24 */ -#define COP_OP_NULL 0x00000000 -#define COP_OP_LINE 0x20000000 -#define COP_OP_BLT 0x80000000 -#define COP_OP_TEXT 0x90000000 -#define COP_OP_POLY 0xb0000000 -#define COP_OP_POLY2 0xe0000000 -#define COP_SCL_EXPAND 0x00800000 -#define COP_SCL_OPAQUE 0x00400000 -#define COP_SCL_REVERSE 0x00200000 -#define COP_SCL_MONO_OFF 0x001c0000 -#define COP_LIT_TEXTURE 0x00004000 -#define COP_BILINEAR 0x00002000 -#define COP_OP_ZBUF 0x00000800 -#define COP_OP_ROP 0x00000400 -#define COP_OP_FG 0x00000200 -#define COP_OP_FB 0x00000080 -#define COP_X_REVERSE 0x00000004 -#define COP_CLIP 0x00000001 - VOL32 texture_format; /* 0x28 */ - CARD8 pad2c[0x4]; /* 0x2c */ - - VOL32 clip_bottom_right; /* 0x30 */ - VOL32 dataIII; /* 0x34 */ - VOL32 dataIV; /* 0x38 */ - CARD8 pad3c[0x8]; /* 0x3c */ - - VOL32 fg; /* 0x44 */ - VOL32 bg; /* 0x48 */ - CARD8 pad4c[0x4]; /* 0x4c */ - - VOL32 pattern_fg; /* 0x50 */ - VOL32 pattern_bg; /* 0x54 */ - CARD8 pad58[0xc]; /* 0x58 */ - - VOL32 status; /* 0x64 */ -#define COP_STATUS_BE_BUSY 0x80000000 -#define COP_STATUS_DPE_BUSY 0x20000000 -#define COP_STATUS_MI_BUSY 0x10000000 -#define COP_STATUS_FIFO_BUSY 0x08000000 -#define COP_STATUS_WB_BUSY 0x00800000 -#define COP_STATUS_Z_FAILED 0x00400000 -#define COP_STATUS_EFFECTIVE 0x00200000 -#define COP_STATUS_LEFT_VIEW 0x00080000 - - CARD8 pad68[0x4]; /* 0x68 */ - - VOL32 src_offset; /* 0x6c */ - VOL32 z_offset; /* 0x70 */ - CARD8 pad74[0x4]; /* 0x74 */ - - VOL32 display_offset; /* 0x78 */ - VOL32 dst_offset; /* 0x7c */ - CARD8 pad80[0x34]; /* 0x80 */ - - VOL32 semaphore; /* 0xb4 */ -} Cop; - -#define TRI_XY(x,y) ((y) << 16 | (x)) - -typedef struct _tridentSave { - CARD8 reg_3c4_0e; /* config port value */ - CARD8 reg_3d4_36; - CARD8 reg_3d4_39; - CARD8 reg_3d4_62; /* GE setup */ - CARD8 reg_3ce_21; /* DPMS */ - CARD8 reg_3c2; /* clock config */ - CARD8 reg_3c4_16; /* MCLKLow */ - CARD8 reg_3c4_17; /* MCLKHigh */ - CARD8 reg_3c4_18; /* ClockLow */ - CARD8 reg_3c4_19; /* ClockHigh */ -} TridentSave; - -typedef struct _tridentCardInfo { -#ifdef VESA - VesaCardPrivRec vesa; -#else - FbdevPriv fb; -#endif - CARD8 *cop_base; - Cop *cop; - CARD32 *window; - CARD32 cop_depth; - CARD32 cop_stride; - Bool mmio; - TridentSave save; -} TridentCardInfo; - -#define getTridentCardInfo(kd) ((TridentCardInfo *) ((kd)->card->driver)) -#define tridentCardInfo(kd) TridentCardInfo *tridentc = getTridentCardInfo(kd) - -typedef struct _tridentCursor { - int width, height; - int xhot, yhot; - Bool has_cursor; - CursorPtr pCursor; - Pixel source, mask; -} TridentCursor; - -#define TRIDENT_CURSOR_WIDTH 64 -#define TRIDENT_CURSOR_HEIGHT 64 - -typedef struct _tridentScreenInfo { -#ifdef VESA - VesaScreenPrivRec vesa; -#else - FbdevScrPriv fbdev; -#endif - CARD8 *cursor_base; - CARD8 *screen; - CARD8 *off_screen; - int off_screen_size; - TridentCursor cursor; -} TridentScreenInfo; - -#define getTridentScreenInfo(kd) ((TridentScreenInfo *) ((kd)->screen->driver)) -#define tridentScreenInfo(kd) TridentScreenInfo *tridents = getTridentScreenInfo(kd) - -Bool -tridentDrawInit (ScreenPtr pScreen); - -void -tridentDrawEnable (ScreenPtr pScreen); - -void -tridentDrawSync (ScreenPtr pScreen); - -void -tridentDrawDisable (ScreenPtr pScreen); - -void -tridentDrawFini (ScreenPtr pScreen); - -CARD8 -tridentReadIndex (TridentCardInfo *tridentc, CARD16 port, CARD8 index); - -void -tridentWriteIndex (TridentCardInfo *tridentc, CARD16 port, CARD8 index, CARD8 value); - -Bool -tridentCursorInit (ScreenPtr pScreen); - -void -tridentCursorEnable (ScreenPtr pScreen); - -void -tridentCursorDisable (ScreenPtr pScreen); - -void -tridentCursorFini (ScreenPtr pScreen); - -void -tridentRecolorCursor (ScreenPtr pScreen, int ndef, xColorItem *pdef); - -extern KdCardFuncs tridentFuncs; - -#endif /* _TRIDENT_H_ */ |