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