4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/** @file
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Graphics Output Protocol functions for the QEMU video controller.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Copyright (c) 2007 - 2010, Intel Corporation. All rights reserved.<BR>
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync This program and the accompanying materials
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync are licensed and made available under the terms and conditions of the BSD License
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync which accompanies this distribution. The full text of the license may be found at
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync http://opensource.org/licenses/bsd-license.php
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#include "Qemu.h"
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Generic Attribute Controller Register Settings
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUINT8 AttributeController[21] = {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x08, 0x09, 0x0A, 0x0B, 0x0C, 0x0D, 0x0E, 0x0F,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x41, 0x00, 0x0F, 0x00, 0x00
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync};
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Generic Graphics Controller Register Settings
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUINT8 GraphicsController[9] = {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x00, 0x00, 0x00, 0x00, 0x00, 0x40, 0x05, 0x0F, 0xFF
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync};
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// 640 x 480 x 256 color @ 60 Hertz
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUINT8 Crtc_640_480_256_60[28] = {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x5d, 0x4f, 0x50, 0x82, 0x53, 0x9f, 0x00, 0x3e,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0xe1, 0x83, 0xdf, 0x50, 0x00, 0xe7, 0x04, 0xe3,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0xff, 0x00, 0x00, 0x22
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync};
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUINT8 Crtc_640_480_32bpp_60[28] = {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x5d, 0x4f, 0x50, 0x82, 0x53, 0x9f, 0x00, 0x3e,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x00, 0x40, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0xe1, 0x83, 0xdf, 0x40, 0x00, 0xe7, 0x04, 0xe3,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0xff, 0x00, 0x00, 0x32
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync};
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUINT16 Seq_640_480_256_60[15] = {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x0100, 0x0101, 0x0f02, 0x0003, 0x0e04, 0x1107, 0x0008, 0x4a0b,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x5b0c, 0x450d, 0x7e0e, 0x2b1b, 0x2f1c, 0x301d, 0x331e
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync};
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUINT16 Seq_640_480_32bpp_60[15] = {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x0100, 0x0101, 0x0f02, 0x0003, 0x0e04, 0x1907, 0x0008, 0x4a0b,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x5b0c, 0x450d, 0x7e0e, 0x2b1b, 0x2f1c, 0x301d, 0x331e
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync};
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// 800 x 600 x 256 color @ 60 Hertz
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUINT8 Crtc_800_600_256_60[28] = {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x7F, 0x63, 0x64, 0x80, 0x6B, 0x1B, 0x72, 0xF0,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x58, 0x8C, 0x57, 0x64, 0x00, 0x5F, 0x91, 0xE3,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0xFF, 0x00, 0x00, 0x22
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync};
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUINT8 Crtc_800_600_32bpp_60[28] = {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x7F, 0x63, 0x64, 0x80, 0x6B, 0x1B, 0x72, 0xF0,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x58, 0x8C, 0x57, 0x90, 0x00, 0x5F, 0x91, 0xE3,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0xFF, 0x00, 0x00, 0x32
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync};
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUINT16 Seq_800_600_256_60[15] = {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x0100, 0x0101, 0x0f02, 0x0003, 0x0e04, 0x1107, 0x0008, 0x4a0b,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x5b0c, 0x450d, 0x510e, 0x2b1b, 0x2f1c, 0x301d, 0x3a1e
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync};
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUINT16 Seq_800_600_32bpp_60[15] = {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x0100, 0x0101, 0x0f02, 0x0003, 0x0e04, 0x1907, 0x0008, 0x4a0b,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x5b0c, 0x450d, 0x510e, 0x2b1b, 0x2f1c, 0x301d, 0x3a1e
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync};
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUINT8 Crtc_960_720_32bpp_60[28] = {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0xA3, 0x77, 0x80, 0x86, 0x85, 0x96, 0x24, 0xFD,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x02, 0x88, 0xCF, 0xe0, 0x00, 0x00, 0x64, 0xE3,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0xFF, 0x4A, 0x00, 0x32
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync};
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUINT16 Seq_960_720_32bpp_60[15] = {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x0100, 0x0101, 0x0f02, 0x0003, 0x0e04, 0x1907, 0x0008, 0x4a0b,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x5b0c, 0x450d, 0x760e, 0x2b1b, 0x2f1c, 0x301d, 0x341e
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync};
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// 1024 x 768 x 256 color @ 60 Hertz
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUINT8 Crtc_1024_768_256_60[28] = {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0xA3, 0x7F, 0x80, 0x86, 0x85, 0x96, 0x24, 0xFD,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x02, 0x88, 0xFF, 0x80, 0x00, 0x00, 0x24, 0xE3,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0xFF, 0x4A, 0x00, 0x22
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync};
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUINT16 Seq_1024_768_256_60[15] = {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x0100, 0x0101, 0x0f02, 0x0003, 0x0e04, 0x1107, 0x0008, 0x4a0b,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x5b0c, 0x450d, 0x760e, 0x2b1b, 0x2f1c, 0x301d, 0x341e
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync};
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// 1024 x 768 x 24-bit color @ 60 Hertz
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync//
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUINT8 Crtc_1024_768_24bpp_60[28] = {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0xA3, 0x7F, 0x80, 0x86, 0x85, 0x96, 0x24, 0xFD,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x02, 0x88, 0xFF, 0x80, 0x00, 0x00, 0x24, 0xE3,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0xFF, 0x4A, 0x00, 0x32
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync};
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUINT16 Seq_1024_768_24bpp_60[15] = {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x0100, 0x0101, 0x0f02, 0x0003, 0x0e04, 0x1507, 0x0008, 0x4a0b,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x5b0c, 0x450d, 0x760e, 0x2b1b, 0x2f1c, 0x301d, 0x341e
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync};
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUINT8 Crtc_1024_768_32bpp_60[28] = {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0xA3, 0x7F, 0x80, 0x86, 0x85, 0x96, 0x24, 0xFD,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x00, 0x60, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x02, 0x88, 0xFF, 0xe0, 0x00, 0x00, 0x64, 0xE3,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0xFF, 0x4A, 0x00, 0x32
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync};
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncUINT16 Seq_1024_768_32bpp_60[15] = {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x0100, 0x0101, 0x0f02, 0x0003, 0x0e04, 0x1907, 0x0008, 0x4a0b,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync 0x5b0c, 0x450d, 0x760e, 0x2b1b, 0x2f1c, 0x301d, 0x341e
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync};
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/// Table of supported video modes
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync///
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncQEMU_VIDEO_VIDEO_MODES QemuVideoVideoModes[] = {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// { 640, 480, 8, 60, Crtc_640_480_256_60, Seq_640_480_256_60, 0xe3 },
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// { 800, 600, 8, 60, Crtc_800_600_256_60, Seq_800_600_256_60, 0xef },
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync { 640, 480, 32, 60, Crtc_640_480_32bpp_60, Seq_640_480_32bpp_60, 0xef },
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync { 800, 600, 32, 60, Crtc_800_600_32bpp_60, Seq_800_600_32bpp_60, 0xef },
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// { 1024, 768, 8, 60, Crtc_1024_768_256_60, Seq_1024_768_256_60, 0xef }
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync { 1024, 768, 24, 60, Crtc_1024_768_24bpp_60, Seq_1024_768_24bpp_60, 0xef }
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// { 1024, 768, 32, 60, Crtc_1024_768_32bpp_60, Seq_1024_768_32bpp_60, 0xef }
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync// { 960, 720, 32, 60, Crtc_960_720_32bpp_60, Seq_1024_768_32bpp_60, 0xef }
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync};
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync#define QEMU_VIDEO_MODE_COUNT \
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync (sizeof (QemuVideoVideoModes) / sizeof (QemuVideoVideoModes[0]))
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync/**
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Construct the valid video modes for QemuVideo.
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync**/
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncEFI_STATUS
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsyncQemuVideoVideoModeSetup (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync QEMU_VIDEO_PRIVATE_DATA *Private
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync )
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync{
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync UINT32 Index;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync QEMU_VIDEO_MODE_DATA *ModeData;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync QEMU_VIDEO_VIDEO_MODES *VideoMode;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync //
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync // Setup Video Modes
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync //
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Private->ModeData = AllocatePool (
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync sizeof (Private->ModeData[0]) * QEMU_VIDEO_MODE_COUNT
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync );
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ModeData = Private->ModeData;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync VideoMode = &QemuVideoVideoModes[0];
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync for (Index = 0; Index < QEMU_VIDEO_MODE_COUNT; Index ++) {
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ModeData->ModeNumber = Index;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ModeData->HorizontalResolution = VideoMode->Width;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ModeData->VerticalResolution = VideoMode->Height;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ModeData->ColorDepth = VideoMode->ColorDepth;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ModeData->RefreshRate = VideoMode->RefreshRate;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync DEBUG ((EFI_D_INFO,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync "Adding Video Mode %d: %dx%d, %d-bit, %d Hz\n",
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ModeData->ModeNumber,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ModeData->HorizontalResolution,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ModeData->VerticalResolution,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ModeData->ColorDepth,
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ModeData->RefreshRate
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ));
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync ModeData ++ ;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync VideoMode ++;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync }
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync Private->MaxMode = QEMU_VIDEO_MODE_COUNT;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync return EFI_SUCCESS;
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync}
4fd606d1f5abe38e1f42c38de1d2e895166bd0f4vboxsync