diff -r 000000000000 -r c9bc50fca66e usbmgmt/usbmgr/usbman/server/public/usbhostdefs.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/usbmgmt/usbmgr/usbman/server/public/usbhostdefs.h Tue Feb 02 02:02:59 2010 +0200 @@ -0,0 +1,142 @@ +/* +* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* Shared HOST definitions +* +*/ + +/** + @file + @publishedPartner +*/ + +#ifndef __USBHOSTDEFS_H__ +#define __USBHOSTDEFS_H__ + +#include + +/** An event in the attachment-detachment lifecycle of a USB device. */ +enum TUsbHostStackEventType + { + /** A device attachment has occurred. */ + EDeviceAttachment = 0, + + /** An attempt to load Function Driver(s) has occurred. */ + EDriverLoad = 1, + + /** A device detachment has occurred. */ + EDeviceDetachment = 2, + }; + +/** For a 'driver loading' event, whether the attempt to load drivers was +successful, partially successful, or unsuccessful. */ +const TUint KMultipleDriversFound = 0x00000004; + +enum TDriverLoadStatus + { + /** Driver loading was successful for all the device's interfaces. */ + EDriverLoadSuccess = 0, + + /** Driver loading was successful for one or more of the device's + interfaces, but not for all of them. */ + EDriverLoadPartialSuccess = 1, + + /** Driver loading was successful for none of the device's interfaces. */ + EDriverLoadFailure = 2, + + /** Driver loading was successful for all the device's interfaces, with multiple drivers found */ + EDriverLoadSuccessMultipleDriversFound = EDriverLoadSuccess|KMultipleDriversFound, + + /** Driver loading was successful for one or more of the device's + interfaces, but not for all of them, with multiple drivers found. */ + EDriverLoadPartialSuccessMultipleDriversFound = EDriverLoadPartialSuccess|KMultipleDriversFound, + + /** Driver loading was successful for none of the device's interfaces, with multiple drivers found. */ + EDriverLoadFailureMultipleDriversFound = EDriverLoadFailure|KMultipleDriversFound + }; + +NONSHARABLE_CLASS(TDeviceEventInformation) + { +public: + inline TDeviceEventInformation() + // These initialisations are arbitrary + : iDeviceId(0), + iEventType(EDeviceAttachment), + iError(KErrNone), + iDriverLoadStatus(EDriverLoadSuccess), + iVid(0), + iPid(0) + {} + + // Always relevant- the ID of the device the event relates to. + TUint iDeviceId; + + // Always relevant- the type of event that has occurred. + TUsbHostStackEventType iEventType; + + // Relevant to attachment and driver load events. + TInt iError; + + // Relevant to driver load events only. + TDriverLoadStatus iDriverLoadStatus; + + // Relevant to attachments with iError KErrNone. + TUint16 iVid; + + // Relevant to attachments with iError KErrNone. + TUint16 iPid; + }; + +const TInt KUsbMaxSupportedLanguageIds = 127; // Max number of supported USB Language Ids + + +enum TUsbOtgAttributes + { + /** Device supported SRP protocol */ + EUsbOtgSRPSupported = 0x01, + + /** Device supported HNP protocol */ + EUsbOtgHNPSupported = 0x02, + + EUsbOtgAttributeCount, + }; + +NONSHARABLE_CLASS(TOtgDescriptor) + { +public: + inline TOtgDescriptor() + : iDeviceId(0), + iAttributes(0), + iReserved1(0), + iReserved2(0), + iReserved3(0) + {} + + // The ID of the device the OTG descriptor relates to. + TUint iDeviceId; + + // The OTG attributes - currently only D0 and D1 are used for SRP and HNP. + TUint8 iAttributes; + + // Reserved + TInt iReserved1; + + // Reserved + TInt iReserved2; + + // Reserved + TInt iReserved3; + }; + +#endif //__USBHOSTDEFS_H__