⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vga.h

📁 基于组件方式开发操作系统的OSKIT源代码
💻 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 + -