diff -r 7ef16719d8cb -r fc69e1e37771 telephonyprotocols/rawipnif/src/BcaController.cpp --- a/telephonyprotocols/rawipnif/src/BcaController.cpp Fri Mar 12 15:49:38 2010 +0200 +++ b/telephonyprotocols/rawipnif/src/BcaController.cpp Mon Mar 15 12:45:06 2010 +0200 @@ -22,16 +22,20 @@ #include #include #include +#include +#include #include "BcaController.h" -_LIT(KRawIpIniFile, "rawip.ini"); -_LIT(KLinkLit, "link"); -_LIT(KHighmarkLit, "highmark"); -_LIT(KPacketLit, "packet"); -_LIT(KMaxPacketSizeLit, "maxippacketsize"); //In order not to flow off SPUD everytime we set the default to 1 const TUint KDefaultBufferSize=1; +#ifdef __EABI__ +// Patch data is used and KMaxTxIPPacketSize and KMaxRxIPPacketSize can be modified to a different value in RawIpNif.iby file +extern const TInt KMaxSendQueueLen = KDefaultBufferSize; +extern const TInt KMaxTxIPPacketSize = KMaxIPPacket + KIPTagHeaderLength; +extern const TInt KMaxRxIPPacketSize = KMaxIPPacket + KIPTagHeaderLength; +#endif + CBcaController::CBcaController(MControllerObserver& aObserver, CBttLogger* aTheLogger) /** @@ -42,7 +46,7 @@ iTxFlowControl(EFlowControlOff), iTxContextActive(ETrue), iSendState(EIdle), - iMaxSendQueueLen(1), + iMaxSendQueueLen(KDefaultBufferSize), iNumPacketsInSendQueue(0) { iSendQueue.Init(); @@ -66,35 +70,27 @@ { _LOG_L1C1(_L8("CBcaController::BaseConstructL")); - // Default value for the pakcket size - iMaxPacketSise = KMaxIPPacket + KIPTagHeaderLength; - #ifdef RAWIP_HEADER_APPENDED_TO_PACKETS - iIPTagHeader = new (ELeave) CIPTagHeader(iTheLogger); + iIPTagHeader = new (ELeave) CIPTagHeader(iTheLogger); #endif // RAWIP_HEADER_APPENDED_TO_PACKETS - - CESockIniData* iniData = NULL; - TRAPD(res, iniData = CESockIniData::NewL(KRawIpIniFile)); - CleanupStack::PushL(iniData); - - if(res!=KErrNone) - { - _LOG_L1C2(_L8("RawIp ini file %S not found. Default values will be used."), &KRawIpIniFile); - CleanupStack::PopAndDestroy(); - return; - } - - //here process the file - if(!iniData->FindVar(KLinkLit(), KHighmarkLit(), iMaxSendQueueLen)) - { - iMaxSendQueueLen = KDefaultBufferSize; - } - if(!iniData->FindVar(KPacketLit(), KMaxPacketSizeLit(), iMaxPacketSise)) - { - iMaxPacketSise = KMaxIPPacket + KIPTagHeaderLength; - } - - CleanupStack::PopAndDestroy(); + +#if defined (__EABI__) + // Default value for queue length + iMaxSendQueueLen = KMaxSendQueueLen; + // Default value for Tx and Rx packet size + iMaxTxPacketSize = KMaxTxIPPacketSize; + iMaxRxPacketSize = KMaxRxIPPacketSize; +#else // WINS + // Set default values in case patch is not present in epocrawip.ini + iMaxSendQueueLen = KDefaultBufferSize; + iMaxTxPacketSize = KMaxIPPacket + KIPTagHeaderLength; + iMaxRxPacketSize = KMaxIPPacket + KIPTagHeaderLength; + + // for the emulator process is patched via the epocrawip.ini file + UserSvr::HalFunction(EHalGroupEmulator,EEmulatorHalIntProperty,(TAny*)"rawip_KMaxSendQueueLen",&iMaxSendQueueLen); + UserSvr::HalFunction(EHalGroupEmulator,EEmulatorHalIntProperty,(TAny*)"rawip_KMaxTxIPPacketSize",&iMaxTxPacketSize); + UserSvr::HalFunction(EHalGroupEmulator,EEmulatorHalIntProperty,(TAny*)"rawip_KMaxRxIPPacketSize",&iMaxRxPacketSize); +#endif } void CBcaController::UpdateInternalFlowFlag(TFlowControl aValue) @@ -404,7 +400,7 @@ * Indicator of whether the BufferQueue is full * @return TBool. ETrue if bufferQueue is full, EFalse if queue is not full */ - { + { iFullQueueFlag = iNumPacketsInSendQueue >= iMaxSendQueueLen; return iFullQueueFlag; }