sl@0: // Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies). sl@0: // All rights reserved. sl@0: // This component and the accompanying materials are made available sl@0: // under the terms of the License "Eclipse Public License v1.0" sl@0: // which accompanies this distribution, and is available sl@0: // at the URL "http://www.eclipse.org/legal/epl-v10.html". sl@0: // sl@0: // Initial Contributors: sl@0: // Nokia Corporation - initial contribution. sl@0: // sl@0: // Contributors: sl@0: // sl@0: // Description: sl@0: // hal\tsrc\savehal.cpp sl@0: // sl@0: // sl@0: sl@0: #include sl@0: #include sl@0: #include sl@0: sl@0: _LIT(KHalDataFileName, "\\system\\data\\HAL.DAT"); sl@0: sl@0: RTest test(_L("SAVEHAL")); sl@0: sl@0: const TInt KHalProperties=HAL::EEntryDynamic|HAL::EEntryValid; sl@0: sl@0: TInt E32Main() sl@0: { sl@0: test.Title(); sl@0: sl@0: test.Start(_L("Get HAL data")); sl@0: HAL::SEntry* pE; sl@0: TInt nEntries; sl@0: TInt r=HAL::GetAll(nEntries, pE); sl@0: test(r==KErrNone); sl@0: test.Printf(_L("%d entries\n"),nEntries); sl@0: sl@0: const HAL::SEntry* pS=pE; sl@0: const HAL::SEntry* pEnd=pS+nEntries; sl@0: TInt* pD=(TInt*)pE; sl@0: TInt s=0; sl@0: for (; pSiProperties & KHalProperties)==KHalProperties) sl@0: { sl@0: TInt v=pS->iValue; sl@0: *pD++=s; sl@0: *pD++=v; sl@0: } sl@0: } sl@0: TInt nSaved=(pD-(TInt*)pE)>>1; sl@0: test.Printf(_L("%d entries to be saved\n"),nSaved); sl@0: sl@0: test.Next(_L("Connect to file server")); sl@0: RFs fs; sl@0: r=fs.Connect(); sl@0: test(r==KErrNone); sl@0: sl@0: test.Next(_L("Open file")); sl@0: RFile file; sl@0: r=file.Replace(fs,KHalDataFileName,EFileWrite|EFileShareExclusive); sl@0: test(r==KErrNone); sl@0: sl@0: test.Next(_L("Save data")); sl@0: TPckgBuf muid; sl@0: r=HAL::Get(HAL::EMachineUid, muid()); sl@0: test (r==KErrNone); sl@0: r=file.Write(muid); sl@0: test(r==KErrNone); sl@0: TPtrC8 ptr((const TUint8*)pE, nSaved*8); sl@0: r=file.Write(ptr); sl@0: test(r==KErrNone); sl@0: sl@0: file.Close(); sl@0: fs.Close(); sl@0: User::Free(pE); sl@0: sl@0: test.End(); sl@0: sl@0: return 0; sl@0: }