VirtualBox

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

Last change on this file since 20365 was 13832, checked in by vboxsync, 16 years ago

IN_GC -> IN_RC.

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
File size: 3.4 KB
Line 
1/** @file
2 * VBox Remote Desktop Protocol:
3 * Remote USB backend interface.
4 */
5
6/*
7 * Copyright (C) 2006-2007 Sun Microsystems, Inc.
8 *
9 * This file is part of VirtualBox Open Source Edition (OSE), as
10 * available from http://www.virtualbox.org. This file is free software;
11 * you can redistribute it and/or modify it under the terms of the GNU
12 * General Public License (GPL) as published by the Free Software
13 * Foundation, in version 2 as it comes in the "COPYING" file of the
14 * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
15 * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
16 *
17 * The contents of this file may alternatively be used under the terms
18 * of the Common Development and Distribution License Version 1.0
19 * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
20 * VirtualBox OSE distribution, in which case the provisions of the
21 * CDDL are applicable instead of those of the GPL.
22 *
23 * You may elect to license modified versions of this file under the
24 * terms and conditions of either the GPL or the CDDL or both.
25 *
26 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
27 * Clara, CA 95054 USA or visit http://www.sun.com if you need
28 * additional information or have any questions.
29 */
30
31#ifndef ___VBox_vrdpusb_h
32#define ___VBox_vrdpusb_h
33
34#include <VBox/cdefs.h>
35#include <VBox/types.h>
36
37#ifdef IN_RING0
38# error "There are no VRDP APIs available in Ring-0 Host Context!"
39#endif
40#ifdef IN_RC
41# error "There are no VRDP APIs available Guest Context!"
42#endif
43
44#define REMOTE_USB_BACKEND_PREFIX_S "REMOTEUSB"
45#define REMOTE_USB_BACKEND_PREFIX_LEN 9
46
47/* Forward declaration. */
48struct _REMOTEUSBDEVICE;
49typedef struct _REMOTEUSBDEVICE *PREMOTEUSBDEVICE;
50
51/* Forward declaration. */
52struct _REMOTEUSBQURB;
53typedef struct _REMOTEUSBQURB *PREMOTEUSBQURB;
54
55/* Forward declaration. Actually a class. */
56struct _REMOTEUSBBACKEND;
57typedef struct _REMOTEUSBBACKEND *PREMOTEUSBBACKEND;
58
59/* Pointer to this structure is passed to pfnCreateProxyDevice
60 * as the device specific pointer, when creating remote devices.
61 */
62typedef struct _REMOTEUSBCALLBACK
63{
64 PREMOTEUSBBACKEND pInstance;
65
66 DECLCALLBACKMEMBER(int, pfnOpen) (PREMOTEUSBBACKEND pInstance, const char *pszAddress, size_t cbAddress, PREMOTEUSBDEVICE *ppDevice);
67 DECLCALLBACKMEMBER(void, pfnClose) (PREMOTEUSBDEVICE pDevice);
68 DECLCALLBACKMEMBER(int, pfnReset) (PREMOTEUSBDEVICE pDevice);
69 DECLCALLBACKMEMBER(int, pfnSetConfig) (PREMOTEUSBDEVICE pDevice, uint8_t u8Cfg);
70 DECLCALLBACKMEMBER(int, pfnClaimInterface) (PREMOTEUSBDEVICE pDevice, uint8_t u8Ifnum);
71 DECLCALLBACKMEMBER(int, pfnReleaseInterface) (PREMOTEUSBDEVICE pDevice, uint8_t u8Ifnum);
72 DECLCALLBACKMEMBER(int, pfnInterfaceSetting) (PREMOTEUSBDEVICE pDevice, uint8_t u8Ifnum, uint8_t u8Setting);
73 DECLCALLBACKMEMBER(int, pfnQueueURB) (PREMOTEUSBDEVICE pDevice, uint8_t u8Type, uint8_t u8Ep, uint8_t u8Direction, uint32_t u32Len, void *pvData, void *pvURB, PREMOTEUSBQURB *ppRemoteURB);
74 DECLCALLBACKMEMBER(int, pfnReapURB) (PREMOTEUSBDEVICE pDevice, uint32_t u32Millies, void **ppvURB, uint32_t *pu32Len, uint32_t *pu32Err);
75 DECLCALLBACKMEMBER(int, pfnClearHaltedEP) (PREMOTEUSBDEVICE pDevice, uint8_t u8Ep);
76 DECLCALLBACKMEMBER(void, pfnCancelURB) (PREMOTEUSBDEVICE pDevice, PREMOTEUSBQURB pRemoteURB);
77} REMOTEUSBCALLBACK;
78
79#endif
80
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