usbdrv/peripheral/public/usbcontrolxferif.h
author hgs
Wed, 20 Oct 2010 12:04:53 +0800
changeset 59 bbdce6bffaad
parent 33 089413cdde3c
permissions -rw-r--r--
201041_02
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
33
089413cdde3c 201028_02
hgs
parents:
diff changeset
     1
/*
59
bbdce6bffaad 201041_02
hgs
parents: 33
diff changeset
     2
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
bbdce6bffaad 201041_02
hgs
parents: 33
diff changeset
     3
* All rights reserved.
bbdce6bffaad 201041_02
hgs
parents: 33
diff changeset
     4
* This component and the accompanying materials are made available
bbdce6bffaad 201041_02
hgs
parents: 33
diff changeset
     5
* under the terms of "Eclipse Public License v1.0"
bbdce6bffaad 201041_02
hgs
parents: 33
diff changeset
     6
* which accompanies this distribution, and is available
bbdce6bffaad 201041_02
hgs
parents: 33
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
bbdce6bffaad 201041_02
hgs
parents: 33
diff changeset
     8
*
bbdce6bffaad 201041_02
hgs
parents: 33
diff changeset
     9
* Initial Contributors:
bbdce6bffaad 201041_02
hgs
parents: 33
diff changeset
    10
* Nokia Corporation - initial contribution.
bbdce6bffaad 201041_02
hgs
parents: 33
diff changeset
    11
*
bbdce6bffaad 201041_02
hgs
parents: 33
diff changeset
    12
* Contributors:
bbdce6bffaad 201041_02
hgs
parents: 33
diff changeset
    13
*
bbdce6bffaad 201041_02
hgs
parents: 33
diff changeset
    14
* Description:
bbdce6bffaad 201041_02
hgs
parents: 33
diff changeset
    15
*
33
089413cdde3c 201028_02
hgs
parents:
diff changeset
    16
*/
089413cdde3c 201028_02
hgs
parents:
diff changeset
    17
089413cdde3c 201028_02
hgs
parents:
diff changeset
    18
#ifndef USBCONTROLXFERIF_H
089413cdde3c 201028_02
hgs
parents:
diff changeset
    19
#define USBCONTROLXFERIF_H
089413cdde3c 201028_02
hgs
parents:
diff changeset
    20
089413cdde3c 201028_02
hgs
parents:
diff changeset
    21
#include <e32def.h>                 // General types definition
089413cdde3c 201028_02
hgs
parents:
diff changeset
    22
089413cdde3c 201028_02
hgs
parents:
diff changeset
    23
/** 
089413cdde3c 201028_02
hgs
parents:
diff changeset
    24
 * Callback interfaces that used to process packet received from Host
089413cdde3c 201028_02
hgs
parents:
diff changeset
    25
 * and interfaces through which that PIL or app can send request to PSL
089413cdde3c 201028_02
hgs
parents:
diff changeset
    26
 */
089413cdde3c 201028_02
hgs
parents:
diff changeset
    27
NONSHARABLE_CLASS(MControlTransferIf)
089413cdde3c 201028_02
hgs
parents:
diff changeset
    28
    {
089413cdde3c 201028_02
hgs
parents:
diff changeset
    29
    public:
089413cdde3c 201028_02
hgs
parents:
diff changeset
    30
        // Interface for RX
089413cdde3c 201028_02
hgs
parents:
diff changeset
    31
        // Transfer direction from Device to Host
089413cdde3c 201028_02
hgs
parents:
diff changeset
    32
        // This two interface is saying PSL had finished
089413cdde3c 201028_02
hgs
parents:
diff changeset
    33
        // sending those data to host.
089413cdde3c 201028_02
hgs
parents:
diff changeset
    34
        virtual void ProcessDataInPacket(TInt aCount,TInt aErrCode) = 0;
089413cdde3c 201028_02
hgs
parents:
diff changeset
    35
        virtual void ProcessStatusInPacket(TInt aErrCode) = 0;
089413cdde3c 201028_02
hgs
parents:
diff changeset
    36
        
089413cdde3c 201028_02
hgs
parents:
diff changeset
    37
        // Transfer direction from Host to Device
089413cdde3c 201028_02
hgs
parents:
diff changeset
    38
        // they are saying that some data had been recieved from host
089413cdde3c 201028_02
hgs
parents:
diff changeset
    39
        virtual void ProcessDataOutPacket(TInt aCount,TInt aErrCode) = 0;
089413cdde3c 201028_02
hgs
parents:
diff changeset
    40
        virtual void ProcessStatusOutPacket(TInt aErrCode) = 0;
089413cdde3c 201028_02
hgs
parents:
diff changeset
    41
        virtual void ProcessSetupPacket(TInt aCount,TInt aErrCode) = 0;
089413cdde3c 201028_02
hgs
parents:
diff changeset
    42
        
089413cdde3c 201028_02
hgs
parents:
diff changeset
    43
        // Interface for TX and Control
089413cdde3c 201028_02
hgs
parents:
diff changeset
    44
        // Data/Status transfer function
089413cdde3c 201028_02
hgs
parents:
diff changeset
    45
        virtual TInt ProcessSetupEndpointZeroRead() = 0;
089413cdde3c 201028_02
hgs
parents:
diff changeset
    46
        virtual TInt ProcessSetupEndpointZeroWrite(const TUint8* aBuffer, TInt aLength, TBool aZlpReqd=EFalse) = 0;
089413cdde3c 201028_02
hgs
parents:
diff changeset
    47
        virtual TInt ProcessSendEp0ZeroByteStatusPacket() = 0;
089413cdde3c 201028_02
hgs
parents:
diff changeset
    48
        virtual TInt ProcessStallEndpoint(TInt aRealEndpoint) = 0;
089413cdde3c 201028_02
hgs
parents:
diff changeset
    49
        
089413cdde3c 201028_02
hgs
parents:
diff changeset
    50
        // Flow control interface
089413cdde3c 201028_02
hgs
parents:
diff changeset
    51
        // In case of we can not deliver received packet(setup or data) to a registered client
089413cdde3c 201028_02
hgs
parents:
diff changeset
    52
        // (because the request callback is not ready), we need PSL stop reporting more packet
089413cdde3c 201028_02
hgs
parents:
diff changeset
    53
        // to PIL until the pending packet had been process.
089413cdde3c 201028_02
hgs
parents:
diff changeset
    54
        // this 2 functions is used to notify PSL: you can continue, the pending packet is proceed.
089413cdde3c 201028_02
hgs
parents:
diff changeset
    55
        virtual void ProcessEp0SetupPacketProceed() = 0;
089413cdde3c 201028_02
hgs
parents:
diff changeset
    56
        virtual void ProcessEp0DataPacketProceed() = 0;
089413cdde3c 201028_02
hgs
parents:
diff changeset
    57
    };
089413cdde3c 201028_02
hgs
parents:
diff changeset
    58
089413cdde3c 201028_02
hgs
parents:
diff changeset
    59
#endif //USBCONTROLXFERIF_H
089413cdde3c 201028_02
hgs
parents:
diff changeset
    60
089413cdde3c 201028_02
hgs
parents:
diff changeset
    61
// End of file
089413cdde3c 201028_02
hgs
parents:
diff changeset
    62