a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/*
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * Copyright (c) 1997,1998 The XFree86 Project, Inc.
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync *
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * Loosely based on code bearing the following copyright:
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync *
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany.
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync *
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * Author: Dirk Hohndel
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#ifndef _VGAHW_H
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define _VGAHW_H
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include <X11/X.h>
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include "misc.h"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include "input.h"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include "scrnintstr.h"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include "colormapst.h"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include "xf86str.h"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include "xf86Pci.h"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include "xf86DDC.h"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include "globals.h"
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#include <X11/extensions/dpmsconst.h>
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT int vgaHWGetIndex(void);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/*
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * access macro
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define VGAHWPTR(p) ((vgaHWPtr)((p)->privates[vgaHWGetIndex()].ptr))
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/* Standard VGA registers */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define VGA_ATTR_INDEX 0x3C0
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define VGA_ATTR_DATA_W 0x3C0
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define VGA_ATTR_DATA_R 0x3C1
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define VGA_IN_STAT_0 0x3C2 /* read */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define VGA_MISC_OUT_W 0x3C2 /* write */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define VGA_ENABLE 0x3C3
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define VGA_SEQ_INDEX 0x3C4
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define VGA_SEQ_DATA 0x3C5
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define VGA_DAC_MASK 0x3C6
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define VGA_DAC_READ_ADDR 0x3C7
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define VGA_DAC_WRITE_ADDR 0x3C8
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define VGA_DAC_DATA 0x3C9
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define VGA_FEATURE_R 0x3CA /* read */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define VGA_MISC_OUT_R 0x3CC /* read */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define VGA_GRAPH_INDEX 0x3CE
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define VGA_GRAPH_DATA 0x3CF
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define VGA_IOBASE_MONO 0x3B0
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define VGA_IOBASE_COLOR 0x3D0
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define VGA_CRTC_INDEX_OFFSET 0x04
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define VGA_CRTC_DATA_OFFSET 0x05
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define VGA_IN_STAT_1_OFFSET 0x0A /* read */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define VGA_FEATURE_W_OFFSET 0x0A /* write */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/* default number of VGA registers stored internally */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define VGA_NUM_CRTC 25
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define VGA_NUM_SEQ 5
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define VGA_NUM_GFX 9
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define VGA_NUM_ATTR 21
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/* Flags for vgaHWSave() and vgaHWRestore() */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define VGA_SR_MODE 0x01
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define VGA_SR_FONTS 0x02
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define VGA_SR_CMAP 0x04
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define VGA_SR_ALL (VGA_SR_MODE | VGA_SR_FONTS | VGA_SR_CMAP)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/* Defaults for the VGA memory window */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define VGA_DEFAULT_PHYS_ADDR 0xA0000
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define VGA_DEFAULT_MEM_SIZE (64 * 1024)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/*
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * vgaRegRec contains settings of standard VGA registers.
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef struct {
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned char MiscOutReg; /* */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned char *CRTC; /* Crtc Controller */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned char *Sequencer; /* Video Sequencer */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned char *Graphics; /* Video Graphics */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned char *Attribute; /* Video Atribute */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned char DAC[768]; /* Internal Colorlookuptable */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned char numCRTC; /* number of CRTC registers, def=VGA_NUM_CRTC */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned char numSequencer; /* number of seq registers, def=VGA_NUM_SEQ */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned char numGraphics; /* number of gfx registers, def=VGA_NUM_GFX */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned char numAttribute; /* number of attr registers, def=VGA_NUM_ATTR */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync} vgaRegRec, *vgaRegPtr;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef struct _vgaHWRec *vgaHWPtr;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef void (*vgaHWWriteIndexProcPtr) (vgaHWPtr hwp, CARD8 indx, CARD8 value);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef CARD8 (*vgaHWReadIndexProcPtr) (vgaHWPtr hwp, CARD8 indx);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef void (*vgaHWWriteProcPtr) (vgaHWPtr hwp, CARD8 value);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef CARD8 (*vgaHWReadProcPtr) (vgaHWPtr hwp);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef void (*vgaHWMiscProcPtr) (vgaHWPtr hwp);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/*
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * vgaHWRec contains per-screen information required by the vgahw module.
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync *
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * Note, the palette referred to by the paletteEnabled, enablePalette and
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * disablePalette is the 16-entry (+overscan) EGA-compatible palette accessed
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync * via the first 17 attribute registers and not the main 8-bit palette.
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef struct _vgaHWRec {
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync void *Base; /* Address of "VGA" memory */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int MapSize; /* Size of "VGA" memory */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned long MapPhys; /* phys location of VGA mem */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int IOBase; /* I/O Base address */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync CARD8 *MMIOBase; /* Pointer to MMIO start */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int MMIOOffset; /* base + offset + vgareg
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync = mmioreg */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync void *FontInfo1; /* save area for fonts in
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync plane 2 */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync void *FontInfo2; /* save area for fonts in
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync plane 3 */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync void *TextInfo; /* save area for text */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync vgaRegRec SavedReg; /* saved registers */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync vgaRegRec ModeReg; /* register settings for
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync current mode */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync Bool ShowOverscan;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync Bool paletteEnabled;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync Bool cmapSaved;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync ScrnInfoPtr pScrn;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync vgaHWWriteIndexProcPtr writeCrtc;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync vgaHWReadIndexProcPtr readCrtc;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync vgaHWWriteIndexProcPtr writeGr;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync vgaHWReadIndexProcPtr readGr;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync vgaHWReadProcPtr readST00;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync vgaHWReadProcPtr readST01;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync vgaHWReadProcPtr readFCR;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync vgaHWWriteProcPtr writeFCR;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync vgaHWWriteIndexProcPtr writeAttr;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync vgaHWReadIndexProcPtr readAttr;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync vgaHWWriteIndexProcPtr writeSeq;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync vgaHWReadIndexProcPtr readSeq;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync vgaHWWriteProcPtr writeMiscOut;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync vgaHWReadProcPtr readMiscOut;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync vgaHWMiscProcPtr enablePalette;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync vgaHWMiscProcPtr disablePalette;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync vgaHWWriteProcPtr writeDacMask;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync vgaHWReadProcPtr readDacMask;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync vgaHWWriteProcPtr writeDacWriteAddr;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync vgaHWWriteProcPtr writeDacReadAddr;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync vgaHWWriteProcPtr writeDacData;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync vgaHWReadProcPtr readDacData;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync void *ddc;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync struct pci_io_handle *io;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync vgaHWReadProcPtr readEnable;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync vgaHWWriteProcPtr writeEnable;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync struct pci_device *dev;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync} vgaHWRec;
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/* Some macros that VGA drivers can use in their ChipProbe() function */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define OVERSCAN 0x11 /* Index of OverScan register */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/* Flags that define how overscan correction should take place */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define KGA_FIX_OVERSCAN 1 /* overcan correction required */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define KGA_ENABLE_ON_ZERO 2 /* if possible enable display at beginning */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync /* of next scanline/frame */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define KGA_BE_TOT_DEC 4 /* always fix problem by setting blank end */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync /* to total - 1 */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define BIT_PLANE 3 /* Which plane we write to in mono mode */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define BITS_PER_GUN 6
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define COLORMAP_SIZE 256
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#define DACDelay(hw) \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync do { \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync (hw)->readST01((hw)); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync (hw)->readST01((hw)); \
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync } while (0)
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/* Function Prototypes */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync/* vgaHW.c */
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef void vgaHWProtectProc(ScrnInfoPtr, Bool);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsynctypedef void vgaHWBlankScreenProc(ScrnInfoPtr, Bool);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void vgaHWSetStdFuncs(vgaHWPtr hwp);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void vgaHWSetMmioFuncs(vgaHWPtr hwp, CARD8 *base, int offset);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void vgaHWProtect(ScrnInfoPtr pScrn, Bool on);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT vgaHWProtectProc *vgaHWProtectWeak(void);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT Bool vgaHWSaveScreen(ScreenPtr pScreen, int mode);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void vgaHWBlankScreen(ScrnInfoPtr pScrn, Bool on);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT vgaHWBlankScreenProc *vgaHWBlankScreenWeak(void);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void vgaHWSeqReset(vgaHWPtr hwp, Bool start);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void vgaHWRestoreFonts(ScrnInfoPtr scrninfp,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync vgaRegPtr restore);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void vgaHWRestoreMode(ScrnInfoPtr scrninfp, vgaRegPtr restore);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void vgaHWRestoreColormap(ScrnInfoPtr scrninfp,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync vgaRegPtr restore);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void vgaHWRestore(ScrnInfoPtr scrninfp, vgaRegPtr restore,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int flags);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void vgaHWSaveFonts(ScrnInfoPtr scrninfp, vgaRegPtr save);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void vgaHWSaveMode(ScrnInfoPtr scrninfp, vgaRegPtr save);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void vgaHWSaveColormap(ScrnInfoPtr scrninfp, vgaRegPtr save);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void vgaHWSave(ScrnInfoPtr scrninfp, vgaRegPtr save,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int flags);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT Bool vgaHWInit(ScrnInfoPtr scrnp, DisplayModePtr mode);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT Bool vgaHWSetRegCounts(ScrnInfoPtr scrp, int numCRTC,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int numSequencer, int numGraphics,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int numAttribute);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT Bool vgaHWCopyReg(vgaRegPtr dst, vgaRegPtr src);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT Bool vgaHWGetHWRec(ScrnInfoPtr scrp);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void vgaHWFreeHWRec(ScrnInfoPtr scrp);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT Bool vgaHWMapMem(ScrnInfoPtr scrp);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void vgaHWUnmapMem(ScrnInfoPtr scrp);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void vgaHWGetIOBase(vgaHWPtr hwp);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void vgaHWLock(vgaHWPtr hwp);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void vgaHWUnlock(vgaHWPtr hwp);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void vgaHWEnable(vgaHWPtr hwp);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void vgaHWDisable(vgaHWPtr hwp);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void vgaHWDPMSSet(ScrnInfoPtr pScrn, int PowerManagementMode,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int flags);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT Bool vgaHWHandleColormaps(ScreenPtr pScreen);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void vgaHWddc1SetSpeed(ScrnInfoPtr pScrn, xf86ddcSpeed speed);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT CARD32 vgaHWHBlankKGA(DisplayModePtr mode, vgaRegPtr regp,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int nBits, unsigned int Flags);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT CARD32 vgaHWVBlankKGA(DisplayModePtr mode, vgaRegPtr regp,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int nBits, unsigned int Flags);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT Bool vgaHWAllocDefaultRegs(vgaRegPtr regp);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT DDC1SetSpeedProc vgaHWddc1SetSpeedWeak(void);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT SaveScreenProcPtr vgaHWSaveScreenWeak(void);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsyncextern _X_EXPORT void xf86GetClocks(ScrnInfoPtr pScrn, int num,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync Bool (*ClockFunc) (ScrnInfoPtr, int),
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync void (*ProtectRegs) (ScrnInfoPtr, Bool),
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync void (*BlankScreen) (ScrnInfoPtr, Bool),
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync unsigned long vertsyncreg, int maskval,
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync int knownclkindex, int knownclkvalue);
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync
a5e7ae69e440f6816420fc99599f044e79e716b6vboxsync#endif /* _VGAHW_H */