summaryrefslogtreecommitdiffstats
path: root/drivers/3dfx.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/3dfx.h')
-rw-r--r--drivers/3dfx.h154
1 files changed, 154 insertions, 0 deletions
diff --git a/drivers/3dfx.h b/drivers/3dfx.h
new file mode 100644
index 0000000000..0097f4f39e
--- /dev/null
+++ b/drivers/3dfx.h
@@ -0,0 +1,154 @@
+/*
+ * 3dfx.h
+ *
+ * Copyright (C) Colin Cross Apr 2000
+ *
+ * mpeg2dec is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2, or (at your option)
+ * any later version.
+ *
+ * mpeg2dec is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with GNU Make; see the file COPYING. If not, write to
+ * the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
+ *
+ */
+
+
+#define VOODOO_IO_REG_OFFSET ((unsigned long int)0x0000000)
+#define VOODOO_YUV_REG_OFFSET ((unsigned long int)0x0080100)
+#define VOODOO_AGP_REG_OFFSET ((unsigned long int)0x0080000)
+#define VOODOO_2D_REG_OFFSET ((unsigned long int)0x0100000)
+#define VOODOO_YUV_PLANE_OFFSET ((unsigned long int)0x0C00000)
+
+#define VOODOO_BLT_FORMAT_YUYV (8<<16)
+#define VOODOO_BLT_FORMAT_16 (3<<16)
+
+#define VOODOO_YUV_STRIDE (1024>>2)
+
+struct voodoo_yuv_fb_t {
+ uint32_t Y[0x0040000];
+ uint32_t U[0x0040000];
+ uint32_t V[0x0040000];
+};
+
+struct voodoo_yuv_reg_t {
+ uint32_t yuvBaseAddr;
+ uint32_t yuvStride;
+};
+
+struct voodoo_2d_reg_t {
+ uint32_t status;
+ uint32_t intCtrl;
+ uint32_t clip0Min;
+ uint32_t clip0Max;
+ uint32_t dstBaseAddr;
+ uint32_t dstFormat;
+ uint32_t srcColorkeyMin;
+ uint32_t srcColorkeyMax;
+ uint32_t dstColorkeyMin;
+ uint32_t dstColorkeyMax;
+ signed long bresError0;
+ signed long bresError1;
+ uint32_t rop;
+ uint32_t srcBaseAddr;
+ uint32_t commandExtra;
+ uint32_t lineStipple;
+ uint32_t lineStyle;
+ uint32_t pattern0Alias;
+ uint32_t pattern1Alias;;
+ uint32_t clip1Min;
+ uint32_t clip1Max;
+ uint32_t srcFormat;
+ uint32_t srcSize;
+ uint32_t srcXY;
+ uint32_t colorBack;
+ uint32_t colorFore;
+ uint32_t dstSize;
+ uint32_t dstXY;
+ uint32_t command;
+ uint32_t RESERVED1;
+ uint32_t RESERVED2;
+ uint32_t RESERVED3;
+ uint8_t launchArea[128];
+};
+
+
+struct voodoo_io_reg_t {
+ uint32_t status;
+ uint32_t pciInit0;
+ uint32_t sipMonitor;
+ uint32_t lfbMemoryConfig;
+ uint32_t miscInit0;
+ uint32_t miscInit1;
+ uint32_t dramInit0;
+ uint32_t dramInit1;
+ uint32_t agpInit;
+ uint32_t tmuGbeInit;
+ uint32_t vgaInit0;
+ uint32_t vgaInit1;
+ uint32_t dramCommand;
+ uint32_t dramData;
+ uint32_t RESERVED1;
+ uint32_t RESERVED2;
+
+ uint32_t pllCtrl0;
+ uint32_t pllCtrl1;
+ uint32_t pllCtrl2;
+ uint32_t dacMode;
+ uint32_t dacAddr;
+ uint32_t dacData;
+
+ uint32_t rgbMaxDelta;
+ uint32_t vidProcCfg;
+ uint32_t hwCurPatAddr;
+ uint32_t hwCurLoc;
+ uint32_t hwCurC0;
+ uint32_t hwCurC1;
+ uint32_t vidInFormat;
+ uint32_t vidInStatus;
+ uint32_t vidSerialParallelPort;
+ uint32_t vidInXDecimDeltas;
+ uint32_t vidInDecimInitErrs;
+ uint32_t vidInYDecimDeltas;
+ uint32_t vidPixelBufThold;
+ uint32_t vidChromaMin;
+ uint32_t vidChromaMax;
+ uint32_t vidCurrentLine;
+ uint32_t vidScreenSize;
+ uint32_t vidOverlayStartCoords;
+ uint32_t vidOverlayEndScreenCoord;
+ uint32_t vidOverlayDudx;
+ uint32_t vidOverlayDudxOffsetSrcWidth;
+ uint32_t vidOverlayDvdy;
+
+ uint32_t vga_registers_not_mem_mapped[12];
+ uint32_t vidOverlayDvdyOffset;
+ uint32_t vidDesktopStartAddr;
+ uint32_t vidDesktopOverlayStride;
+ uint32_t vidInAddr0;
+ uint32_t vidInAddr1;
+ uint32_t vidInAddr2;
+ uint32_t vidInStride;
+ uint32_t vidCurrOverlayStartAddr;
+};
+
+
+struct pioData_t {
+ short port;
+ short size;
+ int device;
+ void *value;
+};
+
+typedef struct pioData_t pioData;
+typedef struct voodoo_2d_reg_t voodoo_2d_reg;
+typedef struct voodoo_io_reg_t voodoo_io_reg;
+typedef struct voodoo_yuv_reg_t voodoo_yuv_reg;
+typedef struct voodoo_yuv_fb_t voodoo_yuv_fb;
+