aboutsummaryrefslogtreecommitdiff
path: root/xorg-server/hw/kdrive/via/via.h
diff options
context:
space:
mode:
authormarha <marha@users.sourceforge.net>2009-06-28 22:07:26 +0000
committermarha <marha@users.sourceforge.net>2009-06-28 22:07:26 +0000
commit3562e78743202e43aec8727005182a2558117eca (patch)
tree8f9113a77d12470c5c851a2a8e4cb02e89df7d43 /xorg-server/hw/kdrive/via/via.h
downloadvcxsrv-3562e78743202e43aec8727005182a2558117eca.tar.gz
vcxsrv-3562e78743202e43aec8727005182a2558117eca.tar.bz2
vcxsrv-3562e78743202e43aec8727005182a2558117eca.zip
Checked in the following released items:
xkeyboard-config-1.4.tar.gz ttf-bitstream-vera-1.10.tar.gz font-alias-1.0.1.tar.gz font-sun-misc-1.0.0.tar.gz font-sun-misc-1.0.0.tar.gz font-sony-misc-1.0.0.tar.gz font-schumacher-misc-1.0.0.tar.gz font-mutt-misc-1.0.0.tar.gz font-misc-misc-1.0.0.tar.gz font-misc-meltho-1.0.0.tar.gz font-micro-misc-1.0.0.tar.gz font-jis-misc-1.0.0.tar.gz font-isas-misc-1.0.0.tar.gz font-dec-misc-1.0.0.tar.gz font-daewoo-misc-1.0.0.tar.gz font-cursor-misc-1.0.0.tar.gz font-arabic-misc-1.0.0.tar.gz font-winitzki-cyrillic-1.0.0.tar.gz font-misc-cyrillic-1.0.0.tar.gz font-cronyx-cyrillic-1.0.0.tar.gz font-screen-cyrillic-1.0.1.tar.gz font-xfree86-type1-1.0.1.tar.gz font-adobe-utopia-type1-1.0.1.tar.gz font-ibm-type1-1.0.0.tar.gz font-bitstream-type1-1.0.0.tar.gz font-bitstream-speedo-1.0.0.tar.gz font-bh-ttf-1.0.0.tar.gz font-bh-type1-1.0.0.tar.gz font-bitstream-100dpi-1.0.0.tar.gz font-bh-lucidatypewriter-100dpi-1.0.0.tar.gz font-bh-100dpi-1.0.0.tar.gz font-adobe-utopia-100dpi-1.0.1.tar.gz font-adobe-100dpi-1.0.0.tar.gz font-util-1.0.1.tar.gz font-bitstream-75dpi-1.0.0.tar.gz font-bh-lucidatypewriter-75dpi-1.0.0.tar.gz font-adobe-utopia-75dpi-1.0.1.tar.gz font-bh-75dpi-1.0.0.tar.gz bdftopcf-1.0.1.tar.gz font-adobe-75dpi-1.0.0.tar.gz mkfontscale-1.0.6.tar.gz openssl-0.9.8k.tar.gz bigreqsproto-1.0.2.tar.gz xtrans-1.2.2.tar.gz resourceproto-1.0.2.tar.gz inputproto-1.4.4.tar.gz compositeproto-0.4.tar.gz damageproto-1.1.0.tar.gz zlib-1.2.3.tar.gz xkbcomp-1.0.5.tar.gz freetype-2.3.9.tar.gz pthreads-w32-2-8-0-release.tar.gz pixman-0.12.0.tar.gz kbproto-1.0.3.tar.gz evieext-1.0.2.tar.gz fixesproto-4.0.tar.gz recordproto-1.13.2.tar.gz randrproto-1.2.2.tar.gz scrnsaverproto-1.1.0.tar.gz renderproto-0.9.3.tar.gz xcmiscproto-1.1.2.tar.gz fontsproto-2.0.2.tar.gz xextproto-7.0.3.tar.gz xproto-7.0.14.tar.gz libXdmcp-1.0.2.tar.gz libxkbfile-1.0.5.tar.gz libfontenc-1.0.4.tar.gz libXfont-1.3.4.tar.gz libX11-1.1.5.tar.gz libXau-1.0.4.tar.gz libxcb-1.1.tar.gz xorg-server-1.5.3.tar.gz
Diffstat (limited to 'xorg-server/hw/kdrive/via/via.h')
-rw-r--r--xorg-server/hw/kdrive/via/via.h129
1 files changed, 129 insertions, 0 deletions
diff --git a/xorg-server/hw/kdrive/via/via.h b/xorg-server/hw/kdrive/via/via.h
new file mode 100644
index 000000000..00f40bc04
--- /dev/null
+++ b/xorg-server/hw/kdrive/via/via.h
@@ -0,0 +1,129 @@
+/*
+ * Copyright © 2004 Ralph Thomas
+ *
+ * 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 Ralph Thomas not be used in
+ * advertising or publicity pertaining to distribution of the software without
+ * specific, written prior permission. Ralph Thomas makes no
+ * representations about the suitability of this software for any purpose. It
+ * is provided "as is" without express or implied warranty.
+ *
+ * RALPH THOMAS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+ * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+ * EVENT SHALL RALPH THOMAS 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.
+ */
+/*
+** VIA CLE266 driver
+** Copyright 2004 (C) Ralph Thomas <ralpht@gmail.com>
+**
+** http://www.viatech.com.tw/
+*/
+
+#ifndef _VIA_H_
+#define _VIA_H_
+
+#include <vesa.h>
+#include <klinux.h>
+
+/*
+** Define DebugF so that we can spot debug statements easily.
+*/
+#define DebugF ErrorF
+
+typedef volatile CARD8 VOL8;
+typedef volatile CARD16 VOL16;
+typedef volatile CARD32 VOL32;
+
+/*
+** These macros provide access to data on the card. The VIA graphics chips
+** are only available on IA-32 architecture, so PCI address space and CPU
+** address space are always the same (hence accesses can be performed by
+** dereferencing a pointer into PCI space).
+*/
+#define MMIO_OUT32( mmio, a, v ) (*(VOL32 *)((mmio) + (a)) = (v))
+#define MMIO_IN32( mmio, a ) (*(VOL32 *)((mmio) + (a)))
+#define MMIO_OUT16( mmio, a, v ) (*(VOL16 *)((mmio) + (a)) = (v))
+#define MMIO_IN16( mmio, a ) (*(VOL16 *)((mmio) + (a)))
+#define MMIO_OUT8( mmio, a, v ) (*(VOL8 *)((mmio) + (a)) = (v))
+#define MMIO_IN8( mmio, a, v ) (*(VOL8 *)((mmio) + (a)))
+
+/*
+** VGA regisers are offset 0x8000 from the beginning of the mmap'd register
+** space.
+*/
+#define VIA_MMIO_VGABASE 0x8000
+
+/*
+** The size of the register space, used when we mmap the registers. The
+** argument "c" should be a KdCardInfo*.
+*/
+#define VIA_REG_SIZE(c) (0x9000)
+
+/*
+** The base of the register space, used when we mmap the registers. The
+** argument "c" should be a KdCardInfo*.
+*/
+#define VIA_REG_BASE(c) ((c)->attr.address[1])
+
+/*
+** Access to the mmap'd VGA registers. The VGA registers are offset from the
+** beginning of the 16M pci space by 0x8000. These macros get used just like
+** outb/inb would be used to access VGA.
+*/
+#define VGAOUT32( addr, v ) MMIO_OUT32( viac->mapBase + VIA_MMIO_VGABASE, addr, v )
+#define VGAIN32( addr ) MMIO_IN32( viac->mapBase + VIA_MMIO_VGABASE, addr )
+#define VGAOUT16( addr, v ) MMIO_OUT16( viac->mapBase + VIA_MMIO_VGABASE, addr, v )
+#define VGAIN16( addr ) MIIO_IN16( viac->mapBase + VIA_MMIO_VGABASE, addr )
+#define VGAOUT8( addr, v ) MMIO_OUT8( viac->mapBase + VIA_MMIO_VGABASE, addr, v )
+#define VGAIN8( addr ) MMIO_IN8( viac->mapBase + VIA_MMIO_VGABASE, addr )
+
+/*
+** Access to any of the registers on the chip.
+*/
+#define OUTREG32( addr, v ) MMIO_OUT32( viac->mapBase, addr, v )
+#define INREG32( addr ) MMIO_IN32( viac->mapBase, addr )
+#define OUTREG16( addr, v ) MMIO_OUT16( viac->mapBase, addr, v )
+#define INREG16( addr ) MMIO_IN16( viac->mapBase, addr )
+
+/*
+** We keep all of our chip specific data in a ViaCardInfo.
+*/
+typedef struct _viaCardInfo {
+ VesaCardPrivRec vesa; /* card info for VESA driver */
+ VOL8* mapBase; /* mmap'd registers */
+ CARD32 savedCommand; /* command to issue to GE */
+ CARD32 savedFgColor; /* color to issue to GE */
+} ViaCardInfo;
+
+/*
+** We keep all of our screen specific data in a ViaScreenInfo.
+*/
+typedef struct _viaScreenInfo {
+ VesaScreenPrivRec vesa;
+ KaaScreenInfoRec kaa;
+} ViaScreenInfo;
+
+/*
+** These function prototypes are for support functions. More infomation on each
+** function is available at the place the function is implemented, in via.c.
+*/
+Bool viaMapReg( KdCardInfo* card, ViaCardInfo* viac );
+void viaUnmapReg( KdCardInfo* card, ViaCardInfo* viac );
+void viaSetMMIO( KdCardInfo* card, ViaCardInfo* viac );
+void viaResetMMIO( KdCardInfo* card, ViaCardInfo* viac );
+
+/*
+** The viaFuncs structure gets filled with the addresses of the functions
+** that we use to talk to the graphics chip.
+*/
+extern KdCardFuncs viaFuncs;
+
+#endif
+