📄 vgatypes.h
字号:
#ifndef _VGATYPES_#define _VGATYPES_#ifdef LINUX_XF86#include "xf86Pci.h"#endif#ifdef LINUX_KERNEL /* TW: We don't want the X driver to depend on kernel source */#include <linux/ioctl.h>#endif#ifndef TC#define far#endif#ifndef FALSE#define FALSE 0#endif#ifndef TRUE#define TRUE 1#endif#ifndef NULL#define NULL 0#endif#ifndef CHARtypedef char CHAR;#endif#ifndef SHORTtypedef short SHORT;#endif#ifndef LONGtypedef long LONG;#endif#ifndef UCHARtypedef unsigned char UCHAR;#endif#ifndef USHORTtypedef unsigned short USHORT;#endif#ifndef ULONGtypedef unsigned long ULONG;#endif#ifndef PUCHARtypedef UCHAR far *PUCHAR;#endif#ifndef PUSHORTtypedef USHORT far *PUSHORT;#endif#ifndef PULONGtypedef ULONG far *PULONG;#endif#ifndef PVOIDtypedef void far *PVOID;#endif#ifndef VOIDtypedef void VOID;#endif#ifndef BOOLEANtypedef UCHAR BOOLEAN;#endif#ifndef WINCE_HEADER#ifndef booltypedef UCHAR bool;#endif#endif /*WINCE_HEADER*/#ifndef VBIOS_VER_MAX_LENGTH#define VBIOS_VER_MAX_LENGTH 4#endif#ifndef LINUX_KERNEL /* For kernel, this is defined in sisfb.h */#ifndef WIN2000#ifndef SIS_CHIP_TYPEtypedef enum _SIS_CHIP_TYPE { SIS_VGALegacy = 0,#ifdef LINUX_XF86 SIS_530, /* TW */ SIS_OLD, /* TW */#endif SIS_300, SIS_630, SIS_730, SIS_540, SIS_315H, /* SiS 310 */ SIS_315, SIS_315PRO, /* SiS 325 */ SIS_550, SIS_640, SIS_740, SIS_650, SIS_330, MAX_SIS_CHIP} SIS_CHIP_TYPE;#endif#endif#endif#ifndef WIN2000#ifndef SIS_VB_CHIP_TYPEtypedef enum _SIS_VB_CHIP_TYPE { VB_CHIP_Legacy = 0, VB_CHIP_301, VB_CHIP_301B, VB_CHIP_301LV, VB_CHIP_301LVX, VB_CHIP_302, VB_CHIP_302B, VB_CHIP_302LV, VB_CHIP_302LVX, VB_CHIP_303, VB_CHIP_UNKNOWN, /* other video bridge or no video bridge */ MAX_VB_CHIP} SIS_VB_CHIP_TYPE;#endif#endif#ifndef WIN2000#ifndef SIS_LCD_TYPEtypedef enum _SIS_LCD_TYPE { LCD_INVALID = 0, LCD_800x600, LCD_1024x768, LCD_1280x1024, LCD_1280x960, LCD_640x480, LCD_1600x1200, LCD_1920x1440, LCD_2048x1536, LCD_320x480, /* TW: FSTN */ LCD_1400x1050, LCD_1152x864, LCD_1152x768, LCD_1280x768, LCD_1024x600, LCD_UNKNOWN} SIS_LCD_TYPE;#endif#endif#ifndef WIN2000 /* mark by Paul, Move definition to sisv.h*/#ifndef PSIS_DSRegtypedef struct _SIS_DSReg{ UCHAR jIdx; UCHAR jVal;} SIS_DSReg, *PSIS_DSReg;#endif#ifndef SIS_HW_DEVICE_INFOtypedef struct _SIS_HW_DEVICE_INFO SIS_HW_DEVICE_INFO, *PSIS_HW_DEVICE_INFO;typedef BOOLEAN (*PSIS_QUERYSPACE) (PSIS_HW_DEVICE_INFO, ULONG, ULONG, ULONG *);struct _SIS_HW_DEVICE_INFO{ PVOID pDevice; /* The pointer to the physical device data structure in each OS or NULL for unused. */ UCHAR *pjVirtualRomBase; /* base virtual address of VBIOS ROM Space */ /* or base virtual address of ROM image file. */ /* if NULL, then read from pjROMImage; */ /* Note:ROM image file is the file of VBIOS ROM */ BOOLEAN UseROM; /* TW: Use the ROM image if provided */ UCHAR *pjCustomizedROMImage;/* base virtual address of ROM image file. */ /* wincE:ROM image file is the file for OEM */ /* customized table */ /* Linux: not used */ /* NT : not used */ /* Note : pjCustomizedROMImage=NULL if no ROM image file */ UCHAR *pjVideoMemoryAddress;/* base virtual memory address */ /* of Linear VGA memory */ ULONG ulVideoMemorySize; /* size, in bytes, of the memory on the board */ ULONG ulIOAddress; /* base I/O address of VGA ports (0x3B0) */ UCHAR jChipType; /* Used to Identify SiS Graphics Chip */ /* defined in the data structure type */ /* "SIS_CHIP_TYPE" */ UCHAR jChipRevision; /* Used to Identify SiS Graphics Chip Revision */ UCHAR ujVBChipID; /* the ID of video bridge */ /* defined in the data structure type */ /* "SIS_VB_CHIP_TYPE" */ USHORT usExternalChip; /* NO VB or other video bridge(not */ /* SiS video bridge) */ /* if ujVBChipID = VB_CHIP_UNKNOWN, */ /* then bit0=1 : LVDS,bit1=1 : trumpion, */ /* bit2=1 : CH7005 & no video bridge if */ /* usExternalChip = 0. */ /* Note: CR37[3:1]: */ /* 001:SiS 301 */ /* 010:LVDS */ /* 011:Trumpion LVDS Scaling Chip */ /* 100:LVDS(LCD-out)+Chrontel 7005 */ /* 101:Single Chrontel 7005 */ /* TW: This has changed on 310/325 series! */ ULONG ulCRT2LCDType; /* defined in the data structure type */ /* "SIS_LCD_TYPE" */ BOOLEAN bIntegratedMMEnabled;/* supporting integration MM enable */ BOOLEAN bSkipDramSizing; /* True: Skip video memory sizing. */ PSIS_DSReg pSR; /* restore SR registers in initial function. */ /* end data :(idx, val) = (FF, FF). */ /* Note : restore SR registers if */ /* bSkipDramSizing = TRUE */ PSIS_DSReg pCR; /* restore CR registers in initial function. */ /* end data :(idx, val) = (FF, FF) */ /* Note : restore cR registers if */ /* bSkipDramSizing = TRUE */ PSIS_QUERYSPACE pQueryVGAConfigSpace; /* Get/Set VGA Configuration */ /* space */ PSIS_QUERYSPACE pQueryNorthBridgeSpace;/* Get/Set North Bridge */ /* space */ UCHAR szVBIOSVer[VBIOS_VER_MAX_LENGTH]; UCHAR pdc; /* TW: PanelDelayCompensation */#ifdef LINUX_XF86 PCITAG PciTag; /* PCI Tag for Linux XF86 */#endif};#endif#endif /* TW: Addtional IOCTL for communication sisfb <> X driver *//* If changing this, sisfb.h must also be changed (for sisfb) */#ifdef LINUX_XF86 /* We don't want the X driver to depend on the kernel source *//* TW: ioctl for identifying and giving some info (esp. memory heap start) */#define SISFB_GET_INFO 0x80046ef8 /* Wow, what a terrible hack... *//* TW: Structure argument for SISFB_GET_INFO ioctl */typedef struct _SISFB_INFO sisfb_info, *psisfb_info;struct _SISFB_INFO { unsigned long sisfb_id; /* for identifying sisfb */#ifndef SISFB_ID#define SISFB_ID 0x53495346 /* Identify myself with 'SISF' */#endif int chip_id; /* PCI ID of detected chip */ int memory; /* video memory in KB which sisfb manages */ int heapstart; /* heap start (= sisfb "mem" argument) in KB */ unsigned char fbvidmode; /* current sisfb mode */ unsigned char sisfb_version; unsigned char sisfb_revision; unsigned char sisfb_patchlevel; unsigned char sisfb_caps; /* sisfb's capabilities */ int sisfb_tqlen; /* turbo queue length (in KB) */ char reserved[249]; /* for future use */};#endif#ifndef WIN2000#ifndef WINCE_HEADER#ifndef BUS_DATA_TYPEtypedef enum _BUS_DATA_TYPE { ConfigurationSpaceUndefined = -1, Cmos, EisaConfiguration, Pos, CbusConfiguration, PCIConfiguration, VMEConfiguration, NuBusConfiguration, PCMCIAConfiguration, MPIConfiguration, MPSAConfiguration, PNPISAConfiguration, MaximumBusDataType} BUS_DATA_TYPE, *PBUS_DATA_TYPE;#endif#endif /* WINCE_HEADER */#ifndef PCI_TYPE0_ADDRESSES#define PCI_TYPE0_ADDRESSES 6#endif#ifndef PCI_TYPE1_ADDRESSES#define PCI_TYPE1_ADDRESSES 2#endif#ifndef WINCE_HEADER#ifndef PCI_COMMON_CONFIGtypedef struct _PCI_COMMON_CONFIG { USHORT VendorID; /* (ro) */ USHORT DeviceID; /* (ro) */ USHORT Command; /* Device control */ USHORT Status; UCHAR RevisionID; /* (ro) */ UCHAR ProgIf; /* (ro) */ UCHAR SubClass; /* (ro) */ UCHAR BaseClass; /* (ro) */ UCHAR CacheLineSize; /* (ro+) */ UCHAR LatencyTimer; /* (ro+) */ UCHAR HeaderType; /* (ro) */ UCHAR BIST; /* Built in self test */ union { struct _PCI_HEADER_TYPE_0 { ULONG BaseAddresses[PCI_TYPE0_ADDRESSES]; ULONG CIS; USHORT SubVendorID; USHORT SubSystemID; ULONG ROMBaseAddress; ULONG Reserved2[2]; UCHAR InterruptLine; /* */ UCHAR InterruptPin; /* (ro) */ UCHAR MinimumGrant; /* (ro) */ UCHAR MaximumLatency; /* (ro) */ } type0; } u; UCHAR DeviceSpecific[192];} PCI_COMMON_CONFIG, *PPCI_COMMON_CONFIG;#endif#endif /* WINCE_HEADER */#ifndef FIELD_OFFSET#define FIELD_OFFSET(type, field) ((LONG)&(((type *)0)->field))#endif#ifndef PCI_COMMON_HDR_LENGTH#define PCI_COMMON_HDR_LENGTH (FIELD_OFFSET (PCI_COMMON_CONFIG, DeviceSpecific))#endif#endif#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -