vboxioctl.h revision 35396ee506ef68dd1c161f1ef2c3c0b68a146ff2
/** @file
* VBoxGraphics - VirtualBox Win 2000/XP guest video driver.
*
* Display driver entry points.
*/
/*
* Copyright (C) 2006-2007 Sun Microsystems, Inc.
*
* This file is part of VirtualBox Open Source Edition (OSE), as
* available from http://www.virtualbox.org. This file is free software;
* General Public License (GPL) as published by the Free Software
* Foundation, in version 2 as it comes in the "COPYING" file of the
* VirtualBox OSE distribution. VirtualBox OSE is distributed in the
* hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
*
* Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
* Clara, CA 95054 USA or visit http://www.sun.com if you need
* additional information or have any questions.
*/
#ifndef __VBOXIOCTL__H
#define __VBOXIOCTL__H
#include <VBox/VBoxGuest.h>
#ifdef VBOX_WITH_HGSMI
#include "VBoxHGSMI.h"
#endif /* VBOX_WITH_HGSMI */
#define IOCTL_VIDEO_INTERPRET_DISPLAY_MEMORY \
#define IOCTL_VIDEO_QUERY_DISPLAY_INFO \
/** Called by the display driver when it is ready to
* switch to VBVA operation mode.
* Successful return means that VBVA can be used and
* output buffer contains VBVAENABLERESULT data.
* An error means that VBVA can not be used
* (disabled or not supported by the host).
*/
#define IOCTL_VIDEO_VBVA_ENABLE \
#ifdef VBOX_WITH_HGSMI
#define IOCTL_VIDEO_QUERY_HGSMI_INFO \
#define IOCTL_VIDEO_HGSMI_QUERY_CALLBACKS \
#define IOCTL_VIDEO_HGSMI_HANDLER_ENABLE \
#define IOCTL_VIDEO_HGSMI_HANDLER_DISABLE \
#endif /* VBOX_WITH_HGSMI */
#pragma pack(1)
/**
* Data returned by IOCTL_VIDEO_VBVA_ENABLE.
*
*/
typedef struct _VBVAENABLERESULT
{
/** Pointer to VBVAMemory part of VMMDev memory region. */
/** Called to force the host to process VBVA memory,
* when there is no more free space in VBVA memory.
* Normally this never happens.
*
* The other purpose is to perform a synchronous command.
* But the goal is to have no such commands at all.
*/
/** Pointer required by the pfnFlush callback. */
void *pvFlush;
/**
* Data returned by IOCTL_VIDEO_QUERY_DISPLAY_INFO.
*
*/
typedef struct _QUERYDISPLAYINFORESULT
{
/* Device index (0 for primary) */
/* Size of the display information area. */
#ifdef VBOX_WITH_HGSMI
/**
* Data returned by IOCTL_VIDEO_QUERY_HGSMI_INFO.
*
*/
typedef struct _QUERYHGSMIRESULT
{
/* Device index (0 for primary) */
/* Flags. Currently none are defined and the field must be initialized to 0. */
/* Describes VRAM chunk for this display device. */
/* Size of the display information area. */
/* Minimum size of the VBAV buffer. */
/**
* Data returned by IOCTL_VIDEO_HGSMI_QUERY_CALLBACKS.
*
*/
typedef struct _HGSMIQUERYCALLBACKS
{
/**
* Data returned by IOCTL_VIDEO_HGSMI_HANDLER_ENABLE.
*
*/
typedef struct _HGSMIHANDLERENABLE
{
/**
* Data passed by IOCTL_VIDEO_HGSMI_HANDLER_DISABLE.
*
*/
typedef struct _HGSMIHANDLERDISABLE
{
#endif /* VBOX_WITH_HGSMI */
#pragma pack()
#endif /* __VBOXIOCTL__H */