VirtualBox

source: vbox/trunk/include/VBox/vrdpusb.h@ 64622

Last change on this file since 64622 was 62476, checked in by vboxsync, 8 years ago

(C) 2016

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 3.3 KB
Line 
1/** @file
2 * VBox Remote Desktop Protocol - Remote USB backend interface. (VRDP)
3 */
4
5/*
6 * Copyright (C) 2006-2016 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_vrdpusb_h
27#define ___VBox_vrdpusb_h
28
29#include <VBox/cdefs.h>
30#include <VBox/types.h>
31
32#ifdef IN_RING0
33# error "There are no VRDP APIs available in Ring-0 Host Context!"
34#endif
35#ifdef IN_RC
36# error "There are no VRDP APIs available Guest Context!"
37#endif
38
39
40/** @defgroup grp_vrdpusb Remote USB over VURP
41 * @ingroup grp_vusb
42 * @{
43 */
44
45#define REMOTE_USB_BACKEND_PREFIX_S "REMOTEUSB"
46#define REMOTE_USB_BACKEND_PREFIX_LEN 9
47
48/* Forward declaration. */
49struct _REMOTEUSBDEVICE;
50typedef struct _REMOTEUSBDEVICE *PREMOTEUSBDEVICE;
51
52/* Forward declaration. */
53struct _REMOTEUSBQURB;
54typedef struct _REMOTEUSBQURB *PREMOTEUSBQURB;
55
56/* Forward declaration. Actually a class. */
57struct _REMOTEUSBBACKEND;
58typedef struct _REMOTEUSBBACKEND *PREMOTEUSBBACKEND;
59
60/**
61 * Pointer to this structure is passed to pfnCreateProxyDevice as the device
62 * specific pointer, when creating remote devices.
63 */
64typedef struct REMOTEUSBCALLBACK
65{
66 PREMOTEUSBBACKEND pInstance;
67
68 DECLCALLBACKMEMBER(int, pfnOpen) (PREMOTEUSBBACKEND pInstance, const char *pszAddress, size_t cbAddress, PREMOTEUSBDEVICE *ppDevice);
69 DECLCALLBACKMEMBER(void, pfnClose) (PREMOTEUSBDEVICE pDevice);
70 DECLCALLBACKMEMBER(int, pfnReset) (PREMOTEUSBDEVICE pDevice);
71 DECLCALLBACKMEMBER(int, pfnSetConfig) (PREMOTEUSBDEVICE pDevice, uint8_t u8Cfg);
72 DECLCALLBACKMEMBER(int, pfnClaimInterface) (PREMOTEUSBDEVICE pDevice, uint8_t u8Ifnum);
73 DECLCALLBACKMEMBER(int, pfnReleaseInterface) (PREMOTEUSBDEVICE pDevice, uint8_t u8Ifnum);
74 DECLCALLBACKMEMBER(int, pfnInterfaceSetting) (PREMOTEUSBDEVICE pDevice, uint8_t u8Ifnum, uint8_t u8Setting);
75 DECLCALLBACKMEMBER(int, pfnQueueURB) (PREMOTEUSBDEVICE pDevice, uint8_t u8Type, uint8_t u8Ep, uint8_t u8Direction, uint32_t u32Len, void *pvData, void *pvURB, PREMOTEUSBQURB *ppRemoteURB);
76 DECLCALLBACKMEMBER(int, pfnReapURB) (PREMOTEUSBDEVICE pDevice, uint32_t u32Millies, void **ppvURB, uint32_t *pu32Len, uint32_t *pu32Err);
77 DECLCALLBACKMEMBER(int, pfnClearHaltedEP) (PREMOTEUSBDEVICE pDevice, uint8_t u8Ep);
78 DECLCALLBACKMEMBER(void, pfnCancelURB) (PREMOTEUSBDEVICE pDevice, PREMOTEUSBQURB pRemoteURB);
79 DECLCALLBACKMEMBER(int, pfnWakeup) (PREMOTEUSBDEVICE pDevice);
80} REMOTEUSBCALLBACK;
81
82/** @} */
83
84#endif
85
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