equal
deleted
inserted
replaced
3012 // Methods for double-buffered data transfer: |
3012 // Methods for double-buffered data transfer: |
3013 inline TBool RequestMoreData(); |
3013 inline TBool RequestMoreData(); |
3014 inline void EnableDoubleBuffering(TUint32 aNumBlocks); /**< @internalTechnology */ |
3014 inline void EnableDoubleBuffering(TUint32 aNumBlocks); /**< @internalTechnology */ |
3015 inline void SetDataTransferCallback(TMMCCallBack& aCallback); /**< @internalTechnology */ |
3015 inline void SetDataTransferCallback(TMMCCallBack& aCallback); /**< @internalTechnology */ |
3016 inline void MoreDataAvailable(TUint32 aNumBlocks, TUint8* aMemoryP, TInt aError); /**< @internalTechnology */ |
3016 inline void MoreDataAvailable(TUint32 aNumBlocks, TUint8* aMemoryP, TInt aError); /**< @internalTechnology */ |
|
3017 |
|
3018 inline void SaveCard(); /**< @internalTechnology */ |
|
3019 inline void RestoreCard(); /**< @internalTechnology */ |
|
3020 |
3017 public: |
3021 public: |
3018 /** |
3022 /** |
3019 The last R1 response. |
3023 The last R1 response. |
3020 */ |
3024 */ |
3021 TMMCStatus iLastStatus; |
3025 TMMCStatus iLastStatus; |
3055 |
3059 |
3056 TMMCCommandDesc iCommand[KMaxMMCCommandStackDepth]; // Command stack |
3060 TMMCCommandDesc iCommand[KMaxMMCCommandStackDepth]; // Command stack |
3057 |
3061 |
3058 TMMCCallBack iDataTransferCallback; // A callback function, used to request more data when performing double-buffering |
3062 TMMCCallBack iDataTransferCallback; // A callback function, used to request more data when performing double-buffering |
3059 |
3063 |
3060 TUint32 iSpare[22]; // Spare data (stolen from iCommand) |
3064 TUint32 iSpare[21]; // Spare data (stolen from iCommand) |
|
3065 |
|
3066 TMMCard* iSavedCardP; // Saved copy of iCardP |
3061 |
3067 |
3062 TMMCStateMachine iMachine; // State Machine context |
3068 TMMCStateMachine iMachine; // State Machine context |
3063 #ifdef __EPOC32__ |
3069 #ifdef __EPOC32__ |
3064 NTimer iPollTimer; |
3070 NTimer iPollTimer; |
3065 NTimer iRetryTimer; |
3071 NTimer iRetryTimer; |
3089 KInterfaceMachineInfo, |
3095 KInterfaceMachineInfo, |
3090 KInterfaceSwitchToLowVoltageSM, |
3096 KInterfaceSwitchToLowVoltageSM, |
3091 KInterfaceSetBusWidth, |
3097 KInterfaceSetBusWidth, |
3092 KInterfaceDemandPagingInfo, |
3098 KInterfaceDemandPagingInfo, |
3093 KInterfaceCancelSession, |
3099 KInterfaceCancelSession, |
3094 KInterfaceDoWakeUpSM |
3100 KInterfaceDoWakeUpSM, |
|
3101 KInterfaceAddressCard, |
3095 }; |
3102 }; |
3096 |
3103 |
3097 /** generic interface */ |
3104 /** generic interface */ |
3098 class MInterface |
3105 class MInterface |
3099 { |
3106 { |
3133 */ |
3140 */ |
3134 class MDoWakeUp |
3141 class MDoWakeUp |
3135 { |
3142 { |
3136 public: |
3143 public: |
3137 virtual TMMCErr DoWakeUpSM()=0; |
3144 virtual TMMCErr DoWakeUpSM()=0; |
|
3145 }; |
|
3146 |
|
3147 /** |
|
3148 * An optional interface implemented by the derived class. Used when the stack supports more than one |
|
3149 * card and the cards are individually selectable, i.e. iMultiplexedBus is true |
|
3150 * @see KInterfaceAddressCard |
|
3151 */ |
|
3152 class MAddressCard |
|
3153 { |
|
3154 public: |
|
3155 virtual void AddressCard(TInt aCardNumber)=0; |
3138 }; |
3156 }; |
3139 |
3157 |
3140 |
3158 |
3141 public: |
3159 public: |
3142 IMPORT_C DMMCStack(TInt aBus, DMMCSocket* aSocket); |
3160 IMPORT_C DMMCStack(TInt aBus, DMMCSocket* aSocket); |
3524 E52MhzMask = E4Bits52Mhz | E8Bits52Mhz |
3542 E52MhzMask = E4Bits52Mhz | E8Bits52Mhz |
3525 }; |
3543 }; |
3526 |
3544 |
3527 void DetermineBusWidthAndClock(const TMMCard& aCard, TBool aLowVoltage, TUint& aPowerClass, TBusWidthAndClock& aBusWidthAndClock); |
3545 void DetermineBusWidthAndClock(const TMMCard& aCard, TBool aLowVoltage, TUint& aPowerClass, TBusWidthAndClock& aBusWidthAndClock); |
3528 TUint GetPowerClass(const TMMCard& aCard, TBusWidthAndClock aWidthAndClock, TBool aLowVoltage); |
3546 TUint GetPowerClass(const TMMCard& aCard, TBusWidthAndClock aWidthAndClock, TBool aLowVoltage); |
|
3547 |
|
3548 void DoAddressCard(TInt aCardNumber); |
3529 |
3549 |
3530 |
3550 |
3531 // ----------- Data Members ------------- |
3551 // ----------- Data Members ------------- |
3532 private: |
3552 private: |
3533 // |
3553 // |
3602 IMPORT_C virtual void Dummy1(); |
3622 IMPORT_C virtual void Dummy1(); |
3603 |
3623 |
3604 protected: |
3624 protected: |
3605 /** |
3625 /** |
3606 Gets an interface from a derived class |
3626 Gets an interface from a derived class |
|
3627 N.B the derived class should call the base class's default implementation of this function |
|
3628 if it does not support the specified interface |
3607 replaces reserved virtual Dummy4() |
3629 replaces reserved virtual Dummy4() |
3608 */ |
3630 */ |
3609 IMPORT_C virtual void GetInterface(TInterfaceId aInterfaceId, MInterface*& aInterfacePtr); |
3631 IMPORT_C virtual void GetInterface(TInterfaceId aInterfaceId, MInterface*& aInterfacePtr); |
3610 |
3632 |
3611 private: |
3633 private: |
4105 EMMCInvalidDBCommand =16, |
4127 EMMCInvalidDBCommand =16, |
4106 EMMCInvalidDBBlockLength =17, |
4128 EMMCInvalidDBBlockLength =17, |
4107 EMMCUnblockingInWrongContext =18, |
4129 EMMCUnblockingInWrongContext =18, |
4108 EMMCInvalidCardNumber =19, |
4130 EMMCInvalidCardNumber =19, |
4109 EMMCNotInDfcContext =20, |
4131 EMMCNotInDfcContext =20, |
|
4132 EMMCAddressCardNotSupported =21, |
4110 }; |
4133 }; |
4111 IMPORT_C static void Panic(TMMCPanic aPanic); |
4134 IMPORT_C static void Panic(TMMCPanic aPanic); |
4112 friend class DMMCStack; |
4135 friend class DMMCStack; |
4113 friend class DMMCSession; |
4136 friend class DMMCSession; |
4114 friend class DMMCMediaChange; |
4137 friend class DMMCMediaChange; |