VirtualBox

source: vbox/trunk/src/VBox/Additions/common/include/vboxioctl.h@ 1207

Last change on this file since 1207 was 1207, checked in by vboxsync, 18 years ago

Cleaned up EOL style and uppercase names

  • Property svn:eol-style set to native
File size: 2.6 KB
Line 
1/** @file
2 *
3 * VBoxGuest -- VirtualBox Win 2000/XP guest video driver:
4 * Display driver entry points
5 */
6
7/*
8 * Copyright (C) 2006 InnoTek Systemberatung GmbH
9 *
10 * This file is part of VirtualBox Open Source Edition (OSE), as
11 * available from http://www.virtualbox.org. This file is free software;
12 * you can redistribute it and/or modify it under the terms of the GNU
13 * General Public License as published by the Free Software Foundation,
14 * in version 2 as it comes in the "COPYING" file of the VirtualBox OSE
15 * distribution. VirtualBox OSE is distributed in the hope that it will
16 * be useful, but WITHOUT ANY WARRANTY of any kind.
17 *
18 * If you received this file as part of a commercial VirtualBox
19 * distribution, then only the terms of your commercial VirtualBox
20 * license agreement apply instead of the previous paragraph.
21 */
22
23#ifndef __VBOXIOCTL__H
24#define __VBOXIOCTL__H
25
26#include <VBox/VBoxGuest.h>
27
28#ifndef __WINs__
29/* These appear to be standard Windows ddk macros */
30#define FILE_DEVICE_VIDEO 0x23
31#define FILE_ANY_ACCESS 0
32#endif /* not __WIN__ */
33
34/** Called by the display driver when it is ready to
35 * switch to VBVA operation mode.
36 * Successful return means that VBVA can be used and
37 * output buffer contains VBVAENABLERESULT data.
38 * An error means that VBVA can not be used
39 * (disabled or not supported by the host).
40 */
41#define IOCTL_VIDEO_VBVA_ENABLE \
42 CTL_CODE(FILE_DEVICE_VIDEO, 0x400, METHOD_BUFFERED, FILE_ANY_ACCESS, \
43 0)
44
45#define IOCTL_VIDEO_VBVA_PLACE \
46 CTL_CODE(FILE_DEVICE_VIDEO, 0x401, METHOD_BUFFERED, FILE_ANY_ACCESS, \
47 sizeof(VBVACMDINFO))
48
49#pragma pack(1)
50/**
51 * Data returned by IOCTL_VIDEO_VBVA_ENABLE.
52 *
53 */
54typedef struct _VBVAENABLERESULT
55{
56 /** Pointer to VBVAMemory part of VMMDev memory region. */
57 VBVAMEMORY *pVbvaMemory;
58
59 /** Called to force the host to process VBVA memory,
60 * when there is no more free space in VBVA memory.
61 * Normally this never happens.
62 *
63 * The other purpose is to perform a synchronous command.
64 * But the goal is to have no such commands at all.
65 */
66 DECLCALLBACKMEMBER(void, pfnFlush) (void *pvFlush);
67
68 /** Pointer required by the pfnFlush callback. */
69 void *pvFlush;
70
71} VBVAENABLERESULT;
72
73
74/**
75 * Structure used to pass information about a VBVA command to the
76 * Linux kernel module. We need this because Linux IOCTLs are not
77 * as well suited as Windows ones to variable data sizes.
78 */
79typedef struct _VBVACMDINFO
80{
81 /** Size of the command structure. */
82 uint32_t u32Size;
83 /** Pointer to the structure data (in userspace) */
84 void *pData;
85} VBVACMDINFO;
86#pragma pack()
87
88#endif /* __VBOXIOCTL__H */
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette