1 /* 2 * PROJECT: ReactOS Boot Loader 3 * LICENSE: BSD - See COPYING.ARM in the top level directory 4 * FILE: win32ss/drivers/miniport/vmx_svga/vmx_regs.h 5 * PURPOSE: VMWARE SVGA-II Card Registers and Definitions 6 * PROGRAMMERS: ReactOS Portable Systems Group 7 */ 8 9 // 10 // IT'S OVER 9000 THOUSAND!!!!!!!!!! 11 // 12 #define SVGA_MAGIC 0x900000 13 14 // 15 // Known VMWARE SVGA Versions 16 // 17 #define SVGA_VERSION_2 2 18 #define SVGA_VERSION_1 1 19 #define SVGA_VERSION_0 0 20 21 // 22 // Known VMWARE SVGA IDs 23 // 24 #define SVGA_MAKE_ID(x) (SVGA_MAGIC << 8 | (x)) 25 #define SVGA_ID_2 SVGA_MAKE_ID(SVGA_VERSION_2) 26 #define SVGA_ID_1 SVGA_MAKE_ID(SVGA_VERSION_1) 27 #define SVGA_ID_0 SVGA_MAKE_ID(SVGA_VERSION_0) 28 #define SVGA_ID_INVALID 0xFFFFFFFF 29 30 // 31 // Card Capabilities 32 // 33 #define SVGA_CAP_NONE 0x00000000 34 #define SVGA_CAP_RECT_FILL 0x00000001 35 #define SVGA_CAP_RECT_COPY 0x00000002 36 #define SVGA_CAP_RECT_PAT_FILL 0x00000004 37 #define SVGA_CAP_LEGACY_OFFSCREEN 0x00000008 38 #define SVGA_CAP_RASTER_OP 0x00000010 39 #define SVGA_CAP_CURSOR 0x00000020 40 #define SVGA_CAP_CURSOR_BYPASS 0x00000040 41 #define SVGA_CAP_CURSOR_BYPASS_2 0x00000080 42 #define SVGA_CAP_8BIT_EMULATION 0x00000100 43 #define SVGA_CAP_ALPHA_CURSOR 0x00000200 44 #define SVGA_CAP_GLYPH 0x00000400 45 #define SVGA_CAP_GLYPH_CLIPPING 0x00000800 46 #define SVGA_CAP_OFFSCREEN_1 0x00001000 47 #define SVGA_CAP_ALPHA_BLEND 0x00002000 48 #define SVGA_CAP_3D 0x00004000 49 #define SVGA_CAP_EXTENDED_FIFO 0x00008000 50 #define SVGA_CAP_MULTIMON 0x00010000 51 #define SVGA_CAP_PITCHLOCK 0x00020000 52 #define SVGA_CAP_IRQMASK 0x00040000 53 #define SVGA_CAP_DISPLAY_TOPOLOGY 0x00080000 54 55 // 56 // Port Offsets and Base in PCI Space 57 // 58 #define SVGA_LEGACY_BASE_PORT 0x4560 59 #define SVGA_INDEX_PORT 0x0 60 #define SVGA_VALUE_PORT 0x1 61 #define SVGA_BIOS_PORT 0x2 62 #define SVGA_NUM_PORTS 0x3 63 #define SVGA_IRQSTATUS_PORT 0x8 64 65 // 66 // Invalid display ID 67 // 68 #define SVGA_INVALID_DISPLAY_ID 0xFFFFFFFF 69 70 // 71 // Global Maximums 72 // 73 #define SVGA_MAX_BITS_PER_PIXEL 32 74 #define SVGA_MAX_DEPTH 24 75 #define SVGA_MAX_DISPLAYS 10 76 #define SVGA_MAX_PSEUDOCOLOR_DEPTH 8 77 #define SVGA_MAX_PSEUDOCOLORS (1 << SVGA_MAX_PSEUDOCOLOR_DEPTH) 78 #define SVGA_NUM_PALETTE_REGS (3 * SVGA_MAX_PSEUDOCOLORS) 79 #define SVGA_FB_MAX_SIZE \ 80 ((((SVGA_MAX_WIDTH * SVGA_MAX_HEIGHT * \ 81 SVGA_MAX_BITS_PER_PIXEL / 8) >> PAGE_SHIFT) + 1) << PAGE_SHIFT) 82 83 // 84 // Card Registers 85 // 86 typedef enum _VMX_SVGA_REGISTERS 87 { 88 SVGA_REG_ID, 89 SVGA_REG_ENABLE, 90 SVGA_REG_WIDTH, 91 SVGA_REG_HEIGHT, 92 SVGA_REG_MAX_WIDTH, 93 SVGA_REG_MAX_HEIGHT, 94 SVGA_REG_DEPTH, 95 SVGA_REG_BITS_PER_PIXEL, 96 SVGA_REG_PSEUDOCOLOR, 97 SVGA_REG_RED_MASK, 98 SVGA_REG_GREEN_MASK, 99 SVGA_REG_BLUE_MASK, 100 SVGA_REG_BYTES_PER_LINE, 101 SVGA_REG_FB_START, 102 SVGA_REG_FB_OFFSET, 103 SVGA_REG_VRAM_SIZE, 104 SVGA_REG_FB_SIZE, 105 SVGA_REG_CAPABILITIES, 106 SVGA_REG_MEM_START, 107 SVGA_REG_MEM_SIZE, 108 SVGA_REG_CONFIG_DONE, 109 SVGA_REG_SYNC, 110 SVGA_REG_BUSY, 111 SVGA_REG_GUEST_ID, 112 SVGA_REG_CURSOR_ID, 113 SVGA_REG_CURSOR_X, 114 SVGA_REG_CURSOR_Y, 115 SVGA_REG_CURSOR_ON, 116 SVGA_REG_HOST_BITS_PER_PIXEL, 117 SVGA_REG_SCRATCH_SIZE, 118 SVGA_REG_MEM_REGS, 119 SVGA_REG_NUM_DISPLAYS, 120 SVGA_REG_PITCHLOCK, 121 SVGA_REG_IRQMASK, 122 SVGA_REG_NUM_GUEST_DISPLAYS, 123 SVGA_REG_DISPLAY_ID, 124 SVGA_REG_DISPLAY_IS_PRIMARY, 125 SVGA_REG_DISPLAY_POSITION_X, 126 SVGA_REG_DISPLAY_POSITION_Y, 127 SVGA_REG_DISPLAY_WIDTH, 128 SVGA_REG_DISPLAY_HEIGHT, 129 SVGA_REG_TOP, 130 } VMX_SVGA_REGISTERS; 131