Convert Kernelhwsrv package from SFL to EPL
kernel\eka\compsupp is subject to the ARM EABI LICENSE
userlibandfileserver\fatfilenameconversionplugins\unicodeTables is subject to the Unicode license
kernel\eka\kernel\zlib is subject to the zlib license
// Copyright (c) 1998-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:
// f32\sfat\sl_fatcache.inl
//
//
/**
@file
*/
#ifndef SL_FAT_CACHE_INL
#define SL_FAT_CACHE_INL
//-----------------------------------------------------------------------------
/** clear all bits */
void T32Bits::Clear()
{
iData = 0;
}
/** @return non-0 if at least one of 32 bits is set to '1' */
TBool T32Bits::HasBitsSet() const
{
return iData;
}
/** sets bit number "aIndex" to '1' */
void T32Bits::SetBit(TUint32 aIndex)
{
ASSERT(aIndex < 32);
iData |= (1<<aIndex);
}
/**
Get value of the bit number "aIndex".
@return 0 if the bit aIndex is '0' non-zero otherwise
*/
TBool T32Bits::operator[](TUint32 aIndex) const
{
ASSERT(aIndex < 32);
return (iData & (1<<aIndex));
}
//-----------------------------------------------------------------------------
TUint32 CFatCacheBase::FatStartPos() const
{
return iFatStartPos;
}
TUint32 CFatCacheBase::FatSize() const
{
return iFatSize;
}
TFatType CFatCacheBase::FatType() const
{
return iFatType;
}
TBool CFatCacheBase::IsDirty() const
{
return iDirty;
}
void CFatCacheBase::SetDirty(TBool aDirty)
{
iDirty = aDirty;
}
TUint CFatCacheBase::NumFATs() const
{
return iNumFATs;
}
TUint CFatCacheBase::FAT_SectorSzLog2() const
{
return iFatSecSzLog2;
}
TUint CFatCacheBase::FAT_SectorSz() const
{
return 1 << iFatSecSzLog2;
}
TUint CFatCacheBase::FAT_ClusterSzLog2() const
{
return iFatClustSzLog2;
}
//-----------------------------------------------------------------------------
/** @return number of FAT cache sectors in this fixed cache */
TUint32 CFat12Cache::NumSectors() const
{
return iSectorsInCache;
}
//-----------------------------------------------------------------------------
/** @return Log2(page size in bytes) */
TUint CFatPagedCacheBase::PageSizeLog2() const
{
return iPageSizeLog2;
}
/** @return page size in bytes */
TUint CFatPagedCacheBase::PageSize() const
{
return Pow2(iPageSizeLog2);
}
/** @return Log2(size of the logical sector of the page in bytes) */
TUint CFatPagedCacheBase::SectorSizeLog2() const
{
return iSectorSizeLog2;
}
/** @return number of the logical sector in the page */
TUint CFatPagedCacheBase::SectorsInPage() const
{
return Pow2(iPageSizeLog2 - iSectorSizeLog2);
}
//-----------------------------------------------------------------------------
TUint CFat16FixedCache::NumPages() const
{
return (TUint)iPages.Count();
}
//-----------------------------------------------------------------------------
/** @return the index in the FAT table this page starts from */
TUint32 CFatCachePageBase::StartFatIndex() const
{
return iStartIndexInFAT;
}
/** @return number of FAT entries in the page */
TUint32 CFatCachePageBase::EntriesInPage() const
{
return iFatEntriesInPage;
}
/** @return page state */
CFatCachePageBase::TState CFatCachePageBase::State() const
{
return iState;
}
/** sets the state of the page */
void CFatCachePageBase::SetState(TState aState)
{
iState = aState;
}
/** @return ETrue if the page is dirty, i.e. contains non-flushed dirty sectors */
TBool CFatCachePageBase::IsDirty() const
{
if(State() == EDirty)
{
ASSERT(iDirtySectors.HasBitsSet());
return ETrue;
}
else
{
ASSERT(!iDirtySectors.HasBitsSet());
return EFalse;
}
}
/** @return ETrue if the page data are valid */
TBool CFatCachePageBase::IsValid() const
{
return (State() == EClean || State() == EDirty);
}
/** force the page to the clean state */
void CFatCachePageBase::SetClean()
{
iDirtySectors.Clear(); //-- clear dirty sectors bitmap
SetState(EClean);
}
/** @return page size in bytes */
TUint32 CFatCachePageBase::PageSize() const
{
return iCache.PageSize();
}
/** @return number of logical sectors in the page */
TUint32 CFatCachePageBase::NumSectors() const
{
return iCache.SectorsInPage();
}
/** @return ETrue if the entry at aFatIndex belongs to this page */
TBool CFatCachePageBase::IsEntryCached(TUint32 aFatIndex) const
{
return (aFatIndex >= iStartIndexInFAT && aFatIndex < iStartIndexInFAT+EntriesInPage());
}
//---------------------------------------------------------------------------------------------------------------------------------
#endif //SL_FAT_CACHE_INL