Annotation of ntddk/src/video/miniport/cirrus/cl_data.h, revision 1.1.1.1

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

unix.superglobalmegacorp.com

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