Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

531 lines
20 KiB

  1. /*************************************************************************
  2. ** **
  3. ** ATINT.H **
  4. ** **
  5. ** Copyright (c) 1992, ATI Technologies Inc. **
  6. *************************************************************************
  7. Contains information specific to Windows NT, and is common between
  8. the Install application ANTPANEL, and the Display and Miniport drivers.
  9. $Revision: 1.19 $
  10. $Date: 30 Apr 1996 13:20:36 $
  11. $Author: reng $
  12. $Log: S:/source/wnt/ms11/displays/archive/atint.h_v $
  13. *
  14. * Rev 1.19 30 Apr 1996 13:20:36 reng
  15. * 1 Meg SDRAM problem; GT cursor problem
  16. *
  17. * Rev 1.18 03 Apr 1996 10:12:26 reng
  18. * use WINVER to distinguish NT 4.0 from NT 3.51
  19. *
  20. * Rev 1.17 26 Mar 1996 15:27:38 reng
  21. * New driver sources
  22. *
  23. * Rev 1.16 23 Jan 1996 11:41:36 RWolff
  24. * Now forces compile-time error if NTDDVDEO.H is not included before
  25. * this file rather than generating false values of TARGET_BUILD, added
  26. * DrvEscape() functions used by multiheaded display applet.
  27. *
  28. * Rev 1.15 22 Dec 1995 14:59:32 RWolff
  29. * Added support for Mach 64 GT internal DAC.
  30. *
  31. * Rev 1.14 21 Dec 1995 14:05:36 RWolff
  32. * Added TARGET_BUILD definition to identify which version of NT we are
  33. * building for, rather than using a different definition for each break
  34. * between versions.
  35. *
  36. * Rev 1.13 23 Nov 1995 11:25:10 RWolff
  37. * Added multihead support.
  38. *
  39. * Rev 1.12 24 Aug 1995 15:38:04 RWolff
  40. * Added definitions to report CT and VT ASICs to the display driver.
  41. *
  42. * Rev 1.11 27 Feb 1995 17:46:44 RWOLFF
  43. * Added flag for packed (relocatable) I/O to ENH_VERSION_NT.FeatureFlags
  44. * bitmask.
  45. *
  46. * Rev 1.10 24 Feb 1995 12:23:08 RWOLFF
  47. * Added flag for 24BPP text banding to ModeFlags field of mode
  48. * information structure.
  49. *
  50. * Rev 1.9 03 Feb 1995 15:14:16 RWOLFF
  51. * Added Feature Flag to show that dense space is available.
  52. *
  53. * Rev 1.8 30 Jan 1995 11:54:36 RWOLFF
  54. * Made detection of Daytona vs. older versions of NT automatic, miniport
  55. * and display driver now use the same version of this file.
  56. *
  57. * Rev 1.7 23 Dec 1994 10:48:34 ASHANMUG
  58. * ALPHA/Chrontel-DAC
  59. *
  60. * Rev 1.6 31 Aug 1994 16:18:38 RWOLFF
  61. * Added definiton to go in ENH_VERSION_NT.FeatureFlags to show that
  62. * TVP3026 cursor handling is needed.
  63. *
  64. * Rev 1.5 04 May 1994 19:24:04 RWOLFF
  65. * Moved block write flag back to IOCTL_VIDEO_ATI_GET_MODE_INFORMATION
  66. * because the test can only be run if we have already switched
  67. * into graphics mode.
  68. *
  69. * Rev 1.4 28 Apr 1994 10:58:52 RWOLFF
  70. * Moved mode-independent bug/feature flags to IOCTL_VIDEO_ATI_GET_VERSION
  71. * packet from IOCTL_VIDEO_ATI_GET_MODE_INFORMATION packet.
  72. *
  73. * Rev 1.3 27 Apr 1994 13:52:58 RWOLFF
  74. * Added definition for MIO bug in ModeFlags bitfield.
  75. *
  76. * Rev 1.2 31 Mar 1994 15:00:52 RWOLFF
  77. * Added key to be used in DrvEscape() and values to be returned.
  78. *
  79. * Rev 1.1 14 Mar 1994 16:29:08 RWOLFF
  80. * Added bit definition in ModeFlags for 2M boundary tearing, DPMS IOCTL
  81. * is now consistent with Daytona.
  82. *
  83. * Rev 1.0 31 Jan 1994 11:29:10 RWOLFF
  84. * Initial revision.
  85. *
  86. * Rev 1.3 24 Jan 1994 18:01:42 RWOLFF
  87. * Added definitions for new Mach 32 ASIC (68800LX), changed some Mach 64
  88. * definitions to accomodate changes in 94/01/19 BIOS document.
  89. *
  90. * Rev 1.2 14 Jan 1994 15:19:32 RWOLFF
  91. * Added definition for unknown non-Mach32 ASIC, flags to show if block
  92. * write and memory mapped registers are available, added fields for
  93. * bus type in ENH_VERSION_NT structure, preliminary structure and
  94. * definitions for DPMS packet.
  95. *
  96. * Rev 1.1 30 Nov 1993 18:12:12 RWOLFF
  97. * Renamed definitions for Mach 64 chip.
  98. *
  99. * Rev 1.0 03 Sep 1993 14:27:20 RWOLFF
  100. * Initial revision.
  101. Rev 1.5 22 Jan 1993 14:49:34 Chris_Brady
  102. add card capabilities to GET_INFO Ioctl.
  103. Rev 1.4 22 Jan 1993 14:46:40 Chris_Brady
  104. add ATIC_ defines for the card capabilities.
  105. Rev 1.3 20 Jan 1993 17:47:16 Robert_Wolff
  106. Added PVERSION_NT type definition, removed obsolete comment.
  107. Rev 1.2 19 Jan 1993 09:50:58 Chris_Brady
  108. add ANT_ drawing interface defines.
  109. Rev 1.1 18 Jan 1993 15:49:34 Chris_Brady
  110. new GetInof structure.
  111. Rev 1.0 15 Jan 1993 16:43:08 Chris_Brady
  112. Initial revision.
  113. ------------------------------------------------------------------------*/
  114. // is in the \ddk\public\sdk\inc directory
  115. #include <devioctl.h>
  116. // allow the miniport driver to Force seletion of a Programming Interface
  117. enum {
  118. ANT_DEFAULT=0,
  119. ANT_ENGINE_ONLY,
  120. ANT_APERTURE,
  121. ANT_VGA
  122. };
  123. // Private Display driver Functions. Communication from ANTPANEL to
  124. // the Display ATI*.DLL to the Miniport ATI*.SYS drivers.
  125. enum {
  126. ATI_GET_INFO=1,
  127. ATI_GET_nextone
  128. };
  129. // Define the possible ATI graphics card configurations so the Display
  130. // driver can decide the best drawing methods to use.
  131. // size is ULONG 32 bit field
  132. // assigned by miniport to VERSION_NT.capcard
  133. #define ATIC_FIELD_LONGEST 0x80000000 //just to illustrate size
  134. #define ATIC_APERTURE_LFB 0x0400
  135. #define ATIC_APERTURE_VGA 0x0200
  136. #define ATIC_APERTURE_NONE 0x0100 //neither VGA or LFB found
  137. #define ATIC_CARD_TYPE 0x00F0 //defines from 68801.h << 4
  138. #define ATIC_BUS_TYPE 0x000F //defines from 68801.H
  139. // used with IOCTL_VIDEO_ATI_GET_VERSION
  140. // In hex: BBBBVVMM where
  141. // BBBB is the build number (0-32767),
  142. // VV is the major version number (0-255)
  143. // MM is the minor version number (0-255)
  144. typedef struct {
  145. ULONG display; //Display Version number
  146. ULONG miniport; //Miniport Version number
  147. ULONG capcard; //card capabilities
  148. struct {
  149. short xres;
  150. short yres;
  151. short color; // maximum bits per pixel
  152. } resolution[6];
  153. } VERSION_NT, *PVERSION_NT;
  154. /*
  155. * Definitions used with the ENH_VERSION_NT structure
  156. */
  157. #define ENH_REVISION 1 // First revision of ENH_VERSION_NT structure
  158. #define BETA_MINIPORT 0x00000080 // Bit set in InterfaceVersion for unsupported miniport versions
  159. enum {
  160. CI_38800_1 = 0, // Mach 8 ASIC, only one revision in use
  161. CI_68800_3, // Mach 32 ASIC, first production revision
  162. CI_68800_6, // Mach 32 ASIC, second production revision
  163. CI_68800_AX, // Mach 32 AX ASIC
  164. CI_88800_GX, // Mach 64 GX ASIC
  165. CI_68800_LX, // Mach 32 LX ASIC
  166. CI_OTHER_UNKNOWN=30, // Unknown ASIC other than Mach 32
  167. CI_68800_UNKNOWN=31, // Mach 32 ASIC other than versions above
  168. CI_M64_VTA
  169. };
  170. #define FL_CI_38800_1 0x00000001
  171. #define FL_CI_68800_3 0x00000002
  172. #define FL_CI_68800_6 0x00000004
  173. #define FL_CI_68800_AX 0x00000008
  174. #define FL_CI_88800_GX 0x00000010
  175. #define FL_CI_68800_LX 0x00000020
  176. #define FL_CI_OTHER_UNKNOWN 0x40000000
  177. #define FL_CI_68800_UNKNOWN 0x80000000
  178. enum {
  179. ENGINE_ONLY = 0, // No aperture available
  180. AP_LFB, // Linear framebuffer available
  181. AP_68800_VGA, // 64k VGA aperture available
  182. AP_CX_VGA // Two 32k VGA apertures available
  183. };
  184. #define FL_ENGINE_ONLY 0x00000001
  185. #define FL_AP_LFB 0x00000002
  186. #define FL_68800_VGA 0x00000004
  187. #define FL_CX_VGA 0x00000008
  188. #define FL_MM_REGS 0x80000000 /* Memory Mapped registers are available */
  189. /*
  190. * Values which can be placed in FeatureFlags field of ENH_VERSION_NT.
  191. *
  192. * Flags should be added to this field if they represent bugs/features
  193. * which affect all resolution/pixel depth combinations on a given card.
  194. */
  195. #define EVN_DPMS 0x00000001 // DPMS is supported
  196. #define EVN_SPLIT_TRANS 0x00000002 // This card has split transfer bug
  197. #define EVN_MIO_BUG 0x00000004 // Card has multiple in/out hardware bug
  198. #define EVN_TVP_DAC_CUR 0x00000008 // Cursor handled by TVP DAC, not the ASIC
  199. #define EVN_IBM514_DAC_CUR 0x00000010 // Cursor handled by IBM DAC, not the ASIC
  200. #define EVN_DENSE_CAPABLE 0x00000020 // Card is capable of using dense space
  201. #define EVN_PACKED_IO 0x00000040 // Card uses packed I/O space
  202. #define EVN_INT_DAC_CUR 0x00000080 /* Cards with internal DAC must use double buffer to avoid flickering cursor */
  203. #define EVN_VT_ASIC 0x00000100 /* VT has extended capabilities our other cards don't */
  204. #define EVN_GT_ASIC 0x00000200 /* GT has extended capabilities our other cards don't */
  205. #define EVN_CT_ASIC 0x00000400 /* Identify CT ASIC */
  206. /*
  207. * Cards with 1M of SDRAM need special handling (problem occurs on the
  208. * VTA4, may or may not happen with this configuration on future ASICs).
  209. */
  210. #define EVN_SDRAM_1M 0x00000800
  211. /*
  212. * Enhanced information structure for use with IOCTL_VIDEO_ATI_GET_VERSION.
  213. * This structure will be used if a non-null input buffer is passed when
  214. * making the call, and the older structure above will be used if a null
  215. * input buffer is passed.
  216. */
  217. typedef struct{
  218. ULONG StructureVersion; /* Revision of structure being passed in */
  219. ULONG InterfaceVersion; /* Revision of private interface being used */
  220. ULONG ChipIndex; /* Which accelerator chip is present */
  221. ULONG ChipFlag; /* Flag corresponding to chip being used */
  222. ULONG ApertureType; /* Best aperture type available */
  223. ULONG ApertureFlag; /* Flag corresponding to aperture type */
  224. ULONG BusType; /* Type of bus being used */
  225. ULONG BusFlag; /* Flag corresponding to bus type */
  226. ULONG FeatureFlags; /* Flags for features/bugs of this card */
  227. ULONG NumCards; /* Number of ATI cards in the system */
  228. } ENH_VERSION_NT, *PENH_VERSION_NT;
  229. /*
  230. * Values which can be placed in ModeFlags field of ATI_MODE_INFO.
  231. *
  232. * Flags should be added to this field if they represent bugs/features
  233. * which affect some but not all resolution/pixel depth combinations
  234. * on a given card.
  235. */
  236. #define AMI_ODD_EVEN 0x00000001 // Hardware cursor odd/even bug, undefined
  237. // for cards without hardware cursor
  238. #define AMI_MIN_MODE 0x00000002 // 8514/A compatible minimum mode
  239. #define AMI_2M_BNDRY 0x00000004 // Tearing occurs on 2M boundary
  240. #define AMI_BLOCK_WRITE 0x00000008 // Block write is supported. This is
  241. // mode-independent, but must be tested
  242. // after we have switched into graphics mode.
  243. #define AMI_TEXTBAND 0x00000010 // Text banding in 24BPP mode
  244. /*
  245. * Mode information structure for use with IOCTL_VIDEO_ATI_GET_MODE_INFORMATION.
  246. * This structure provides information specific to the video mode in use.
  247. */
  248. typedef struct{
  249. ULONG ModeFlags; /* Flags for features/bugs of this mode */
  250. LONG VisWidthPix; /* Visible screen width in pixels */
  251. LONG VisWidthByte; /* Visible screen width in bytes */
  252. LONG VisHeight; /* Visible screen height */
  253. LONG BitsPerPixel;
  254. /*
  255. * The next 2 fields hold the number of bytes of memory used per pixel
  256. * (integer and fractional parts). A 4BPP unpacked (1 pixel per byte,
  257. * ignore unused 4 bits) mode would yield 1 and 0, the same as for 8BPP
  258. * (1.0 bytes per pixel). A 4BPP packed (2 pixels per byte) mode would
  259. * yield 0 and 500 (0.500 bytes per pixel). The fractional field will
  260. * always hold a 3-digit number, since bytes per pixel will always be
  261. * a multiple of 0.125 (one bit is one-eighth of a byte).
  262. */
  263. LONG IntBytesPerPixel;
  264. LONG FracBytesPerPixel;
  265. LONG PitchPix; /* Screen pitch in pixels */
  266. LONG PitchByte; /* Screen pitch in bytes */
  267. /*
  268. * The following fields refer to the offscreen block to the right of
  269. * the visible screen. This block is only present when the screen pitch
  270. * differs from the visible screen width. Its height is always the
  271. * same as the visible screen height, and its vertical start offset
  272. * is assumed to be zero.
  273. *
  274. * NOTE: If RightWidthPix is zero, this block does not exist for the
  275. * current mode, and the other fields in this group are undefined.
  276. */
  277. LONG RightWidthPix; /* Width of block in pixels */
  278. LONG RightWidthByte; /* Width of block in bytes */
  279. LONG RightStartOffPix; /* Horizontal start offset of block in pixels */
  280. LONG RightStartOffByte; /* Horizontal start offset of block in bytes */
  281. LONG RightEndOffPix; /* Horizontal end offset of block in pixels */
  282. LONG RightEndOffByte; /* Horizontal end offset of block in bytes */
  283. /*
  284. * The following fields refer to the offscreen block below the visible
  285. * screen. Values listed as "Hard" refer to the maximum vertical offset
  286. * for which enough video memory exists to support a full line of pixels.
  287. * Values listed as "Soft" refer to the maximum vertical offset which
  288. * can be reached without writing to the GE_OFFSET register.
  289. *
  290. * The horizontal start offset is assumed to be zero.
  291. */
  292. LONG BottomWidthPix; /* Width of block in pixels */
  293. LONG BottomWidthByte; /* Width of block in bytes */
  294. LONG BottomStartOff; /* Vertical start offset of block */
  295. LONG BottomEndOffSoft; /* "Soft" vertical end offset of block */
  296. LONG BottomEndOffHard; /* "Hard" vertical end offset of block */
  297. LONG BottomHeightSoft; /* "Soft" height of block */
  298. LONG BottomHeightHard; /* "Hard" height of block */
  299. } ATI_MODE_INFO, *PATI_MODE_INFO;
  300. //------------------------------------------------------------------------
  301. /*
  302. * IOCTL codes to allow communication between the miniport driver
  303. * and higher-level modules. The Windows NT specification allocates
  304. * function codes 2048-4095 to external vendors.
  305. */
  306. #define IOCTL_VIDEO_MIN_EXTERNAL_VENDOR \
  307. CTL_CODE(FILE_DEVICE_VIDEO, 2048, METHOD_BUFFERED, FILE_ANY_ACCESS)
  308. #define IOCTL_VIDEO_MAX_EXTERNAL_VENDOR \
  309. CTL_CODE(FILE_DEVICE_VIDEO, 4095, METHOD_BUFFERED, FILE_ANY_ACCESS)
  310. #define IOCTL_VIDEO_ATI_GET_VERSION \
  311. CTL_CODE(FILE_DEVICE_VIDEO, 2048, METHOD_BUFFERED, FILE_ANY_ACCESS)
  312. #define IOCTL_VIDEO_ATI_EM_SYNC_TO_MINIPORT \
  313. CTL_CODE(FILE_DEVICE_VIDEO, 2049, METHOD_BUFFERED, FILE_ANY_ACCESS)
  314. #define IOCTL_VIDEO_ATI_EM_SYNC_FROM_MINIPORT \
  315. CTL_CODE(FILE_DEVICE_VIDEO, 2050, METHOD_BUFFERED, FILE_ANY_ACCESS)
  316. #define IOCTL_VIDEO_ATI_GET_MODE_INFORMATION \
  317. CTL_CODE(FILE_DEVICE_VIDEO, 2051, METHOD_BUFFERED, FILE_ANY_ACCESS)
  318. /*
  319. * The following definitions and IOCTLs are standard definitions from
  320. * the NTDDVDEO.H file in Daytona and later releases of Windows NT.
  321. * They are provided here to let earlier versions use the DPMS IOCTLs
  322. * without requiring source changes. Do not edit this section.
  323. *
  324. * Structures are made conditional on the absence of one of the
  325. * power management IOCTLs, rather than on the structure itself,
  326. * since "#if !defined(<symbol>)" doesn't trigger on symbols that
  327. * refer to structures, rather than numeric values.
  328. */
  329. //
  330. // IOCTL_VIDEO_SET_POWER_MANAGEMENT - Tells the device to change the power
  331. // consumption level of the device to the
  332. // new state.
  333. // IOCTL_VIDEO_GET_POWER_MANAGEMENT - Return the current power consumption
  334. // level of the device.
  335. //
  336. // NOTE:
  337. // This IOCTL is based on the VESA DPMS proposal.
  338. // Changes to the DPMS standard will be refelcted in this IOCTL.
  339. //
  340. /*
  341. #if !defined(IOCTL_VIDEO_SET_POWER_MANAGEMENT)
  342. typedef enum _VIDEO_POWER_STATE {
  343. VideoPowerOn = 1,
  344. VideoPowerStandBy,
  345. VideoPowerSuspend,
  346. VideoPowerOff
  347. } VIDEO_POWER_STATE, *PVIDEO_POWER_STATE;
  348. #endif
  349. */
  350. #if !defined(IOCTL_VIDEO_SET_POWER_MANAGEMENT)
  351. typedef struct _VIDEO_POWER_MANAGEMENT {
  352. ULONG Length;
  353. ULONG DPMSVersion;
  354. ULONG PowerState;
  355. } VIDEO_POWER_MANAGEMENT, *PVIDEO_POWER_MANAGEMENT;
  356. #endif
  357. //
  358. //Length - Length of the structure in bytes. Also used to do verisioning.
  359. //
  360. //DPMSVersion - Version of the DPMS standard supported by the device.
  361. // Only used in the "GET" IOCTL.
  362. //
  363. //PowerState - One of the power states listed in VIDEO_POWER_STATE.
  364. //
  365. //
  366. // Note:
  367. // Once the power has been turned off to the device, all other IOCTLs made
  368. // to the miniport will be intercepted by the port driver and will return
  369. // failiure, until the power on the device has been turned back on.
  370. //
  371. /*
  372. * We use the presence or absence of various IOCTLs to determine
  373. * the build of Windows NT for which we are compiling the driver.
  374. * If this file is included, but the file which contains the IOCTLs
  375. * is not, in a source file, this will result in a false report of
  376. * the target build, which can cause numerous problems.
  377. *
  378. * This conditional block will force a compile error if the file
  379. * containing the IOCTLs (NTDDVDEO.H in NT 3.51 retail) was not
  380. * included prior to this file being included.
  381. */
  382. #if !defined(IOCTL_VIDEO_SET_CURRENT_MODE)
  383. NTDDVDEO.H must be included before ATINT.H
  384. #endif
  385. #if defined(IOCTL_VIDEO_SET_POWER_MANAGEMENT)
  386. /*
  387. * There are a number of non-DPMS features which differ between
  388. * Daytona and earlier versions of Windows NT. To make these
  389. * conditional compilations automatic, define the value "DAYTONA"
  390. * (formerly defined in SOURCES, and used to conditionally compile
  391. * the DPMS structures and IOCTLs) if IOCTL_VIDEO_SET_POWER_MANAGEMENT
  392. * is defined.
  393. */
  394. #define DAYTONA 1
  395. #define TARGET_BUILD 350
  396. #else
  397. #define TARGET_BUILD 310
  398. #define IOCTL_VIDEO_SET_POWER_MANAGEMENT \
  399. CTL_CODE(FILE_DEVICE_VIDEO, 2052, METHOD_BUFFERED, FILE_ANY_ACCESS)
  400. #endif
  401. #if !defined(IOCTL_VIDEO_GET_POWER_MANAGEMENT)
  402. #define IOCTL_VIDEO_GET_POWER_MANAGEMENT \
  403. CTL_CODE(FILE_DEVICE_VIDEO, 2053, METHOD_BUFFERED, FILE_ANY_ACCESS)
  404. #endif
  405. /*
  406. * End of DPMS support for pre-Daytona versions of Windows NT.
  407. */
  408. #define IOCTL_VIDEO_ATI_INIT_AUX_CARD \
  409. CTL_CODE(FILE_DEVICE_VIDEO, 2054, METHOD_BUFFERED, FILE_ANY_ACCESS)
  410. /*
  411. * Structures used in DCI support. They were added some time after the
  412. * initial release of Windows NT 3.5, so we must make them available only
  413. * if they're not already defined. These "placeholders" are solely to
  414. * allow the miniport to be compiled - the packets will only be called
  415. * in later versions of Windows NT 3.5.
  416. *
  417. * There are no "placeholders" for the IOCTLs themselves, since their
  418. * presence or absence is used to determine whether or not to compile
  419. * the DCI cases in ATIMPStartIO().
  420. */
  421. #if defined (IOCTL_VIDEO_SHARE_VIDEO_MEMORY)
  422. #undef TARGET_BUILD
  423. #define TARGET_BUILD 351
  424. #else
  425. typedef struct _VIDEO_SHARE_MEMORY_INFORMATION {
  426. ULONG SharedViewOffset;
  427. ULONG SharedViewSize;
  428. PVOID VirtualAddress;
  429. } VIDEO_SHARE_MEMORY_INFORMATION, *PVIDEO_SHARE_MEMORY_INFORMATION;
  430. #endif
  431. #if !defined (IOCTL_VIDEO_SHARE_VIDEO_MEMORY)
  432. typedef struct _VIDEO_SHARE_MEMORY {
  433. HANDLE ProcessHandle;
  434. ULONG ViewOffset;
  435. ULONG ViewSize;
  436. PVOID RequestedVirtualAddress;
  437. } VIDEO_SHARE_MEMORY, *PVIDEO_SHARE_MEMORY;
  438. #endif
  439. //
  440. // New automatic definition added as of NT 4.0 - use it to check whether
  441. // we are building under 3.51, 4.0, or 5.0.
  442. //
  443. #if (_WIN32_WINNT >= 0x400)
  444. #undef TARGET_BUILD
  445. #define TARGET_BUILD 400
  446. #endif
  447. #if (_WIN32_WINNT >= 0x500)
  448. #undef TARGET_BUILD
  449. #define TARGET_BUILD 500
  450. #endif
  451. /*
  452. * Keys to be used in DrvEscape() call to handle DPMS and other private
  453. * ATI functions. These keys fit into a large "hole" between
  454. * GETSETSCREENPARAMS (3072) and BEGIN_PATH (4096)
  455. */
  456. #define ESC_SET_POWER_MANAGEMENT 4000
  457. #define ESC_GET_NUM_CARDS 4001
  458. #define ESC_GET_MODES 4002
  459. #define ESC_GET_VGA_ENABLED 4003
  460. #define ESC_SET_CURRENT_FULLSCREEN 4004
  461. /*
  462. * Values to show whether or not a given function is supported by
  463. * the DrvEscape entry point.
  464. */
  465. #define ESC_IS_SUPPORTED 0x00000001 /* Function is supported */
  466. #define ESC_NOT_SUPPORTED 0xFFFFFFFF /* Unsupported function called */
  467. #define ESC_NOT_IMPLEMENTED 0x00000000 /* QUERYESCSUPPORT called for unimplemented function */
  468. //********************* end of ATINT.H ****************************
  469.