1632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz/********************************************************** 2632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz * Copyright 2007-2009 VMware, Inc. All rights reserved. 3632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz * 4632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz * Permission is hereby granted, free of charge, to any person 5632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz * obtaining a copy of this software and associated documentation 6632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz * files (the "Software"), to deal in the Software without 7632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz * restriction, including without limitation the rights to use, copy, 8632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz * modify, merge, publish, distribute, sublicense, and/or sell copies 9632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz * of the Software, and to permit persons to whom the Software is 10632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz * furnished to do so, subject to the following conditions: 11632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz * 12632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz * The above copyright notice and this permission notice shall be 13632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz * included in all copies or substantial portions of the Software. 14632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz * 15632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 16632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 17632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 18632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS 19632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz * BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN 20632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 21632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz * SOFTWARE. 23632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz * 24632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz **********************************************************/ 25632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz 26632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz/* 27632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz * svga_escape.h -- 28632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz * 29632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz * Definitions for our own (vendor-specific) SVGA Escape commands. 30632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz */ 31632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz 32632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz#ifndef _SVGA_ESCAPE_H_ 33632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz#define _SVGA_ESCAPE_H_ 34632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz 35632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz 36632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz/* 37632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz * Namespace IDs for the escape command 38632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz */ 39632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz 40632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz#define SVGA_ESCAPE_NSID_VMWARE 0x00000000 41632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz#define SVGA_ESCAPE_NSID_DEVEL 0xFFFFFFFF 42632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz 43632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz 44632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz/* 45632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz * Within SVGA_ESCAPE_NSID_VMWARE, we multiplex commands according to 46632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz * the first DWORD of escape data (after the nsID and size). As a 47632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz * guideline we're using the high word and low word as a major and 48632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz * minor command number, respectively. 49632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz * 50632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz * Major command number allocation: 51632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz * 52632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz * 0000: Reserved 53632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz * 0001: SVGA_ESCAPE_VMWARE_LOG (svga_binary_logger.h) 54632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz * 0002: SVGA_ESCAPE_VMWARE_VIDEO (svga_overlay.h) 55632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz * 0003: SVGA_ESCAPE_VMWARE_HINT (svga_escape.h) 56632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz */ 57632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz 58632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz#define SVGA_ESCAPE_VMWARE_MAJOR_MASK 0xFFFF0000 59632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz 60632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz 61632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz/* 62632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz * SVGA Hint commands. 63632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz * 64632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz * These escapes let the SVGA driver provide optional information to 65632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz * he host about the state of the guest or guest applications. The 66632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz * host can use these hints to make user interface or performance 67632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz * decisions. 68632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz * 69632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz * Notes: 70632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz * 71632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz * - SVGA_ESCAPE_VMWARE_HINT_FULLSCREEN is deprecated for guests 72632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz * that use the SVGA Screen Object extension. Instead of sending 73632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz * this escape, use the SVGA_SCREEN_FULLSCREEN_HINT flag on your 74632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz * Screen Object. 75632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz */ 76632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz 77632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz#define SVGA_ESCAPE_VMWARE_HINT 0x00030000 788d3713ea9ef305ec89b265633dcfb977885adf66Jakob Bornecrantz#define SVGA_ESCAPE_VMWARE_HINT_FULLSCREEN 0x00030001 /* Deprecated */ 79632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz 80632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantztypedef 81632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantzstruct { 82632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz uint32 command; 83632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz uint32 fullscreen; 84632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz struct { 85632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz int32 x, y; 86632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz } monitorPosition; 87632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz} SVGAEscapeHintFullscreen; 88632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz 89632f61178d0473861ba77e774bb654b37bc7ecccJakob Bornecrantz#endif /* _SVGA_ESCAPE_H_ */ 90