HGSMIChSetup.h revision e637cb22e348f5665d5473dae55ed785aa7b6e9a
6537f381d2d9e7b4e2f7b29c3e7a3f13be036f2eas/** @file
6537f381d2d9e7b4e2f7b29c3e7a3f13be036f2eas * VBox Host Guest Shared Memory Interface (HGSMI), sHost/Guest shared part.
6537f381d2d9e7b4e2f7b29c3e7a3f13be036f2eas */
6537f381d2d9e7b4e2f7b29c3e7a3f13be036f2eas
6537f381d2d9e7b4e2f7b29c3e7a3f13be036f2eas/*
6537f381d2d9e7b4e2f7b29c3e7a3f13be036f2eas * Copyright (C) 2006-2009 Oracle Corporation
6537f381d2d9e7b4e2f7b29c3e7a3f13be036f2eas *
6537f381d2d9e7b4e2f7b29c3e7a3f13be036f2eas * This file is part of VirtualBox Open Source Edition (OSE), as
6537f381d2d9e7b4e2f7b29c3e7a3f13be036f2eas * available from http://www.virtualbox.org. This file is free software;
6537f381d2d9e7b4e2f7b29c3e7a3f13be036f2eas * you can redistribute it and/or modify it under the terms of the GNU
6537f381d2d9e7b4e2f7b29c3e7a3f13be036f2eas * General Public License (GPL) as published by the Free Software
6537f381d2d9e7b4e2f7b29c3e7a3f13be036f2eas * Foundation, in version 2 as it comes in the "COPYING" file of the
6537f381d2d9e7b4e2f7b29c3e7a3f13be036f2eas * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
6537f381d2d9e7b4e2f7b29c3e7a3f13be036f2eas * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
6537f381d2d9e7b4e2f7b29c3e7a3f13be036f2eas *
6537f381d2d9e7b4e2f7b29c3e7a3f13be036f2eas * The contents of this file may alternatively be used under the terms
6537f381d2d9e7b4e2f7b29c3e7a3f13be036f2eas * of the Common Development and Distribution License Version 1.0
6537f381d2d9e7b4e2f7b29c3e7a3f13be036f2eas * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
6537f381d2d9e7b4e2f7b29c3e7a3f13be036f2eas * VirtualBox OSE distribution, in which case the provisions of the
6537f381d2d9e7b4e2f7b29c3e7a3f13be036f2eas * CDDL are applicable instead of those of the GPL.
6537f381d2d9e7b4e2f7b29c3e7a3f13be036f2eas *
6537f381d2d9e7b4e2f7b29c3e7a3f13be036f2eas * You may elect to license modified versions of this file under the
6537f381d2d9e7b4e2f7b29c3e7a3f13be036f2eas * terms and conditions of either the GPL or the CDDL or both.
6537f381d2d9e7b4e2f7b29c3e7a3f13be036f2eas */
6537f381d2d9e7b4e2f7b29c3e7a3f13be036f2eas
6537f381d2d9e7b4e2f7b29c3e7a3f13be036f2eas#ifndef ___VBox_HGSMI_HGSMIChSetup_h
6537f381d2d9e7b4e2f7b29c3e7a3f13be036f2eas#define ___VBox_HGSMI_HGSMIChSetup_h
6537f381d2d9e7b4e2f7b29c3e7a3f13be036f2eas
6537f381d2d9e7b4e2f7b29c3e7a3f13be036f2eas#include <VBox/HGSMI/HGSMI.h>
6537f381d2d9e7b4e2f7b29c3e7a3f13be036f2eas
6537f381d2d9e7b4e2f7b29c3e7a3f13be036f2eas/* HGSMI setup and configuration channel commands and data structures. */
6537f381d2d9e7b4e2f7b29c3e7a3f13be036f2eas#define HGSMI_CC_HOST_FLAGS_LOCATION 0 /* Tell the host the location of HGSMIHOSTFLAGS structure,
6537f381d2d9e7b4e2f7b29c3e7a3f13be036f2eas * where the host can write information about pending
6537f381d2d9e7b4e2f7b29c3e7a3f13be036f2eas * buffers, etc, and which can be quickly polled by
6537f381d2d9e7b4e2f7b29c3e7a3f13be036f2eas * the guest without a need to port IO.
6537f381d2d9e7b4e2f7b29c3e7a3f13be036f2eas */
6537f381d2d9e7b4e2f7b29c3e7a3f13be036f2eas
6537f381d2d9e7b4e2f7b29c3e7a3f13be036f2eastypedef struct _HGSMIBUFFERLOCATION
6537f381d2d9e7b4e2f7b29c3e7a3f13be036f2eas{
6537f381d2d9e7b4e2f7b29c3e7a3f13be036f2eas HGSMIOFFSET offLocation;
6537f381d2d9e7b4e2f7b29c3e7a3f13be036f2eas HGSMISIZE cbLocation;
6537f381d2d9e7b4e2f7b29c3e7a3f13be036f2eas} HGSMIBUFFERLOCATION;
6537f381d2d9e7b4e2f7b29c3e7a3f13be036f2easAssertCompileSize(HGSMIBUFFERLOCATION, 8);
6537f381d2d9e7b4e2f7b29c3e7a3f13be036f2eas
6537f381d2d9e7b4e2f7b29c3e7a3f13be036f2eas/* HGSMI setup and configuration data structures. */
6537f381d2d9e7b4e2f7b29c3e7a3f13be036f2eas#define HGSMIHOSTFLAGS_COMMANDS_PENDING 0x1
6537f381d2d9e7b4e2f7b29c3e7a3f13be036f2eas#define HGSMIHOSTFLAGS_IRQ 0x2
#ifdef VBOX_WITH_WDDM
/* one or more guest commands is completed */
# define HGSMIHOSTFLAGS_GCOMMAND_COMPLETED 0x4
# define HGSMIHOSTFLAGS_WATCHDOG 0x8
#endif
#define HGSMIHOSTFLAGS_VSYNC 0x10
typedef struct _HGSMIHOSTFLAGS
{
uint32_t u32HostFlags;
uint32_t au32Reserved[3];
} HGSMIHOSTFLAGS;
AssertCompileSize(HGSMIHOSTFLAGS, 16);
#endif