diff -r 000000000000 -r a41df078684a kernel/eka/include/drivers/comm.inl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kernel/eka/include/drivers/comm.inl Mon Oct 19 15:55:17 2009 +0100 @@ -0,0 +1,137 @@ +// Copyright (c) 1996-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of the License "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// e32\include\drivers\comm.inl +// +// WARNING: This file contains some APIs which are internal and are subject +// to change without noticed. Such APIs should therefore not be used +// outside the Kernel and Hardware Services package. +// + +/** + @file + @internalComponent + + This function informs the power model about the electrical current requirements. + @param aCurrent The required electrical current. + @publishedPartner + @deprecated +*/ +inline void DComm::SetCurrent(TInt aCurrent) + { iLdd->iPowerHandler->SetCurrentConsumption(aCurrent); } + +/** +Handles the received character block from the ISR. +@param aChar points to received characters. +@param aCount number of characters received. +@param aXonXoff =1 if XON received, -1 if XOFF received, 0 if neither. +@publishedPartner +@released +*/ +inline void DComm::ReceiveIsr(TUint* aChar, TInt aCount, TInt aXonXoff) + { iLdd->ReceiveIsr(aChar,aCount,aXonXoff); } + +/** +Fetches the next character to be transmitted in an ISR. +@return The character to be transmitted. +@publishedPartner +@released +*/ +inline TInt DComm::TransmitIsr() + { return iLdd->TransmitIsr(); } + +/** +Checks the progress of transmission against the transmit buffer in the LDD. +@publishedPartner +@released +*/ +inline void DComm::CheckTxBuffer() + { iLdd->CheckTxBuffer(); } + +/** +Handles a state change in an ISR. +@param aSignals State change communicated by the ISR. + For Example: CTS, DSR, DCD, RNG +@publishedPartner +@released +*/ +inline void DComm::StateIsr(TUint aSignals) + { iLdd->StateIsr(aSignals); } + +/** +Checks the status of transmission. +@return ETrue if it transmitting chars, EFalse otherwise. +@publishedPartner +@released +*/ +inline TBool DComm::Transmitting() + { return iTransmitting; } + + +inline TBool DChannelComm::AreAnyPending() const +// Return TRUE if any requests are pending. + { + return (iRxBufReq.iBuf || iTxBufReq.iBuf); + } + +inline TBool DChannelComm::IsTerminator(TUint8 aChar) + { return (iTerminatorMask[aChar>>3]&(1<<(aChar&7))); } + +inline void DChannelComm::SetTerminator(TUint8 aChar) + { iTerminatorMask[aChar>>3] |= (1<<(aChar&7)); } + +inline TInt DChannelComm::RxCount() + { TInt r=iRxPutIndex-iRxGetIndex; return(r>=0 ? r : r+iRxBufSize); } + +inline TInt DChannelComm::TxCount() + { TInt r=iTxPutIndex-iTxGetIndex; return(r>=0 ? r : r+iTxBufSize); } + +inline void DChannelComm::EnableTransmit() + { ((DComm*)iPdd)->EnableTransmit(); } + +inline TInt DChannelComm::IsLineFail(TUint aFailSignals) + { return(~iSignals & aFailSignals); } + +inline void DChannelComm::SetStatus(TState aStatus) + { iStatus=aStatus; } + +inline TInt DChannelComm::PddStart() + { return ((DComm*)iPdd)->Start(); } + +inline void DChannelComm::Stop(TStopMode aMode) + { ((DComm*)iPdd)->Stop(aMode); } + +inline void DChannelComm::PddBreak(TBool aState) + { ((DComm*)iPdd)->Break(aState); } + +inline TUint DChannelComm::Signals() const + { return ((DComm*)iPdd)->Signals(); } + +inline void DChannelComm::SetSignals(TUint aSetMask,TUint aClearMask) + { ((DComm*)iPdd)->SetSignals(aSetMask,aClearMask); } + +inline TInt DChannelComm::ValidateConfig(const TCommConfigV01 &aConfig) const + { return ((DComm*)iPdd)->ValidateConfig(aConfig); } + +inline void DChannelComm::PddConfigure(TCommConfigV01 &aConfig) + { ((DComm*)iPdd)->Configure(aConfig); } + +inline void DChannelComm::PddCaps(TDes8 &aCaps) const + { ((DComm*)iPdd)->Caps(aCaps); } + +inline void DChannelComm::PddCheckConfig(TCommConfigV01& aConfig) + { ((DComm*)iPdd)->CheckConfig(aConfig); } + +inline TBool DChannelComm::Transmitting() + { return ((DComm*)iPdd)->iTransmitting; } +