-#ifndef SIS_LCD_TYPE
-typedef 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, /* FSTN, DSTN */
- LCD_1400x1050,
- LCD_1152x864,
- LCD_1152x768,
- LCD_1280x768,
- LCD_1024x600,
- LCD_640x480_2, /* FSTN, DSTN */
- LCD_640x480_3, /* FSTN, DSTN */
- LCD_848x480,
- LCD_1280x800,
- LCD_1680x1050,
- LCD_CUSTOM,
- LCD_UNKNOWN
-} SIS_LCD_TYPE;
-#endif
-
-#ifndef PSIS_DSReg
-typedef struct _SIS_DSReg
-{
- UCHAR jIdx;
- UCHAR jVal;
-} SIS_DSReg, *PSIS_DSReg;
-#endif
-
-#ifndef SIS_HW_INFO
-
-typedef struct _SIS_HW_INFO SIS_HW_INFO, *PSIS_HW_INFO;
-
-typedef BOOLEAN (*PSIS_QUERYSPACE) (PSIS_HW_INFO, ULONG, ULONG, ULONG *);
-
-struct _SIS_HW_INFO
-{
-#ifdef LINUX_XF86
- PCITAG PciTag; /* PCI Tag */
-#endif
-
- UCHAR *pjVirtualRomBase; /* ROM image */
-
- BOOLEAN UseROM; /* Use the ROM image if provided */
-
- UCHAR *pjVideoMemoryAddress;/* base virtual memory address */
- /* of Linear VGA memory */
-
- ULONG ulVideoMemorySize; /* size, in bytes, of the memory on the board */
- SISIOADDRESS 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" */
-#ifdef LINUX_KERNEL
- BOOLEAN Is301BDH;
-#endif
-
- USHORT usExternalChip; /* NO VB or other video bridge (other than */
- /* SiS video bridge) */
-
- ULONG ulCRT2LCDType; /* defined in the data structure type */
- /* "SIS_LCD_TYPE" */
-
- BOOLEAN bIntegratedMMEnabled;/* supporting integration MM enable */
-
- BOOLEAN bSkipDramSizing; /* True: Skip video memory sizing. */
-
-#ifdef LINUX_KERNEL
- 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 */
-#endif
-
- PSIS_QUERYSPACE pQueryVGAConfigSpace; /* Get/Set VGA Configuration */
- /* space */
-
- PSIS_QUERYSPACE pQueryNorthBridgeSpace;/* Get/Set North Bridge */
- /* space */
-};
-#endif
-
-/* 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 */
-
-/* ioctl for identifying and giving some info (esp. memory heap start) */
-#define SISFB_GET_INFO 0x80046ef8 /* Wow, what a terrible hack... */
-
-/* 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) */
-
- unsigned int sisfb_pcibus; /* The card's PCI ID */
- unsigned int sisfb_pcislot;
- unsigned int sisfb_pcifunc;
-
- unsigned char sisfb_lcdpdc;
-
- unsigned char sisfb_lcda;
-
- unsigned long sisfb_vbflags;
- unsigned long sisfb_currentvbflags;
-
- int sisfb_scalelcd;
- unsigned long sisfb_specialtiming;
-
- unsigned char sisfb_haveemi;
- unsigned char sisfb_emi30,sisfb_emi31,sisfb_emi32,sisfb_emi33;
- unsigned char sisfb_haveemilcd;
-
- char reserved[213]; /* for future use */
-};
-#endif