ae94ad7e769e467419ab99cab5403bdb39bc544fvboxsync/** @file
ae94ad7e769e467419ab99cab5403bdb39bc544fvboxsync * VMware SVGA device
ae94ad7e769e467419ab99cab5403bdb39bc544fvboxsync */
ae94ad7e769e467419ab99cab5403bdb39bc544fvboxsync/*
ae94ad7e769e467419ab99cab5403bdb39bc544fvboxsync * Copyright (C) 2013 Oracle Corporation
ae94ad7e769e467419ab99cab5403bdb39bc544fvboxsync *
ae94ad7e769e467419ab99cab5403bdb39bc544fvboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
ae94ad7e769e467419ab99cab5403bdb39bc544fvboxsync * available from http://www.virtualbox.org. This file is free software;
ae94ad7e769e467419ab99cab5403bdb39bc544fvboxsync * you can redistribute it and/or modify it under the terms of the GNU
ae94ad7e769e467419ab99cab5403bdb39bc544fvboxsync * General Public License (GPL) as published by the Free Software
ae94ad7e769e467419ab99cab5403bdb39bc544fvboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
ae94ad7e769e467419ab99cab5403bdb39bc544fvboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
ae94ad7e769e467419ab99cab5403bdb39bc544fvboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
ae94ad7e769e467419ab99cab5403bdb39bc544fvboxsync */
9dce23b441451a2f5b348209c8c4cc286258f7fcvboxsync#ifndef __DEVVGA_SVGA_H__
9dce23b441451a2f5b348209c8c4cc286258f7fcvboxsync#define __DEVVGA_SVGA_H__
ae94ad7e769e467419ab99cab5403bdb39bc544fvboxsync
ae94ad7e769e467419ab99cab5403bdb39bc544fvboxsync
ae94ad7e769e467419ab99cab5403bdb39bc544fvboxsync/** Default FIFO size. */
ae94ad7e769e467419ab99cab5403bdb39bc544fvboxsync#define VMSVGA_FIFO_SIZE 0x20000
ae94ad7e769e467419ab99cab5403bdb39bc544fvboxsync/** Default scratch region size. */
ae94ad7e769e467419ab99cab5403bdb39bc544fvboxsync#define VMSVGA_SCRATCH_SIZE 0x100
ae94ad7e769e467419ab99cab5403bdb39bc544fvboxsync/** Surface memory available to the guest. */
ae94ad7e769e467419ab99cab5403bdb39bc544fvboxsync#define VMSVGA_SURFACE_SIZE (512*1024*1024)
ae94ad7e769e467419ab99cab5403bdb39bc544fvboxsync/** Maximum GMR pages. */
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define VMSVGA_MAX_GMR_PAGES 0x100000
ae94ad7e769e467419ab99cab5403bdb39bc544fvboxsync/** Maximum nr of GMR ids. */
ae94ad7e769e467419ab99cab5403bdb39bc544fvboxsync#define VMSVGA_MAX_GMR_IDS 0x100
ae94ad7e769e467419ab99cab5403bdb39bc544fvboxsync/** Size of the region to backup when switching into svga mode. */
ae94ad7e769e467419ab99cab5403bdb39bc544fvboxsync#define VMSVGA_FRAMEBUFFER_BACKUP_SIZE (32*1024)
ae94ad7e769e467419ab99cab5403bdb39bc544fvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync#define VMSVGA_VAL_UNINITIALIZED (unsigned)-1
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
ae94ad7e769e467419ab99cab5403bdb39bc544fvboxsync/* u32ActionFlags */
ae94ad7e769e467419ab99cab5403bdb39bc544fvboxsync#define VMSVGA_ACTION_CHANGEMODE_BIT 0
ae94ad7e769e467419ab99cab5403bdb39bc544fvboxsync#define VMSVGA_ACTION_CHANGEMODE RT_BIT(VMSVGA_ACTION_CHANGEMODE_BIT)
ae94ad7e769e467419ab99cab5403bdb39bc544fvboxsync
ae94ad7e769e467419ab99cab5403bdb39bc544fvboxsyncDECLCALLBACK(int) vmsvgaR3IORegionMap(PPCIDEVICE pPciDev, int iRegion, RTGCPHYS GCPhysAddress, uint32_t cb, PCIADDRESSSPACE enmType);
ae94ad7e769e467419ab99cab5403bdb39bc544fvboxsync
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncDECLCALLBACK(void) vmsvgaPortSetViewPort(PPDMIDISPLAYPORT pInterface, uint32_t uScreenId, uint32_t x, uint32_t y, uint32_t cx, uint32_t cy);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsync
ae94ad7e769e467419ab99cab5403bdb39bc544fvboxsyncint vmsvgaInit(PPDMDEVINS pDevIns);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncint vmsvgaReset(PPDMDEVINS pDevIns);
ae94ad7e769e467419ab99cab5403bdb39bc544fvboxsyncint vmsvgaDestruct(PPDMDEVINS pDevIns);
ae94ad7e769e467419ab99cab5403bdb39bc544fvboxsyncint vmsvgaLoadExec(PPDMDEVINS pDevIns, PSSMHANDLE pSSM, uint32_t uVersion, uint32_t uPass);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncint vmsvgaLoadDone(PPDMDEVINS pDevIns);
ae94ad7e769e467419ab99cab5403bdb39bc544fvboxsyncint vmsvgaSaveExec(PPDMDEVINS pDevIns, PSSMHANDLE pSSM);
ae94ad7e769e467419ab99cab5403bdb39bc544fvboxsyncDECLCALLBACK(void) vmsvgaR3PowerOn(PPDMDEVINS pDevIns);
3194da424708abdd288b28d96892b3a5f3f7df0bvboxsyncDECLCALLBACK(void) vmsvgaR3PowerOff(PPDMDEVINS pDevIns);
ae94ad7e769e467419ab99cab5403bdb39bc544fvboxsync
9dce23b441451a2f5b348209c8c4cc286258f7fcvboxsync#endif /* __DEVVGA_SVGA_H__ */