VirtualBox

source: vbox/trunk/include/VBox/VBoxGuest16.h@ 54506

Last change on this file since 54506 was 54506, checked in by vboxsync, 10 years ago

os2/VBoxMouse: Use VBOXGUEST_IOCTL_CTL_FILTER_MASK and VBOXGUEST_IOCTL_SET_MOUSE_STATUS instead of talking directly to the host.

  • Property svn:eol-style set to native
File size: 3.6 KB
Line 
1/** @file
2 * VBoxGuest - VirtualBox Guest Additions Driver Interface, 16-bit (OS/2) header.
3 */
4
5/*
6 * Copyright (C) 2006-2010 Oracle Corporation
7 *
8 * This file is part of VirtualBox Open Source Edition (OSE), as
9 * available from http://www.virtualbox.org. This file is free software;
10 * you can redistribute it and/or modify it under the terms of the GNU
11 * General Public License (GPL) as published by the Free Software
12 * Foundation, in version 2 as it comes in the "COPYING" file of the
13 * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
14 * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
15 *
16 * The contents of this file may alternatively be used under the terms
17 * of the Common Development and Distribution License Version 1.0
18 * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
19 * VirtualBox OSE distribution, in which case the provisions of the
20 * CDDL are applicable instead of those of the GPL.
21 *
22 * You may elect to license modified versions of this file under the
23 * terms and conditions of either the GPL or the CDDL or both.
24 */
25
26#ifndef ___VBox_VBoxGuest16_h
27#define ___VBox_VBoxGuest16_h
28
29#define RT_BIT(bit) (1UL << (bit))
30
31#define VBOXGUEST_DEVICE_NAME "vboxgst$"
32
33/* aka VBOXGUESTOS2IDCCONNECT */
34typedef struct VBGOS2IDC
35{
36 unsigned long u32Version;
37 unsigned long u32Session;
38 unsigned long pfnServiceEP;
39 short (__cdecl __far *fpfnServiceEP)(unsigned long u32Session, unsigned short iFunction,
40 void __far *fpvData, unsigned short cbData, unsigned short __far *pcbDataReturned);
41 unsigned long fpfnServiceAsmEP;
42} VBGOS2IDC;
43typedef VBGOS2IDC *PVBGOS2IDC;
44
45#define VBOXGUEST_IOCTL_WAITEVENT 2
46#define VBOXGUEST_IOCTL_VMMREQUEST 3
47#define VBOXGUEST_IOCTL_CTL_FILTER_MASK 4
48#define VBOXGUEST_IOCTL_SET_MOUSE_STATUS 10
49#define VBOXGUEST_IOCTL_OS2_IDC_DISCONNECT 48
50
51#define VBOXGUEST_WAITEVENT_OK 0
52#define VBOXGUEST_WAITEVENT_TIMEOUT 1
53#define VBOXGUEST_WAITEVENT_INTERRUPTED 2
54#define VBOXGUEST_WAITEVENT_ERROR 3
55
56typedef struct _VBoxGuestWaitEventInfo
57{
58 unsigned long u32TimeoutIn;
59 unsigned long u32EventMaskIn;
60 unsigned long u32Result;
61 unsigned long u32EventFlagsOut;
62} VBoxGuestWaitEventInfo;
63
64
65#define VMMDEV_REQUEST_HEADER_VERSION (0x10001UL)
66typedef struct
67{
68 unsigned long size;
69 unsigned long version;
70 unsigned long requestType;
71 signed long rc;
72 unsigned long reserved1;
73 unsigned long reserved2;
74} VMMDevRequestHeader;
75
76#define VMMDevReq_GetMouseStatus 1
77#define VMMDevReq_SetMouseStatus 2
78#define VMMDevReq_CtlGuestFilterMask 42
79
80#define VMMDEV_MOUSE_GUEST_CAN_ABSOLUTE RT_BIT(0)
81#define VMMDEV_MOUSE_HOST_WANTS_ABSOLUTE RT_BIT(1)
82#define VMMDEV_MOUSE_GUEST_NEEDS_HOST_CURSOR RT_BIT(2)
83#define VMMDEV_MOUSE_HOST_CANNOT_HWPOINTER RT_BIT(3)
84
85typedef struct
86{
87 VMMDevRequestHeader header;
88 unsigned long mouseFeatures;
89 unsigned long pointerXPos;
90 unsigned long pointerYPos;
91} VMMDevReqMouseStatus;
92
93typedef struct VBoxGuestFilterMaskInfo
94{
95 unsigned long u32OrMask;
96 unsigned long u32NotMask;
97} VBoxGuestFilterMaskInfo;
98
99
100/* From VMMDev.h: */
101#define VMMDEV_VERSION 0x00010004UL
102
103#define VMMDEV_EVENT_MOUSE_CAPABILITIES_CHANGED RT_BIT(0)
104#define VMMDEV_EVENT_HGCM RT_BIT(1)
105#define VMMDEV_EVENT_DISPLAY_CHANGE_REQUEST RT_BIT(2)
106#define VMMDEV_EVENT_JUDGE_CREDENTIALS RT_BIT(3)
107#define VMMDEV_EVENT_RESTORED RT_BIT(4)
108
109#endif
110
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