97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync/* $Id$ */
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync/** @file
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync * VBoxUsmCmn.h - USB device. Common defs
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync */
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync/*
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync * Copyright (C) 2011 Oracle Corporation
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync *
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync * available from http://www.virtualbox.org. This file is free software;
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync * you can redistribute it and/or modify it under the terms of the GNU
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync * General Public License (GPL) as published by the Free Software
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync */
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync#ifndef ___VBoxUsbCmn_h___
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync#define ___VBoxUsbCmn_h___
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync#include "../cmn/VBoxDrvTool.h"
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync#include "../cmn/VBoxUsbTool.h"
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync#include <iprt/cdefs.h>
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync#include <iprt/asm.h>
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync#include <VBox/usblib-win.h>
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync#define VBOXUSB_CFG_IDLE_TIME_MS 5000
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsynctypedef struct VBOXUSBDEV_EXT *PVBOXUSBDEV_EXT;
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsyncRT_C_DECLS_BEGIN
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync#ifdef _WIN64
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync#define DECLSPEC_USBIMPORT DECLSPEC_IMPORT
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync#else
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync#define DECLSPEC_USBIMPORT
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync#define USBD_ParseDescriptors _USBD_ParseDescriptors
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync#define USBD_ParseConfigurationDescriptorEx _USBD_ParseConfigurationDescriptorEx
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync#define USBD_CreateConfigurationRequestEx _USBD_CreateConfigurationRequestEx
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync#endif
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsyncDECLSPEC_USBIMPORT PUSB_COMMON_DESCRIPTOR
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsyncUSBD_ParseDescriptors(
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync IN PVOID DescriptorBuffer,
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync IN ULONG TotalLength,
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync IN PVOID StartPosition,
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync IN LONG DescriptorType
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync );
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsyncDECLSPEC_USBIMPORT PUSB_INTERFACE_DESCRIPTOR
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsyncUSBD_ParseConfigurationDescriptorEx(
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync IN PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor,
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync IN PVOID StartPosition,
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync IN LONG InterfaceNumber,
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync IN LONG AlternateSetting,
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync IN LONG InterfaceClass,
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync IN LONG InterfaceSubClass,
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync IN LONG InterfaceProtocol
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync );
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsyncDECLSPEC_USBIMPORT PURB
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsyncUSBD_CreateConfigurationRequestEx(
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync IN PUSB_CONFIGURATION_DESCRIPTOR ConfigurationDescriptor,
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync IN PUSBD_INTERFACE_LIST_ENTRY InterfaceList
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync );
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsyncRT_C_DECLS_END
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsyncDECLHIDDEN(PVOID) vboxUsbMemAlloc(SIZE_T cbBytes);
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsyncDECLHIDDEN(PVOID) vboxUsbMemAllocZ(SIZE_T cbBytes);
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsyncDECLHIDDEN(VOID) vboxUsbMemFree(PVOID pvMem);
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync#include "VBoxUsbRt.h"
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync#include "VBoxUsbPnP.h"
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync#include "VBoxUsbPwr.h"
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync#include "VBoxUsbDev.h"
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync
97b634ea021fd984782256de4ba4ff31cdb96c47vboxsync#endif /* #ifndef ___VBoxUsbCmn_h___ */