diff -r 000000000000 -r a41df078684a kerneltest/e32test/hcr/d_hcrsim.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kerneltest/e32test/hcr/d_hcrsim.h Mon Oct 19 15:55:17 2009 +0100 @@ -0,0 +1,258 @@ +// Copyright (c) 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: +// e32test/hcr/d_hcrsim.h +// +// + +#ifndef D_HCRSIM_H +#define D_HCRSIM_H + +#include +#include +#include +#include "hcr_hai.h" +#include "hcr_pil.h" + +#ifndef __KERNEL_MODE__ +using namespace HCR; +#endif // __KERNEL_MODE__ + +// Device driver name +_LIT(KTestHcrSim, "d_hcrsim"); + +// The following flags are used when calling InitExtension() in order to modify +// the behaviour of the test PSL. +enum TTestPslConfiguration { + // Make PSL return NULL when asked for the address of the Compiled Repository + ETestNullRepository = 0x1, + + // Compiled Repository contains 0 element + ETestEmptyRepository = 0x2, + + // PSL's IgnoreCoreImgRepository() returns ETrue when this is set + ETestIgnoreCoreImgRepository = 0x4, + + // Use Corrupt Repository (not ordered) + ETestCorruptRepository1 = 0x8, + + // Use Corrupt Repository (has duplicates) + ETestCorruptRepository2 = 0x10, + + // Set Override Repository address to the Empty Compiled Repository + ETestEnableOverrideRepository = 0x20, +}; + +class RHcrSimTestChannel : public RBusLogicalChannel + { +public: + enum TTestControl + { + // HCR Published API's + EHcrGetLinAddr, + EHcrFindNumSettingsInCategory, + EHcrFindSettingsCategory, + EHcrFindSettingsPattern, + EHcrGetTypeAndSize, + EHcrGetWordSettings, + EHcrGetInt64, + EHcrGetInt32, + EHcrGetInt16, + EHcrGetInt8, + EHcrGetBool, + EHcrGetDataArray, + EHcrGetDataDes, + EHcrGetUInt64, + EHcrGetUInt32, + EHcrGetUInt16, + EHcrGetUInt8, + EHcrGetArrayInt, + EHcrGetArrayUInt, + EHcrGetStringArray, + EHcrGetStringDes, + // HCR Internal API's + EHcrInitExtension, + EHcrSwitchRepository, + EHcrClearRepository, + EHcrCheckIntegrity, + }; + +#ifndef __KERNEL_MODE__ + inline TInt Open(); + inline TInt GetLinAddr(const TSettingId& aId, TLinAddr& aValue); + inline TInt FindNumSettingsInCategory(TCategoryUid aCatUid); + inline TInt FindSettings(TCategoryUid aCatUid, + TInt aMaxNum, TUint32& aNumFound, + TElementId* aElIds, TSettingType* aTypes, TUint16* aLens); + inline TInt FindSettings(TCategoryUid aCat, + TInt aMaxNum, TUint32 aAtId, + TUint32 aMask, TUint32 aPattern, TUint32& aNumFound, + TElementId* aElIds, TSettingType* aTypes, TUint16* aLens); + inline TInt GetTypeAndSize(const TSettingId& aId, + TSettingType& aType, TUint16& aLen); + inline TInt GetWordSettings(TInt aNum, const SSettingId aIds[], + TInt32 aValues[], TSettingType aTypes[], + TInt aErrors[]); + inline TInt GetInt(const TSettingId& aId, TInt64& aValue); + inline TInt GetInt(const TSettingId& aId, TInt32& aValue); + inline TInt GetInt(const TSettingId& aId, TInt16& aValue); + inline TInt GetInt(const TSettingId& aId, TInt8& aValue); + inline TInt GetBool(const TSettingId& aId, TBool& aValue); + inline TInt GetData(const TSettingId& aId, TDes8& aValue); + inline TInt GetData(const TSettingId& aId, TUint16 aMaxLen, + TUint8* aValue, TUint16& aLen); + inline TInt GetUInt(const TSettingId& aId, TUint64& aValue); + inline TInt GetUInt(const TSettingId& aId, TUint32& aValue); + inline TInt GetUInt(const TSettingId& aId, TUint16& aValue); + inline TInt GetUInt(const TSettingId& aId, TUint8& aValue); + inline TInt GetArray(const TSettingId& aId, TUint16 aMaxLen, + TInt32* aValue, TUint16& aLen); + inline TInt GetArray(const TSettingId& aId, TUint16 aMaxLen, + TUint32* aValue, TUint16& aLen); + inline TInt GetString(const TSettingId& aId, TDes8& aValue); + inline TInt GetString(const TSettingId& aId, TUint16 aMaxLen, + TText8* aValue, TUint16& aLen); + inline TInt InitExtension(const TUint32 aFlags = 0); + inline TInt SwitchRepository(const TDesC8& aFileName, HCRInternal::TReposId aId); + inline TInt CheckIntegrity(); +#endif // __KERNEL_MODE__ + }; + +#ifndef __KERNEL_MODE__ +inline TInt RHcrSimTestChannel::Open() + {return (DoCreate(KTestHcrSim(), TVersion(1, 0, KE32BuildVersionNumber), KNullUnit, NULL, NULL, EOwnerThread));} +inline TInt RHcrSimTestChannel::GetLinAddr(const TSettingId& aId, TLinAddr& aValue) + {return DoControl(EHcrGetLinAddr, (TAny*) &aId, (TAny*) &aValue);} +inline TInt RHcrSimTestChannel::FindNumSettingsInCategory(TCategoryUid aCatUid) + {return DoControl(EHcrFindNumSettingsInCategory, (TAny*) aCatUid);} +inline TInt RHcrSimTestChannel::FindSettings(TCategoryUid aCatUid, + TInt aMaxNum, TUint32& aNumFound, + TElementId* aElIds, TSettingType* aTypes, TUint16* aLens) + { + TAny* args[6]; + args[0] = (TAny*) aCatUid; + args[1] = (TAny*) aMaxNum; + args[2] = (TAny*) &aNumFound; + args[3] = (TAny*) aElIds; + args[4] = (TAny*) aTypes; + args[5] = (TAny*) aLens; + return DoControl(EHcrFindSettingsCategory, (TAny*) args); + } +inline TInt RHcrSimTestChannel::FindSettings(TCategoryUid aCat, + TInt aMaxNum, TUint32 aAtId, + TUint32 aMask, TUint32 aPattern, TUint32& aNumFound, + TElementId* aElIds, TSettingType* aTypes, TUint16* aLens) + { + TAny* args[9]; + args[0] = (TAny*) aCat; + args[1] = (TAny*) aMaxNum; + args[2] = (TAny*) aAtId; + args[3] = (TAny*) aMask; + args[4] = (TAny*) aPattern; + args[5] = (TAny*) &aNumFound; + args[6] = (TAny*) aElIds; + args[7] = (TAny*) aTypes; + args[8] = (TAny*) aLens; + return DoControl(EHcrFindSettingsPattern, (TAny*) args); + } +inline TInt RHcrSimTestChannel::GetTypeAndSize(const TSettingId& aId, + TSettingType& aType, TUint16& aLen) + { + TAny* args[3]; + args[0] = (TAny*) &aId; + args[1] = (TAny*) &aType; + args[2] = (TAny*) &aLen; + return DoControl(EHcrGetTypeAndSize, (TAny*) args); + } +inline TInt RHcrSimTestChannel::GetWordSettings(TInt aNum, const SSettingId aIds[], + TInt32 aValues[], TSettingType aTypes[], + TInt aErrors[]) + { + TAny* args[5]; + args[0] = (TAny*) aNum; + args[1] = (TAny*) aIds; + args[2] = (TAny*) aValues; + args[3] = (TAny*) aTypes; + args[4] = (TAny*) aErrors; + return DoControl(EHcrGetWordSettings, (TAny*) args); + } +inline TInt RHcrSimTestChannel::GetInt(const TSettingId& aId, TInt64& aValue) + {return DoControl(EHcrGetInt64, (TAny*) &aId, (TAny*) &aValue);} +inline TInt RHcrSimTestChannel::GetInt(const TSettingId& aId, TInt32& aValue) + {return DoControl(EHcrGetInt32, (TAny*) &aId, (TAny*) &aValue);} +inline TInt RHcrSimTestChannel::GetInt(const TSettingId& aId, TInt16& aValue) + {return DoControl(EHcrGetInt16, (TAny*) &aId, (TAny*) &aValue);} +inline TInt RHcrSimTestChannel::GetInt(const TSettingId& aId, TInt8& aValue) + {return DoControl(EHcrGetInt8, (TAny*) &aId, (TAny*) &aValue);} +inline TInt RHcrSimTestChannel::GetBool(const TSettingId& aId, TBool& aValue) + {return DoControl(EHcrGetBool, (TAny*) &aId, (TAny*) &aValue);} +inline TInt RHcrSimTestChannel::GetData(const TSettingId& aId, TDes8& aValue) + {return DoControl(EHcrGetDataDes, (TAny*) &aId, (TAny*) &aValue);} +inline TInt RHcrSimTestChannel::GetData(const TSettingId& aId, TUint16 aMaxLen, + TUint8* aValue, TUint16& aLen) + { + TAny* args[4]; + args[0] = (TAny*) &aId; + args[1] = (TAny*) ((TUint) aMaxLen); + args[2] = (TAny*) aValue; + args[3] = (TAny*) &aLen; + return DoControl(EHcrGetDataArray, (TAny*) args); + } +inline TInt RHcrSimTestChannel::GetUInt(const TSettingId& aId, TUint64& aValue) + {return DoControl(EHcrGetUInt64, (TAny*) &aId, (TAny*) &aValue);} +inline TInt RHcrSimTestChannel::GetUInt(const TSettingId& aId, TUint32& aValue) + {return DoControl(EHcrGetUInt32, (TAny*) &aId, (TAny*) &aValue);} +inline TInt RHcrSimTestChannel::GetUInt(const TSettingId& aId, TUint16& aValue) + {return DoControl(EHcrGetUInt16, (TAny*) &aId, (TAny*) &aValue);} +inline TInt RHcrSimTestChannel::GetUInt(const TSettingId& aId, TUint8& aValue) + {return DoControl(EHcrGetUInt8, (TAny*) &aId, (TAny*) &aValue);} +inline TInt RHcrSimTestChannel::GetArray(const TSettingId& aId, TUint16 aMaxLen, + TInt32* aValue, TUint16& aLen) + { + TAny* args[4]; + args[0] = (TAny*) &aId; + args[1] = (TAny*) ((TUint) aMaxLen); + args[2] = (TAny*) aValue; + args[3] = (TAny*) &aLen; + return DoControl(EHcrGetArrayInt, (TAny*) args); + } +inline TInt RHcrSimTestChannel::GetArray(const TSettingId& aId, TUint16 aMaxLen, + TUint32* aValue, TUint16& aLen) + { + TAny* args[4]; + args[0] = (TAny*) &aId; + args[1] = (TAny*) ((TUint) aMaxLen); + args[2] = (TAny*) aValue; + args[3] = (TAny*) &aLen; + return DoControl(EHcrGetArrayUInt, (TAny*) args); + } +inline TInt RHcrSimTestChannel::GetString(const TSettingId& aId, TDes8& aValue) + {return DoControl(EHcrGetStringDes, (TAny*) &aId, (TAny*) &aValue);} +inline TInt RHcrSimTestChannel::GetString(const TSettingId& aId, TUint16 aMaxLen, + TText8* aValue, TUint16& aLen) + { + TAny* args[4]; + args[0] = (TAny*) &aId; + args[1] = (TAny*) ((TUint) aMaxLen); + args[2] = (TAny*) aValue; + args[3] = (TAny*) &aLen; + return DoControl(EHcrGetStringArray, (TAny*) args); + } +inline TInt RHcrSimTestChannel::InitExtension(const TUint32 aFlags) + {return DoControl(EHcrInitExtension, (TAny*) aFlags);} +inline TInt RHcrSimTestChannel::SwitchRepository(const TDesC8& aFileName, HCRInternal::TReposId aId) + {return DoControl(EHcrSwitchRepository, (TAny*) &aFileName, (TAny*) aId);} +inline TInt RHcrSimTestChannel::CheckIntegrity() + {return DoControl(EHcrCheckIntegrity);} +#endif // __KERNEL_MODE__ +#endif // D_HCRSIM_H