usbmgmt/usbmgr/device/classdrivers/ncm/classcontroller/inc/ncmclassdescriptor.h
author hgs
Wed, 07 Jul 2010 14:16:40 +0800
changeset 28 f1fd07aa74c9
permissions -rw-r--r--
201025_08
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
28
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
     1
/*
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
     3
* All rights reserved.
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
     8
*
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
     9
* Initial Contributors:
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    11
*
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    12
* Contributors:
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    13
*
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    14
* Description: 
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    15
*
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    16
*/
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    17
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    18
/** @file
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    19
@internalComponent
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    20
*/
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    21
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    22
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    23
#ifndef NCMCLASSDESCRIPTOR_H
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    24
#define NCMCLASSDESCRIPTOR_H
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    25
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    26
#include <e32std.h>
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    27
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    28
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    29
const TUint   KUSBNcmClassSpecificBufferSize = 29;
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    30
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    31
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    32
/**
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    33
 * Defined NCM Class Descriptor
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    34
 */
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    35
NONSHARABLE_CLASS(TNcmClassDescriptor) 	///< Class-specific descriptor
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    36
	{
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    37
public:
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    38
	
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    39
	//Header Functional Descriptor
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    40
	TUint8	iHdrSize;			///< Header size
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    41
	TUint8	iHdrType;			///< Type
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    42
	TUint8	iHdrSubType;		///< Sub-type
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    43
	TUint16 iHdrBcdCDC; 		///< CDC version no in binary coded decimal
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    44
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    45
	//Union Functional Descriptor
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    46
	TUint8	iUnSize;			///< Union descriptor size
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    47
	TUint8	iUnType;			///< Union descriptor type
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    48
	TUint8	iUnSubType; 		///< Union descriptor sub-type
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    49
	TUint8	iUnMasterInterface; ///< Master interface number
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    50
	TUint8	iUnSlaveInterface;	///< Slave interface number
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    51
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    52
	//Ethernet Networking Functional Descriptor
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    53
	TUint8	iEthFunLength;	///<	Size of this functional descriptor
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    54
	TUint8	iEthFunType;	///<	CS_INTERFACE		
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    55
	TUint8	iEthFunSubtype;	///<	Ethernet Networking functional descriptor subtype as defined in [USBCDC1.2]
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    56
	TUint8	iMACAddress;		///<	Index of string descriptor. The string descriptor holds the 48bit Ethernet MAC address. 
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    57
	TUint	iEthernetStatistics;	///<	Indicates which Ethernet statistics functions the device collects. 
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    58
	TUint16	iMaxSegmentSize;	///<	The maximum segment size that the Ethernet device is capable of supporting. 
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    59
	TUint16	iNumberMCFilters;	///<	Contains the number of multicast filters that can be configured by the host.
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    60
	TUint8	iNumberPowerFilters;	///<	Contains the number of pattern filters that are available for causing wake-up of the host.
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    61
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    62
	
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    63
	//NCM Functional Descriptor
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    64
	TUint8	iNcmFunLength;	///<	Size of this functional descriptor
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    65
	TUint8	iNcmFunType;	///<	CS_INTERFACE
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    66
	TUint8	iNcmFunSubtype;	///<	NCM Functional Descriptor subtype
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    67
	TUint16	iNcmVersion;		///<	Release number of this specification in BCD
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    68
	TUint8	iNetworkCapabilities;	///<	Specifies the capabilities of this function
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    69
	
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    70
public:
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    71
	TDes8& Des();
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    72
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    73
private:
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    74
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    75
	TBuf8<KUSBNcmClassSpecificBufferSize> iBuffer;
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    76
	};
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    77
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    78
#endif // NCMCLASSDESCRIPTOR_H
f1fd07aa74c9 201025_08
hgs
parents:
diff changeset
    79