diff -r 000000000000 -r af10295192d8 linklayerprotocols/pppnif/INC/PPPBASE.INL --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/linklayerprotocols/pppnif/INC/PPPBASE.INL Tue Jan 26 15:23:49 2010 +0200 @@ -0,0 +1,165 @@ +// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of "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: +// + +#ifndef __PPPBASE_INL__ +#define __PPPBASE_INL__ + +#include + +/** @file +@internalComponent */ + +// +// PPP Link Frame Checksum +// + +// 16 bit CRC +inline TPppFcs16::TPppFcs16() + { + Init(); + } + +/** +Returns the current CRC value. +@return CRC-16 +*/ +inline TUint16 TPppFcs16::Fcs() const + { + return (TUint16)~iFcs; + } + +/** +Sets the CRC value to the initial state before calculation. +*/ +inline void TPppFcs16::Init() + { + iFcs = (TUint16)KPppInitFcs16; + } + +/** +Determines if the calculated CRC is valid. + +@return ETrue if the calculated CRC matches the expected value +*/ +inline TBool TPppFcs16::IsGood() const + { + return iFcs==KPppGoodFcs16; + } + +/** +Incrementally calculates the CRC for the next message byte. + +@param aByte Message byte +*/ +inline void TPppFcs16::CalcByte(TUint8 aByte) + { + iFcs = (TUint16)((iFcs >> 8) ^ FcsTable[(iFcs ^ aByte) & 0xff]); + } + + +// 32 bit CRC +inline TPppFcs32::TPppFcs32() + { + Init(); + } + +/** +Returns the current CRC value. +@return CRC-32 +*/ +inline TUint32 TPppFcs32::Fcs() const + { + return (TUint32)~iFcs; + } + +/** +Sets the CRC value to the initial state before calculation. +*/ +inline void TPppFcs32::Init() + { + iFcs = (TUint32)KPppInitFcs32; + } + +/** +Determines if the calculated CRC is valid. + +@return ETrue if the calculated CRC matches the expected value +*/ +inline TBool TPppFcs32::IsGood() const + { + return iFcs==KPppGoodFcs32; + } + +/** +Incrementally calculates the CRC for the next message byte. + +@param aByte Message byte +*/ +inline void TPppFcs32::CalcByte(TUint8 aByte) + { + iFcs = (((iFcs) >> 8) ^ FcsTable[((iFcs) ^ aByte) & 0xff]); + } + +// +// PPP Packet Receiver +// + +inline TInt MPppRecvr::SendFrame(RMBufChain& aPacket) + { return iPppLcp->PppLink()->Send(aPacket, iPppId); } +inline void MPppRecvr::SetId(TUint aPppId) + { iPppId = aPppId; } +inline void MPppRecvr::SetPhase(TPppPhase aPhase) + { iActivePhase = aPhase; } + +// +// PPP Link Protocol Support +// + +inline void CPppLinkBase::NotifyLinkUp() + { iPppLcp->LinkLayerUp(); } +inline void CPppLinkBase::NotifyLinkDown(TInt aReason) + { iPppLcp->LinkLayerDown(aReason); } +inline void CPppLinkBase::DeliverToLcp(RMBufChain& aPacket) + { iPppLcp->LinkRecv(aPacket); } +inline void CPppLinkBase::NewCompressor(const CPppCompressor* aCompressor) + { + iPppCompressor = (CPppCompressor*)aCompressor; + } +inline void CPppLinkBase::NewDeCompressor(const CPppDeCompressor* aDeCompressor) + { + iPppDecompressor = (CPppDeCompressor*)aDeCompressor; + } + + +// +// PPP Options Support +// + +inline RPppOption& RPppOption::Cast(RMBufChain& aChain) + { return *((RPppOption*)&aChain); } +inline const RPppOption& RPppOption::Cast(const RMBufChain& aChain) + { return *((const RPppOption*)&aChain); } +inline const RPppOption& RPppOption::operator=(const RMBufChain& aChain) + { iNext = (RMBuf*)aChain.First(); return *this; } + +// +// PPP FSM +// + +inline TBool MPppFsm::FsmIsThisLayerOpen() + { return iState==EPppFsmOpened; } + +#endif +