kerneltest/e32test/pccd/d_mmctest.h
author hgs
Mon, 04 Oct 2010 12:03:52 +0100
changeset 279 957c583b417b
permissions -rw-r--r--
201039_07
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
279
957c583b417b 201039_07
hgs
parents:
diff changeset
     1
// Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
957c583b417b 201039_07
hgs
parents:
diff changeset
     2
// All rights reserved.
957c583b417b 201039_07
hgs
parents:
diff changeset
     3
// This component and the accompanying materials are made available
957c583b417b 201039_07
hgs
parents:
diff changeset
     4
// under the terms of the License "Eclipse Public License v1.0"
957c583b417b 201039_07
hgs
parents:
diff changeset
     5
// which accompanies this distribution, and is available
957c583b417b 201039_07
hgs
parents:
diff changeset
     6
// at the URL "http://www.eclipse.org/legal/epl-v10.html".
957c583b417b 201039_07
hgs
parents:
diff changeset
     7
//
957c583b417b 201039_07
hgs
parents:
diff changeset
     8
// Initial Contributors:
957c583b417b 201039_07
hgs
parents:
diff changeset
     9
// Nokia Corporation - initial contribution.
957c583b417b 201039_07
hgs
parents:
diff changeset
    10
//
957c583b417b 201039_07
hgs
parents:
diff changeset
    11
// Contributors:
957c583b417b 201039_07
hgs
parents:
diff changeset
    12
//
957c583b417b 201039_07
hgs
parents:
diff changeset
    13
// Description:
957c583b417b 201039_07
hgs
parents:
diff changeset
    14
// This header provides the interface to MMCIF.LDD, which provides a set of
957c583b417b 201039_07
hgs
parents:
diff changeset
    15
// direct interface functions with the kernel MultiMediaCard Controller
957c583b417b 201039_07
hgs
parents:
diff changeset
    16
// 
957c583b417b 201039_07
hgs
parents:
diff changeset
    17
//
957c583b417b 201039_07
hgs
parents:
diff changeset
    18
957c583b417b 201039_07
hgs
parents:
diff changeset
    19
#if !defined(__D_MMCTEST_H__)
957c583b417b 201039_07
hgs
parents:
diff changeset
    20
#include <e32cmn.h>
957c583b417b 201039_07
hgs
parents:
diff changeset
    21
#ifndef __KERNEL_MODE__
957c583b417b 201039_07
hgs
parents:
diff changeset
    22
#include <e32std.h>
957c583b417b 201039_07
hgs
parents:
diff changeset
    23
#endif
957c583b417b 201039_07
hgs
parents:
diff changeset
    24
957c583b417b 201039_07
hgs
parents:
diff changeset
    25
//
957c583b417b 201039_07
hgs
parents:
diff changeset
    26
enum TMmcMediaType {EMmcROM,EMmcFlash,EMmcIO,EMmcOther,EMmcNotSupported};
957c583b417b 201039_07
hgs
parents:
diff changeset
    27
//
957c583b417b 201039_07
hgs
parents:
diff changeset
    28
const TInt KMaxCardsPerStack=2;
957c583b417b 201039_07
hgs
parents:
diff changeset
    29
const TInt KSectorSizeInBytes=512;
957c583b417b 201039_07
hgs
parents:
diff changeset
    30
const TInt KSectorSizeShift=9;
957c583b417b 201039_07
hgs
parents:
diff changeset
    31
const TInt KDrvBufSizeInSectors=8;
957c583b417b 201039_07
hgs
parents:
diff changeset
    32
957c583b417b 201039_07
hgs
parents:
diff changeset
    33
/**
957c583b417b 201039_07
hgs
parents:
diff changeset
    34
@internalComponent
957c583b417b 201039_07
hgs
parents:
diff changeset
    35
*/
957c583b417b 201039_07
hgs
parents:
diff changeset
    36
class TMmcCardInfo
957c583b417b 201039_07
hgs
parents:
diff changeset
    37
	{
957c583b417b 201039_07
hgs
parents:
diff changeset
    38
public:
957c583b417b 201039_07
hgs
parents:
diff changeset
    39
	inline TMmcCardInfo()
957c583b417b 201039_07
hgs
parents:
diff changeset
    40
		  {memset(this,0x00,sizeof(TMmcCardInfo)); iMediaType=EMmcNotSupported;}
957c583b417b 201039_07
hgs
parents:
diff changeset
    41
public:
957c583b417b 201039_07
hgs
parents:
diff changeset
    42
	TBool iIsReady;
957c583b417b 201039_07
hgs
parents:
diff changeset
    43
	TBool iIsLocked;
957c583b417b 201039_07
hgs
parents:
diff changeset
    44
	TUint8 iCID[16];
957c583b417b 201039_07
hgs
parents:
diff changeset
    45
	TUint8 iCSD[16];
957c583b417b 201039_07
hgs
parents:
diff changeset
    46
	TUint16 iRCA;
957c583b417b 201039_07
hgs
parents:
diff changeset
    47
	TMmcMediaType iMediaType;
957c583b417b 201039_07
hgs
parents:
diff changeset
    48
    TInt64 iCardSizeInBytes;
957c583b417b 201039_07
hgs
parents:
diff changeset
    49
	TUint iReadBlLen;
957c583b417b 201039_07
hgs
parents:
diff changeset
    50
	TUint iWriteBlLen;
957c583b417b 201039_07
hgs
parents:
diff changeset
    51
	TBool iReadBlPartial;
957c583b417b 201039_07
hgs
parents:
diff changeset
    52
	TBool iWriteBlPartial;
957c583b417b 201039_07
hgs
parents:
diff changeset
    53
	TBool iReadBlkMisalign;
957c583b417b 201039_07
hgs
parents:
diff changeset
    54
	TBool iWriteBlkMisalign;
957c583b417b 201039_07
hgs
parents:
diff changeset
    55
    TInt iReadCurrentInMilliAmps;
957c583b417b 201039_07
hgs
parents:
diff changeset
    56
    TInt iWriteCurrentInMilliAmps;
957c583b417b 201039_07
hgs
parents:
diff changeset
    57
	TUint iSpecVers;
957c583b417b 201039_07
hgs
parents:
diff changeset
    58
	TUint iTAAC;
957c583b417b 201039_07
hgs
parents:
diff changeset
    59
	TUint iNSAC;
957c583b417b 201039_07
hgs
parents:
diff changeset
    60
	TUint iTransferSpeed;
957c583b417b 201039_07
hgs
parents:
diff changeset
    61
	TUint iCommandRegister;
957c583b417b 201039_07
hgs
parents:
diff changeset
    62
	TBool iHighCapacity;
957c583b417b 201039_07
hgs
parents:
diff changeset
    63
	};
957c583b417b 201039_07
hgs
parents:
diff changeset
    64
957c583b417b 201039_07
hgs
parents:
diff changeset
    65
/**
957c583b417b 201039_07
hgs
parents:
diff changeset
    66
@internalComponent
957c583b417b 201039_07
hgs
parents:
diff changeset
    67
*/
957c583b417b 201039_07
hgs
parents:
diff changeset
    68
class TCapsMmcIfV01
957c583b417b 201039_07
hgs
parents:
diff changeset
    69
	{
957c583b417b 201039_07
hgs
parents:
diff changeset
    70
public:
957c583b417b 201039_07
hgs
parents:
diff changeset
    71
	TVersion version;
957c583b417b 201039_07
hgs
parents:
diff changeset
    72
	};
957c583b417b 201039_07
hgs
parents:
diff changeset
    73
957c583b417b 201039_07
hgs
parents:
diff changeset
    74
/**
957c583b417b 201039_07
hgs
parents:
diff changeset
    75
@internalComponent
957c583b417b 201039_07
hgs
parents:
diff changeset
    76
*/
957c583b417b 201039_07
hgs
parents:
diff changeset
    77
class RMmcCntrlIf : public RBusLogicalChannel
957c583b417b 201039_07
hgs
parents:
diff changeset
    78
	{
957c583b417b 201039_07
hgs
parents:
diff changeset
    79
public:
957c583b417b 201039_07
hgs
parents:
diff changeset
    80
	enum {EMajorVersionNumber=1,EMinorVersionNumber=0,EBuildVersionNumber=1};
957c583b417b 201039_07
hgs
parents:
diff changeset
    81
	enum TRequest
957c583b417b 201039_07
hgs
parents:
diff changeset
    82
		{
957c583b417b 201039_07
hgs
parents:
diff changeset
    83
		EReqReadSect,
957c583b417b 201039_07
hgs
parents:
diff changeset
    84
		EReqWriteSect,
957c583b417b 201039_07
hgs
parents:
diff changeset
    85
		EReqPwrUp,
957c583b417b 201039_07
hgs
parents:
diff changeset
    86
		EReqReadExtCSD,
957c583b417b 201039_07
hgs
parents:
diff changeset
    87
		EReqMMCInfoPrint
957c583b417b 201039_07
hgs
parents:
diff changeset
    88
		};
957c583b417b 201039_07
hgs
parents:
diff changeset
    89
	enum TControl
957c583b417b 201039_07
hgs
parents:
diff changeset
    90
        {
957c583b417b 201039_07
hgs
parents:
diff changeset
    91
		ESvReset,
957c583b417b 201039_07
hgs
parents:
diff changeset
    92
		ESvPwrDown,
957c583b417b 201039_07
hgs
parents:
diff changeset
    93
		ESvRegisterEvent,
957c583b417b 201039_07
hgs
parents:
diff changeset
    94
		EExecSelectCard,
957c583b417b 201039_07
hgs
parents:
diff changeset
    95
		EExecStackInfo,
957c583b417b 201039_07
hgs
parents:
diff changeset
    96
        EExecCardInfo
957c583b417b 201039_07
hgs
parents:
diff changeset
    97
		};
957c583b417b 201039_07
hgs
parents:
diff changeset
    98
public:
957c583b417b 201039_07
hgs
parents:
diff changeset
    99
	inline void Cancel();
957c583b417b 201039_07
hgs
parents:
diff changeset
   100
	inline TInt Open(TInt aStack,const TVersion& aVer)
957c583b417b 201039_07
hgs
parents:
diff changeset
   101
		{return(DoCreate(_L("MmcTest"),aVer,(TInt)aStack,NULL,NULL));}
957c583b417b 201039_07
hgs
parents:
diff changeset
   102
	inline TVersion VersionRequired() const
957c583b417b 201039_07
hgs
parents:
diff changeset
   103
		{return(TVersion(EMajorVersionNumber,EMinorVersionNumber,EBuildVersionNumber));}
957c583b417b 201039_07
hgs
parents:
diff changeset
   104
	inline void Reset()
957c583b417b 201039_07
hgs
parents:
diff changeset
   105
		{DoControl(ESvReset);}
957c583b417b 201039_07
hgs
parents:
diff changeset
   106
	inline void PwrDownStack()
957c583b417b 201039_07
hgs
parents:
diff changeset
   107
		{DoControl(ESvPwrDown);}
957c583b417b 201039_07
hgs
parents:
diff changeset
   108
	inline TInt StackInfo(TUint& aCardsPresentMask)
957c583b417b 201039_07
hgs
parents:
diff changeset
   109
		{return(DoControl(EExecStackInfo,&aCardsPresentMask));}
957c583b417b 201039_07
hgs
parents:
diff changeset
   110
	inline TInt SelectCard(TInt aCard)
957c583b417b 201039_07
hgs
parents:
diff changeset
   111
		{return(DoControl(EExecSelectCard,(TAny*)aCard));}
957c583b417b 201039_07
hgs
parents:
diff changeset
   112
	inline TInt CardInfo(TMmcCardInfo& anInfo)
957c583b417b 201039_07
hgs
parents:
diff changeset
   113
		{return(DoControl(EExecCardInfo,&anInfo));}
957c583b417b 201039_07
hgs
parents:
diff changeset
   114
957c583b417b 201039_07
hgs
parents:
diff changeset
   115
//	inline TInt RegisterEvent(TUint anEventMask,TRequestStatus *aReqStat)
957c583b417b 201039_07
hgs
parents:
diff changeset
   116
//		{return(DoControl(ESvRegisterEvent,(TAny*)anEventMask,(TAny*)aReqStat));}
957c583b417b 201039_07
hgs
parents:
diff changeset
   117
957c583b417b 201039_07
hgs
parents:
diff changeset
   118
	inline void PwrUpAndInitStack(TRequestStatus& aStatus)
957c583b417b 201039_07
hgs
parents:
diff changeset
   119
		{DoRequest(EReqPwrUp,aStatus);}
957c583b417b 201039_07
hgs
parents:
diff changeset
   120
	inline void ReadSector(TRequestStatus &aStatus,TInt aSectNum,TDes8 &aDes)
957c583b417b 201039_07
hgs
parents:
diff changeset
   121
		{DoRequest(EReqReadSect,aStatus,(TAny*)aSectNum,(TAny*)&aDes);}
957c583b417b 201039_07
hgs
parents:
diff changeset
   122
	inline void WriteSector(TRequestStatus &aStatus,TInt aSectNum,const TDesC8 &aDes)
957c583b417b 201039_07
hgs
parents:
diff changeset
   123
		{DoRequest(EReqWriteSect,aStatus,(TAny*)aSectNum,(TAny*)&aDes);}
957c583b417b 201039_07
hgs
parents:
diff changeset
   124
	inline void ReadExtCSD(TRequestStatus& aStatus, TDes8& aExtCSD)
957c583b417b 201039_07
hgs
parents:
diff changeset
   125
		{DoRequest(EReqReadExtCSD, aStatus, (TAny*) &aExtCSD, NULL);}
957c583b417b 201039_07
hgs
parents:
diff changeset
   126
	inline void PrintCardRegisters(TRequestStatus& aStatus)
957c583b417b 201039_07
hgs
parents:
diff changeset
   127
        {DoRequest(EReqMMCInfoPrint,aStatus);}
957c583b417b 201039_07
hgs
parents:
diff changeset
   128
	
957c583b417b 201039_07
hgs
parents:
diff changeset
   129
	};
957c583b417b 201039_07
hgs
parents:
diff changeset
   130
//
957c583b417b 201039_07
hgs
parents:
diff changeset
   131
#endif