vgatypes.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:6k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  1. #ifndef _VGATYPES_
  2. #define _VGATYPES_
  3. #ifndef TC
  4. #define far
  5. #endif
  6. #ifndef FALSE
  7. #define FALSE   0
  8. #endif
  9. #ifndef TRUE
  10. #define TRUE    1
  11. #endif
  12. #ifndef NULL
  13. #define NULL    0
  14. #endif
  15. #ifndef CHAR
  16. typedef char CHAR;
  17. #endif
  18. #ifndef SHORT
  19. typedef short SHORT;
  20. #endif
  21. #ifndef LONG
  22. typedef long LONG;
  23. #endif
  24. #ifndef UCHAR
  25. typedef unsigned char UCHAR;
  26. #endif
  27. #ifndef USHORT
  28. typedef unsigned short USHORT;
  29. #endif
  30. #ifndef ULONG
  31. typedef unsigned long ULONG;
  32. #endif
  33. #ifndef PUCHAR
  34. typedef UCHAR far *PUCHAR;
  35. #endif
  36. #ifndef PUSHORT
  37. typedef USHORT far *PUSHORT;
  38. #endif
  39. #ifndef PULONG
  40. typedef ULONG far *PULONG;
  41. #endif
  42. #ifndef PVOID
  43. typedef void far *PVOID;
  44. #endif
  45. #ifndef VOID
  46. typedef void VOID;
  47. #endif
  48. #ifndef BOOLEAN
  49. typedef UCHAR BOOLEAN;
  50. #endif
  51. #ifndef WINCE_HEADER
  52. #ifndef bool
  53. typedef UCHAR bool;
  54. #endif
  55. #endif /* WINCE_HEADER */
  56. #ifndef VBIOS_VER_MAX_LENGTH
  57. #define VBIOS_VER_MAX_LENGTH         4
  58. #endif
  59. #ifndef WIN2000
  60. #ifndef SIS_VB_CHIP_TYPE
  61. typedef enum _SIS_VB_CHIP_TYPE {
  62. VB_CHIP_Legacy = 0,
  63. VB_CHIP_301,
  64. VB_CHIP_301B,
  65. VB_CHIP_301BLCD,
  66. VB_CHIP_301BTV,
  67. VB_CHIP_302,
  68. VB_CHIP_302B,
  69. VB_CHIP_302BLCD,
  70. VB_CHIP_302BTV,
  71. VB_CHIP_303,
  72. VB_CHIP_UNKNOWN, /* other video bridge or no video bridge */
  73. MAX_VB_CHIP
  74. } SIS_VB_CHIP_TYPE;
  75. #endif
  76. #endif
  77. #ifndef WIN2000
  78. #ifndef SIS_LCD_TYPE
  79. typedef enum _SIS_LCD_TYPE {
  80. LCD_INVALID = 0,
  81. LCD_800x600,
  82. LCD_1024x768,
  83. LCD_1280x1024,
  84. LCD_1280x960,
  85. LCD_640x480,
  86. LCD_1600x1200,
  87. LCD_1920x1440,
  88. LCD_2048x1536,
  89. LCD_UNKNOWN
  90. } SIS_LCD_TYPE;
  91. #endif
  92. #endif
  93. #ifndef WIN2000 /* mark by Paul ,Move definition to sisv.h */
  94. #ifndef PSIS_DSReg
  95. typedef struct _SIS_DSReg {
  96. UCHAR jIdx;
  97. UCHAR jVal;
  98. } SIS_DSReg, *PSIS_DSReg;
  99. #endif
  100. #ifndef SIS_HW_DEVICE_INFO
  101. typedef struct _SIS_HW_DEVICE_INFO SIS_HW_DEVICE_INFO, *PSIS_HW_DEVICE_INFO;
  102. typedef BOOLEAN (*PSIS_QUERYSPACE) (PSIS_HW_DEVICE_INFO, ULONG, ULONG, ULONG *);
  103. struct _SIS_HW_DEVICE_INFO {
  104. PVOID pDevice; /* The pointer to the physical device data structure 
  105.    in each OS or NULL for unused. */
  106. UCHAR *pjVirtualRomBase; /* Only for NT, NULL for WinCE & Linux. */
  107. /* base virtual address of VBIOS ROM Space */
  108. /* or base virtual address of ROM image file. */
  109. /* if NULL, then read from pjROMImage; */
  110. /* Note:ROM image file is the file of VBIOS ROM */
  111. UCHAR *pjCustomizedROMImage; /* base virtual address of ROM image file. */
  112. /* wincE:ROM image file is the file for OEM */
  113. /*       customized table */
  114. /* Linux: not used */
  115. /* NT   : not used  */
  116. /* Note : pjCustomizedROMImage=NULL if no ROM image file */
  117. UCHAR *pjVideoMemoryAddress; /* base virtual memory address */
  118. /* of Linear VGA memory */
  119. ULONG ulVideoMemorySize; /* size, in bytes, of the memory on the board */
  120. ULONG ulIOAddress; /* base I/O address of VGA ports (0x3B0) */
  121. UCHAR jChipType; /* Used to Identify SiS Graphics Chip */
  122. /* defined in the data structure type  */
  123. /* "SIS_CHIP_TYPE" */
  124. UCHAR jChipRevision; /* Used to Identify SiS Graphics Chip Revision */
  125. UCHAR ujVBChipID; /* the ID of video bridge */
  126. /* defined in the data structure type */
  127. /* "SIS_VB_CHIP_TYPE" */
  128. USHORT usExternalChip; /* NO VB or other video bridge(not  */
  129. /* SiS video bridge) */
  130. /* if ujVBChipID = VB_CHIP_UNKNOWN, */
  131. /* then bit0=1 : LVDS,bit1=1 : trumpion, */
  132. /* bit2=1 : CH7005 & no video bridge if */
  133. /* usExternalChip = 0. */
  134. /* Note: CR37[3:1]: */
  135. /*             001:SiS 301 */
  136. /*             010:LVDS */
  137. /*             011:Trumpion LVDS Scaling Chip */
  138. /*             100:LVDS(LCD-out)+Chrontel 7005 */
  139. /*             101:Single Chrontel 7005 */
  140. ULONG ulCRT2LCDType; /* defined in the data structure type */
  141. /* "SIS_LCD_TYPE" */
  142. BOOLEAN bIntegratedMMEnabled; /* supporting integration MM enable */
  143. BOOLEAN bSkipDramSizing; /* True: Skip video memory sizing. */
  144. PSIS_DSReg pSR; /* restore SR registers in initial function. */
  145. /* end data :(idx, val) =  (FF, FF). */
  146. /* Note : restore SR registers if  */
  147. /* bSkipDramSizing = TRUE */
  148. PSIS_DSReg pCR; /* restore CR registers in initial function. */
  149. /* end data :(idx, val) =  (FF, FF) */
  150. /* Note : restore cR registers if  */
  151. /* bSkipDramSizing = TRUE */
  152. PSIS_QUERYSPACE pQueryVGAConfigSpace; /* Get/Set VGA Configuration  */
  153. /* space */
  154. PSIS_QUERYSPACE pQueryNorthBridgeSpace; /* Get/Set North Bridge  */
  155. /* space  */
  156. UCHAR szVBIOSVer[VBIOS_VER_MAX_LENGTH];
  157. };
  158. #endif
  159. #endif /*~ mark by Paul ,Move definition to sisv.h */
  160. #ifndef WIN2000
  161. #ifndef WINCE_HEADER
  162. #ifndef BUS_DATA_TYPE
  163. typedef enum _BUS_DATA_TYPE {
  164. ConfigurationSpaceUndefined = -1,
  165. Cmos,
  166. EisaConfiguration,
  167. Pos,
  168. CbusConfiguration,
  169. PCIConfiguration,
  170. VMEConfiguration,
  171. NuBusConfiguration,
  172. PCMCIAConfiguration,
  173. MPIConfiguration,
  174. MPSAConfiguration,
  175. PNPISAConfiguration,
  176. MaximumBusDataType
  177. } BUS_DATA_TYPE, *PBUS_DATA_TYPE;
  178. #endif
  179. #endif /* WINCE_HEADER */
  180. #ifndef PCI_TYPE0_ADDRESSES
  181. #define PCI_TYPE0_ADDRESSES             6
  182. #endif
  183. #ifndef PCI_TYPE1_ADDRESSES
  184. #define PCI_TYPE1_ADDRESSES             2
  185. #endif
  186. #ifndef WINCE_HEADER
  187. #ifndef PCI_COMMON_CONFIG
  188. typedef struct _PCI_COMMON_CONFIG {
  189. USHORT VendorID; /* (ro)                 */
  190. USHORT DeviceID; /* (ro)                 */
  191. USHORT Command; /* Device control       */
  192. USHORT Status;
  193. UCHAR RevisionID; /* (ro)                 */
  194. UCHAR ProgIf; /* (ro)                 */
  195. UCHAR SubClass; /* (ro)                 */
  196. UCHAR BaseClass; /* (ro)                 */
  197. UCHAR CacheLineSize; /* (ro+)                */
  198. UCHAR LatencyTimer; /* (ro+)                */
  199. UCHAR HeaderType; /* (ro)                 */
  200. UCHAR BIST; /* Built in self test   */
  201. union {
  202. struct _PCI_HEADER_TYPE_0 {
  203. ULONG BaseAddresses[PCI_TYPE0_ADDRESSES];
  204. ULONG CIS;
  205. USHORT SubVendorID;
  206. USHORT SubSystemID;
  207. ULONG ROMBaseAddress;
  208. ULONG Reserved2[2];
  209. UCHAR InterruptLine; /*                    */
  210. UCHAR InterruptPin; /* (ro)               */
  211. UCHAR MinimumGrant; /* (ro)               */
  212. UCHAR MaximumLatency; /* (ro)               */
  213. } type0;
  214. } u;
  215. UCHAR DeviceSpecific[192];
  216. } PCI_COMMON_CONFIG, *PPCI_COMMON_CONFIG;
  217. #endif
  218. #endif /* WINCE_HEADER */
  219. #ifndef FIELD_OFFSET
  220. #define FIELD_OFFSET(type, field)    ((LONG)&(((type *)0)->field))
  221. #endif
  222. #ifndef PCI_COMMON_HDR_LENGTH
  223. #define PCI_COMMON_HDR_LENGTH (FIELD_OFFSET (PCI_COMMON_CONFIG, DeviceSpecific))
  224. #endif
  225. #endif
  226. #endif