mirror of https://github.com/acidanthera/audk.git
105 lines
3.4 KiB
C
105 lines
3.4 KiB
C
/** @file
|
|
|
|
Macro and enum definitions of a subset of port numbers, register identifiers
|
|
and values required for driving the VMWare SVGA virtual display adapter,
|
|
also implemented by Qemu.
|
|
|
|
This file's contents was extracted from file lib/vmware/svga_reg.h in commit
|
|
329dd537456f93a806841ec8a8213aed11395def of VMWare's vmware-svga repository:
|
|
git://git.code.sf.net/p/vmware-svga/git
|
|
|
|
|
|
Copyright 1998-2009 VMware, Inc. All rights reserved.
|
|
Portions Copyright 2017 Phil Dennis-Jordan <phil@philjordan.eu>
|
|
|
|
Permission is hereby granted, free of charge, to any person
|
|
obtaining a copy of this software and associated documentation
|
|
files (the "Software"), to deal in the Software without
|
|
restriction, including without limitation the rights to use, copy,
|
|
modify, merge, publish, distribute, sublicense, and/or sell copies
|
|
of the Software, and to permit persons to whom the Software is
|
|
furnished to do so, subject to the following conditions:
|
|
|
|
The above copyright notice and this permission notice shall be
|
|
included in all copies or substantial portions of the Software.
|
|
|
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
|
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
|
BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
|
|
ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
|
|
CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
SOFTWARE.
|
|
|
|
**/
|
|
|
|
#ifndef _VMWARE_SVGA_H_
|
|
#define _VMWARE_SVGA_H_
|
|
|
|
#include <Base.h>
|
|
|
|
//
|
|
// IDs for recognising the device
|
|
//
|
|
#define VMWARE_PCI_VENDOR_ID_VMWARE 0x15AD
|
|
#define VMWARE_PCI_DEVICE_ID_VMWARE_SVGA2 0x0405
|
|
|
|
//
|
|
// I/O port BAR offsets for register selection and read/write.
|
|
//
|
|
// The register index is written to the 32-bit index port, followed by a 32-bit
|
|
// read or write on the value port to read or set that register's contents.
|
|
//
|
|
#define VMWARE_SVGA_INDEX_PORT 0x0
|
|
#define VMWARE_SVGA_VALUE_PORT 0x1
|
|
|
|
//
|
|
// Some of the device's register indices for basic framebuffer functionality.
|
|
//
|
|
typedef enum {
|
|
VmwareSvgaRegId = 0,
|
|
VmwareSvgaRegEnable = 1,
|
|
VmwareSvgaRegWidth = 2,
|
|
VmwareSvgaRegHeight = 3,
|
|
VmwareSvgaRegMaxWidth = 4,
|
|
VmwareSvgaRegMaxHeight = 5,
|
|
|
|
VmwareSvgaRegBitsPerPixel = 7,
|
|
|
|
VmwareSvgaRegRedMask = 9,
|
|
VmwareSvgaRegGreenMask = 10,
|
|
VmwareSvgaRegBlueMask = 11,
|
|
VmwareSvgaRegBytesPerLine = 12,
|
|
|
|
VmwareSvgaRegFbOffset = 14,
|
|
|
|
VmwareSvgaRegFbSize = 16,
|
|
VmwareSvgaRegCapabilities = 17,
|
|
|
|
VmwareSvgaRegHostBitsPerPixel = 28,
|
|
} VMWARE_SVGA_REGISTER;
|
|
|
|
//
|
|
// Values used with VmwareSvgaRegId for sanity-checking the device and getting
|
|
// its version.
|
|
//
|
|
#define VMWARE_SVGA_MAGIC 0x900000U
|
|
#define VMWARE_SVGA_MAKE_ID(ver) (VMWARE_SVGA_MAGIC << 8 | (ver))
|
|
|
|
#define VMWARE_SVGA_VERSION_2 2
|
|
#define VMWARE_SVGA_ID_2 VMWARE_SVGA_MAKE_ID (VMWARE_SVGA_VERSION_2)
|
|
|
|
#define VMWARE_SVGA_VERSION_1 1
|
|
#define VMWARE_SVGA_ID_1 VMWARE_SVGA_MAKE_ID (VMWARE_SVGA_VERSION_1)
|
|
|
|
#define VMWARE_SVGA_VERSION_0 0
|
|
#define VMWARE_SVGA_ID_0 VMWARE_SVGA_MAKE_ID (VMWARE_SVGA_VERSION_0)
|
|
|
|
//
|
|
// One of the capability bits advertised by VmwareSvgaRegCapabilities.
|
|
//
|
|
#define VMWARE_SVGA_CAP_8BIT_EMULATION BIT8
|
|
|
|
#endif
|