userlibandfileserver/fileserver/smassstorage/inc/tbulkmm.h
author hgs
Mon, 11 Oct 2010 17:54:41 +0100
changeset 286 48e57fb1237e
permissions -rw-r--r--
201039_11
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
286
48e57fb1237e 201039_11
hgs
parents:
diff changeset
     1
/*
48e57fb1237e 201039_11
hgs
parents:
diff changeset
     2
* Copyright (c) 2004-2010 Nokia Corporation and/or its subsidiary(-ies).
48e57fb1237e 201039_11
hgs
parents:
diff changeset
     3
* All rights reserved.
48e57fb1237e 201039_11
hgs
parents:
diff changeset
     4
* This component and the accompanying materials are made available
48e57fb1237e 201039_11
hgs
parents:
diff changeset
     5
* under the terms of the License "Eclipse Public License v1.0"
48e57fb1237e 201039_11
hgs
parents:
diff changeset
     6
* which accompanies this distribution, and is available
48e57fb1237e 201039_11
hgs
parents:
diff changeset
     7
* at the URL "http://www.eclipse.org/legal/epl-v10.html".
48e57fb1237e 201039_11
hgs
parents:
diff changeset
     8
*
48e57fb1237e 201039_11
hgs
parents:
diff changeset
     9
* Initial Contributors:
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    10
* Nokia Corporation - initial contribution.
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    11
*
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    12
* Contributors:
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    13
*
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    14
* Description: 
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    15
* Class declaration for CBulkOnlyTransportUsbcLdd.
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    16
*
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    17
*/
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    18
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    19
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    20
/** 
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    21
 @file
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    22
 @internalTechnology
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    23
*/
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    24
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    25
#ifndef TBULKMM_H
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    26
#define TBULKMM_H
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    27
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    28
// Maximum size for SCSI Read10 Write10 and Verify10 commands
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    29
// Windows requests size of 64K whereas MAC requests size of 128K
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    30
static const TUint32 KMaxBufSize = 128 * 1024;
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    31
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    32
#ifdef MSDC_MULTITHREADED
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    33
class TBulkMm
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    34
{
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    35
public:
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    36
    TBulkMm();
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    37
    void GetNextTransferBuffer(TUint aLength, TPtr8& aPtr);
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    38
    void GetNextTransferBuffer(TPtr8& aPtr);
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    39
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    40
    TUint MaxTransferSize() const {return KMaxBufSize;}
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    41
    
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    42
    TUint8* Buf1();
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    43
    TUint8* Buf2();
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    44
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    45
private:
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    46
	TBuf8<KMaxBufSize> iDataBuf1;	// For data transfers (Reading and Writing)
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    47
	TBuf8<KMaxBufSize> iDataBuf2;
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    48
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    49
	TBool iSwap;
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    50
};
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    51
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    52
#else
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    53
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    54
class TBulkMm
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    55
{
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    56
public:
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    57
    TBulkMm() {};
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    58
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    59
    void GetNextTransferBuffer(TUint aLength, TPtr8& aPtr);
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    60
    void GetNextTransferBuffer(TPtr8& aPtr);
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    61
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    62
    TUint MaxTransferSize() const {return KMaxBufSize;}
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    63
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    64
private:
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    65
	TBuf8<KMaxBufSize> iDataBuf;
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    66
};
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    67
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    68
#endif
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    69
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    70
#ifdef MSDC_MULTITHREADED
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    71
inline TUint8* TBulkMm::Buf1()
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    72
{
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    73
    return const_cast<TUint8*>(iDataBuf1.Ptr());
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    74
}
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    75
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    76
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    77
inline TUint8* TBulkMm::Buf2()
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    78
{
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    79
    return const_cast<TUint8*>(iDataBuf2.Ptr());
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    80
}
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    81
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    82
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    83
inline void TBulkMm::GetNextTransferBuffer(TPtr8& aPtr)
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    84
	{
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    85
    GetNextTransferBuffer(KMaxBufSize, aPtr);
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    86
	}
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    87
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    88
#else
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    89
inline void TBulkMm::GetNextTransferBuffer(TUint aLength, TPtr8& aPtr)
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    90
	{
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    91
    iDataBuf.SetLength(aLength);
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    92
    aPtr.Set(iDataBuf.LeftTPtr(iDataBuf.Length()));
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    93
	}
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    94
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    95
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    96
inline void TBulkMm::GetNextTransferBuffer(TPtr8& aPtr)
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    97
	{
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    98
    GetNextTransferBuffer(KMaxBufSize, aPtr);
48e57fb1237e 201039_11
hgs
parents:
diff changeset
    99
	}
48e57fb1237e 201039_11
hgs
parents:
diff changeset
   100
#endif
48e57fb1237e 201039_11
hgs
parents:
diff changeset
   101
48e57fb1237e 201039_11
hgs
parents:
diff changeset
   102
#endif
48e57fb1237e 201039_11
hgs
parents:
diff changeset
   103