Annotation of ntddk/src/video/miniport/wdvga/wddata.h, revision 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.