Serenity Operating System
at master 61 lines 1.5 kB view raw
1/* 2 * Copyright (c) 2022, Liav A. <liavalb@hotmail.co.il> 3 * 4 * SPDX-License-Identifier: BSD-2-Clause 5 */ 6 7#pragma once 8 9#include <AK/Types.h> 10 11namespace Kernel { 12 13static constexpr size_t vmware_svga_version_2_id = (0x900000UL << 8 | (2)); 14 15enum class VMWareDisplayRegistersOffset { 16 ID = 0, 17 ENABLE = 1, 18 WIDTH = 2, 19 HEIGHT = 3, 20 MAX_WIDTH = 4, 21 MAX_HEIGHT = 5, 22 DEPTH = 6, 23 BITS_PER_PIXEL = 7, /* Current bpp in the guest */ 24 PSEUDOCOLOR = 8, 25 RED_MASK = 9, 26 GREEN_MASK = 10, 27 BLUE_MASK = 11, 28 BYTES_PER_LINE = 12, 29 FB_OFFSET = 14, 30 VRAM_SIZE = 15, 31 FB_SIZE = 16, 32 33 CAPABILITIES = 17, 34 MEM_SIZE = 19, 35 CONFIG_DONE = 20, /* Set when memory area configured */ 36 SYNC = 21, /* See "FIFO Synchronization Registers" */ 37 BUSY = 22, /* See "FIFO Synchronization Registers" */ 38 SCRATCH_SIZE = 29, /* Number of scratch registers */ 39 MEM_REGS = 30, /* Number of FIFO registers */ 40 PITCHLOCK = 32, /* Fixed pitch for all modes */ 41 IRQMASK = 33, /* Interrupt mask */ 42 43 GMR_ID = 41, 44 GMR_DESCRIPTOR = 42, 45 GMR_MAX_IDS = 43, 46 GMR_MAX_DESCRIPTOR_LENGTH = 44, 47 48 TRACES = 45, /* Enable trace-based updates even when FIFO is on */ 49 GMRS_MAX_PAGES = 46, /* Maximum number of 4KB pages for all GMRs */ 50 MEMORY_SIZE = 47, /* Total dedicated device memory excluding FIFO */ 51}; 52 53struct [[gnu::packed]] VMWareDisplayFIFORegisters { 54 u32 start; 55 u32 size; 56 u32 next_command; 57 u32 stop; 58 u32 commands[]; 59}; 60 61}