📄 vga.h
字号:
/* $XFree86: xc/programs/Xserver/hw/xfree86/vga256/vga/vga.h,v 3.23.2.4 1997/05/09 09:31:44 hohndel Exp $ *//* * Copyright 1990,91 by Thomas Roell, Dinkelscherben, Germany. * * 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 Thomas Roell not be used in * advertising or publicity pertaining to distribution of the software without * specific, written prior permission. Thomas Roell makes no representations * about the suitability of this software for any purpose. It is provided * "as is" without express or implied warranty. * * THOMAS ROELL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO * EVENT SHALL THOMAS ROELL 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. * * Author: Thomas Roell, roell@informatik.tu-muenchen.de * *//* $XConsortium: vga.h /main/12 1996/10/25 10:34:19 kaleb $ */#ifndef _XF86_VGA_H_#define _XF86_VGA_H_#define VGA2_PATCHLEVEL "0"#define VGA16_PATCHLEVEL "0"#define SVGA_PATCHLEVEL "0"#include "X.h"#include "misc.h"#ifndef OSKIT#include "input.h"#endif /* !OSKIT */#include "scrnintstr.h"#ifndef OSKIT#include "colormapst.h"#endif /* !OSKIT */#ifdef DPMSExtension#include "opaque.h"#include "extensions/dpms.h"#endif#if !defined(MONOVGA) && !defined(XF86VGA16)extern void vgaBitBlt(#if NeedFunctionPrototypes unsigned char *, unsigned char *, int, int, int, int, int, int, int, int, int, int, int, unsigned long#endif);extern void vgaImageRead(#if NeedFunctionPrototypes unsigned char *, unsigned char *, int, int, int, int, int, int, int, int, int, int, int, unsigned long#endif);extern void vgaImageWrite(#if NeedFunctionPrototypes unsigned char *, unsigned char *, int, int, int, int, int, int, int, int, int, int, int, unsigned long#endif);extern void vgaPixBitBlt(#if NeedFunctionPrototypes unsigned char *, unsigned char *, int, int, int, int, int, int, int, int, int, int, int, unsigned long#endif);#endif#ifdef MONOVGAextern int vga2ValidTokens[];#else#ifdef XF86VGA16extern int vga16ValidTokens[];#elseextern int vga256ValidTokens[];#endif#endif/* * structure for accessing the video chip`s functions */typedef struct { Bool (* ChipProbe)(#if NeedNestedPrototypes void#endif ); char * (* ChipIdent)(#if NeedNestedPrototypes int#endif ); void (* ChipEnterLeave)(#if NeedNestedPrototypes int#endif ); Bool (* ChipInit)(#if NeedNestedPrototypes DisplayModePtr#endif ); int (* ChipValidMode)(#if NeedNestedPrototypes DisplayModePtr, Bool, int#endif ); void * (* ChipSave)(#if NeedNestedPrototypes void *#endif ); void (* ChipRestore)(#if NeedNestedPrototypes void *#endif ); void (* ChipAdjust)(#if NeedNestedPrototypes int, int#endif ); void (* ChipSaveScreen)(#if NeedNestedPrototypes int#endif ); void (* ChipGetMode)(#if NeedNestedPrototypes DisplayModePtr#endif ); void (* ChipFbInit)(#if NeedNestedPrototypes void#endif ); void (* ChipSetRead)(#if NeedNestedPrototypes int#endif ); void (* ChipSetWrite)(#if NeedNestedPrototypes int#endif ); void (* ChipSetReadWrite)(#if NeedNestedPrototypes int#endif ); int ChipMapSize; int ChipSegmentSize; int ChipSegmentShift; int ChipSegmentMask; int ChipReadBottom; int ChipReadTop; int ChipWriteBottom; int ChipWriteTop; Bool ChipUse2Banks; /* TRUE if the chip uses separate read and write banks */ int ChipInterlaceType; /* divide vertical timing values for interlaced modes */ OFlagSet ChipOptionFlags; /* option flags support by this driver */ int ChipRounding; /* the horizontal resolution rounding */ Bool ChipUseLinearAddressing; /* TRUE if driver has requested linear addressing */ int ChipLinearBase; /* Physical base address of the linear framebuffer */ int ChipLinearSize; /* Size of the linear framebuffer */ Bool ChipHas16bpp; /* Driver supports 16bpp */ Bool ChipHas24bpp; /* Driver supports 24bpp */ Bool ChipHas32bpp; /* Driver supports 32bpp */ DisplayModePtr ChipBuiltinModes; /* Pointer to builtin mode list */ int ChipClockMulFactor; /* Factor to multiply pixel clock by, to get RAMDAC clock */ int ChipClockDivFactor; /* Factor to divide pixel clock by, to get RAMDAC clock */} vgaVideoChipRec, *vgaVideoChipPtr;/* Tables in vgatables.c */extern unsigned char byte_reversed[256];/* Allow each driver to set a display pitch other than virtualX */void vgaSetPitchAdjustHook(int (* ChipPitchAdjust)(#if NeedNestedPrototypes void#endif ));/* Allow each driver to set an offset into the linear frame buffer */void vgaSetLinearOffsetHook(int (* ChipLinearOffset)(#if NeedNestedPrototypes void#endif ));/* Allow each driver to hook the ScreenInit function */void vgaSetScreenInitHook(Bool (* ChipScrInit)(#if NeedNestedPrototypes ScreenPtr /* pScreen */, pointer /* base */, int /* x */, int /* y */, int /* resx */, int /* resy */, int /* width */#endif ));/* * hooks for communicating with the VideoChip on the VGA */extern Bool (* vgaInitFunc)(#if NeedFunctionPrototypes DisplayModePtr#endif);extern int (* vgaValidModeFunc)(#if NeedFunctionPrototypes DisplayModePtr, Bool, int#endif);extern void (* vgaEnterLeaveFunc)(#if NeedFunctionPrototypes Bool#endif);extern void * (* vgaSaveFunc)(#if NeedFunctionPrototypes void *#endif);extern void (* vgaRestoreFunc)(#if NeedFunctionPrototypes void *#endif);extern void (* vgaAdjustFunc)(#if NeedFunctionPrototypes int, int#endif);extern void (* vgaSaveScreenFunc)(#if NeedFunctionPrototypes int#endif);extern void (* vgaSetReadFunc)(#if NeedFunctionPrototypes int#endif);extern void (* vgaSetWriteFunc)(#if NeedFunctionPrototypes int#endif);extern void (* vgaSetReadWriteFunc)(#if NeedFunctionPrototypes int#endif);extern int vgaMapSize;extern int vgaSegmentSize;extern int vgaSegmentShift;extern int vgaSegmentMask;extern int vgaIOBase;extern int vgaInterlaceType;extern int vgaBitsPerPixel;extern int vgaBytesPerPixel;extern Bool vgaDAC8BitComponents;#if !defined(S3_SERVER) && !defined(MACH32_SERVER) && !defined(MACH64_SERVER)#include "vgaBank.h"#endifextern pointer vgaOrigVideoState; /* buffers for all video information */extern pointer vgaNewVideoState;extern pointer vgaBase; /* the framebuffer himself */extern pointer vgaLinearBase;typedef struct { unsigned char MiscOutReg; /* */ unsigned char CRTC[25]; /* Crtc Controller */ unsigned char Sequencer[5]; /* Video Sequencer */ unsigned char Graphics[9]; /* Video Graphics */ unsigned char Attribute[21]; /* Video Atribute */ unsigned char DAC[768]; /* Internal Colorlookuptable */ char NoClock; /* number of selected clock */ pointer FontInfo1; /* save area for fonts in plane 2 */ pointer FontInfo2; /* save area for fonts in plane 3 */ pointer TextInfo; /* save area for text */ } vgaHWRec, *vgaHWPtr;typedef struct { Bool Initialized; Bool (*Init)(#if NeedNestedPrototypes char * , ScreenPtr#endif ); void (*Restore)(#if NeedNestedPrototypes ScreenPtr#endif ); void (*Warp)(#if NeedNestedPrototypes ScreenPtr , int , int#endif ); void (*QueryBestSize)( /* QueryBestSizeProcPtr */#if NeedNestedPrototypes int , unsigned short * , unsigned short * , ScreenPtr #endif );} vgaHWCursorRec, *vgaHWCursorPtr;#define OVERSCAN 0x11 /* Index of OverScan register */#ifdef MONOVGA#define BIT_PLANE 3 /* Which plane we write to in mono mode */#else#define BITS_PER_GUN 6#define COLORMAP_SIZE 256#endif#define DACDelay \ { \ unsigned char temp = inb(vgaIOBase + 0x0A); \ temp = inb(vgaIOBase + 0x0A); \ }#ifdef MONOVGA#define vga256InfoRec vga2InfoRec#endif#ifdef XF86VGA16#define vga256InfoRec vga16InfoRec#define vga2InfoRec vga16InfoRec#endif#ifdef S3_SERVER#define vga256InfoRec s3InfoRec#endif#ifdef MACH32_SERVER#define vga256InfoRec mach32InfoRec#endif#ifdef MACH64_SERVER#define vga256InfoRec mach64InfoRec#endif#ifdef AGX_SERVER#define vga256InfoRec agxInfoRec#endifextern ScrnInfoRec vga256InfoRec;/* Values for vgaInterlaceType */#define VGA_NO_DIVIDE_VERT 0#define VGA_DIVIDE_VERT 1/* * This are used to tell the ChipSaveScreen() functions to save/restore * anything that must be retained across a synchronous reset of the SVGA */#define SS_START 0#define SS_FINISH 1/* * List of I/O ports for generic VGA */extern unsigned VGA_IOPorts[];extern int Num_VGA_IOPorts;/* Function Prototypes *//* vgaHW.c */void vgaProtect(#if NeedFunctionPrototypes Bool on#endif);Bool vgaSaveScreen(#if NeedFunctionPrototypes ScreenPtr pScreen, Bool on#endif);void vgaHWSaveScreen(#if NeedFunctionPrototypes Bool start#endif);void vgaHWRestore(#if NeedFunctionPrototypes vgaHWPtr restore#endif);void *vgaHWSave(#if NeedFunctionPrototypes vgaHWPtr save, int size#endif);Bool vgaHWInit(#if NeedFunctionPrototypes DisplayModePtr mode, int size#endif);void vgaGetClocks(#if NeedFunctionPrototypes int num,#if NeedNestedPrototypes Bool (*ClockFunc)(int)#else Bool (*ClockFunc)())#endif#endif);/* vga.c */void vgaPrintIdent(#if NeedFunctionPrototypes void#endif);Bool vgaProbe(#if NeedFunctionPrototypes void#endif);Bool vgaScreenInit(#if NeedFunctionPrototypes int scr_index, ScreenPtr pScreen, int argc, char **argv#endif);int vgaValidMode(#if NeedFunctionPrototypes DisplayModePtr, Bool, int#endif);void vgaEnterLeaveVT(#if NeedFunctionPrototypes Bool enter, int screen_idx#endif);Bool vgaCloseScreen(#if NeedFunctionPrototypes int screen_idx, ScreenPtr pScreen#endif);void vgaAdjustFrame(#if NeedFunctionPrototypes int x, int y#endif);Bool vgaSwitchMode(#if NeedFunctionPrototypes DisplayModePtr mode#endif);void vgaDPMSSet(#if NeedFunctionPrototypes int PowerManagementMode#endif);/* vgaCmap.c */int vgaListInstalledColormaps(#if NeedFunctionPrototypes ScreenPtr pScreen, Colormap *pmaps#endif);int vgaGetInstalledColormaps(#if NeedFunctionPrototypes ScreenPtr pScreen, ColormapPtr *pmaps#endif);void vgaStoreColors(#if NeedFunctionPrototypes ColormapPtr pmap, int ndef, xColorItem *pdefs#endif);void vgaInstallColormap(#if NeedFunctionPrototypes ColormapPtr pmap#endif);void vgaUninstallColormap(#if NeedFunctionPrototypes ColormapPtr pmap#endif);#endif /* _XF86_VGA_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -