Annotation of ntddk/src/video/miniport/wdvga/wddata.h, revision 1.1.1.1

1.1       root        1: /*++
                      2: 
                      3: Copyright (c) 1992  Microsoft Corporation
                      4: 
                      5: Module Name:
                      6: 
                      7:     wddata.h
                      8: 
                      9: Abstract:
                     10: 
                     11:     This module contains all the global data used by the Western Digital driver.
                     12: 
                     13: Environment:
                     14: 
                     15:     Kernel mode
                     16: 
                     17: Revision History:
                     18: 
                     19: 
                     20: --*/
                     21: 
                     22: //
                     23: // This structure describes to which ports access is required.
                     24: //
                     25: 
                     26: #define NUM_WD_ACCESS_RANGES   4
                     27: #define NUM_VGA_ACCESS_RANGES  3
                     28: 
                     29: VIDEO_ACCESS_RANGE VgaAccessRange[] = {
                     30: {
                     31:     VGA_BASE_IO_PORT, 0x00000000,                // 64-bit linear base address
                     32:                                                  // of range
                     33:     VGA_START_BREAK_PORT - VGA_BASE_IO_PORT + 1, // # of ports
                     34:     1,                                           // range is in I/O space
                     35:     1,                                           // range should be visible
                     36:     0                                            // range should be shareable
                     37: },
                     38: {
                     39:     VGA_END_BREAK_PORT, 0x00000000,
                     40:     VGA_MAX_IO_PORT - VGA_END_BREAK_PORT + 1,
                     41:     1,
                     42:     1,
                     43:     0
                     44: },
                     45: {
                     46:     0x000A0000, 0x00000000,
                     47:     0x00020000,
                     48:     0,
                     49:     1,
                     50:     0
                     51: },
                     52: //
                     53: // These are extended registers found only on SOME advanced WD cards.
                     54: // so try to map them in if possible
                     55: //
                     56: {
                     57:     WD_EXT_PORT_START, 0x00000000,
                     58:     WD_EXT_PORT_END - WD_EXT_PORT_START + 1,
                     59:     1,
                     60:     1,
                     61:     0
                     62: }
                     63: };
                     64: 
                     65: 
                     66: 
                     67: //
                     68: // Validator Port list.
                     69: // This structure describes all the ports that must be hooked out of the V86
                     70: // emulator when a DOS app goes to full-screen mode.
                     71: // The structure determines to which routine the data read or written to a
                     72: // specific port should be sent.
                     73: //
                     74: 
                     75: #define VGA_NUM_EMULATOR_ACCESS_ENTRIES     6
                     76: 
                     77: EMULATOR_ACCESS_ENTRY VgaEmulatorAccessEntries[] = {
                     78: 
                     79:     //
                     80:     // Traps for byte OUTs.
                     81:     //
                     82: 
                     83:     {
                     84:         0x000003b0,                   // range start I/O address
                     85:         0xC,                         // range length
                     86:         Uchar,                        // access size to trap
                     87:         EMULATOR_READ_ACCESS | EMULATOR_WRITE_ACCESS, // types of access to trap
                     88:         FALSE,                        // does not support string accesses
                     89:         (PVOID)VgaValidatorUcharEntry // routine to which to trap
                     90:     },
                     91: 
                     92:     {
                     93:         0x000003c0,                   // range start I/O address
                     94:         0x20,                         // range length
                     95:         Uchar,                        // access size to trap
                     96:         EMULATOR_READ_ACCESS | EMULATOR_WRITE_ACCESS, // types of access to trap
                     97:         FALSE,                        // does not support string accesses
                     98:         (PVOID)VgaValidatorUcharEntry // routine to which to trap
                     99:     },
                    100: 
                    101:     //
                    102:     // Traps for word OUTs.
                    103:     //
                    104: 
                    105:     {
                    106:         0x000003b0,
                    107:         0x06,
                    108:         Ushort,
                    109:         EMULATOR_READ_ACCESS | EMULATOR_WRITE_ACCESS,
                    110:         FALSE,
                    111:         (PVOID)VgaValidatorUshortEntry
                    112:     },
                    113: 
                    114:     {
                    115:         0x000003c0,
                    116:         0x10,
                    117:         Ushort,
                    118:         EMULATOR_READ_ACCESS | EMULATOR_WRITE_ACCESS,
                    119:         FALSE,
                    120:         (PVOID)VgaValidatorUshortEntry
                    121:     },
                    122: 
                    123:     //
                    124:     // Traps for dword OUTs.
                    125:     //
                    126: 
                    127:     {
                    128:         0x000003b0,
                    129:         0x03,
                    130:         Ulong,
                    131:         EMULATOR_READ_ACCESS | EMULATOR_WRITE_ACCESS,
                    132:         FALSE,
                    133:         (PVOID)VgaValidatorUlongEntry
                    134:     },
                    135: 
                    136:     {
                    137:         0x000003c0,
                    138:         0x08,
                    139:         Ulong,
                    140:         EMULATOR_READ_ACCESS | EMULATOR_WRITE_ACCESS,
                    141:         FALSE,
                    142:         (PVOID)VgaValidatorUlongEntry
                    143:     }
                    144: 
                    145: };
                    146: 
                    147: 
                    148: //
                    149: // Used to trap only the sequncer and the misc output registers
                    150: //
                    151: 
                    152: #define NUM_MINIMAL_VGA_VALIDATOR_ACCESS_RANGE 4
                    153: 
                    154: VIDEO_ACCESS_RANGE MinimalVgaValidatorAccessRange[] = {
                    155: {
                    156:     VGA_BASE_IO_PORT, 0x00000000,
                    157:     VGA_START_BREAK_PORT - VGA_BASE_IO_PORT + 1,
                    158:     1,
                    159:     1,        // <- enable range IOPM so that it is not trapped.
                    160:     0
                    161: },
                    162: {
                    163:     VGA_END_BREAK_PORT, 0x00000000,
                    164:     VGA_MAX_IO_PORT - VGA_END_BREAK_PORT + 1,
                    165:     1,
                    166:     1,
                    167:     0
                    168: },
                    169: {
                    170:     VGA_BASE_IO_PORT + MISC_OUTPUT_REG_WRITE_PORT, 0x00000000,
                    171:     0x00000001,
                    172:     1,
                    173:     0,
                    174:     0
                    175: },
                    176: {
                    177:     VGA_BASE_IO_PORT + SEQ_ADDRESS_PORT, 0x00000000,
                    178:     0x00000002,
                    179:     1,
                    180:     0,
                    181:     0
                    182: }
                    183: };
                    184: 
                    185: //
                    186: // Used to trap all registers
                    187: //
                    188: 
                    189: #define NUM_FULL_VGA_VALIDATOR_ACCESS_RANGE 2
                    190: 
                    191: VIDEO_ACCESS_RANGE FullVgaValidatorAccessRange[] = {
                    192: {
                    193:     VGA_BASE_IO_PORT, 0x00000000,
                    194:     VGA_START_BREAK_PORT - VGA_BASE_IO_PORT + 1,
                    195:     1,
                    196:     0,        // <- disable range in the IOPM so that it is trapped.
                    197:     0
                    198: },
                    199: {
                    200:     VGA_END_BREAK_PORT, 0x00000000,
                    201:     VGA_MAX_IO_PORT - VGA_END_BREAK_PORT + 1,
                    202:     1,
                    203:     0,
                    204:     0
                    205: }
                    206: };

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.