# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1277311493 -10800 # Node ID 73ea206103e677676e72723c2a7990c4811fdbbb # Parent 657f875b013ed343faa63d5a301b0e1667a43c06 Revision: 201025 Kit: 2010125 diff -r 657f875b013e -r 73ea206103e6 halservices/hal/src/hal_gcc_shim.cia --- a/halservices/hal/src/hal_gcc_shim.cia Fri Jun 11 15:02:23 2010 +0300 +++ b/halservices/hal/src/hal_gcc_shim.cia Wed Jun 23 19:44:53 2010 +0300 @@ -1,4 +1,18 @@ +// Copyright (c) 2010 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: +// hal/src/hal_gcc_shim.cia +// // HAL_GCC_SHIM.CIA - generated by GENSHIMSRC.BAT // diff -r 657f875b013e -r 73ea206103e6 kernel/eka/bmarm/ekernsmp.def --- a/kernel/eka/bmarm/ekernsmp.def Fri Jun 11 15:02:23 2010 +0300 +++ b/kernel/eka/bmarm/ekernsmp.def Wed Jun 23 19:44:53 2010 +0300 @@ -1055,4 +1055,7 @@ SetIdleHandler__3ArmPFPvUlPVv_vPv @ 1054 NONAME R3UNUSED ; Arm::SetIdleHandler(void (*)(void *, unsigned long, void volatile *), void *) FreeRamZone__4EpocUi @ 1055 NONAME R3UNUSED ; Epoc::FreeRamZone(unsigned int) SelectiveAlloc__16TBitMapAllocatorii @ 1056 NONAME R3UNUSED ; TBitMapAllocator::SelectiveAlloc(int, int) + SetKeyOffset__10RArrayBasei @ 1057 NONAME R3UNUSED ; RArrayBase::SetKeyOffset(int) + CpuRetires__5Cache @ 1058 NONAME R3UNUSED ; Cache::CpuRetires(void) + KernelRetires__5Cache @ 1059 NONAME R3UNUSED ; Cache::KernelRetires(void) diff -r 657f875b013e -r 73ea206103e6 kernel/eka/bmarm/ekernu.def --- a/kernel/eka/bmarm/ekernu.def Fri Jun 11 15:02:23 2010 +0300 +++ b/kernel/eka/bmarm/ekernu.def Wed Jun 23 19:44:53 2010 +0300 @@ -1052,3 +1052,6 @@ SetIdleHandler__3ArmPFPvUl_vPv @ 1051 NONAME R3UNUSED ; Arm::SetIdleHandler(void (*)(void *, unsigned long), void *) FreeRamZone__4EpocUi @ 1052 NONAME R3UNUSED ; Epoc::FreeRamZone(unsigned int) SelectiveAlloc__16TBitMapAllocatorii @ 1053 NONAME R3UNUSED ; TBitMapAllocator::SelectiveAlloc(int, int) + SetKeyOffset__10RArrayBasei @ 1054 NONAME R3UNUSED ; RArrayBase::SetKeyOffset(int) + CpuRetires__5Cache @ 1055 NONAME R3UNUSED ; Cache::CpuRetires(void) + KernelRetires__5Cache @ 1056 NONAME R3UNUSED ; Cache::KernelRetires(void) diff -r 657f875b013e -r 73ea206103e6 kernel/eka/bmarm/euseru.def --- a/kernel/eka/bmarm/euseru.def Fri Jun 11 15:02:23 2010 +0300 +++ b/kernel/eka/bmarm/euseru.def Wed Jun 23 19:44:53 2010 +0300 @@ -2267,4 +2267,5 @@ Size__C10RAllocator @ 2266 NONAME R3UNUSED ; RAllocator::Size(void) const __DbgGetAllocFail__10RAllocator @ 2267 NONAME R3UNUSED ; RAllocator::__DbgGetAllocFail(void) __DbgGetAllocFail__4Useri @ 2268 NONAME R3UNUSED ; User::__DbgGetAllocFail(int) + SetKeyOffset__10RArrayBasei @ 2269 NONAME R3UNUSED ; RArrayBase::SetKeyOffset(int) diff -r 657f875b013e -r 73ea206103e6 kernel/eka/bwins/ekernu.def --- a/kernel/eka/bwins/ekernu.def Fri Jun 11 15:02:23 2010 +0300 +++ b/kernel/eka/bwins/ekernu.def Wed Jun 23 19:44:53 2010 +0300 @@ -935,4 +935,7 @@ ?Retire@KernCoreStats@@SAHHH@Z @ 934 NONAME ; public: static int KernCoreStats::Retire(int, int) ?Stats@KernCoreStats@@SAHPAX@Z @ 935 NONAME ; public: static int KernCoreStats::Stats(void *) ?SelectiveAlloc@TBitMapAllocator@@QAEIHH@Z @ 936 NONAME ; public: unsigned int __thiscall TBitMapAllocator::SelectiveAlloc(int,int) + ?SetKeyOffset@RArrayBase@@IAEXH@Z @ 937 NONAME ; void RArrayBase::SetKeyOffset(int) + ?CpuRetires@Cache@@SAXXZ @ 938 NONAME ; public: static void __cdecl Cache::CpuRetires(void) + ?KernelRetires@Cache@@SAXXZ @ 939 NONAME ; public: static void __cdecl Cache::KernelRetires(void) diff -r 657f875b013e -r 73ea206103e6 kernel/eka/bwins/euseru.def --- a/kernel/eka/bwins/euseru.def Fri Jun 11 15:02:23 2010 +0300 +++ b/kernel/eka/bwins/euseru.def Wed Jun 23 19:44:53 2010 +0300 @@ -2215,4 +2215,5 @@ ?MaxLength@RAllocator@@QBEHXZ @ 2214 NONAME ; int RAllocator::MaxLength(void) const ?__DbgGetAllocFail@RAllocator@@QAE?AW4TAllocFail@1@XZ @ 2215 NONAME ; enum RAllocator::TAllocFail RAllocator::__DbgGetAllocFail(void) ?__DbgGetAllocFail@User@@SA?AW4TAllocFail@RAllocator@@H@Z @ 2216 NONAME ; enum RAllocator::TAllocFail User::__DbgGetAllocFail(int) + ?SetKeyOffset@RArrayBase@@IAEXH@Z @ 2217 NONAME ; void RArrayBase::SetKeyOffset(int) diff -r 657f875b013e -r 73ea206103e6 kernel/eka/bx86/ekernsmp.def --- a/kernel/eka/bx86/ekernsmp.def Fri Jun 11 15:02:23 2010 +0300 +++ b/kernel/eka/bx86/ekernsmp.def Wed Jun 23 19:44:53 2010 +0300 @@ -1012,4 +1012,7 @@ ?SetNumberOfActiveCpus@NKern@@SAXH@Z @ 1011 NONAME ; public: static void __cdecl NKern::SetNumberOfActiveCpus(int) ?FreeRamZone@Epoc@@SAHI@Z @ 1012 NONAME ; public: static int Epoc::FreeRamZone(unsigned int) ?SelectiveAlloc@TBitMapAllocator@@QAEIHH@Z @ 1013 NONAME ; public: unsigned int __thiscall TBitMapAllocator::SelectiveAlloc(int,int) + ?SetKeyOffset@RArrayBase@@IAEXH@Z @ 1014 NONAME ; void RArrayBase::SetKeyOffset(int) + ?CpuRetires@Cache@@SAXXZ @ 1015 NONAME ; public: static void __cdecl Cache::CpuRetires(void) + ?KernelRetires@Cache@@SAXXZ @ 1016 NONAME ; public: static void __cdecl Cache::KernelRetires(void) diff -r 657f875b013e -r 73ea206103e6 kernel/eka/bx86/ekernu.def --- a/kernel/eka/bx86/ekernu.def Fri Jun 11 15:02:23 2010 +0300 +++ b/kernel/eka/bx86/ekernu.def Wed Jun 23 19:44:53 2010 +0300 @@ -957,4 +957,7 @@ ?Stats@KernCoreStats@@SAHPAX@Z @ 956 NONAME ; public: static int KernCoreStats::Stats(void *) ?FreeRamZone@Epoc@@SAHI@Z @ 957 NONAME ; public: static int Epoc::FreeRamZone(unsigned int) ?SelectiveAlloc@TBitMapAllocator@@QAEIHH@Z @ 958 NONAME ; public: unsigned int __thiscall TBitMapAllocator::SelectiveAlloc(int,int) + ?SetKeyOffset@RArrayBase@@IAEXH@Z @ 959 NONAME ; void RArrayBase::SetKeyOffset(int) + ?CpuRetires@Cache@@SAXXZ @ 960 NONAME ; public: static void __cdecl Cache::CpuRetires(void) + ?KernelRetires@Cache@@SAXXZ @ 961 NONAME ; public: static void __cdecl Cache::KernelRetires(void) diff -r 657f875b013e -r 73ea206103e6 kernel/eka/bx86/euseru.def --- a/kernel/eka/bx86/euseru.def Fri Jun 11 15:02:23 2010 +0300 +++ b/kernel/eka/bx86/euseru.def Wed Jun 23 19:44:53 2010 +0300 @@ -2215,4 +2215,5 @@ ?Size@RAllocator@@QBEHXZ @ 2214 NONAME ; public: int __thiscall RAllocator::Size(void)const ?__DbgGetAllocFail@RAllocator@@QAE?AW4TAllocFail@1@XZ @ 2215 NONAME ; enum RAllocator::TAllocFail RAllocator::__DbgGetAllocFail(void) ?__DbgGetAllocFail@User@@SA?AW4TAllocFail@RAllocator@@H@Z @ 2216 NONAME ; enum RAllocator::TAllocFail User::__DbgGetAllocFail(int) + ?SetKeyOffset@RArrayBase@@IAEXH@Z @ 2217 NONAME ; void RArrayBase::SetKeyOffset(int) diff -r 657f875b013e -r 73ea206103e6 kernel/eka/bx86gcc/ekernsmp.def --- a/kernel/eka/bx86gcc/ekernsmp.def Fri Jun 11 15:02:23 2010 +0300 +++ b/kernel/eka/bx86gcc/ekernsmp.def Wed Jun 23 19:44:53 2010 +0300 @@ -1100,4 +1100,8 @@ _ZN5NKern21SetNumberOfActiveCpusEi @ 1099 NONAME _ZN4Epoc11FreeRamZoneEj @ 1100 NONAME _ZN16TBitMapAllocator14SelectiveAllocEii @ 1101 NONAME + _ZN10RArrayBase12SetKeyOffsetEi @ 1102 NONAME + _ZN5Cache10CpuRetiresEv @ 1103 NONAME + _ZN5Cache13KernelRetiresEv @ 1104 NONAME + diff -r 657f875b013e -r 73ea206103e6 kernel/eka/bx86gcc/ekernu.def --- a/kernel/eka/bx86gcc/ekernu.def Fri Jun 11 15:02:23 2010 +0300 +++ b/kernel/eka/bx86gcc/ekernu.def Wed Jun 23 19:44:53 2010 +0300 @@ -1040,4 +1040,7 @@ _ZN13KernCoreStats9LeaveIdleEj @ 1039 NONAME _ZN4Epoc11FreeRamZoneEj @ 1040 NONAME _ZN16TBitMapAllocator14SelectiveAllocEii @ 1041 NONAME + _ZN10RArrayBase12SetKeyOffsetEi @ 1042 NONAME + _ZN5Cache10CpuRetiresEv @ 1043 NONAME + _ZN5Cache13KernelRetiresEv @ 1044 NONAME diff -r 657f875b013e -r 73ea206103e6 kernel/eka/bx86gcc/euseru.def --- a/kernel/eka/bx86gcc/euseru.def Fri Jun 11 15:02:23 2010 +0300 +++ b/kernel/eka/bx86gcc/euseru.def Wed Jun 23 19:44:53 2010 +0300 @@ -2494,4 +2494,5 @@ _ZNK10RAllocator9MaxLengthEv @ 2493 NONAME _ZN10RAllocator17__DbgGetAllocFailEv @ 2494 NONAME _ZN4User17__DbgGetAllocFailEi @ 2495 NONAME + _ZN10RArrayBase12SetKeyOffsetEi @ 2496 NONAME diff -r 657f875b013e -r 73ea206103e6 kernel/eka/common/array.cpp --- a/kernel/eka/common/array.cpp Fri Jun 11 15:02:23 2010 +0300 +++ b/kernel/eka/common/array.cpp Wed Jun 23 19:44:53 2010 +0300 @@ -663,6 +663,12 @@ return iCount; } +EXPORT_C void RArrayBase::SetKeyOffset(TInt aKeyOffset) + { + __ASSERT_ALWAYS(TUint(aKeyOffset)iDriveNumber, (TUint) m.Length(), (TUint) m.Pos(), (TUint) &m); + OstTraceDefExt2( OST_TRACE_CATEGORY_RND, TRACE_REQUEST, DLOCALDRIVE_REQUEST_READ, "ERead iDriveNumber=%d; TLocDrvRequest Object=0x%x", (TInt) iDrive->iDriveNumber, (TUint) &m); + OstTraceDefExt4( OST_TRACE_CATEGORY_RND, TRACE_REQUEST, DLOCALDRIVE_REQUEST_READ2, "ERead length=%x:%x, pos=%x:%x", (TUint) I64HIGH(m.Length()), (TUint) I64LOW(m.Length()), (TUint) I64HIGH(m.Pos()), (TUint) I64LOW(m.Pos())); r=iDrive->Request(m); __TRACE_TIMING(3); - OstTraceDefExt4( OST_TRACE_CATEGORY_RND, TRACE_REQUEST, DLOCALDRIVE_REQUEST_READ_RETURN, "ERead Return iDriveNumber=%d; length=0x%x; position=0x%x; TLocDrvRequest Object=0x%x", (TInt) iDrive->iDriveNumber, (TUint) m.Length(), (TUint) m.Pos(), (TUint) &m ); + OstTraceDefExt2( OST_TRACE_CATEGORY_RND, TRACE_REQUEST, DLOCALDRIVE_REQUEST_READ_RETURN, "ERead Return iDriveNumber=%d; TLocDrvRequest Object=0x%x", (TInt) iDrive->iDriveNumber, (TUint) &m ); + OstTraceDefExt4( OST_TRACE_CATEGORY_RND, TRACE_REQUEST, DLOCALDRIVE_REQUEST_READ_RETURN2, "ERead Return length=%x:%x, pos=%x:%x", (TUint) I64HIGH(m.Length()), (TUint) I64LOW(m.Length()), (TUint) I64HIGH(m.Pos()), (TUint) I64LOW(m.Pos())); } m.CloseRemoteThread(); break; @@ -600,9 +601,11 @@ r=m.ProcessMessageData(a1); if (r==KErrNone) { - OstTraceDefExt4( OST_TRACE_CATEGORY_RND, TRACE_REQUEST, DLOCALDRIVE_REQUEST_WRITE, "EWrite iDriveNumber=%d; length=0x%x; position=0x%x; TLocDrvRequest Object=0x%x", (TInt) iDrive->iDriveNumber, (TUint) m.Length(), (TUint) m.Pos(), (TUint) &m ); + OstTraceDefExt2( OST_TRACE_CATEGORY_RND, TRACE_REQUEST, DLOCALDRIVE_REQUEST_WRITE, "EWrite iDriveNumber=%d; TLocDrvRequest Object=0x%x", (TInt) iDrive->iDriveNumber, (TUint) &m ); + OstTraceDefExt4( OST_TRACE_CATEGORY_RND, TRACE_REQUEST, DLOCALDRIVE_REQUEST_WRITE2, "EWrite length=%x:%x, pos=%x:%x", (TUint) I64HIGH(m.Length()), (TUint) I64LOW(m.Length()), (TUint) I64HIGH(m.Pos()), (TUint) I64LOW(m.Pos())); r=iDrive->Request(m); - OstTraceDefExt4( OST_TRACE_CATEGORY_RND, TRACE_REQUEST, DLOCALDRIVE_REQUEST_WRITE_RETURN, "EWrite Return iDriveNumber=%d; length=0x%x; position=0x%x; TLocDrvRequest Object=0x%x", (TInt) iDrive->iDriveNumber, (TUint) m.Length(), (TUint) m.Pos(), (TUint) &m ); + OstTraceDefExt2( OST_TRACE_CATEGORY_RND, TRACE_REQUEST, DLOCALDRIVE_REQUEST_WRITE_RETURN, "EWrite Return iDriveNumber=%d; TLocDrvRequest Object=0x%x", (TInt) iDrive->iDriveNumber, (TUint) &m ); + OstTraceDefExt4( OST_TRACE_CATEGORY_RND, TRACE_REQUEST, DLOCALDRIVE_REQUEST_WRITE_RETURN2, "EWrite Return length=%x:%x, pos=%x:%x", (TUint) I64HIGH(m.Length()), (TUint) I64LOW(m.Length()), (TUint) I64HIGH(m.Pos()), (TUint) I64LOW(m.Pos())); } m.CloseRemoteThread(); break; @@ -1557,7 +1560,7 @@ OstTraceFunctionEntry1( TLOCDRVREQUEST_CHECKANDADJUSTFORPARTITION_ENTRY, this ); TLocDrv& d=*Drive(); __KTRACE_OPT(KLOCDRV,Kern::Printf("CheckAndAdjustForPartition drive %d partition len %lx",d.iDriveNumber,d.iPartitionLen)); - OstTraceExt2( TRACE_INTERNALS, TLOCDRVREQUEST_CHECKANDADJUSTFORPARTITION1, "iDriveNumber=%d; partition length=0x%lx", d.iDriveNumber, (TInt) d.iPartitionLen ); + OstTraceExt3( TRACE_INTERNALS, TLOCDRVREQUEST_CHECKANDADJUSTFORPARTITION1, "iDriveNumber=%d; partition length=%x:%x", d.iDriveNumber, (TInt) I64HIGH (d.iPartitionLen), (TInt) I64LOW (d.iPartitionLen)); Flags() |= EAdjusted; TInt r; switch (Id()) @@ -1578,7 +1581,7 @@ } case DLocalDrive::EEnlarge: __KTRACE_OPT(KLOCDRV,Kern::Printf("Enlarge request %lx",Length())); - OstTrace1( TRACE_INTERNALS, TLOCDRVREQUEST_CHECKANDADJUSTFORPARTITION2, "Enlarge request=0x%lx", Length() ); + OstTraceExt2( TRACE_INTERNALS, TLOCDRVREQUEST_CHECKANDADJUSTFORPARTITION2, "Enlarge request=%x:%x", (TInt) I64HIGH(Length()), (TInt) I64LOW(Length()) ); if (Length()>KMaxTInt) r = KErrArgument; else @@ -1586,7 +1589,7 @@ break; case DLocalDrive::EReduce: __KTRACE_OPT(KLOCDRV,Kern::Printf("Reduce request %lx@%lx",Length(),Pos())); - OstTraceExt2( TRACE_INTERNALS, TLOCDRVREQUEST_CHECKANDADJUSTFORPARTITION3, "Reduce request length=0x%lx; position=0x%lx", (TUint) Length(), (TUint) Pos() ); + OstTraceExt4( TRACE_INTERNALS, TLOCDRVREQUEST_CHECKANDADJUSTFORPARTITION3, "Reduce request length=%x:%x; position=%x:%x", (TUint) I64HIGH(Length()), (TUint) I64LOW(Length()), (TUint) I64HIGH (Pos()), (TUint) I64LOW (Pos()) ); if (Pos()+Length()>d.iPartitionLen) r = KErrArgument; else @@ -1594,7 +1597,7 @@ break; case DLocalDrive::EFormat: __KTRACE_OPT(KLOCDRV,Kern::Printf("Format request %lx@%lx",Length(),Pos())); - OstTraceExt2( TRACE_INTERNALS, TLOCDRVREQUEST_CHECKANDADJUSTFORPARTITION4, "Format request length=0x%lx; position=0x%lx", (TUint) Length(), (TUint) Pos() ); + OstTraceExt4( TRACE_INTERNALS, TLOCDRVREQUEST_CHECKANDADJUSTFORPARTITION4, "Format request length=%x:%x; position=%x:%x", (TUint) I64HIGH(Length()),(TUint) I64LOW(Length()), (TUint) I64HIGH (Pos()), (TUint) I64LOW (Pos()) ); if (!(DriverFlags() & RLocalDrive::ELocDrvWholeMedia)) { if (Pos()>d.iPartitionLen) @@ -1622,7 +1625,7 @@ // Otherwise the media driver adjust it internally case DMediaPagingDevice::ECodePageInRequest: __KTRACE_OPT(KLOCDPAGING,Kern::Printf("Adjusted Paging read request %lx@%lx",Length(),Pos())); - OstTraceDefExt2(OST_TRACE_CATEGORY_RND, TRACE_DEMANDPAGING, TLOCDRVREQUESTCHECKANDADJUSTFORPARTITION5, "Adjusted Paging read request length=0x%lx; position=0x%lx", (TUint) Length(), (TUint) Pos()); + OstTraceDefExt4(OST_TRACE_CATEGORY_RND, TRACE_DEMANDPAGING, TLOCDRVREQUESTCHECKANDADJUSTFORPARTITION5, "Adjusted Paging read request length=%x:%x; position=%x%:%x", (TUint) I64HIGH(Length()), (TUint) I64LOW(Length()), (TUint) I64HIGH (Pos()), (TUint) I64LOW (Pos())); if (Pos()+Length()>d.iPartitionLen) { r = KErrArgument; @@ -1635,7 +1638,7 @@ default: // read or write or fragment __KTRACE_OPT(KLOCDRV,Kern::Printf("R/W request %lx@%lx",Length(),Pos())); - OstTraceExt2( TRACE_INTERNALS, TLOCDRVREQUEST_CHECKANDADJUSTFORPARTITION6, "Read/Write request length=0x%x; position=0x%x", (TUint) Length(), (TUint) Pos() ); + OstTraceExt4( TRACE_INTERNALS, TLOCDRVREQUEST_CHECKANDADJUSTFORPARTITION6, "Read/Write request length=%x:%x; position=%x:%x", (TUint)I64HIGH (Length()), (TUint)I64LOW (Length()), (TUint) I64HIGH (Pos()), (TUint) I64LOW (Pos())); if (DriverFlags() & RLocalDrive::ELocDrvWholeMedia) { if (d.iMedia && d.iMedia->iDriver && Pos()+Length() > d.iMedia->iPartitionInfo.iMediaSizeInBytes) @@ -2021,7 +2024,8 @@ __KTRACE_OPT(KLOCDRV,Kern::Printf("DPrimaryMediaBase(%d)::Request(%08x)",iMediaId,&aReq)); __KTRACE_OPT(KLOCDRV,Kern::Printf("this=%x, ReqId=%d, Pos=%lx, Len=%lx, remote thread %O",this,aReq.Id(),aReq.Pos(),aReq.Length(),aReq.RemoteThread())); - OstTraceDefExt4(OST_TRACE_CATEGORY_RND, TRACE_REQUEST, DPRIMARYMEDIABASE_REQUEST, "reqId=%d; length=0x%lx; position=0x%lx; remote thread=0x%x", (TInt) aReq.Id(), (TUint) aReq.Length(), (TUint) aReq.Pos(), (TUint) aReq.RemoteThread()); + OstTraceDefExt2(OST_TRACE_CATEGORY_RND, TRACE_REQUEST, DPRIMARYMEDIABASE_REQUEST, "reqId=%d; remote thread=0x%x", (TInt) aReq.Id(), (TUint) aReq.RemoteThread()); + OstTraceDefExt4(OST_TRACE_CATEGORY_RND, TRACE_REQUEST, DPRIMARYMEDIABASE_REQUEST2, "length=%x:%x; position=%x:%x", (TUint) I64HIGH(aReq.Length()), (TUint) I64LOW(aReq.Length()), (TUint) I64HIGH(aReq.Pos()), (TUint) I64LOW(aReq.Pos())); TInt reqId = aReq.Id(); @@ -2309,7 +2313,8 @@ fragment.Flags() = aReq.Flags(); __KTRACE_OPT2(KLOCDPAGING,KLOCDRV,Kern::Printf("Send fragment (0x%08x) type(%d), length(0x%x), offset within original req(0x%x), pos in media(0x%lx)",&fragment,fragment.Id(), pinnedLen, pos, fragment.Pos())); - OstTraceDefExt5(OST_TRACE_CATEGORY_RND, TRACE_DEMANDPAGING, DPRIMARYMEDIABASE_PINFRAGMENTSENDRECEIVE3, "Send fragment 0x%08x; type=%d; length=0x%x; offset within original req=0x%x; position in media=0x%lx", (TUint) &fragment, (TInt) fragment.Id(), (TUint) pinnedLen, (TUint) pos, (TUint) fragment.Pos()); + OstTraceDefExt4(OST_TRACE_CATEGORY_RND, TRACE_DEMANDPAGING, DPRIMARYMEDIABASE_PINFRAGMENTSENDRECEIVE3, "Send fragment 0x%08x; type=%d; length=0x%x; offset within original req=0x%x", (TUint) &fragment, (TInt) fragment.Id(), (TUint) pinnedLen, (TUint) pos); + OstTraceDefExt3(OST_TRACE_CATEGORY_RND, TRACE_DEMANDPAGING, DPRIMARYMEDIABASE_PINFRAGMENTSENDRECEIVE4, "Send fragment 0x%08x; position in media=%x:%x",(TUint) &fragment, (TUint) I64HIGH(fragment.Pos()), (TUint) I64LOW(fragment.Pos())); #ifdef BTRACE_PAGING_MEDIA TInt buf[4]; @@ -2748,7 +2753,7 @@ DMedia* media=pL->iMedia; TInt r=KErrNone; - OstTraceDefExt3( OST_TRACE_CATEGORY_RND, TRACE_REQUEST, DPRIMARYMEDIABASE_DOREQUEST, "req Id=%d; length=0x%x; position=0x%x", (TInt) m.Id(), (TInt) m.Length(), (TInt) m.Pos()); + OstTraceDefExt5( OST_TRACE_CATEGORY_RND, TRACE_REQUEST, DPRIMARYMEDIABASE_DOREQUEST, "req Id=%d; length=%x:%x; position=%x:%x", (TInt) m.Id(), (TUint) I64HIGH(m.Length()), (TUint) I64LOW(m.Length()), (TUint) I64HIGH(m.Pos()), (TUint) I64LOW(m.Pos()) ); // re-open this drive's media driver ? if (m.iValue == DLocalDrive::EForceMediaChange) @@ -4284,7 +4289,8 @@ m.RemoteDesOffset()=0; // pre-aligned m.DriverFlags()=0; __KTRACE_OPT2(KLOCDRV,KLOCDPAGING,Kern::Printf("ReqId=%d, Pos=0x%lx, Len=0x%lx, remote Des 0x%x",m.Id(),m.Pos(),m.Length(),m.RemoteDes())); - OstTraceDefExt4(OST_TRACE_CATEGORY_RND, TRACE_DEMANDPAGING, DMEDIAPAGINGDEVICE_READ2, "reqId=%d; position=0x%lx; length=0x%x; remote Des=0x%x", (TInt) m.Id(), (TUint) m.Pos(), (TUint) m.Length(), (TUint) m.RemoteDes()); + OstTraceDefExt2(OST_TRACE_CATEGORY_RND, TRACE_DEMANDPAGING, DMEDIAPAGINGDEVICE_READ2, "reqId=%d; remote Des=0x%x", (TInt) m.Id(), (TUint) m.RemoteDes()); + OstTraceDefExt4(OST_TRACE_CATEGORY_RND, TRACE_DEMANDPAGING, DMEDIAPAGINGDEVICE_READ3, "length=%x:%x, pos=%x:%x", (TUint) I64HIGH(m.Length()), (TUint) I64LOW(m.Length()), (TUint) I64HIGH(m.Pos()), (TUint) I64LOW(m.Pos())); __ASSERT_DEBUG(iPrimaryMedia->iBody, LOCM_FAULT()); TInt mediaChanges = iPrimaryMedia->iBody->iMediaChanges; @@ -4402,7 +4408,8 @@ m.RemoteDesOffset()=0; // pre-aligned m.DriverFlags()=0; __KTRACE_OPT2(KLOCDRV,KLOCDPAGING,Kern::Printf("ReqId=%d, Pos=0x%lx, Len=0x%lx, remote Des 0x%x",m.Id(),m.Pos(),m.Length(),m.RemoteDes())); - OstTraceDefExt4(OST_TRACE_CATEGORY_RND, TRACE_DEMANDPAGING, DMEDIAPAGINGDEVICE_WRITE2, "reqId=%d; position=0x%lx; length=0x%lx; remote Des=0x%x", (TInt) m.Id(), (TUint) m.Pos(), (TUint) m.Length(), (TUint) m.RemoteDes()); + OstTraceDefExt2(OST_TRACE_CATEGORY_RND, TRACE_DEMANDPAGING, DMEDIAPAGINGDEVICE_WRITE2, "reqId=%d; remote Des=0x%x", (TInt) m.Id(), (TUint) m.RemoteDes()); + OstTraceDefExt4(OST_TRACE_CATEGORY_RND, TRACE_DEMANDPAGING, DMEDIAPAGINGDEVICE_WRITE3, "length=%x:%x, pos=%x:%x", (TUint) I64HIGH(m.Length()), (TUint) I64LOW(m.Length()), (TUint) I64HIGH(m.Pos()), (TUint) I64LOW(m.Pos())); __ASSERT_DEBUG(iPrimaryMedia->iBody, LOCM_FAULT()); TInt mediaChanges = iPrimaryMedia->iBody->iMediaChanges; @@ -4497,8 +4504,8 @@ m.RemoteDesOffset() = 0; // pre-aligned m.DriverFlags()=0; __KTRACE_OPT2(KLOCDRV,KLOCDPAGING,Kern::Printf("ReqId=%d, Pos=0x%lx, Len=0x%lx, remote Des 0x%x",m.Id(),m.Pos(),m.Length(),m.RemoteDes())); - OstTraceDefExt4(OST_TRACE_CATEGORY_RND, TRACE_DEMANDPAGING, DMEDIAPAGINGDEVICE_DELETENOTIFY2 , "reqId=%d; position=0x%lx; length=0x%lx; remote Des=0x%x", m.Id(), m.Pos(), m.Length(), (TUint) m.RemoteDes()); - + OstTraceDefExt2(OST_TRACE_CATEGORY_RND, TRACE_DEMANDPAGING, DMEDIAPAGINGDEVICE_DELETENOTIFY2 , "reqId=%d; remote Des=0x%x", m.Id(),(TUint) m.RemoteDes()); + OstTraceDefExt4(OST_TRACE_CATEGORY_RND, TRACE_DEMANDPAGING, DMEDIAPAGINGDEVICE_DELETENOTIFY3 , "length=%x:%x, pos=%x:%x", (TUint) I64HIGH(m.Length()), (TUint) I64LOW(m.Length()), (TUint) I64HIGH(m.Pos()), (TUint) I64LOW(m.Pos())); // send request aynchronously as we don't particularly care about the result // and waiting would slow down the thread taking the page fault iPrimaryMedia->RequestCountInc(); diff -r 657f875b013e -r 73ea206103e6 kernel/eka/drivers/media/base_e32_drivers_media.mrp --- a/kernel/eka/drivers/media/base_e32_drivers_media.mrp Fri Jun 11 15:02:23 2010 +0300 +++ b/kernel/eka/drivers/media/base_e32_drivers_media.mrp Wed Jun 23 19:44:53 2010 +0300 @@ -10,6 +10,7 @@ source \sf\os\kernelhwsrv\kernel\eka\drivers\medlfs source \sf\os\kernelhwsrv\kernel\eka\drivers\medmmc source \sf\os\kernelhwsrv\kernel\eka\drivers\mednand +source \sf\os\kernelhwsrv\kernel\eka\drivers\sdapc source \sf\os\kernelhwsrv\kernel\eka\drivers\pbus\pbusmedia.cpp source \sf\os\kernelhwsrv\kernel\eka\drivers\pbus\spbus.cpp source \sf\os\kernelhwsrv\kernel\eka\drivers\pbus\distribution.policy.s60 diff -r 657f875b013e -r 73ea206103e6 kernel/eka/drivers/media/bld.inf --- a/kernel/eka/drivers/media/bld.inf Fri Jun 11 15:02:23 2010 +0300 +++ b/kernel/eka/drivers/media/bld.inf Wed Jun 23 19:44:53 2010 +0300 @@ -42,6 +42,7 @@ ../pbus/mmc/sdcard/sdcard3c/sdio/dummyexp.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(drivers/sdio/) ../pbus/mmc/sdcard/sdcard3c/sdio/sdiocard.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(drivers/sdio/) ../pbus/mmc/sdcard/sdcard3c/sdio/sdiocard.inl SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(drivers/sdio/) +../sdapc/d_sdapc.h SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(drivers/) PRJ_MMPFILES @@ -59,6 +60,7 @@ #if !defined(WINS) && !defined(GENERIC_X86) ../../drivers/pbus/mmc/sdcard/sdcard3c/epbussd ../../drivers/pbus/mmc/sdcard/sdcard3c/sdio/epbussdio +../../drivers/sdapc/d_sdapc #endif // Build the folowing from variant if required. diff -r 657f875b013e -r 73ea206103e6 kernel/eka/drivers/medmmc/medmmc.cpp --- a/kernel/eka/drivers/medmmc/medmmc.cpp Fri Jun 11 15:02:23 2010 +0300 +++ b/kernel/eka/drivers/medmmc/medmmc.cpp Wed Jun 23 19:44:53 2010 +0300 @@ -759,7 +759,7 @@ TUint32 length(I64LOW(iCurrentReq->Length())); __KTRACE_OPT(KPBUSDRV, Kern::Printf(">mmd:dr:0x%lx,0x%x", pos, length)); - OstTraceExt2( TRACE_INTERNALS, DMMCMEDIADRIVERFLASH_DO_READ, "Position=0x%lx; Length=0x%x", (TUint) pos, (TUint) length); + OstTraceExt3( TRACE_INTERNALS, DMMCMEDIADRIVERFLASH_DO_READ, "Position=%x:%x; Length=0x%x", (TUint) I64HIGH(pos), (TUint) I64LOW(pos), (TUint) length); __ASSERT_DEBUG(CurrentRequest() == EMReqIdle, Panic(EDRInUse)); __ASSERT_DEBUG(pos < TotalSizeInBytes(), Panic(EDRStart)); __ASSERT_DEBUG(iCurrentReq->Length() >= 0, Panic(EDRNotPositive)); @@ -821,7 +821,7 @@ // { OstTraceFunctionEntryExt( DMMCMEDIADRIVERFLASH_LAUNCHREAD_ENTRY, this ); - OstTraceExt2( TRACE_INTERNALS, DMMCMEDIADRIVERFLASH_LAUNCHREAD, "position=0x%lx; length=0x%x", (TUint) iCurrentReq->Pos(), (TUint) I64LOW(iCurrentReq->Length())); + OstTraceExt3( TRACE_INTERNALS, DMMCMEDIADRIVERFLASH_LAUNCHREAD, "position=%x:%x; length=0x%x", (TUint) I64HIGH(iCurrentReq->Pos()), (TUint) I64LOW(iCurrentReq->Pos()) ,(TUint) I64LOW(iCurrentReq->Length())); __KTRACE_OPT(KPBUSDRV, Kern::Printf(">mmd:lr:0x%lx,0x%x", aStart, aLength)); __ASSERT_DEBUG(TotalSizeInBytes() > aStart, Panic(ELRStart)); __ASSERT_DEBUG(aLength > 0, Panic(ELRNotPositive)); @@ -887,7 +887,7 @@ { OstTraceFunctionEntry1( DMMCMEDIADRIVERFLASH_LAUNCHDBREAD_ENTRY, this ); __KTRACE_OPT(KPBUSDRV, Kern::Printf(">mmd:ldbr:0x%lx,0x%x", iReqCur, I64LOW(iReqEnd - iReqCur))); - OstTraceExt2( TRACE_INTERNALS, DMMCMEDIADRIVERFLASH_LAUNCHDBREAD, "position=0x%lx; length=0x%x", (TInt) iReqCur, (TInt) I64LOW(iReqEnd - iReqCur)); + OstTraceExt3( TRACE_INTERNALS, DMMCMEDIADRIVERFLASH_LAUNCHDBREAD, "position=%x:%x; length=0x%x", (TInt) I64HIGH(iReqCur), (TInt) I64LOW(iReqCur), (TInt) I64LOW(iReqEnd - iReqCur)); __ASSERT_DEBUG(TotalSizeInBytes() > iReqCur, Panic(ELRStart)); __ASSERT_DEBUG(I64LOW(iReqEnd - iReqCur) > 0, Panic(ELRNotPositive)); __ASSERT_DEBUG(TotalSizeInBytes() >= iReqEnd, Panic(ELREnd)); @@ -948,7 +948,7 @@ // { OstTraceFunctionEntryExt( DMMCMEDIADRIVERFLASH_LAUNCHPHYSREAD_ENTRY, this ); - OstTraceExt2( TRACE_INTERNALS, DMMCMEDIADRIVERFLASH_LAUNCHPHYSREAD, "position=0x%lx; length=0x%x", (TInt) iReqCur, (TInt) I64LOW(iReqEnd - iReqCur)); + OstTraceExt3( TRACE_INTERNALS, DMMCMEDIADRIVERFLASH_LAUNCHPHYSREAD, "position=%x:%x; length=0x%x", (TInt) I64HIGH(iReqCur), (TInt) I64LOW(iReqCur), (TInt) I64LOW(iReqEnd - iReqCur)); __KTRACE_OPT(KPBUSDRV, Kern::Printf(">mmd:physr:0x%lx,0x%x", aStart, aLength)); __ASSERT_DEBUG(TotalSizeInBytes() > aStart, Panic(ELRStart)); __ASSERT_DEBUG(aLength > 0, Panic(ELRNotPositive)); @@ -1040,7 +1040,7 @@ const TUint32 length = I64LOW(iCurrentReq->Length()); __KTRACE_OPT(KPBUSDRV, Kern::Printf(">mmd:dw:0x%lx,0x%x", pos, length)); - OstTraceExt2( TRACE_INTERNALS, DMMCMEDIADRIVERFLASH_DOWRITE, "position=0x%lx; length=0x%x", (TUint) pos, (TUint) length); + OstTraceExt3( TRACE_INTERNALS, DMMCMEDIADRIVERFLASH_DOWRITE, "position=%x:%x; length=0x%x", (TUint) I64HIGH(pos), (TUint) I64LOW(pos), (TUint) length); __ASSERT_DEBUG(CurrentRequest() == EMReqIdle, Panic(EDWInUse)); __ASSERT_DEBUG(pos < TotalSizeInBytes(), Panic(EDWStart)); __ASSERT_DEBUG(length > 0, Panic(EDWNotPositive)); @@ -1075,7 +1075,7 @@ const TUint32 length = I64LOW(iCurrentReq->Length()); __KTRACE_OPT(KPBUSDRV, Kern::Printf(">mmd:df:0x%lx,0x%x", pos, length)); - OstTraceExt2( TRACE_INTERNALS, DMMCMEDIADRIVERFLASH_DOFORMAT, "position=0x%lx; length=0x%x", (TUint) pos, (TUint) length); + OstTraceExt3( TRACE_INTERNALS, DMMCMEDIADRIVERFLASH_DOFORMAT, "position=%x:%x; length=0x%x", (TUint) I64HIGH(pos), (TUint) I64LOW(pos), (TUint) length); __ASSERT_DEBUG(CurrentRequest() == EMReqIdle, Panic(EDFInUse)); __ASSERT_DEBUG(pos < TotalSizeInBytes(), Panic(EDFStart)); __ASSERT_DEBUG(length > 0, Panic(EDFNotPositive)); @@ -1116,7 +1116,7 @@ // { OstTraceFunctionEntryExt( DMMCMEDIADRIVERFLASH_LAUNCHFORMAT_ENTRY, this ); - OstTraceExt2( TRACE_INTERNALS, DMMCMEDIADRIVERFLASH_LAUNCHFORMAT, "position=0x%lx; length=0x%x", (TInt) iReqCur, (TInt) I64LOW(iReqEnd - iReqCur)); + OstTraceExt3( TRACE_INTERNALS, DMMCMEDIADRIVERFLASH_LAUNCHFORMAT, "position=%x:%x; length=0x%x", (TInt) I64HIGH(iReqCur), (TInt) I64LOW(iReqCur), (TInt) I64LOW(iReqEnd - iReqCur)); __KTRACE_OPT(KPBUSDRV, Kern::Printf(">mmd:lf:0x%lx,0x%x", aStart, aLength)); __ASSERT_DEBUG(TotalSizeInBytes() > aStart, Panic(ELFStart)); __ASSERT_DEBUG((aStart & iBlkMsk) == 0, Panic(ELWFmtStAlign)); @@ -1132,8 +1132,8 @@ iPhysStart = aStart & ~iBlkMsk; // formats are always block-aligned, and the buffer is initialized to 0xff - // Check whether erase commands are supported by this card - if (iCard->CSD().CCC() & KMMCCmdClassErase) + // Check whether erase commands are supported by this card + if ( (iCard->CSD().CCC() & KMMCCmdClassErase) && iEraseInfo.iEraseFlags) { // Determine the erase end point for the next command. We don't erase past the preferred erase unit // size. Therefore, check which is lower, the preferred erase unit size or the end of the requested range. @@ -1215,7 +1215,7 @@ // { OstTraceExt4(TRACE_FLOW, DMMCMEDIADRIVERFLASH_LAUNCHWRITE_ENTRY, "DMmcMediaDriverFlash::LaunchWrite;aStart=%Ld;aLength=%x;aMedReq=%d;this=%x", aStart, (TUint) aLength, (TInt) aMedReq, (TUint) this); - OstTraceExt2( TRACE_INTERNALS, DMMCMEDIADRIVERFLASH_LAUNCHWRITE, "position=0x%lx; length=0x%x", (TInt) iReqCur, (TInt) I64LOW(iReqEnd - iReqCur)); + OstTraceExt3( TRACE_INTERNALS, DMMCMEDIADRIVERFLASH_LAUNCHWRITE, "position=%x:%x; length=0x%x", (TInt) I64HIGH(iReqCur), (TInt) I64LOW(iReqCur),(TInt) I64LOW(iReqEnd - iReqCur)); __KTRACE_OPT(KPBUSDRV, Kern::Printf("\n>mmd:lw:0x%lx,%d,%d", aStart, aLength, aMedReq)); __ASSERT_DEBUG(aMedReq == EMReqWrite || aMedReq == EMReqFormat, Panic(ELWRequest)); __ASSERT_DEBUG(TotalSizeInBytes() > aStart, Panic(ELWStart)); @@ -2887,9 +2887,9 @@ { OstTraceFunctionEntryExt( DMMCMEDIADRIVERFLASH_READDATAUNTILCACHEEXHAUSTED_ENTRY, this ); __KTRACE_OPT(KPBUSDRV, Kern::Printf(">mmd:rdc:%x,%x", iReqCur, iReqEnd)); - OstTraceExt2( TRACE_INTERNALS, DMMCMEDIADRIVERFLASH_READDATAUNTILCACHEEXHAUSTED, "iReqCur=0x%x; iReqEnd=0x%x", (TUint) iReqCur, (TUint) iReqEnd ); + OstTraceExt3( TRACE_INTERNALS, DMMCMEDIADRIVERFLASH_READDATAUNTILCACHEEXHAUSTED, "iReqCur=%x:%x; iReqEnd=0x%x", (TUint) I64HIGH(iReqCur), (TUint) I64LOW(iReqCur), (TUint) iReqEnd ); - if ( iCurrentReq->IsPhysicalAddress() + if ( (iCurrentReq->DriverFlags() & RLocalDrive::ELocDrvDirectIO) || iCurrentReq->IsPhysicalAddress() #if defined(__DEMAND_PAGING__) && !defined(__WINS__) || DMediaPagingDevice::PageInRequest(*iCurrentReq) #endif //DEMAND_PAGING diff -r 657f875b013e -r 73ea206103e6 kernel/eka/drivers/pbus/mmc/sdcard/sdcard3c/sdcard.cpp --- a/kernel/eka/drivers/pbus/mmc/sdcard/sdcard3c/sdcard.cpp Fri Jun 11 15:02:23 2010 +0300 +++ b/kernel/eka/drivers/pbus/mmc/sdcard/sdcard3c/sdcard.cpp Wed Jun 23 19:44:53 2010 +0300 @@ -1,4 +1,4 @@ -// Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies). +// Copyright (c) 1999-2010 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" @@ -27,7 +27,7 @@ // ======== TSDCard ======== TSDCard::TSDCard() -: iProtectedAreaSize(0), iPARootDirEnd(KPARootDirEndUnknown) +: iProtectedAreaSize(0), iPARootDirEnd(KPARootDirEndUnknown), iClientCountSD(0) { // empty } diff -r 657f875b013e -r 73ea206103e6 kernel/eka/drivers/power/smppower/idlehelper.cia --- a/kernel/eka/drivers/power/smppower/idlehelper.cia Fri Jun 11 15:02:23 2010 +0300 +++ b/kernel/eka/drivers/power/smppower/idlehelper.cia Wed Jun 23 19:44:53 2010 +0300 @@ -1,4 +1,4 @@ -// Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies). +// Copyright (c) 2010 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" diff -r 657f875b013e -r 73ea206103e6 kernel/eka/drivers/power/smppower/idlehelper.cpp --- a/kernel/eka/drivers/power/smppower/idlehelper.cpp Fri Jun 11 15:02:23 2010 +0300 +++ b/kernel/eka/drivers/power/smppower/idlehelper.cpp Wed Jun 23 19:44:53 2010 +0300 @@ -1,4 +1,4 @@ -// Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies). +// Copyright (c) 2010 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" diff -r 657f875b013e -r 73ea206103e6 kernel/eka/drivers/power/smppower/idlehelper_lib.mmp --- a/kernel/eka/drivers/power/smppower/idlehelper_lib.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kernel/eka/drivers/power/smppower/idlehelper_lib.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -1,4 +1,4 @@ -// Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies). +// Copyright (c) 2010 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" @@ -11,13 +11,13 @@ // Contributors: // // Description: -// e32\drivers\power\smppower\smpidlehelper_lib.mmp +// \drivers\power\smppower\smpidlehelper_lib.mmp // Helper library required to implement CPU idle // functionality in a SMP BSP. #define NO_EKERN_LIB -#include "../../kernel/kern_ext.mmh" +#include "kernel/kern_ext.mmh" target idlehelper.lib targettype klib diff -r 657f875b013e -r 73ea206103e6 kernel/eka/drivers/power/smppower/sample_idlehandler/smpidlehandler.cpp --- a/kernel/eka/drivers/power/smppower/sample_idlehandler/smpidlehandler.cpp Fri Jun 11 15:02:23 2010 +0300 +++ b/kernel/eka/drivers/power/smppower/sample_idlehandler/smpidlehandler.cpp Wed Jun 23 19:44:53 2010 +0300 @@ -1,4 +1,4 @@ -// Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies). +// Copyright (c) 2010 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" @@ -11,7 +11,7 @@ // Contributors: // // Description: -// os\kernelhwsrv\kernel\eka\drivers\power\smppower\sample_idlehandler\smpidlehandler.cpp +// eka\drivers\power\smppower\sample_idlehandler\smpidlehandler.cpp // implements a basic smp idle handler generic layer that can be derived from // to create platform specific SMP idle handlers diff -r 657f875b013e -r 73ea206103e6 kernel/eka/drivers/power/smppower/sample_idlehandler/smpidlehandler_lib.mmp --- a/kernel/eka/drivers/power/smppower/sample_idlehandler/smpidlehandler_lib.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kernel/eka/drivers/power/smppower/sample_idlehandler/smpidlehandler_lib.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -1,4 +1,4 @@ -// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). +// 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" @@ -17,7 +17,7 @@ #define NO_EKERN_LIB -#include "../../kernel/kern_ext.mmh" +#include "kernel/kern_ext.mmh" target sample_smpidlehandler.lib targettype klib diff -r 657f875b013e -r 73ea206103e6 kernel/eka/drivers/sdapc/d_sdapc.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kernel/eka/drivers/sdapc/d_sdapc.cpp Wed Jun 23 19:44:53 2010 +0300 @@ -0,0 +1,307 @@ +// Copyright (c) 2010 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: + + +#include +#include +#include +#include +#include + +#include "OstTraceDefinitions.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "locmedia_ost.h" +#ifdef __VC32__ +#pragma warning(disable: 4127) // disabling warning "conditional expression is constant" +#endif +#include "d_sdapcTraces.h" +#endif + +_LIT(KLddName,"D_SDAPC"); + +const TInt KMajorVersionNumber=1; +const TInt KMinorVersionNumber=0; +const TInt KBuildVersionNumber=1; + +const TInt KSocketNumber = 0; +const TInt KStackNumber = 0; +const TInt KCardNumber = 0; + +// global Dfc Que +TDynamicDfcQue* gDfcQ; + +class DSDAuxiliaryPowerControlFactory : public DLogicalDevice +// +// LDD factory +// + { +public: + DSDAuxiliaryPowerControlFactory(); + ~DSDAuxiliaryPowerControlFactory(); + virtual TInt Install(); //overriding pure virtual + virtual void GetCaps(TDes8& aDes) const; //overriding pure virtual + virtual TInt Create(DLogicalChannelBase*& aChannel); //overriding pure virtual + }; + + +class DSDAuxiliaryPowerControl : public DLogicalChannel +// +// Logical channel +// + { +public: + DSDAuxiliaryPowerControl(); + virtual ~DSDAuxiliaryPowerControl(); + +protected: + virtual TInt DoCreate(TInt aUnit, const TDesC8* anInfo, const TVersion& aVer); + virtual void HandleMsg(class TMessageBase *); + +private: + static void BusCallBack(TAny* aPtr, TInt aReason, TAny* a1, TAny* a2); + TInt PowerUpStack(); + +private: + DMMCSocket* iSocketP; + DMMCStack* iStackP; + TSDCard* iCardP; + + DThread* iClient; + + TPBusCallBack iBusCallBack; + DSemaphore* iPowerUpSemaphore; + TBool iInitialised; + }; + + +DECLARE_STANDARD_LDD() + { + return new DSDAuxiliaryPowerControlFactory; + } + +DSDAuxiliaryPowerControlFactory::DSDAuxiliaryPowerControlFactory() +// +// Constructor +// + { + OstTrace0( TRACE_FLOW, DSDAUXILIARYPOWERCONTROLFACTORY_DSDAUXILIARYPOWERCONTROLFACTORY, "DSDAuxiliaryPowerControlFactory::DSDAuxiliaryPowerControlFactory"); + __KTRACE_OPT(KPBUS1, Kern::Printf(">DSDAuxiliaryPowerControlFactory::DSDAuxiliaryPowerControlFactory")); + iParseMask=KDeviceAllowUnit; + iUnitsMask=0xffffffff; + iVersion=TVersion(KMajorVersionNumber,KMinorVersionNumber,KBuildVersionNumber); + } + +TInt DSDAuxiliaryPowerControlFactory::Create(DLogicalChannelBase*& aChannel) +// +// Create a new DSDAuxiliaryPowerControl on this logical device +// + { + OstTrace0( TRACE_FLOW, DSDAUXILIARYPOWERCONTROLFACTORY_CREATE, "DSDAuxiliaryPowerControlFactory::Create"); + __KTRACE_OPT(KPBUS1, Kern::Printf(">DSDAuxiliaryPowerControlFactory::Create")); + aChannel=new DSDAuxiliaryPowerControl; + return aChannel ? KErrNone : KErrNoMemory; + } + +const TInt KDSDAuxiliaryPowerControlApiThreadPriority = 27; +_LIT(KDSDAuxiliaryPowerControlApiThread,"DSDAuxiliaryPowerControlApiThread"); + +TInt DSDAuxiliaryPowerControlFactory::Install() +// +// Install the LDD - overriding pure virtual +// + { + // Allocate a kernel thread to run the DFC + TInt r = Kern::DynamicDfcQCreate(gDfcQ, KDSDAuxiliaryPowerControlApiThreadPriority, KDSDAuxiliaryPowerControlApiThread); + + if (r != KErrNone) + return r; + + return SetName(&KLddName); + } + +void DSDAuxiliaryPowerControlFactory::GetCaps(TDes8& aDes) const +// +// Get capabilities - overriding pure virtual +// + { + TCapsTestV01 b; + b.iVersion=TVersion(KMajorVersionNumber,KMinorVersionNumber,KBuildVersionNumber); + Kern::InfoCopy(aDes,(TUint8*)&b,sizeof(b)); + } + +/** + Destructor +*/ +DSDAuxiliaryPowerControlFactory::~DSDAuxiliaryPowerControlFactory() + { + OstTrace0( TRACE_FLOW, DSDAUXILIARYPOWERCONTROLFACTORY_DSDAUXILIARYPOWERCONTROLFACTORY_DTOR, "DSDAuxiliaryPowerControlFactory::~DSDAuxiliaryPowerControlFactory"); + __KTRACE_OPT(KPBUS1, Kern::Printf(">DSDAuxiliaryPowerControlFactory::~DSDAuxiliaryPowerControlFactory")); + if (gDfcQ) + gDfcQ->Destroy(); + } + +void DSDAuxiliaryPowerControl::BusCallBack(TAny* aPtr, TInt aReason, TAny* a1, TAny* a2) + { + DSDAuxiliaryPowerControl* pTest = (DSDAuxiliaryPowerControl*)aPtr; + TPBusState busState = (TPBusState) (TInt) a1; + switch (aReason) + { + case TPBusCallBack::EPBusStateChange: + if (busState != EPBusPoweringUp) + Kern::SemaphoreSignal(*(pTest->iPowerUpSemaphore)); + break; + } + } + +TInt DSDAuxiliaryPowerControl::PowerUpStack() + { + iBusCallBack.iFunction = BusCallBack; + iBusCallBack.iPtr=this; + iBusCallBack.SetSocket(iSocketP->iSocketNumber); + iBusCallBack.Add(); + TInt r = Kern::SemaphoreCreate(iPowerUpSemaphore, _L("SDPowerUpSem"), 0); + if (r == KErrNone) + { + r = iSocketP->PowerUp(); + if (r == KErrNone) + Kern::SemaphoreWait(*iPowerUpSemaphore); + } + return r; + } + +TInt DSDAuxiliaryPowerControl::DoCreate(TInt /*aUnit*/, const TDesC8* /*aInfo*/, const TVersion& aVer) +// +// Create channel +// + { + OstTrace0( TRACE_FLOW, DSDAUXILIARYPOWERCONTROL_DOCREATE_1, "DSDAuxiliaryPowerControl::DoCreate()"); + __KTRACE_OPT(KPBUS1, Kern::Printf(">DSDAuxiliaryPowerControl::DoCreate()")); + + if (!Kern::QueryVersionSupported(TVersion(KMajorVersionNumber,KMinorVersionNumber,KBuildVersionNumber),aVer)) + return KErrNotSupported; + + // + // Obtain the appropriate card from the socket/stack + // + iSocketP = static_cast(DPBusSocket::SocketFromId(KSocketNumber)); + if(iSocketP == NULL) + { + OstTrace0( TRACE_FLOW, DSDAUXILIARYPOWERCONTROL_DOCREATE_2, "DSDAuxiliaryPowerControl::DoCreate() : Didn't obtain socket"); + __KTRACE_OPT(KPBUS1, Kern::Printf("DSDAuxiliaryPowerControl::DoCreate() : Didn't obtain socket")); + return KErrNoMemory; + } + + iStackP = static_cast(iSocketP->Stack(KStackNumber)); + if(iStackP == NULL) + { + OstTrace0( TRACE_FLOW, DSDAUXILIARYPOWERCONTROL_DOCREATE_3, "DSDAuxiliaryPowerControl::DoCreate() : Didn't obtain stack"); + __KTRACE_OPT(KPBUS1, Kern::Printf("DSDAuxiliaryPowerControl::DoCreate() : Didn't obtain stack")); + return KErrNoMemory; + } + + iCardP = static_cast(iStackP->CardP(KCardNumber)); + if(iCardP == NULL) + { + OstTrace0( TRACE_FLOW, DSDAUXILIARYPOWERCONTROL_DOCREATE_4, "DSDAuxiliaryPowerControl::DoCreate() : Didn't obtain card"); + __KTRACE_OPT(KPBUS1, Kern::Printf("DSDAuxiliaryPowerControl::DoCreate() : Didn't obtain card")); + return KErrNoMemory; + } + + SetDfcQ(gDfcQ); + iMsgQ.Receive(); + + // Make sure stack is powered up + TInt r = PowerUpStack(); + if (r != KErrNone && r != KErrCompletion) + { + OstTrace1( TRACE_FLOW, DSDAUXILIARYPOWERCONTROL_DOCREATE_5, "DSDAuxiliaryPowerControl::DoCreate() : Failed To Power up stack, r = %d", r); + __KTRACE_OPT(KPBUS1, Kern::Printf("DSDAuxiliaryPowerControl::DoCreate() : Failed To Power up stack, r = %d", r)); + return r; + } + + if(!iCardP->IsReady()) + { + OstTrace0( TRACE_FLOW, DSDAUXILIARYPOWERCONTROL_DOCREATE_6, "DSDAuxiliaryPowerControl::DoCreate() : Card not ready"); + __KTRACE_OPT(KPBUS1, Kern::Printf("DSDAuxiliaryPowerControl::DoCreate() : Card not ready")); + return KErrNotReady; + } + + if(!iCardP->ClientsRegistered()) + { + iCardP->RegisterClient(); + ((DSDIOPsu*)(iSocketP->iVcc))->Lock(); + TBool locked = ((DSDIOPsu*)(iSocketP->iVcc))->IsLocked(); + OstTrace1( TRACE_FLOW, DSDAUXILIARYPOWERCONTROL_DOCREATE_7, "DSDAuxiliaryPowerControl::DoCreate() : PSU IsLocked(), locked = %d", locked); + __KTRACE_OPT(KPBUS1, Kern::Printf("DSDAuxiliaryPowerControl::DoCreate() : PSU IsLocked(), locked = %d", locked)); + if(!locked) + return KErrNotReady; + } + + return KErrNone; + } + +DSDAuxiliaryPowerControl::DSDAuxiliaryPowerControl() +// +// Constructor +// + { + iClient=&Kern::CurrentThread(); + ((DObject*)iClient)->Open(); + } + + +DSDAuxiliaryPowerControl::~DSDAuxiliaryPowerControl() +// +// Destructor +// + { + OstTrace0( TRACE_FLOW, DSDAUXILIARYPOWERCONTROL_DSDAUXILIARYPOWERCONTROL_DTOR, "DSDAuxiliaryPowerControl::~DSDAuxiliaryPowerControl"); + __KTRACE_OPT(KPBUS1, Kern::Printf("DSDAuxiliaryPowerControl::~DSDAuxiliaryPowerControl")); + iBusCallBack.Remove(); + + if (iSocketP) + iSocketP->ControlIO(DPBusSocket::EControlMediaState, (TAny*)DPBusSocket::EPeriphBusMediaNormal, NULL); + + + if(iCardP->ClientsRegistered()) + { + iCardP->DeregisterClient(); + ((DSDIOPsu*)(iSocketP->iVcc))->Unlock(); + } + + iPowerUpSemaphore->Close(NULL); + + Kern::SafeClose((DObject*&)iClient,NULL); + } + +void DSDAuxiliaryPowerControl::HandleMsg(TMessageBase* aMsg) + { + TThreadMessage& m=*(TThreadMessage*)aMsg; + TInt id=m.iValue; + + if (id==(TInt)ECloseMsg) + { + if (iSocketP) + iSocketP->ControlIO(DPBusSocket::EControlMediaState, (TAny*)DPBusSocket::EPeriphBusMediaNormal, NULL); + + m.Complete(KErrNone, EFalse); + return; + } + else if (id==KMaxTInt) + { + // DoCancel + m.Complete(KErrNone,ETrue); + return; + } + } diff -r 657f875b013e -r 73ea206103e6 kernel/eka/drivers/sdapc/d_sdapc.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kernel/eka/drivers/sdapc/d_sdapc.h Wed Jun 23 19:44:53 2010 +0300 @@ -0,0 +1,55 @@ +// Copyright (c) 2010 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: + + +#ifndef __D_SDAPC_H__ +#define __D_SDAPC_H__ +#include + + + + +class TCapsTestV01 + { +public: + TVersion iVersion; + }; + +/** + +A user-side interface to the SD PSU auxiliary-control driver. + +*/ +class RSDAuxiliaryPowerControlAPI : public RBusLogicalChannel + { +public: + enum + { + EMajorVersionNumber=1, + EMinorVersionNumber=0, + EBuildVersionNumber=1 + }; + +public: + inline void Cancel(); + + inline TInt Open(TInt aSocket,const TVersion& aVer) + {return(DoCreate(_L("D_SDAPC"),aVer,(TInt)aSocket,NULL,NULL));} + + inline TVersion VersionRequired() const + {return(TVersion(EMajorVersionNumber,EMinorVersionNumber,EBuildVersionNumber));} + + }; + +#endif diff -r 657f875b013e -r 73ea206103e6 kernel/eka/drivers/sdapc/d_sdapc.mmp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kernel/eka/drivers/sdapc/d_sdapc.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -0,0 +1,32 @@ +// Copyright (c) 2010 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: + +#include "kernel/kern_ext.mmh" + +TARGET d_sdapc.ldd +TARGETTYPE LDD + +SOURCEPATH . +SOURCE d_sdapc.cpp +LIBRARY epbussd.lib +epocallowdlldata + +USERINCLUDE traces +USERINCLUDE ../../include/drivers +OS_LAYER_SYSTEMINCLUDE_SYMBIAN + +capability all + +SMPSAFE + diff -r 657f875b013e -r 73ea206103e6 kernel/eka/drivers/sdapc/traces/OstTraceDefinitions.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kernel/eka/drivers/sdapc/traces/OstTraceDefinitions.h Wed Jun 23 19:44:53 2010 +0300 @@ -0,0 +1,21 @@ +// 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: + +#ifndef __OSTTRACEDEFINITIONS_H__ +#define __OSTTRACEDEFINITIONS_H__ +// OST_TRACE_COMPILER_IN_USE flag has been added by Trace Compiler +// REMOVE BEFORE CHECK-IN TO VERSION CONTROL +//#define OST_TRACE_COMPILER_IN_USE +#include +#endif diff -r 657f875b013e -r 73ea206103e6 kernel/eka/eabi/ekernsmp.def --- a/kernel/eka/eabi/ekernsmp.def Fri Jun 11 15:02:23 2010 +0300 +++ b/kernel/eka/eabi/ekernsmp.def Wed Jun 23 19:44:53 2010 +0300 @@ -1189,4 +1189,7 @@ _ZN3Arm14SetIdleHandlerEPFvPvmPVvES0_ @ 1188 NONAME _ZN4Epoc11FreeRamZoneEj @ 1189 NONAME _ZN16TBitMapAllocator14SelectiveAllocEii @ 1190 NONAME + _ZN10RArrayBase12SetKeyOffsetEi @ 1191 NONAME + _ZN5Cache10CpuRetiresEv @ 1192 NONAME + _ZN5Cache13KernelRetiresEv @ 1193 NONAME diff -r 657f875b013e -r 73ea206103e6 kernel/eka/eabi/ekernu.def --- a/kernel/eka/eabi/ekernu.def Fri Jun 11 15:02:23 2010 +0300 +++ b/kernel/eka/eabi/ekernu.def Wed Jun 23 19:44:53 2010 +0300 @@ -1181,4 +1181,7 @@ _ZN3Arm14SetIdleHandlerEPFvPvmES0_ @ 1180 NONAME _ZN4Epoc11FreeRamZoneEj @ 1181 NONAME _ZN16TBitMapAllocator14SelectiveAllocEii @ 1182 NONAME + _ZN10RArrayBase12SetKeyOffsetEi @ 1183 NONAME + _ZN5Cache10CpuRetiresEv @ 1184 NONAME + _ZN5Cache13KernelRetiresEv @ 1185 NONAME diff -r 657f875b013e -r 73ea206103e6 kernel/eka/eabi/euseru.def --- a/kernel/eka/eabi/euseru.def Fri Jun 11 15:02:23 2010 +0300 +++ b/kernel/eka/eabi/euseru.def Wed Jun 23 19:44:53 2010 +0300 @@ -2537,4 +2537,5 @@ _ZNK10RAllocator9MaxLengthEv @ 2536 NONAME _ZN10RAllocator17__DbgGetAllocFailEv @ 2537 NONAME _ZN4User17__DbgGetAllocFailEi @ 2538 NONAME + _ZN10RArrayBase12SetKeyOffsetEi @ 2539 NONAME diff -r 657f875b013e -r 73ea206103e6 kernel/eka/euser/v7_0/euser-7_0.cia --- a/kernel/eka/euser/v7_0/euser-7_0.cia Fri Jun 11 15:02:23 2010 +0300 +++ b/kernel/eka/euser/v7_0/euser-7_0.cia Wed Jun 23 19:44:53 2010 +0300 @@ -1,4 +1,18 @@ -// +// Copyright (c) 2010 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/euser/v7_0/euser-7_0.cia +// // EUSER-7_0.CIA - generated by GENSHIMSRC.BAT // diff -r 657f875b013e -r 73ea206103e6 kernel/eka/include/d32locd.h --- a/kernel/eka/include/d32locd.h Fri Jun 11 15:02:23 2010 +0300 +++ b/kernel/eka/include/d32locd.h Wed Jun 23 19:44:53 2010 +0300 @@ -565,7 +565,8 @@ enum TReadWriteFlags { ELocDrvMetaData = 0x80000000, /**< Set if read/write request is for metadata */ - ELocDrvWholeMedia = 0x40000000 /**< Set to access whole media, rather than partition */ + ELocDrvWholeMedia = 0x40000000, /**< Set to access whole media, rather than partition */ + ELocDrvDirectIO = 0x20000000 }; // @see TBusLocalDrive::QueryDevice() diff -r 657f875b013e -r 73ea206103e6 kernel/eka/include/drivers/sdcard.h --- a/kernel/eka/include/drivers/sdcard.h Fri Jun 11 15:02:23 2010 +0300 +++ b/kernel/eka/include/drivers/sdcard.h Wed Jun 23 19:44:53 2010 +0300 @@ -1,4 +1,4 @@ -// Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies). +// Copyright (c) 1999-2010 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" @@ -82,12 +82,16 @@ inline TUint32 PARootDirEnd() const; inline void SetPARootDirEnd(TUint32 aPARootDirEnd); virtual TUint MaxTranSpeedInKilohertz() const; + inline void RegisterClient(); + inline void DeregisterClient(); + inline TBool ClientsRegistered(); private: TUint32 iProtectedAreaSize; TUint32 iPARootDirEnd; TUint8 iAUSize; TUint8 iPad[3]; - TUint32 iSpare[4]; + TUint32 iClientCountSD; + TUint32 iSpare[3]; }; class TSDCardArray : public TMMCardArray diff -r 657f875b013e -r 73ea206103e6 kernel/eka/include/drivers/sdcard.inl --- a/kernel/eka/include/drivers/sdcard.inl Fri Jun 11 15:02:23 2010 +0300 +++ b/kernel/eka/include/drivers/sdcard.inl Wed Jun 23 19:44:53 2010 +0300 @@ -1,4 +1,4 @@ -// Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies). +// Copyright (c) 1999-2010 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" @@ -44,6 +44,34 @@ inline TUint32 TSDCard::PARootDirEnd() const {return iPARootDirEnd;} inline void TSDCard::SetPARootDirEnd(TUint32 aPARootDirEnd) {iPARootDirEnd=aPARootDirEnd;} +/** +Called when a client registers with the SD card. +*/ +inline void TSDCard::RegisterClient() + { + __e32_atomic_add_ord32(&iClientCountSD, 1); + } + +/** +Called when a client de-registers with the SD card. +*/ +inline void TSDCard::DeregisterClient() + + { + __e32_atomic_add_ord32(&iClientCountSD, TUint32(-1)); + } + +/** +Returned value indicates whether or not clients have registered with the SD card. +*/ +inline TBool TSDCard::ClientsRegistered() + { + if(iClientCountSD) + return ETrue; + + return EFalse; + } + // ======== TSDCardArray ======== inline TSDCardArray::TSDCardArray(DSDStack* aOwningStack) : TMMCardArray(aOwningStack) diff -r 657f875b013e -r 73ea206103e6 kernel/eka/include/drivers/smppower/idlehelper.h --- a/kernel/eka/include/drivers/smppower/idlehelper.h Fri Jun 11 15:02:23 2010 +0300 +++ b/kernel/eka/include/drivers/smppower/idlehelper.h Wed Jun 23 19:44:53 2010 +0300 @@ -1,25 +1,20 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This material, including documentation and any related computer -* programs, is protected by copyright controlled by Nokia. All -* rights are reserved. Copying, including reproducing, storing -* adapting or translating, any or all of this material requires the -* prior written consent of Nokia. This material also contains -* confidential information which may not be disclosed to others -* without the prior written consent of Nokia. -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* os\kernelhwsrv\kernel\eka\include\drivers\smpidlehelper.h -* Helper classes required to implement CPU idle -* functionality in a SMP BSP. -* -*/ +// Copyright (c) 2010 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: +// os\kernelhwsrv\kernel\eka\include\drivers\smppower\idlehelper.h +// Helper classes required to implement CPU idle +// functionality in a SMP BSP. + /** @file diff -r 657f875b013e -r 73ea206103e6 kernel/eka/include/drivers/smppower/sample_idlehandler/smpidlehandler.h --- a/kernel/eka/include/drivers/smppower/sample_idlehandler/smpidlehandler.h Fri Jun 11 15:02:23 2010 +0300 +++ b/kernel/eka/include/drivers/smppower/sample_idlehandler/smpidlehandler.h Wed Jun 23 19:44:53 2010 +0300 @@ -1,24 +1,18 @@ -/* -* Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This material, including documentation and any related computer -* programs, is protected by copyright controlled by Nokia. All -* rights are reserved. Copying, including reproducing, storing -* adapting or translating, any or all of this material requires the -* prior written consent of Nokia. This material also contains -* confidential information which may not be disclosed to others -* without the prior written consent of Nokia. -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* os/kernelhwsrv/kernel/eka/include/drivers/smppower/sample_idlehandler/smpidlehandler.h -* Example of a generic idle handler layer -* -*/ +// Copyright (c) 2010 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: +// eka/drivers/smppower/sample_idlehandler/smpidlehandler.h +// Example of a generic idle handler layer #ifndef __SMPIDLEHANDLER_H__ diff -r 657f875b013e -r 73ea206103e6 kernel/eka/include/e32cmn.h --- a/kernel/eka/include/e32cmn.h Fri Jun 11 15:02:23 2010 +0300 +++ b/kernel/eka/include/e32cmn.h Wed Jun 23 19:44:53 2010 +0300 @@ -5398,6 +5398,7 @@ IMPORT_C RArrayBase(TInt anEntrySize, TInt aMinGrowBy, TInt aKeyOffset, TInt aFactor); IMPORT_C RArrayBase(TInt aEntrySize,TAny* aEntries, TInt aCount); IMPORT_C void Close(); + IMPORT_C void SetKeyOffset(TInt aKeyOffset); IMPORT_C TInt Count() const; IMPORT_C TAny* At(TInt anIndex) const; IMPORT_C TInt Append(const TAny* anEntry); @@ -5496,6 +5497,7 @@ inline RArray(TInt aMinGrowBy, TInt aKeyOffset, TInt aFactor); inline RArray(TInt aEntrySize,T* aEntries, TInt aCount); inline void Close(); + inline void SetKeyOffset(TInt aKeyOffset); inline TInt Count() const; inline const T& operator[](TInt anIndex) const; inline T& operator[](TInt anIndex); diff -r 657f875b013e -r 73ea206103e6 kernel/eka/include/e32cmn.inl --- a/kernel/eka/include/e32cmn.inl Fri Jun 11 15:02:23 2010 +0300 +++ b/kernel/eka/include/e32cmn.inl Wed Jun 23 19:44:53 2010 +0300 @@ -4866,6 +4866,21 @@ template +inline void RArray::SetKeyOffset(TInt aOffset) +/** +Sets the offset of the ordering key within each array entry. + +@param aKeyOffset The key offset. + +@panic USER 128, if aKeyOffset is not positive, or is not less than the + size of class T, or is not a multiple of 4. +*/ + {RArrayBase::SetKeyOffset(aOffset);} + + + + +template inline TInt RArray::Count() const /** Gets the number of objects in the array. diff -r 657f875b013e -r 73ea206103e6 kernel/eka/include/e32ver.h --- a/kernel/eka/include/e32ver.h Fri Jun 11 15:02:23 2010 +0300 +++ b/kernel/eka/include/e32ver.h Wed Jun 23 19:44:53 2010 +0300 @@ -28,7 +28,7 @@ const TInt KE32MajorVersionNumber=2; const TInt KE32MinorVersionNumber=0; -const TInt KE32BuildVersionNumber=3085; +const TInt KE32BuildVersionNumber=3093; const TInt KMachineConfigurationMajorVersionNumber=1; const TInt KMachineConfigurationMinorVersionNumber=0; diff -r 657f875b013e -r 73ea206103e6 kernel/eka/include/kernel/cache.h --- a/kernel/eka/include/kernel/cache.h Fri Jun 11 15:02:23 2010 +0300 +++ b/kernel/eka/include/kernel/cache.h Wed Jun 23 19:44:53 2010 +0300 @@ -126,10 +126,40 @@ On SMP platforms, it only maintains internal cache of the CPU that executes the call. Cache memory common to the all cores (like external cache controllers) are also synchronised. @pre Interrupts must be disabled. + @deprecated in TB 10.1 Use Cache::CpuRetires and Cache::KernelRetires */ IMPORT_C static void AtomicSyncMemory(); /** + Synchronises cache(s) of the current CPU with the next memory level (which may also be cache) + prior to power off or reboot. Caches in other CPUs and those that are shared among them are not affected. + + Shut down or reboot sequence should ensure that the context of cache memories is copied down to the main + memory prior CPU/cache power off. In order to achieve this goal, the following should be obeyed: + - On SMP H/W, any CPU that is about to shut down or reboot should call this method. The very last + running CPU should call both this method and Cache::KernelRetires method. + - On non-SMP H/W. CPU that is about to shut down or reboot should call this method. Call to + Cache::KernelRetires is not required. + + Both Cache::CpuRetires and Cache::KernelRetires assume that Kernel may not be in stable state (as reboot may + be caused by crash), so no attampt will be made to acquire spin lock or call any other Kernel interface. + + @see Cache::KernelRetires + @pre Interrupts must be disabled. + @pre Kernel may not be in stable state. + */ + IMPORT_C static void CpuRetires(); + + /* + Synchronises cache(s) that are shared among CPUs with the main memory prior to power off or reboot. + @see Cache::CpuRetires + @pre Interrupts must be disabled. + @pre Kernel may not be in stable state. + @pre All CPUs other than the current CPU are powered down or their reboot sequence is completed. + */ + IMPORT_C static void KernelRetires(); + + /** Synchronises cache(s) prior to a DMA write (memory to HW DMA transfer) operation. The purpose of SyncMemoryBeforeDmaWrite is to make sure that the main memory is synchronised diff -r 657f875b013e -r 73ea206103e6 kernel/eka/include/kernel/cache_maintenance.h --- a/kernel/eka/include/kernel/cache_maintenance.h Fri Jun 11 15:02:23 2010 +0300 +++ b/kernel/eka/include/kernel/cache_maintenance.h Wed Jun 23 19:44:53 2010 +0300 @@ -301,7 +301,9 @@ /* * Cleans and invalidates the entire content of data and unified cache(s) and drains * write buffers (DSB barrier).. - * On SMP, only the running core is maintained. + * On SMP, only the running core is maintained. + * This methos is called during reboot or power down sequence and therefore is not allowed + * to do Kernel calls that may hold spin lock - such as Kern::Print or precondition checkings. */ static void CleanAndInvalidate_DCache_All(); diff -r 657f875b013e -r 73ea206103e6 kernel/eka/kernel/arm/cache.cpp --- a/kernel/eka/kernel/arm/cache.cpp Fri Jun 11 15:02:23 2010 +0300 +++ b/kernel/eka/kernel/arm/cache.cpp Wed Jun 23 19:44:53 2010 +0300 @@ -70,8 +70,10 @@ EXPORT_C void Cache::AtomicSyncMemory() { - CHECK_PRECONDITIONS(MASK_INTERRUPTS_DISABLED,"Cache::AtomicSyncMemory"); - __KTRACE_OPT(KMMU,Kern::Printf("Cache::AtomicSyncMemory")); + // This methos is called during reboot or power down sequence and therefore is not allowed + // to do Kernel calls that may hold spin lock - such as Kern::Print or precondition checkings. + // CHECK_PRECONDITIONS(MASK_INTERRUPTS_DISABLED,"Cache::AtomicSyncMemory"); + // __KTRACE_OPT(KMMU,Kern::Printf("Cache::AtomicSyncMemory")); InternalCache::CleanAndInvalidate_DCache_All(); @@ -80,6 +82,29 @@ #endif //__HAS_EXTERNAL_CACHE__ } +EXPORT_C void Cache::CpuRetires() + { + // This methos is called during reboot or power down sequence and therefore is not allowed + // to do Kernel calls that may hold spin lock - such as Kern::Print or precondition checkings. + // CHECK_PRECONDITIONS(MASK_INTERRUPTS_DISABLED,"Cache::CpuRetires"); + + InternalCache::CleanAndInvalidate_DCache_All(); + +#if !defined(__SMP__) & defined(__HAS_EXTERNAL_CACHE__) + ExternalCache::AtomicSync(); +#endif + } + +EXPORT_C void Cache::KernelRetires() + { + // This methos is called during reboot or power down sequence and therefore is not allowed + // to do Kernel calls that may hold spin lock - such as Kern::Print or precondition checkings. + // CHECK_PRECONDITIONS(MASK_INTERRUPTS_DISABLED,"Cache::KernelRetires"); + +#if defined(__SMP__) & defined(__HAS_EXTERNAL_CACHE__) + ExternalCache::AtomicSync(); +#endif + } EXPORT_C TInt Cache::GetThresholds(TCacheThresholds& aThresholds, TUint aCacheType) { diff -r 657f875b013e -r 73ea206103e6 kernel/eka/kernel/arm/cache_external.cpp --- a/kernel/eka/kernel/arm/cache_external.cpp Fri Jun 11 15:02:23 2010 +0300 +++ b/kernel/eka/kernel/arm/cache_external.cpp Wed Jun 23 19:44:53 2010 +0300 @@ -313,21 +313,24 @@ void ExternalCache::AtomicSync() { - CHECK_PRECONDITIONS(MASK_INTERRUPTS_DISABLED,"ExternalCache::AtomicSync"); - __KTRACE_OPT(KMMU,Kern::Printf("ExternalCache::AtomicSync")); - + // This methos is called during reboot or power down sequence and therefore is not allowed + // to do Kernel calls that may hold spin lock - such as Kern::Print or precondition checkings. + // CHECK_PRECONDITIONS(MASK_INTERRUPTS_DISABLED,"ExternalCache::AtomicSync"); + // __KTRACE_OPT(KMMU,Kern::Printf("ExternalCache::AtomicSync")); #if defined(__ARM_PL310_CACHE__) - // On Pl310, we hold the lock while maintaining cache. Therefore, we cannot - // do that on a way basis as it takes too long to complete. - // This will also ensure that PL310 erratum 727915 is sorted out. - -#if defined(__ARM_PL310_ERRATUM_588369_FIXED) - Maintain_All((TInt*)(Base+ARML2C_CleanInvalidateByIndexWay)); -#else //defined(__ARM_PL310_ERRATUM_588369_FIXED) - //CleanAndInvalidate is broken. Just clean it. - Maintain_All((TInt*)(Base+ARML2C_CleanByIndexWay)); -#endif //else defined(__ARM_PL310_ERRATUM_588369_FIXED) - + // Do not use maintain-by-way operations on PL310 (due to erratum 727915 for example) + // Also, do not use ARML2C_CleanInvalidateByIndexWay (erratum 588369) + // Do not hold spin lock as it is assumed this is the only running CPU. + TInt indexNo = Info.iSize>>3; // This is the number of cache lines in each way. Assoc is always 8 in this cache + volatile TInt* ctrlReg = (volatile TInt*)(Base+ARML2C_CleanByIndexWay); + TInt way,index; + for (way = 0 ; way iRegs); #else diff -r 657f875b013e -r 73ea206103e6 kernel/eka/release.txt --- a/kernel/eka/release.txt Fri Jun 11 15:02:23 2010 +0300 +++ b/kernel/eka/release.txt Wed Jun 23 19:44:53 2010 +0300 @@ -1,3 +1,87 @@ +Version 2.00.3093 +================= +(Made by vfebvre 09/06/2010) + +1. gcochran + 1. ou1cimx1#400079 MCL: E32TEST RMessagePtr2::Kill is not exercised by t_message + +2. jimhofe + 1. ou1cimx1#411346 MCL wk22 build break in kernelhwsrv + + +Version 2.00.3092 +================= +(Made by vfebvre 04/06/2010) + +1. cnotton + 1. ou1cimx1#413372 Attempt to export missing file bootstrap_smrif.h + + +Version 2.00.3091 +================= +(Made by vfebvre 04/06/2010) + +1. mmoate + 1. MINOR_CHANGE Correct insource docs for aSingleThread parameter in UserHeap methods + + +Version 2.00.3090 +================= +(Made by vfebvre 03/06/2010) + +1. jimhofe + 1. MINOR_CHANGE Documentation formatting tweaks + + +Version 2.00.3089 +================= +(Made by vfebvre 01/06/2010) + +1. lanerobe + 1. ou1cimx1#397118 Use build-in uint32 sort function + + +Version 2.00.3088 +================= +(Made by vfebvre 28/05/2010) + +1. necliffo + 1. ou1cimx1#407499 modify medmmc to ensure format + +2. lanerobe + 1. ou1cimx1#402843 Fix smppower .mmp files + + +Version 2.00.3086 +================= +(Made by vfebvre 27/05/2010) + +1. atvamos + 1. ou1cimx1#376123 h2.arm4.udeb.f32test.page ROFSBUILD failed on dev-cedar build + +2. vfebvre + 1. ou1cimx1#400806 Warnings reported by the Symbian Foundation license checker + +3. garciato + 1. ou1cimx1#379971 Incorrect Copyright Headers in e32test\timestamp + +4. djkovace + 1. ou1cimx1#367370 Bridge platform neither reboots nor runs crash debugger when crashed + +5. martai + 1. ou1cimx1#399892 E32TEST T_CHUNK test failure investigation (t_chunk.cpp:885) + +6. elzou + 1. ou1cimx1#393943 Phone reset if connect/disconnect USB mouse few times fast + +7. lanerobe + 1. ou1cimx1#399642 Build HCR test roms in its own folder + 2. ou1cimx1#353110 BM_SUITE does not run on NaviEngine + +8. hengrant + 1. ou1cimx1#377057 Trace outputs truncated data for length and position + + Version 2.00.3085 ================= (Made by vfebvre 18/05/2010) diff -r 657f875b013e -r 73ea206103e6 kernel/eka/rombuild/nandtest_test_f32tests.oby --- a/kernel/eka/rombuild/nandtest_test_f32tests.oby Fri Jun 11 15:02:23 2010 +0300 +++ b/kernel/eka/rombuild/nandtest_test_f32tests.oby Wed Jun 23 19:44:53 2010 +0300 @@ -100,7 +100,7 @@ #else rofsname = dir.rofs #endif //MULTIPLEROFS -rofssize = 0x520000 +rofssize = 0x5E0000 #ifdef PAGED_ROM PAGINGOVERRIDE DEFAULTPAGED diff -r 657f875b013e -r 73ea206103e6 kernelhwsrv_info/doc_pub/base_how_to_armv7_cache_and_access_remapping_-_design.doc Binary file kernelhwsrv_info/doc_pub/base_how_to_armv7_cache_and_access_remapping_-_design.doc has changed diff -r 657f875b013e -r 73ea206103e6 kernelhwsrv_info/doc_pub/base_how_to_crash_logging.doc Binary file kernelhwsrv_info/doc_pub/base_how_to_crash_logging.doc has changed diff -r 657f875b013e -r 73ea206103e6 kerneltest/e32test/active/t_messge.cpp --- a/kerneltest/e32test/active/t_messge.cpp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/e32test/active/t_messge.cpp Wed Jun 23 19:44:53 2010 +0300 @@ -78,7 +78,8 @@ class CTestSession : public CSession2 { public: - enum {EStop,ETestInt,ETestPtr,ETestClient,ETestComplete,ETestPtrComplete,ETestCompletePanic,ETestOtherSession,ETestCompleteAfter,ETestMessageConstruction, ETestRMessagePtr2LeavingInterface}; + enum {EStop,ETestInt,ETestPtr,ETestClient,ETestComplete,ETestPtrComplete,ETestCompletePanic,ETestOtherSession,ETestCompleteAfter,ETestMessageConstruction, + ETestRMessagePtr2LeavingInterface, ETestKillCompletePanic}; //Override pure virtual IMPORT_C virtual void ServiceL(const RMessage2& aMessage); private: @@ -323,6 +324,10 @@ case ETestRMessagePtr2LeavingInterface: r=TestRMessagePtr2LeavingInterface(aMessage); break; + case ETestKillCompletePanic: + aMessage.Complete(KErrNone); + aMessage.Panic(_L("Testing Panic"),0xFF); //This will panic the server! + break; default: r=KErrNotSupported; @@ -480,7 +485,7 @@ test.Next(_L("Start ActiveScheduler and signal to client")); - test.Printf(_L(" There might be something going on beneath this window")); + test.Printf(_L(" There might be something going on beneath this window\n")); sem.Signal(); CActiveScheduler::Start(); test.Next(_L("Destroy ActiveScheduler")); @@ -522,6 +527,23 @@ session.PublicSendReceive(CTestSession::EStop, TIpcArgs());//panic should occur before this is serviced return(KErrNone); } + +TInt KillCompletePanicClientThread (TAny*) +// +// A client thread entry - signals to server to kill client after completing the message +// + { + sem.Wait(); + + TInt r=session.PublicCreateSession(_L("CTestServer"),1); + test(r==KErrNone); + + r=session.PublicSendReceive(CTestSession::ETestKillCompletePanic, TIpcArgs()); + test(r==KErrNone); + + session.PublicSendReceive(CTestSession::EStop, TIpcArgs());//panic should occur before this is serviced + return(KErrNone); + } void SimpleRMessage() // @@ -575,7 +597,86 @@ test.End(); } + +void TestServerCompleteTwicePanic(void) + { + TRequestStatus clientStat,serverStat; + + TBool justInTime=User::JustInTime(); + + test.Next(_L("Check server panics if you try to complete a message twice")); + test.Start(_L("Create client and server threads")); + clientThread.Create(_L("Client Thread1"),CompletePanicClientThread,KDefaultStackSize,KHeapMinSize,KHeapMaxSize,NULL); + serverThread.Create(_L("Server Thread"),ServerThread,KDefaultStackSize,KHeapMinSize,KHeapMaxSize,NULL); + + test.Next(_L("Logon to the threads")); + clientThread.Logon(clientStat); + serverThread.Logon(serverStat); + test.Next(_L("Start the threads")); + sem.CreateLocal(0); + User::SetJustInTime(EFalse); + clientThread.Resume(); + serverThread.Resume(); + + test.Next(_L("Wait for the threads to stop")); + User::WaitForRequest(clientStat); // + User::WaitForRequest(serverStat); + User::SetJustInTime(justInTime); + test.Next(_L("Check the exit categories")); + test(clientThread.ExitType()==EExitKill); + test(clientThread.ExitCategory().Compare(_L("Kill"))==0); + test(clientThread.ExitReason()==KErrNone); + + test(serverThread.ExitType()==EExitPanic); + test(serverThread.ExitCategory().Compare(_L("USER"))==0); + test(serverThread.ExitReason()==ETMesCompletion); + + test.Next(_L("Close the threads")); + CLOSE_AND_WAIT(serverThread); + CLOSE_AND_WAIT(clientThread); + test.End(); + } + +void TestServerKillCompletePanic(void) + { + TRequestStatus clientStat,serverStat; + + TBool justInTime=User::JustInTime(); + + test.Next(_L("Check Server panics if you try to panic a client using a completed message")); + test.Start(_L("Create client and server threads")); + clientThread.Create(_L("Client Thread2"),KillCompletePanicClientThread,KDefaultStackSize,KHeapMinSize,KHeapMaxSize,NULL); + serverThread.Create(_L("Server Thread"),ServerThread,KDefaultStackSize,KHeapMinSize,KHeapMaxSize,NULL); + + test.Next(_L("Logon to the threads")); + clientThread.Logon(clientStat); + serverThread.Logon(serverStat); + + test.Next(_L("Start the threads")); + sem.CreateLocal(0); + User::SetJustInTime(EFalse); + clientThread.Resume(); + serverThread.Resume(); + + test.Next(_L("Wait for the threads to stop")); + User::WaitForRequest(clientStat); + User::WaitForRequest(serverStat); + User::SetJustInTime(justInTime); + test.Next(_L("Check the exit categories")); + test(clientThread.ExitType()==EExitKill); + test(clientThread.ExitCategory().Compare(_L("Kill"))==0); + test(clientThread.ExitReason()==KErrNone); + + test(serverThread.ExitType()==EExitPanic); + test(serverThread.ExitCategory().Compare(_L("KERN-EXEC"))==0); + test(serverThread.ExitReason()==EBadMessageHandle); + + test.Next(_L("Close the threads")); + CLOSE_AND_WAIT(serverThread); + CLOSE_AND_WAIT(clientThread); + test.End(); + } GLDEF_C TInt E32Main() { @@ -643,41 +744,10 @@ CLOSE_AND_WAIT(serverThread); CLOSE_AND_WAIT(clientThread); test.End(); - - TBool justInTime=User::JustInTime(); - - test.Next(_L("Check it Panics if you try to Complete a message twice")); - test.Start(_L("Create client and server threads")); - clientThread.Create(_L("Client Thread1"),CompletePanicClientThread,KDefaultStackSize,KHeapMinSize,KHeapMaxSize,NULL); - serverThread.Create(_L("Server Thread"),ServerThread,KDefaultStackSize,KHeapMinSize,KHeapMaxSize,NULL); - - test.Next(_L("Logon to the threads")); - clientThread.Logon(clientStat); - serverThread.Logon(serverStat); - - test.Next(_L("Start the threads")); - sem.CreateLocal(0); - User::SetJustInTime(EFalse); - clientThread.Resume(); - serverThread.Resume(); - test.Next(_L("Wait for the threads to stop")); - User::WaitForRequest(clientStat); // - User::WaitForRequest(serverStat); - User::SetJustInTime(justInTime); - test.Next(_L("Check the exit categories")); - test(clientThread.ExitType()==EExitKill); - test(clientThread.ExitCategory().Compare(_L("Kill"))==0); - test(clientThread.ExitReason()==KErrNone); - - test(serverThread.ExitType()==EExitPanic); - test(serverThread.ExitCategory().Compare(_L("USER"))==0); - test(serverThread.ExitReason()==ETMesCompletion); - - test.Next(_L("Close the threads")); - CLOSE_AND_WAIT(serverThread); - CLOSE_AND_WAIT(clientThread); - test.End(); + TestServerCompleteTwicePanic(); + + TestServerKillCompletePanic(); test.End(); diff -r 657f875b013e -r 73ea206103e6 kerneltest/e32test/benchmark/bm_ldd.cpp --- a/kerneltest/e32test/benchmark/bm_ldd.cpp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/e32test/benchmark/bm_ldd.cpp Wed Jun 23 19:44:53 2010 +0300 @@ -70,7 +70,7 @@ TInt StartTimerStampOverhead(); TInt RequestTimerStampOverhead(); // iRequestInterrupt() implementation - TInt SetAbsPrioirty(TInt aThreadHandle, TInt aNewPrio, TInt* aOldPrio); + TInt SetAbsPriority(TInt aThreadHandle, TInt aNewPrio, TInt* aOldPrio); DMutex* iLock; // Shall be acquired by anyone who access the object's writable state. @@ -533,9 +533,9 @@ // // -// The implmentation of RBMDriver::SetAbsPrioirty() call. +// The implementation of RBMDriver::SetAbsPriority() call. // -TInt DBMLChannel::SetAbsPrioirty(TInt aThreadHandle, TInt aNewPrio, TInt* aOldPrio) +TInt DBMLChannel::SetAbsPriority(TInt aThreadHandle, TInt aNewPrio, TInt* aOldPrio) { NKern::LockSystem(); // @@ -690,7 +690,7 @@ TInt newPrio; TInt oldPrio; umemget(&newPrio, a2, sizeof(newPrio)); - r = SetAbsPrioirty((TInt) a1, newPrio, &oldPrio); + r = SetAbsPriority((TInt) a1, newPrio, &oldPrio); umemput(a2, &oldPrio, sizeof(oldPrio)); break; } diff -r 657f875b013e -r 73ea206103e6 kerneltest/e32test/benchmark/bm_main.cpp --- a/kerneltest/e32test/benchmark/bm_main.cpp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/e32test/benchmark/bm_main.cpp Wed Jun 23 19:44:53 2010 +0300 @@ -78,8 +78,6 @@ #include #include -RTest test(_L("Benchmark Suite")); - // // The default value of the time allocated for one benchmark program. // @@ -300,7 +298,7 @@ User::WaitForRequest(iExitStatus); CLOSE_AND_WAIT(iChild); // - // Lower the parent thread prioirty and then restore the current one + // Lower the parent thread priority and then restore the current one // to make sure that the kernel-side thread destruction DFC had a chance to complete. // TInt prio = BMProgram::SetAbsPriority(RThread(), iProg->iOrigAbsPriority); @@ -362,7 +360,7 @@ User::WaitForRequest(iExitStatus); CLOSE_AND_WAIT(iChild); // - // Lower the parent thread prioirty and then restore the current one + // Lower the parent thread priority and then restore the current one // to make sure that the kernel-side thread destruction DFC had a chance to complete. // TInt prio = BMProgram::SetAbsPriority(RThread(), iProg->iOrigAbsPriority); @@ -418,15 +416,9 @@ // GLDEF_C TInt E32Main() { + RTest test(_L("Benchmark Suite")); test.Title(); - TInt r = UserSvr::HalFunction(EHalGroupKernel, EKernelHalNumLogicalCpus, 0, 0); - if (r != 1) - { - test.Printf(_L("%d CPUs detected ... test not run\n"), r); - return r; - } - AddProperty(); AddThread(); AddIpc(); @@ -434,7 +426,7 @@ AddOverhead(); AddrtLatency(); - r = User::LoadPhysicalDevice(KBMPddFileName); + TInt r = User::LoadPhysicalDevice(KBMPddFileName); BM_ERROR(r, (r == KErrNone) || (r == KErrAlreadyExists)); r = User::LoadLogicalDevice(KBMLddFileName); @@ -545,7 +537,7 @@ // TBMResult* results = prog->Run(iter, &count); - // Restore the original prioirty + // Restore the original priority BMProgram::SetAbsPriority(RThread(), prog->iOrigAbsPriority); // @@ -617,6 +609,9 @@ void bm_assert_failed(char* aCond, char* aFile, TInt aLine) { + RTest test(_L("Benchmark Suite Assert Failed")); + test.Title(); + TPtrC8 fd((TUint8*)aFile); TPtrC8 cd((TUint8*)aCond); @@ -634,6 +629,9 @@ void bm_error_detected(TInt aError, char* aCond, char* aFile, TInt aLine) { + RTest test(_L("Benchmark Suite Error Detected")); + test.Title(); + TPtrC8 fd((TUint8*)aFile); TPtrC8 cd((TUint8*)aCond); diff -r 657f875b013e -r 73ea206103e6 kerneltest/e32test/benchmark/bm_suite.h --- a/kerneltest/e32test/benchmark/bm_suite.h Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/e32test/benchmark/bm_suite.h Wed Jun 23 19:44:53 2010 +0300 @@ -226,7 +226,7 @@ KBMPriorityHigh = 60, // 60 is above all DFC 26 is below timer DFC /** * Absolute priority to be used for middle-priority threads. - * This is also the default prioirty - performance benchmarks are started at this prioirty. + * This is also the default priority - performance benchmarks are started at this prioirty. */ KBMPriorityMid = KBMPriorityHigh - 1, /** @@ -274,7 +274,7 @@ */ TThreadFunction iChildFunc; /** - * The child thread absolute prioirty. + * The child thread absolute priority. * Intialized by constructor. */ TInt iChildPrio; @@ -293,7 +293,7 @@ * Construct a new TBMSpawnArgs object. * * @param aChildFunc the child entry point - * @param aChildPrio the child thread absolute prioirty + * @param aChildPrio the child thread absolute priority * @param aRemote if ETrue the child thread must be created in a separate process; * otherwise, the child thread must be created within the parent's process. */ @@ -343,7 +343,7 @@ * * @param aThread a handle ro the target thread. * @param aNewPrio a new absolute priority for the target thread - * @return the old absolute prioirty of the target thread + * @return the old absolute priority of the target thread */ static TInt SetAbsPriority(RThread aThread, TInt aNewPrio); diff -r 657f875b013e -r 73ea206103e6 kerneltest/e32test/benchmark/d32bm.h --- a/kerneltest/e32test/benchmark/d32bm.h Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/e32test/benchmark/d32bm.h Wed Jun 23 19:44:53 2010 +0300 @@ -227,7 +227,7 @@ * The operations are implmented as KBMLdName logical device by KBMLddFileName * logical device driver DLL. * - * The API enables to change the absolute prioirty of a thread. + * The API enables to change the absolute priority of a thread. */ class RBMDriver : public RBusLogicalChannel { @@ -243,7 +243,7 @@ return DoCreate(KBMLdName, TVersion(1,0,1), KNullUnit, &KBMPdName, NULL); } /** - * Change the absolute prioirty of a thread. + * Change the absolute priority of a thread. * * @param aThread a handle to the target thread * @param aNewPrio a new absolute priority for the target thread diff -r 657f875b013e -r 73ea206103e6 kerneltest/e32test/benchmark/ipc.cpp --- a/kerneltest/e32test/benchmark/ipc.cpp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/e32test/benchmark/ipc.cpp Wed Jun 23 19:44:53 2010 +0300 @@ -212,11 +212,11 @@ BMProgram( aRemote ? ((aPriority == KBMPriorityHigh) - ? _L("Client-server Framework[Remote High Prioirty Server]") - : _L("Client-server Framework[Remote Low Prioirty Server]")) + ? _L("Client-server Framework[Remote High Priority Server]") + : _L("Client-server Framework[Remote Low Priority Server]")) : ((aPriority == KBMPriorityHigh) - ? _L("Client-server Framework[Local High Prioirty Server]") - : _L("Client-server Framework[Local Low Prioirty Server]"))) + ? _L("Client-server Framework[Local High Priority Server]") + : _L("Client-server Framework[Local Low Priority Server]"))) { iPriority = aPriority; iRemote = aRemote; diff -r 657f875b013e -r 73ea206103e6 kerneltest/e32test/benchmark/property.cpp --- a/kerneltest/e32test/benchmark/property.cpp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/e32test/benchmark/property.cpp Wed Jun 23 19:44:53 2010 +0300 @@ -205,25 +205,36 @@ void Property::NotificationLatencyParent(TBMResult* aResult, TBMUInt64 aIter, struct Measurement* aM) { + TRequestStatus st1, st2; + RProperty time; TInt r = time.Define(KPropBenchmarkCategory, 0, RProperty::EByteArray, KPassPolicy, KPassPolicy); BM_ERROR(r, r == KErrNone); r = time.Attach(KPropBenchmarkCategory, 0); BM_ERROR(r, r == KErrNone); + time.Subscribe(st2); RProperty prop; r = prop.Define(KPropBenchmarkCategory, 1, aM->iType, KPassPolicy, KPassPolicy); BM_ERROR(r, r == KErrNone); r = prop.Attach(KPropBenchmarkCategory, 1); BM_ERROR(r, r == KErrNone); + prop.Subscribe(st1); + + RSemaphore sync; + r = sync.CreateGlobal(_L("sync"), 0); + BM_ERROR(r, r == KErrNone); NotificationLatencyArgs sl(aM->iType, aM->iSize, aM->iRemote, aIter, aM->iSetGetType); MBMChild* child = property.SpawnChild(&sl); + for (TBMUInt64 i = 0; i < aIter; ++i) { - TRequestStatus st; - prop.Subscribe(st); - User::WaitForRequest(st); + sync.Signal(); + User::WaitForRequest(st1); + BM_ERROR(st1.Int(), st1.Int() == KErrNone); + prop.Subscribe(st1); + switch(aM->iSetGetType) { case EOneArg: @@ -258,12 +269,11 @@ TBMTicks now; ::bmTimer.Stamp(&now); - BM_ERROR(st.Int(), st.Int() == KErrNone); - // subscribe for the time just before Set() - time.Subscribe(st); - User::WaitForRequest(st); - BM_ERROR(st.Int(), st.Int() == KErrNone); + User::WaitForRequest(st2); + BM_ERROR(st2.Int(), st2.Int() == KErrNone); + time.Subscribe(st2); + // get the time just before Set() TBMTicks propSetTime; TPtr8 ptr((TUint8*) &propSetTime, sizeof(propSetTime), sizeof(propSetTime)); @@ -272,9 +282,19 @@ aResult->Cumulate(TBMTicksDelta(propSetTime, now)); } + + prop.Cancel(); + User::WaitForRequest(st1); + BM_ERROR(st1.Int(), st1.Int() == KErrCancel); + time.Cancel(); + User::WaitForRequest(st2); + BM_ERROR(st2.Int(), st2.Int() == KErrCancel); + prop.Close(); time.Close(); + sync.Close(); child->WaitChildExit(); + r = prop.Delete(KPropBenchmarkCategory, 1); BM_ERROR(r, r == KErrNone); r = time.Delete(KPropBenchmarkCategory, 0); @@ -290,14 +310,25 @@ { iOutBuf[j] = (TUint8)(j + 1); } + RProperty time; + TInt r = time.Attach(KPropBenchmarkCategory, 0); + BM_ERROR(r, r == KErrNone); + RProperty prop; - TInt r = prop.Attach(KPropBenchmarkCategory, 1); + r = prop.Attach(KPropBenchmarkCategory, 1); + BM_ERROR(r, r == KErrNone); + + RSemaphore sync; + r = sync.OpenGlobal(_L("sync")); BM_ERROR(r, r == KErrNone); + for (TBMUInt64 i = 0; i < sl->iIterationCount; ++i) { + sync.Wait(); TBMTicks propSetTime; ::bmTimer.Stamp(&propSetTime); + switch(sl->iSetGetType) { case EOneArg: @@ -336,13 +367,16 @@ } break; } + // publish the time just before Set() TPtr8 ptr((TUint8*) &propSetTime, sizeof(propSetTime), sizeof(propSetTime)); - r = time.Set(KPropBenchmarkCategory, 0, ptr); + r = time.Set(ptr); BM_ERROR(r, r == KErrNone); } + prop.Close(); time.Close(); + sync.Close(); BMProgram::SetAbsPriority(RThread(), prio); return KErrNone; diff -r 657f875b013e -r 73ea206103e6 kerneltest/e32test/benchmark/sync.cpp --- a/kerneltest/e32test/benchmark/sync.cpp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/e32test/benchmark/sync.cpp Wed Jun 23 19:44:53 2010 +0300 @@ -272,10 +272,15 @@ void Sync::SemaphoreLatencyParent(TBMResult* aResult, TBMUInt64 aIter, TBool aRemote) { + RSemaphore slSync; + TInt r = slSync.CreateGlobal(_L("slSync"), 0); + BM_ERROR(r, r == KErrNone); + SemaphoreLatencyArgs sl(aRemote, aIter); MBMChild* child = sync.SpawnChild(&sl); for (TBMUInt64 i = 0; i < aIter; ++i) { + slSync.Signal(); sl.iSem.Wait(); TBMTicks now; ::bmTimer.Stamp(&now); @@ -283,20 +288,27 @@ } child->WaitChildExit(); sl.Close(); + slSync.Close(); } TInt Sync::SemaphoreLatencyChild(TAny* ptr) { + RSemaphore slSync; + TInt r = slSync.OpenGlobal(_L("slSync")); + BM_ERROR(r, r == KErrNone); + SemaphoreLatencyArgs* sl = (SemaphoreLatencyArgs*) ptr; sl->ChildOpen(); for (TBMUInt64 i = 0; i < sl->iIterationCount; ++i) { + slSync.Wait(); TBMTicks sigTime; ::bmTimer.Stamp(&sigTime); sl->iSem.Signal(); sl->ChildSignalTime(sigTime); } sl->ChildClose(); + slSync.Close(); return KErrNone; } @@ -368,11 +380,16 @@ void Sync::ThreadSemaphoreLatencyParent(TBMResult* aResult, TBMUInt64 aIter, TBool aRemote) { + RSemaphore tslSync; + TInt r = tslSync.CreateGlobal(_L("tslSync"), 0); + BM_ERROR(r, r == KErrNone); + ThreadSemaphoreLatencyArgs sl(aRemote, aIter); MBMChild* child = sync.SpawnChild(&sl); for (TBMUInt64 i = 0; i < aIter; ++i) { sl.iStatus = KRequestPending; + tslSync.Signal(); User::WaitForRequest(sl.iStatus); BM_ASSERT(sl.iStatus == KErrNone); TBMTicks now; @@ -381,14 +398,20 @@ } child->WaitChildExit(); sl.Close(); + tslSync.Close(); } TInt Sync::ThreadSemaphoreLatencyChild(TAny* ptr) { + RSemaphore tslSync; + TInt r = tslSync.OpenGlobal(_L("tslSync")); + BM_ERROR(r, r == KErrNone); + ThreadSemaphoreLatencyArgs* sl = (ThreadSemaphoreLatencyArgs*) ptr; sl->ChildOpen(); for (TBMUInt64 i = 0; i < sl->iIterationCount; ++i) { + tslSync.Wait(); TRequestStatus* sptr = sl->iStatusPtr; TBMTicks sigTime; ::bmTimer.Stamp(&sigTime); @@ -396,6 +419,7 @@ sl->ChildSignalTime(sigTime); } sl->ChildClose(); + tslSync.Close(); return KErrNone; } diff -r 657f875b013e -r 73ea206103e6 kerneltest/e32test/benchmark/thread.cpp --- a/kerneltest/e32test/benchmark/thread.cpp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/e32test/benchmark/thread.cpp Wed Jun 23 19:44:53 2010 +0300 @@ -164,8 +164,10 @@ TInt r = child.Create(KNullDesC, Thread::KillingChild, 0x2000, NULL, NULL); BM_ERROR(r, r == KErrNone); child.Logon(st); + BMProgram::SetAbsPriority(RThread(), KBMPriorityLow); + child.Resume(); + User::After(1000); // Give the child thread a chance to run - killing it too earlier can leave the heap locked BMProgram::SetAbsPriority(RThread(), KBMPriorityHigh); - child.Resume(); TBMTicks t1; ::bmTimer.Stamp(&t1); child.Kill(KErrCancel); diff -r 657f875b013e -r 73ea206103e6 kerneltest/e32test/group/t_chunk.mmp --- a/kerneltest/e32test/group/t_chunk.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/e32test/group/t_chunk.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -19,7 +19,7 @@ TARGETTYPE EXE SOURCEPATH ../mmu SOURCE t_chunk.cpp -LIBRARY euser.lib +LIBRARY euser.lib hal.lib OS_LAYER_SYSTEMINCLUDE_SYMBIAN diff -r 657f875b013e -r 73ea206103e6 kerneltest/e32test/group/t_smpsoakspin.mmp --- a/kerneltest/e32test/group/t_smpsoakspin.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/e32test/group/t_smpsoakspin.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -1,6 +1,17 @@ -// e32test\group\t_smpsoakspin.mmp +// Copyright (c) 2010 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". // -// Copyright (c) 2005 Symbian Ltd. All rights reserved. +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// e32test/group/t_smpsoakspin.mmp // target t_smpsoakspin.exe diff -r 657f875b013e -r 73ea206103e6 kerneltest/e32test/group/t_timestamp.mmp --- a/kerneltest/e32test/group/t_timestamp.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/e32test/group/t_timestamp.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -1,4 +1,4 @@ -// Copyright (c) 1996-2009 Nokia Corporation and/or its subsidiary(-ies). +// Copyright (c) 2010 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" diff -r 657f875b013e -r 73ea206103e6 kerneltest/e32test/hcr/hcr.inf --- a/kerneltest/e32test/hcr/hcr.inf Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/e32test/hcr/hcr.inf Wed Jun 23 19:44:53 2010 +0300 @@ -29,8 +29,6 @@ PRJ_TESTEXPORTS hcr_tests.iby /epoc32/rom/include/hcr_tests.iby -tshell_hcrtest.oby ../../../kernel/eka/rombuild/tshell_hcrtest.oby -nandloader_hcrtest.oby ../../../kernel/eka/rombuild/nandloader_hcrtest.oby hcrtest.auto.bat /epoc32/rom/include/hcrtest.auto.bat hcr_autoexec.bat /epoc32/rom/include/hcr_autoexec.bat diff -r 657f875b013e -r 73ea206103e6 kerneltest/e32test/hcr/hcrtest_h4roms.mbc --- a/kerneltest/e32test/hcr/hcrtest_h4roms.mbc Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/e32test/hcr/hcrtest_h4roms.mbc Wed Jun 23 19:44:53 2010 +0300 @@ -17,57 +17,57 @@ #ifndef BUILD_NO_UREL // Multiple Memory Model // - oneoff \os\kernelhwsrv\kernel\eka\rombuild rom -v h4hrp -b urel -i armv5 --zip --symbol --name=H4_TBARMV5D-TSHELL.IMG --type=tshell_hcrtest - oneoff \os\kernelhwsrv\kernel\eka\rombuild rom -v h4hrp -b urel -i armv5 --zip --symbol --name=H4_TBARMV5D-BOOTLDR.IMG --type=ubootldr - oneoff \os\kernelhwsrv\kernel\eka\rombuild rom -v h4hrp -b urel -i armv5 --zip --symbol --name=H4_TBARMV5D-BOOTLDR-FAT32.IMG --type=ubootldr -D WITH_FAT32 + oneoff . \os\kernelhwsrv\kernel\eka\rombuild\rom -v h4hrp -b urel -i armv5 --zip --symbol --name=H4_TBARMV5D-TSHELL.IMG --type=tshell_hcrtest + oneoff . \os\kernelhwsrv\kernel\eka\rombuild\rom -v h4hrp -b urel -i armv5 --zip --symbol --name=H4_TBARMV5D-BOOTLDR.IMG --type=ubootldr + oneoff . \os\kernelhwsrv\kernel\eka\rombuild\rom -v h4hrp -b urel -i armv5 --zip --symbol --name=H4_TBARMV5D-BOOTLDR-FAT32.IMG --type=ubootldr -D WITH_FAT32 // Small block NAND support - oneoff \os\kernelhwsrv\kernel\eka\rombuild rom -v h4hrp -b urel -i armv5 --zip --symbol --name=H4_TBARMV5D-NAND2LDR.IMG --type=nandloader -D _NAND2 - oneoff \os\kernelhwsrv\kernel\eka\rombuild rom -v h4hrp -b urel -i armv5 --zip --symbol --name=H4_TBARMV5D-TSHELL_NAND2.IMG --type=tshell_hcrtest -D _NAND2 + oneoff . \os\kernelhwsrv\kernel\eka\rombuild\rom -v h4hrp -b urel -i armv5 --zip --symbol --name=H4_TBARMV5D-NAND2LDR.IMG --type=nandloader -D _NAND2 + oneoff . \os\kernelhwsrv\kernel\eka\rombuild\rom -v h4hrp -b urel -i armv5 --zip --symbol --name=H4_TBARMV5D-TSHELL_NAND2.IMG --type=tshell_hcrtest -D _NAND2 // OneNAND support - oneoff \os\kernelhwsrv\kernel\eka\rombuild rom -v h4hrp -b urel -i armv5 --zip --symbol --name=H4_TBARMV5D-NANDLDR.IMG --type=nandloader -D _ONENAND - oneoff \os\kernelhwsrv\kernel\eka\rombuild rom -v h4hrp -b urel -i armv5 --zip --symbol --name=H4_TBARMV5D-TSHELL_NAND.IMG --type=tshell_hcrtest -D _ONENAND + oneoff . \os\kernelhwsrv\kernel\eka\rombuild\rom -v h4hrp -b urel -i armv5 --zip --symbol --name=H4_TBARMV5D-NANDLDR.IMG --type=nandloader -D _ONENAND + oneoff . \os\kernelhwsrv\kernel\eka\rombuild\rom -v h4hrp -b urel -i armv5 --zip --symbol --name=H4_TBARMV5D-TSHELL_NAND.IMG --type=tshell_hcrtest -D _ONENAND // Direct/Single Memory model - not supported I think // - // oneoff \os\kernelhwsrv\kernel\eka\rombuild rom -v sh4hrp -b urel -i armv5 --zip --symbol --name=SH4_TBARMV5D-TSHELL.IMG --type=tshell_hcrtest + // oneoff . \os\kernelhwsrv\kernel\eka\rombuild\rom -v sh4hrp -b urel -i armv5 --zip --symbol --name=SH4_TBARMV5D-TSHELL.IMG --type=tshell_hcrtest // Flexible Memory model // - oneoff \os\kernelhwsrv\kernel\eka\rombuild rom -v fh4hrp -b urel -i armv5 --zip --symbol --name=FH4_TBARMV5D-TSHELL.IMG --type=tshell_hcrtest + oneoff . \os\kernelhwsrv\kernel\eka\rombuild\rom -v fh4hrp -b urel -i armv5 --zip --symbol --name=FH4_TBARMV5D-TSHELL.IMG --type=tshell_hcrtest #endif // Direct/Single Memory model - not supported I think // -// oneoff \os\kernelhwsrv\kernel\eka\rombuild rom -v sh4hrp -b udeb -i armv5 --zip --symbol --name=SH4_TBARMV5D-TSHELL-D.IMG --type=tshell_hcrtest +// oneoff . \os\kernelhwsrv\kernel\eka\rombuild\rom -v sh4hrp -b udeb -i armv5 --zip --symbol --name=SH4_TBARMV5D-TSHELL-D.IMG --type=tshell_hcrtest // Multiple Memory Model // -oneoff \os\kernelhwsrv\kernel\eka\rombuild rom -v h4hrp -b udeb -i armv5 --zip --symbol --name=H4_TBARMV5D-TSHELL-D.IMG --type=tshell_hcrtest -oneoff \os\kernelhwsrv\kernel\eka\rombuild rom -v h4hrp -b udeb -i armv5 --zip --symbol --name=H4_TBARMV5D-BOOTLDR-D.IMG --type=ubootldr -oneoff \os\kernelhwsrv\kernel\eka\rombuild rom -v h4hrp -b udeb -i armv5 --zip --symbol --name=H4_TBARMV5D-BOOTLDR-FAT32-D.IMG --type=ubootldr -D WITH_FAT32 +oneoff . \os\kernelhwsrv\kernel\eka\rombuild\rom -v h4hrp -b udeb -i armv5 --zip --symbol --name=H4_TBARMV5D-TSHELL-D.IMG --type=tshell_hcrtest +oneoff . \os\kernelhwsrv\kernel\eka\rombuild\rom -v h4hrp -b udeb -i armv5 --zip --symbol --name=H4_TBARMV5D-BOOTLDR-D.IMG --type=ubootldr +oneoff . \os\kernelhwsrv\kernel\eka\rombuild\rom -v h4hrp -b udeb -i armv5 --zip --symbol --name=H4_TBARMV5D-BOOTLDR-FAT32-D.IMG --type=ubootldr -D WITH_FAT32 // Small block NAND support -oneoff \os\kernelhwsrv\kernel\eka\rombuild rom -v h4hrp -b udeb -i armv5 --zip --symbol --name=H4_TBARMV5D-NAND2LDR-D.IMG --type=nandloader -D _NAND2 -oneoff \os\kernelhwsrv\kernel\eka\rombuild rom -v h4hrp -b udeb -i armv5 --zip --symbol --name=H4_TBARMV5D-TSHELL_NAND2-D.IMG --type=tshell_hcrtest -D _NAND2 -oneoff \os\kernelhwsrv\kernel\eka\rombuild rom -v h4hrp -b udeb -i armv5 --zip --symbol --name=H4_TBARMV5D-TSHELL_PAGED_NAND2B-D.IMG --type=tshell_hcrtest -D USE_SDIO_SD_MMC,WITH_FAT32,_NAND2,PAGED_ROM,PAGED_CODE +oneoff . \os\kernelhwsrv\kernel\eka\rombuild\rom -v h4hrp -b udeb -i armv5 --zip --symbol --name=H4_TBARMV5D-NAND2LDR-D.IMG --type=nandloader -D _NAND2 +oneoff . \os\kernelhwsrv\kernel\eka\rombuild\rom -v h4hrp -b udeb -i armv5 --zip --symbol --name=H4_TBARMV5D-TSHELL_NAND2-D.IMG --type=tshell_hcrtest -D _NAND2 +oneoff . \os\kernelhwsrv\kernel\eka\rombuild\rom -v h4hrp -b udeb -i armv5 --zip --symbol --name=H4_TBARMV5D-TSHELL_PAGED_NAND2B-D.IMG --type=tshell_hcrtest -D USE_SDIO_SD_MMC,WITH_FAT32,_NAND2,PAGED_ROM,PAGED_CODE // OneNAND support -oneoff \os\kernelhwsrv\kernel\eka\rombuild rom -v h4hrp -b udeb -i armv5 --zip --symbol --name=H4_TBARMV5D-NANDLDR-D.IMG --type=nandloader -D _ONENAND -oneoff \os\kernelhwsrv\kernel\eka\rombuild rom -v h4hrp -b udeb -i armv5 --zip --symbol --name=H4_TBARMV5D-TSHELL_NAND-D.IMG --type=tshell_hcrtest -D _ONENAND +oneoff . \os\kernelhwsrv\kernel\eka\rombuild\rom -v h4hrp -b udeb -i armv5 --zip --symbol --name=H4_TBARMV5D-NANDLDR-D.IMG --type=nandloader -D _ONENAND +oneoff . \os\kernelhwsrv\kernel\eka\rombuild\rom -v h4hrp -b udeb -i armv5 --zip --symbol --name=H4_TBARMV5D-TSHELL_NAND-D.IMG --type=tshell_hcrtest -D _ONENAND // Flexible Memory model // -oneoff \os\kernelhwsrv\kernel\eka\rombuild rom -v fh4hrp -b udeb -i armv5 --zip --symbol --name=FH4_TBARMV5D-TSHELL-D.IMG --type=tshell_hcrtest +oneoff . \os\kernelhwsrv\kernel\eka\rombuild\rom -v fh4hrp -b udeb -i armv5 --zip --symbol --name=FH4_TBARMV5D-TSHELL-D.IMG --type=tshell_hcrtest // Small block NAND support -oneoff \os\kernelhwsrv\kernel\eka\rombuild rom -v fh4hrp -b udeb -i armv5 --zip --symbol --name=FH4_TBARMV5D-NAND2LDR-D.IMG --type=nandloader -D _NAND2 -oneoff \os\kernelhwsrv\kernel\eka\rombuild rom -v fh4hrp -b udeb -i armv5 --zip --symbol --name=FH4_TBARMV5D-TSHELL_NAND2-D.IMG --type=tshell_hcrtest -D _NAND2 -oneoff \os\kernelhwsrv\kernel\eka\rombuild rom -v fh4hrp -b udeb -i armv5 --zip --symbol --name=FH4_TBARMV5D-TSHELL_PAGED_NAND2B-D.IMG --type=tshell_hcrtest -D USE_SDIO_SD_MMC,WITH_FAT32,_NAND2,PAGED_ROM,PAGED_CODE +oneoff . \os\kernelhwsrv\kernel\eka\rombuild\rom -v fh4hrp -b udeb -i armv5 --zip --symbol --name=FH4_TBARMV5D-NAND2LDR-D.IMG --type=nandloader -D _NAND2 +oneoff . \os\kernelhwsrv\kernel\eka\rombuild\rom -v fh4hrp -b udeb -i armv5 --zip --symbol --name=FH4_TBARMV5D-TSHELL_NAND2-D.IMG --type=tshell_hcrtest -D _NAND2 +oneoff . \os\kernelhwsrv\kernel\eka\rombuild\rom -v fh4hrp -b udeb -i armv5 --zip --symbol --name=FH4_TBARMV5D-TSHELL_PAGED_NAND2B-D.IMG --type=tshell_hcrtest -D USE_SDIO_SD_MMC,WITH_FAT32,_NAND2,PAGED_ROM,PAGED_CODE // OneNAND support -oneoff \os\kernelhwsrv\kernel\eka\rombuild rom -v fh4hrp -b udeb -i armv5 --zip --symbol --name=FH4_TBARMV5D-NANDLDR-D.IMG --type=nandloader -D _ONENAND -oneoff \os\kernelhwsrv\kernel\eka\rombuild rom -v fh4hrp -b udeb -i armv5 --zip --symbol --name=FH4_TBARMV5D-TSHELL_NAND-D.IMG --type=tshell_hcrtest -D _ONENAND +oneoff . \os\kernelhwsrv\kernel\eka\rombuild\rom -v fh4hrp -b udeb -i armv5 --zip --symbol --name=FH4_TBARMV5D-NANDLDR-D.IMG --type=nandloader -D _ONENAND +oneoff . \os\kernelhwsrv\kernel\eka\rombuild\rom -v fh4hrp -b udeb -i armv5 --zip --symbol --name=FH4_TBARMV5D-TSHELL_NAND-D.IMG --type=tshell_hcrtest -D _ONENAND diff -r 657f875b013e -r 73ea206103e6 kerneltest/e32test/hcr/hcrtest_ne1roms.mbc --- a/kerneltest/e32test/hcr/hcrtest_ne1roms.mbc Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/e32test/hcr/hcrtest_ne1roms.mbc Wed Jun 23 19:44:53 2010 +0300 @@ -29,64 +29,64 @@ #ifndef BUILD_NO_UREL // Direct/Single Memory model - unicore - udeb // - // oneoff \os\kernelhwsrv\kernel\eka\rombuild rom -v sne1_tb -b urel -i armv5 --zip --symbol --name=SNE1_TBARMV5D-TSHELL.IMG --type=tshell_hcrtest + // oneoff . \os\kernelhwsrv\kernel\eka\rombuild\rom -v sne1_tb -b urel -i armv5 --zip --symbol --name=SNE1_TBARMV5D-TSHELL.IMG --type=tshell_hcrtest // Multiple Memory Model - unicore - udeb // - oneoff \os\kernelhwsrv\kernel\eka\rombuild rom -v ne1_tb -b urel -i armv5 --zip --symbol --name=NE1_TBARMV5D-TSHELL.IMG --type=tshell_hcrtest -D HCR_INCLUDE_VARIANT_TEST_DRIVERS - oneoff \os\kernelhwsrv\kernel\eka\rombuild rom -v ne1_tb -b urel -i armv5 --zip --symbol --name=NE1_TBARMV5D-BOOTLDR.IMG --type=ubootldr - oneoff \os\kernelhwsrv\kernel\eka\rombuild rom -v ne1_tb -b urel -i armv5 --zip --symbol --name=NE1_TBARMV5D-BOOTLDR-FAT32.IMG --type=ubootldr -D WITH_FAT32 + oneoff . \os\kernelhwsrv\kernel\eka\rombuild\rom -v ne1_tb -b urel -i armv5 --zip --symbol --name=NE1_TBARMV5D-TSHELL.IMG --type=tshell_hcrtest -D HCR_INCLUDE_VARIANT_TEST_DRIVERS + oneoff . \os\kernelhwsrv\kernel\eka\rombuild\rom -v ne1_tb -b urel -i armv5 --zip --symbol --name=NE1_TBARMV5D-BOOTLDR.IMG --type=ubootldr + oneoff . \os\kernelhwsrv\kernel\eka\rombuild\rom -v ne1_tb -b urel -i armv5 --zip --symbol --name=NE1_TBARMV5D-BOOTLDR-FAT32.IMG --type=ubootldr -D WITH_FAT32 // Large block NAND support - oneoff \os\kernelhwsrv\kernel\eka\rombuild rom -v ne1_tb -b urel -i armv5 --zip --symbol --name=NE1_TBARMV5D-NAND2LDR.IMG --type=nandloader_hcrtest -D _NAND2 - oneoff \os\kernelhwsrv\kernel\eka\rombuild rom -v ne1_tb -b urel -i armv5 --zip --symbol --name=NE1_TBARMV5D-TSHELL_NAND2.IMG --type=tshell_hcrtest -D _NAND2,HCR_INCLUDE_VARIANT_TEST_DRIVERS + oneoff . \os\kernelhwsrv\kernel\eka\rombuild\rom -v ne1_tb -b urel -i armv5 --zip --symbol --name=NE1_TBARMV5D-NAND2LDR.IMG --type=nandloader_hcrtest -D _NAND2 + oneoff . \os\kernelhwsrv\kernel\eka\rombuild\rom -v ne1_tb -b urel -i armv5 --zip --symbol --name=NE1_TBARMV5D-TSHELL_NAND2.IMG --type=tshell_hcrtest -D _NAND2,HCR_INCLUDE_VARIANT_TEST_DRIVERS // OneNAND support -- -D _ONENANDE not supported on NE1 // Flexible Memory model - unicore & SMP - udeb // - oneoff \os\kernelhwsrv\kernel\eka\rombuild rom -v fne1_tb -b urel -i armv5 --zip --symbol --name=FNE1_TBARMV5D-TSHELL.IMG --type=tshell_hcrtest -D HCR_INCLUDE_VARIANT_TEST_DRIVERS - oneoff \os\kernelhwsrv\kernel\eka\rombuild rom -v fne1_tb -b urel -i armv5 -x armv5smp --zip --symbol --name=FNE1_TBARMV5SMPD-TSHELL.IMG --type=tshell_hcrtest -D HCR_INCLUDE_VARIANT_TEST_DRIVERS + oneoff . \os\kernelhwsrv\kernel\eka\rombuild\rom -v fne1_tb -b urel -i armv5 --zip --symbol --name=FNE1_TBARMV5D-TSHELL.IMG --type=tshell_hcrtest -D HCR_INCLUDE_VARIANT_TEST_DRIVERS + oneoff . \os\kernelhwsrv\kernel\eka\rombuild\rom -v fne1_tb -b urel -i armv5 -x armv5smp --zip --symbol --name=FNE1_TBARMV5SMPD-TSHELL.IMG --type=tshell_hcrtest -D HCR_INCLUDE_VARIANT_TEST_DRIVERS // Large block NAND support - oneoff \os\kernelhwsrv\kernel\eka\rombuild rom -v fne1_tb -b urel -i armv5 --zip --symbol --name=FNE1_TBARMV5D-NAND2LDR.IMG --type=nandloader_hcrtest -D _NAND2 - oneoff \os\kernelhwsrv\kernel\eka\rombuild rom -v fne1_tb -b urel -i armv5 --zip --symbol --name=FNE1_TBARMV5D-TSHELL_NAND2.IMG --type=tshell_hcrtest -D _NAND2,HCR_INCLUDE_VARIANT_TEST_DRIVERS - oneoff \os\kernelhwsrv\kernel\eka\rombuild rom -v fne1_tb -b urel -i armv5 -x armv5smp --zip --symbol --name=FNE1_TBARMV5SMPD-TSHELL_NAND2.IMG --type=tshell_hcrtest -D _NAND2,HCR_INCLUDE_VARIANT_TEST_DRIVERS + oneoff . \os\kernelhwsrv\kernel\eka\rombuild\rom -v fne1_tb -b urel -i armv5 --zip --symbol --name=FNE1_TBARMV5D-NAND2LDR.IMG --type=nandloader_hcrtest -D _NAND2 + oneoff . \os\kernelhwsrv\kernel\eka\rombuild\rom -v fne1_tb -b urel -i armv5 --zip --symbol --name=FNE1_TBARMV5D-TSHELL_NAND2.IMG --type=tshell_hcrtest -D _NAND2,HCR_INCLUDE_VARIANT_TEST_DRIVERS + oneoff . \os\kernelhwsrv\kernel\eka\rombuild\rom -v fne1_tb -b urel -i armv5 -x armv5smp --zip --symbol --name=FNE1_TBARMV5SMPD-TSHELL_NAND2.IMG --type=tshell_hcrtest -D _NAND2,HCR_INCLUDE_VARIANT_TEST_DRIVERS // OneNAND support -- -D _ONENANDE not supported on NE1 #endif // Direct/Single Memory model - unicore - udeb // -// oneoff \os\kernelhwsrv\kernel\eka\rombuild rom -v sne1_tb -b udeb -i armv5 --zip --symbol --name=SNE1_TBARMV5D-TSHELL-D.IMG --type=tshell_hcrtest +// oneoff . \os\kernelhwsrv\kernel\eka\rombuild\rom -v sne1_tb -b udeb -i armv5 --zip --symbol --name=SNE1_TBARMV5D-TSHELL-D.IMG --type=tshell_hcrtest // Multiple Memory Model - unicore - udeb // -oneoff \os\kernelhwsrv\kernel\eka\rombuild rom -v ne1_tb -b udeb -i armv5 --zip --symbol --name=NE1_TBARMV5D-TSHELL-D.IMG --type=tshell_hcrtest -D HCR_INCLUDE_VARIANT_TEST_DRIVERS -oneoff \os\kernelhwsrv\kernel\eka\rombuild rom -v ne1_tb -b udeb -i armv5 --zip --symbol --name=NE1_TBARMV5D-BOOTLDR-D.IMG --type=ubootldr -oneoff \os\kernelhwsrv\kernel\eka\rombuild rom -v ne1_tb -b udeb -i armv5 --zip --symbol --name=NE1_TBARMV5D-BOOTLDR-FAT32-D.IMG --type=ubootldr -D WITH_FAT32 +oneoff . \os\kernelhwsrv\kernel\eka\rombuild\rom -v ne1_tb -b udeb -i armv5 --zip --symbol --name=NE1_TBARMV5D-TSHELL-D.IMG --type=tshell_hcrtest -D HCR_INCLUDE_VARIANT_TEST_DRIVERS +oneoff . \os\kernelhwsrv\kernel\eka\rombuild\rom -v ne1_tb -b udeb -i armv5 --zip --symbol --name=NE1_TBARMV5D-BOOTLDR-D.IMG --type=ubootldr +oneoff . \os\kernelhwsrv\kernel\eka\rombuild\rom -v ne1_tb -b udeb -i armv5 --zip --symbol --name=NE1_TBARMV5D-BOOTLDR-FAT32-D.IMG --type=ubootldr -D WITH_FAT32 // Large block NAND support -oneoff \os\kernelhwsrv\kernel\eka\rombuild rom -v ne1_tb -b udeb -i armv5 --zip --symbol --name=NE1_TBARMV5D-NAND2LDR-D.IMG --type=nandloader_hcrtest -D _NAND2 -oneoff \os\kernelhwsrv\kernel\eka\rombuild rom -v ne1_tb -b udeb -i armv5 --zip --symbol --name=NE1_TBARMV5D-TSHELL_NAND2-D.IMG --type=tshell_hcrtest -D _NAND2,HCR_INCLUDE_VARIANT_TEST_DRIVERS +oneoff . \os\kernelhwsrv\kernel\eka\rombuild\rom -v ne1_tb -b udeb -i armv5 --zip --symbol --name=NE1_TBARMV5D-NAND2LDR-D.IMG --type=nandloader_hcrtest -D _NAND2 +oneoff . \os\kernelhwsrv\kernel\eka\rombuild\rom -v ne1_tb -b udeb -i armv5 --zip --symbol --name=NE1_TBARMV5D-TSHELL_NAND2-D.IMG --type=tshell_hcrtest -D _NAND2,HCR_INCLUDE_VARIANT_TEST_DRIVERS // OneNAND support -- -D _ONENANDE not supported on NE1 // Flexible Memory model - unicore & SMP - udeb // -oneoff \os\kernelhwsrv\kernel\eka\rombuild rom -v fne1_tb -b udeb -i armv5 --zip --symbol --name=FNE1_TBARMV5D-TSHELL-D.IMG --type=tshell_hcrtest -D HCR_INCLUDE_VARIANT_TEST_DRIVERS -oneoff \os\kernelhwsrv\kernel\eka\rombuild rom -v fne1_tb -b udeb -i armv5 -x armv5smp --zip --symbol --name=FNE1_TBARMV5SMPD-TSHELL-D.IMG --type=tshell_hcrtest -D HCR_INCLUDE_VARIANT_TEST_DRIVERS +oneoff . \os\kernelhwsrv\kernel\eka\rombuild\rom -v fne1_tb -b udeb -i armv5 --zip --symbol --name=FNE1_TBARMV5D-TSHELL-D.IMG --type=tshell_hcrtest -D HCR_INCLUDE_VARIANT_TEST_DRIVERS +oneoff . \os\kernelhwsrv\kernel\eka\rombuild\rom -v fne1_tb -b udeb -i armv5 -x armv5smp --zip --symbol --name=FNE1_TBARMV5SMPD-TSHELL-D.IMG --type=tshell_hcrtest -D HCR_INCLUDE_VARIANT_TEST_DRIVERS // Large block NAND support -oneoff \os\kernelhwsrv\kernel\eka\rombuild rom -v fne1_tb -b udeb -i armv5 --zip --symbol --name=FNE1_TBARMV5D-NAND2LDR-D.IMG --type=nandloader_hcrtest -D _NAND2 -oneoff \os\kernelhwsrv\kernel\eka\rombuild rom -v fne1_tb -b udeb -i armv5 --zip --symbol --name=FNE1_TBARMV5D-TSHELL_NAND2-D.IMG --type=tshell_hcrtest -D _NAND2,HCR_INCLUDE_VARIANT_TEST_DRIVERS -oneoff \os\kernelhwsrv\kernel\eka\rombuild rom -v fne1_tb -b udeb -i armv5 -x armv5smp --zip --symbol --name=FNE1_TBARMV5SMPD-TSHELL_NAND2-D.IMG --type=tshell_hcrtest -D _NAND2,HCR_INCLUDE_VARIANT_TEST_DRIVERS +oneoff . \os\kernelhwsrv\kernel\eka\rombuild\rom -v fne1_tb -b udeb -i armv5 --zip --symbol --name=FNE1_TBARMV5D-NAND2LDR-D.IMG --type=nandloader_hcrtest -D _NAND2 +oneoff . \os\kernelhwsrv\kernel\eka\rombuild\rom -v fne1_tb -b udeb -i armv5 --zip --symbol --name=FNE1_TBARMV5D-TSHELL_NAND2-D.IMG --type=tshell_hcrtest -D _NAND2,HCR_INCLUDE_VARIANT_TEST_DRIVERS +oneoff . \os\kernelhwsrv\kernel\eka\rombuild\rom -v fne1_tb -b udeb -i armv5 -x armv5smp --zip --symbol --name=FNE1_TBARMV5SMPD-TSHELL_NAND2-D.IMG --type=tshell_hcrtest -D _NAND2,HCR_INCLUDE_VARIANT_TEST_DRIVERS // OneNAND support -- -D _ONENANDE not supported on NE1 // Large block NAND support + WDP -oneoff \os\kernelhwsrv\kernel\eka\rombuild rom -v fne1_tb -b udeb -i armv5 --zip --symbol --name=FNE1_TBARMV5D-TSHELL_NAND2-WDP-D.IMG --type=tshell_hcrtest -D _NAND2,PAGED_ROM,PAGED_CODE,PAGED_DATA,DATAPAGINGWARNINGS,WITH_FAT32,FULL_NAND_TEST,HCR_INCLUDE_VARIANT_TEST_DRIVERS -oneoff \os\kernelhwsrv\kernel\eka\rombuild rom -v fne1_tb -b udeb -i armv5 --zip --symbol --name=FNE1_TBARMV5D-NAND2LDR-WDP-D.IMG --type=nandloader_hcrtest -D _NAND2,_CREATE_NE1_TB_NAND_SWAP -oneoff \os\kernelhwsrv\kernel\eka\rombuild rom -v fne1_tb -b udeb -i armv5 -x armv5smp --zip --symbol --name=FNE1_TBARMV5SMPD-TSHELL_NAND2-WDP-D.IMG --type=tshell_hcrtest -D _NAND2,PAGED_ROM,PAGED_CODE,PAGED_DATA,DATAPAGINGWARNINGS,WITH_FAT32,FULL_NAND_TEST,HCR_INCLUDE_VARIANT_TEST_DRIVERS +oneoff . \os\kernelhwsrv\kernel\eka\rombuild\rom -v fne1_tb -b udeb -i armv5 --zip --symbol --name=FNE1_TBARMV5D-TSHELL_NAND2-WDP-D.IMG --type=tshell_hcrtest -D _NAND2,PAGED_ROM,PAGED_CODE,PAGED_DATA,DATAPAGINGWARNINGS,WITH_FAT32,FULL_NAND_TEST,HCR_INCLUDE_VARIANT_TEST_DRIVERS +oneoff . \os\kernelhwsrv\kernel\eka\rombuild\rom -v fne1_tb -b udeb -i armv5 --zip --symbol --name=FNE1_TBARMV5D-NAND2LDR-WDP-D.IMG --type=nandloader_hcrtest -D _NAND2,_CREATE_NE1_TB_NAND_SWAP +oneoff . \os\kernelhwsrv\kernel\eka\rombuild\rom -v fne1_tb -b udeb -i armv5 -x armv5smp --zip --symbol --name=FNE1_TBARMV5SMPD-TSHELL_NAND2-WDP-D.IMG --type=tshell_hcrtest -D _NAND2,PAGED_ROM,PAGED_CODE,PAGED_DATA,DATAPAGINGWARNINGS,WITH_FAT32,FULL_NAND_TEST,HCR_INCLUDE_VARIANT_TEST_DRIVERS diff -r 657f875b013e -r 73ea206103e6 kerneltest/e32test/mmu/t_chunk.cpp --- a/kerneltest/e32test/mmu/t_chunk.cpp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/e32test/mmu/t_chunk.cpp Wed Jun 23 19:44:53 2010 +0300 @@ -51,6 +51,7 @@ #include #include #include +#include #include "mmudetect.h" #include "d_gobble.h" #include "freeram.h" @@ -820,29 +821,31 @@ { RGobbler gobbler; TInt r = gobbler.Open(); - test(r==KErrNone); + test_KErrNone(r); TUint32 taken = gobbler.GobbleRAM(128*1024*1024); test.Printf(_L("Gobbled: %dK\n"), taken/1024); test.Printf(_L("Free RAM 0x%08X bytes\n"),FreeRam()); test.Next(_L("Create thread")); r=NtfThrd.Create(KNotifierThreadName,NotifierThread,KDefaultStackSize,NULL,NULL); - test(r==KErrNone); + test_KErrNone(r); NtfThrd.SetPriority(EPriorityMore); NtfThrd.Resume(); test.Next(_L("Check for initial notifier")); CheckNotifierCount(1,1); TInt free=FreeRam(); test.Printf(_L("Free RAM: %dK\n"),free/1024); - test(free>=1048576); + test_Value(free, free >= 1048576); test.Next(_L("Set thresholds")); r=UserSvr::SetMemoryThresholds(65536,524288); // low=64K good=512K - test(r==KErrNone); + test_KErrNone(r); test.Next(_L("Create chunk")); // Chunk must not be paged otherwise it will not effect the amount // of free ram reported plus on h4 swap size is less than the total ram. + TInt totalRam; + test_KErrNone(HAL::Get(HAL::EMemoryRAM, totalRam)); TChunkCreateInfo createInfo; - createInfo.SetNormal(0, free+2097152); + createInfo.SetNormal(0, totalRam); createInfo.SetPaging(TChunkCreateInfo::EUnpaged); RChunk c; test_KErrNone(c.Create(createInfo)); @@ -858,31 +861,31 @@ TInt free3=free-(KBufferSpace-free2); // this accounts for space used by page tables test.Next(_L("Leave 32K")); r=c.Adjust(free3-32768); // leave 32K - test(r==KErrNone); + test_KErrNone(r); CheckNotifierCount(2,1); // should get notifier test.Next(_L("Leave 28K")); r=c.Adjust(free3-28672); // leave 28K - test(r==KErrNone); + test_KErrNone(r); CheckNotifierCount(2,1); // shouldn't get another notifier test.Next(_L("Ask for too much")); - r=c.Adjust(free3+4096); // try to get more than available - test(r==KErrNoMemory); + r=c.Adjust(totalRam); // try to get more than available + test_Equal(KErrNoMemory, r); CheckNotifierCount(2,2); // should get another notifier test.Next(_L("Leave 128K")); r=c.Adjust(free3-131072); // leave 128K - test(r==KErrNone); + test_KErrNone(r);; CheckNotifierCount(2,2); // shouldn't get another notifier test.Next(_L("Leave 640K")); r=c.Adjust(free3-655360); // leave 640K - test(r==KErrNone); + test_KErrNone(r); CheckNotifierCount(3,2); // should get another notifier test.Next(_L("Leave 1M")); r=c.Adjust(free3-1048576); // leave 1M - test(r==KErrNone); + test_KErrNone(r); CheckNotifierCount(3,2); // shouldn't get another notifier test.Next(_L("Ask for too much")); - r=c.Adjust(free3+4096); // try to get more than available - test(r==KErrNoMemory); + r=c.Adjust(totalRam); // try to get more than available + test_Equal(KErrNoMemory, r); TInt notifierCount = 3; if(MemModel==EMemModelTypeFlexible) @@ -897,7 +900,7 @@ CheckNotifierCount(notifierCount,3); // should get another notifier test.Next(_L("Leave 1M")); r=c.Adjust(free3-1048576); // leave 1M - test(r==KErrNone); + test_KErrNone(r); CheckNotifierCount(notifierCount,3); // shouldn't get another notifier c.Close(); diff -r 657f875b013e -r 73ea206103e6 kerneltest/e32test/timestamp/d_timestamp.cpp --- a/kerneltest/e32test/timestamp/d_timestamp.cpp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/e32test/timestamp/d_timestamp.cpp Wed Jun 23 19:44:53 2010 +0300 @@ -1,22 +1,18 @@ -/* -* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This material, including documentation and any related computer -* programs, is protected by copyright controlled by Nokia. All -* rights are reserved. Copying, including reproducing, storing -* adapting or translating, any or all of this material requires the -* prior written consent of Nokia. This material also contains -* confidential information which may not be disclosed to others -* without the prior written consent of Nokia. -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ +// Copyright (c) 2010 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: +// d_timestamp.cpp +// #include #include diff -r 657f875b013e -r 73ea206103e6 kerneltest/e32test/timestamp/d_timestamp.h --- a/kerneltest/e32test/timestamp/d_timestamp.h Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/e32test/timestamp/d_timestamp.h Wed Jun 23 19:44:53 2010 +0300 @@ -1,22 +1,18 @@ -/* -* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This material, including documentation and any related computer -* programs, is protected by copyright controlled by Nokia. All -* rights are reserved. Copying, including reproducing, storing -* adapting or translating, any or all of this material requires the -* prior written consent of Nokia. This material also contains -* confidential information which may not be disclosed to others -* without the prior written consent of Nokia. -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ +// Copyright (c) 2010 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: +// d_timestamp.h +// #ifndef __TIMESTAMPTEST_H__ diff -r 657f875b013e -r 73ea206103e6 kerneltest/e32test/timestamp/d_timestamp_dev.h --- a/kerneltest/e32test/timestamp/d_timestamp_dev.h Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/e32test/timestamp/d_timestamp_dev.h Wed Jun 23 19:44:53 2010 +0300 @@ -1,22 +1,18 @@ -/* -* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This material, including documentation and any related computer -* programs, is protected by copyright controlled by Nokia. All -* rights are reserved. Copying, including reproducing, storing -* adapting or translating, any or all of this material requires the -* prior written consent of Nokia. This material also contains -* confidential information which may not be disclosed to others -* without the prior written consent of Nokia. -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ +// Copyright (c) 2010 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: +// d_timestamp_dev.h +// #ifndef __D_TIMERSTAMP_DEV_H__ #define __D_TIMERSTAMP_DEV_H__ diff -r 657f875b013e -r 73ea206103e6 kerneltest/e32test/usb/t_usb_win/scripts/massstorage/bmwritelargefile.pl --- a/kerneltest/e32test/usb/t_usb_win/scripts/massstorage/bmwritelargefile.pl Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/e32test/usb/t_usb_win/scripts/massstorage/bmwritelargefile.pl Wed Jun 23 19:44:53 2010 +0300 @@ -287,8 +287,4 @@ free space for the file that is going to be created. The default size is 400 MB. -=head1 COPYRIGHT - -Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). All rights reserved. - =cut diff -r 657f875b013e -r 73ea206103e6 kerneltest/e32test/usb/t_usb_win/scripts/massstorage/bmwritemanyfiles.pl --- a/kerneltest/e32test/usb/t_usb_win/scripts/massstorage/bmwritemanyfiles.pl Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/e32test/usb/t_usb_win/scripts/massstorage/bmwritemanyfiles.pl Wed Jun 23 19:44:53 2010 +0300 @@ -300,8 +300,4 @@ free space for the file that is going to be created. The default size is 400 MB. -=head1 COPYRIGHT - -Copyright (c) 2006-2008 Symbian Software Ltd. All rights reserved. All rights reserved. - =cut diff -r 657f875b013e -r 73ea206103e6 kerneltest/e32test/usb/t_usb_win/scripts/massstorage/createfilesanddirs.pl --- a/kerneltest/e32test/usb/t_usb_win/scripts/massstorage/createfilesanddirs.pl Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/e32test/usb/t_usb_win/scripts/massstorage/createfilesanddirs.pl Wed Jun 23 19:44:53 2010 +0300 @@ -397,8 +397,4 @@ TestExpectedResults: Read data from files should match with written. -=head1 COPYRIGHT - -Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). All rights reserved. - =cut diff -r 657f875b013e -r 73ea206103e6 kerneltest/e32test/usb/t_usb_win/scripts/massstorage/createlargefile.pl --- a/kerneltest/e32test/usb/t_usb_win/scripts/massstorage/createlargefile.pl Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/e32test/usb/t_usb_win/scripts/massstorage/createlargefile.pl Wed Jun 23 19:44:53 2010 +0300 @@ -248,8 +248,4 @@ with written. Sum of file size and free space should be close to drive size. -=head1 COPYRIGHT - -Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). All rights reserved. - =cut diff -r 657f875b013e -r 73ea206103e6 kerneltest/e32utils/group/base_e32utils.mrp --- a/kerneltest/e32utils/group/base_e32utils.mrp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/e32utils/group/base_e32utils.mrp Wed Jun 23 19:44:53 2010 +0300 @@ -17,7 +17,6 @@ source \sf\os\kernelhwsrv\kerneltest\e32utils\trace source \sf\os\kernelhwsrv\kerneltest\e32utils\usbmsapp source \sf\os\kernelhwsrv\kerneltest\e32utils\sdpartition -source \sf\os\kernelhwsrv\kerneltest\e32utils\nandboot\coreldr\bootstrap_smrif.h #MattD: Reltools 2.67 don't understand 'cwtools' are the CW equivelent of 'tools' and try to do '-what cwtools udeb' instead of '-what cwtools deb'. #binary \sf\os\kernelhwsrv\kerneltest\e32utils\group cwtools diff -r 657f875b013e -r 73ea206103e6 kerneltest/e32utils/group/bld.inf --- a/kerneltest/e32utils/group/bld.inf Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/e32utils/group/bld.inf Wed Jun 23 19:44:53 2010 +0300 @@ -30,8 +30,6 @@ PRJ_EXPORTS -../nandboot/coreldr/bootstrap_smrif.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(bootstrap_smrif.h) - ../profiler/profiler.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(profiler.h) ../analyse/profiler.rtf /epoc32/engdoc/profiler/profiler.rtf diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/fileutils/inc/f32_test_utils.h --- a/kerneltest/f32test/fileutils/inc/f32_test_utils.h Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/fileutils/inc/f32_test_utils.h Wed Jun 23 19:44:53 2010 +0300 @@ -138,11 +138,14 @@ -TBool Is_Lffs(RFs &aFs, TInt aDrive); //-- returns ETrue if "lffs" FS is mounted on this drive -TBool Is_Win32(RFs &aFs, TInt aDrive); //-- returns ETrue if "win32" FS is mounted on this drive (i.e this is emulator's drive c:) -TBool Is_ExFat(RFs &aFs, TInt aDrive); //-- returns ETrue if "exFAT" FS is mounted on this drive -TBool Is_Automounter(RFs &aFs, TInt aDrive); //-- returns ETrue if "Automounter" FS is mounted on this drive +TBool Is_Lffs(RFs &aFs, TInt aDrive); //-- returns ETrue if "lffs" FS is mounted on this drive +TBool Is_Win32(RFs &aFs, TInt aDrive); //-- returns ETrue if "Win32" FS is mounted on this drive (i.e this is emulator's drive C:) +TBool Is_ExFat(RFs &aFs, TInt aDrive); //-- returns ETrue if "exFAT" FS is mounted on this drive +TBool Is_Automounter(RFs &aFs, TInt aDrive); //-- returns ETrue if "Automounter" FS is mounted on this drive +TBool Is_HVFS(RFs &aFs, TInt aDrive); //-- returns ETrue if "HVFS" is mounted on this drive (i.e PlatSim's drive C:) +TBool Is_SimulatedSystemDrive(RFs &aFs, TInt aDrive); //-- returns ETrue if "HVFS" or "Win32" FS is mounted on this drive + // (i.e drive C: of PlatSim or the emulator) TBool Is_Fat(RFs &aFs, TInt aDrive); //-- returns ETrue if "FAT" FS (FAT12/16/32) is mounted on this drive diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/fileutils/src/f32_test_utils.cpp --- a/kerneltest/f32test/fileutils/src/f32_test_utils.cpp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/fileutils/src/f32_test_utils.cpp Wed Jun 23 19:44:53 2010 +0300 @@ -248,6 +248,7 @@ _LIT(KFsName_Win32, "Win32"); _LIT(KFsName_ExFAT, "ExFat"); _LIT(KFsName_AutoMonuter, "automounter"); +_LIT(KFsName_HVFS, "HVFS"); /** @return ETrue if "Automounter" FS is mounted on this drive */ TBool F32_Test_Utils::Is_Automounter(RFs &aFs, TInt aDrive) @@ -273,7 +274,7 @@ } -/** @return ETrue if "Win32" FS is mounted on this drive (i.e this is emulator's drive c:) */ +/** @return ETrue if "Win32" FS is mounted on this drive (i.e this is emulator's drive C:) */ TBool F32_Test_Utils::Is_Win32(RFs &aFs, TInt aDrive) { ASSERT(aDrive >= EDriveA && aDrive <= EDriveZ); @@ -284,6 +285,29 @@ return (f.CompareF(KFsName_Win32) == 0 ); } +/** @return ETrue if "HVFS" is mounted on this drive (i.e PlatSim's drive C:) */ +TBool F32_Test_Utils::Is_HVFS(RFs &aFs, TInt aDrive) +{ + ASSERT(aDrive >= EDriveA && aDrive <= EDriveZ); + TFSName f; + TInt r = aFs.FileSystemName(f, aDrive); + __ASSERT_ALWAYS((r==KErrNone) && (f.Length()>0), User::Invariant()); + + return (f.CompareF(KFsName_HVFS) == 0); +} + +/** @return ETrue if "HVFS" or "Win32" FS is mounted on this drive + * (i.e drive C: of PlatSim or the emulator) */ +TBool F32_Test_Utils::Is_SimulatedSystemDrive(RFs &aFs, TInt aDrive) +{ + ASSERT(aDrive >= EDriveA && aDrive <= EDriveZ); + TFSName f; + TInt r = aFs.FileSystemName(f, aDrive); + __ASSERT_ALWAYS((r==KErrNone) && (f.Length()>0), User::Invariant()); + + return (f.CompareF(KFsName_HVFS) == 0 || f.CompareF(KFsName_Win32) == 0); +} + /** @return ETrue if the filesystem if FAT (fat12/16/32) */ TBool F32_Test_Utils::Is_Fat(RFs &aFs, TInt aDrive) { diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/b_file.mmp --- a/kerneltest/f32test/group/b_file.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/b_file.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -15,12 +15,13 @@ // // -TARGET b_file.exe +TARGET b_file.exe TARGETTYPE EXE SOURCEPATH ../server SOURCE b_file.cpp SOURCE t_main.cpp SOURCEPATH ../fileutils/src +SOURCE f32_test_utils.cpp SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib OS_LAYER_SYSTEMINCLUDE_SYMBIAN diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/b_mtst.mmp --- a/kerneltest/f32test/group/b_mtst.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/b_mtst.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -21,7 +21,8 @@ SOURCE b_mtst.cpp SOURCE t_main.cpp SOURCEPATH ../fileutils/src -SOURCE t_chlffs.cpp +SOURCE f32_test_utils.cpp +SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib OS_LAYER_SYSTEMINCLUDE_SYMBIAN USERINCLUDE ../server diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/b_open.mmp --- a/kerneltest/f32test/group/b_open.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/b_open.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -21,6 +21,7 @@ SOURCE b_open.cpp SOURCE t_main.cpp SOURCEPATH ../fileutils/src +SOURCE f32_test_utils.cpp SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib OS_LAYER_SYSTEMINCLUDE_SYMBIAN diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/b_osfil.mmp --- a/kerneltest/f32test/group/b_osfil.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/b_osfil.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -21,7 +21,8 @@ SOURCE b_osfil.cpp SOURCE t_main.cpp SOURCEPATH ../fileutils/src -SOURCE t_chlffs.cpp +SOURCE f32_test_utils.cpp +SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib OS_LAYER_SYSTEMINCLUDE_SYMBIAN USERINCLUDE ../server diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/b_rand.mmp --- a/kerneltest/f32test/group/b_rand.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/b_rand.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -21,7 +21,8 @@ SOURCE b_rand.cpp SOURCE t_main.cpp SOURCEPATH ../fileutils/src -SOURCE t_chlffs.cpp +SOURCE f32_test_utils.cpp +SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib OS_LAYER_SYSTEMINCLUDE_SYMBIAN USERINCLUDE ../server diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/b_rep.mmp --- a/kerneltest/f32test/group/b_rep.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/b_rep.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -21,7 +21,8 @@ SOURCE b_rep.cpp SOURCE t_main.cpp SOURCEPATH ../fileutils/src -SOURCE t_chlffs.cpp +SOURCE f32_test_utils.cpp +SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib OS_LAYER_SYSTEMINCLUDE_SYMBIAN USERINCLUDE ../server diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/clean_prepdc.mmp --- a/kerneltest/f32test/group/clean_prepdc.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/clean_prepdc.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -21,7 +21,8 @@ SOURCE clean_prepdc.cpp SOURCE t_main.cpp SOURCEPATH ../fileutils/src -SOURCE t_chlffs.cpp +SOURCE f32_test_utils.cpp +SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib OS_LAYER_SYSTEMINCLUDE_SYMBIAN USERINCLUDE ../server diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_alert.mmp --- a/kerneltest/f32test/group/t_alert.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_alert.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -21,6 +21,7 @@ SOURCE t_alert.cpp SOURCE t_main.cpp SOURCEPATH ../fileutils/src +SOURCE f32_test_utils.cpp SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib OS_LAYER_SYSTEMINCLUDE_SYMBIAN diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_appins.mmp --- a/kerneltest/f32test/group/t_appins.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_appins.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -20,7 +20,8 @@ SOURCEPATH ../server SOURCE t_appins.cpp t_main.cpp SOURCEPATH ../fileutils/src -SOURCE t_chlffs.cpp +SOURCE f32_test_utils.cpp +SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib OS_LAYER_SYSTEMINCLUDE_SYMBIAN USERINCLUDE ../server diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_bigfile.mmp --- a/kerneltest/f32test/group/t_bigfile.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_bigfile.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -21,6 +21,7 @@ SOURCE T_BIGFILE.CPP SOURCE T_MAIN.CPP SOURCEPATH ../fileutils/src +SOURCE f32_test_utils.cpp SOURCE t_chlffs.cpp LIBRARY EUSER.LIB EFSRV.LIB HAL.LIB OS_LAYER_SYSTEMINCLUDE_SYMBIAN diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_blockmap.mmp --- a/kerneltest/f32test/group/t_blockmap.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_blockmap.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -21,6 +21,7 @@ SOURCE t_blockmap.cpp SOURCE t_main.cpp SOURCEPATH ../fileutils/src +SOURCE f32_test_utils.cpp SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib OS_LAYER_SYSTEMINCLUDE_SYMBIAN diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_cfileman.mmp --- a/kerneltest/f32test/group/t_cfileman.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_cfileman.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -24,6 +24,7 @@ SOURCEPATH ../server SOURCE t_main.cpp SOURCEPATH ../fileutils/src +SOURCE f32_test_utils.cpp SOURCE t_chlffs.cpp USERINCLUDE ../server diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_chkuid.mmp --- a/kerneltest/f32test/group/t_chkuid.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_chkuid.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -21,6 +21,7 @@ SOURCE t_chkuid.cpp SOURCE t_main.cpp SOURCEPATH ../fileutils/src +SOURCE f32_test_utils.cpp SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_clobbr.mmp --- a/kerneltest/f32test/group/t_clobbr.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_clobbr.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -22,6 +22,7 @@ SOURCEPATH ../server SOURCE t_main.cpp SOURCEPATH ../fileutils/src +SOURCE f32_test_utils.cpp SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_dcallcaps.mmp --- a/kerneltest/f32test/group/t_dcallcaps.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_dcallcaps.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -21,6 +21,7 @@ SOURCE t_dcallcaps.cpp SOURCE t_main.cpp SOURCEPATH ../fileutils/src +SOURCE f32_test_utils.cpp SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_dcallfiles.mmp --- a/kerneltest/f32test/group/t_dcallfiles.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_dcallfiles.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -21,6 +21,7 @@ SOURCE t_dcallfiles.cpp SOURCE t_main.cpp SOURCEPATH ../fileutils/src +SOURCE f32_test_utils.cpp SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_dcdiskadmin.mmp --- a/kerneltest/f32test/group/t_dcdiskadmin.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_dcdiskadmin.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -21,7 +21,8 @@ SOURCE t_dcdiskadmin.cpp SOURCE t_main.cpp SOURCEPATH ../fileutils/src -SOURCE t_chlffs.cpp +SOURCE f32_test_utils.cpp +SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib OS_LAYER_SYSTEMINCLUDE_SYMBIAN diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_dcdiskadminallfiles.mmp --- a/kerneltest/f32test/group/t_dcdiskadminallfiles.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_dcdiskadminallfiles.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -21,6 +21,7 @@ SOURCE t_dcdiskadminallfiles.cpp SOURCE t_main.cpp SOURCEPATH ../fileutils/src +SOURCE f32_test_utils.cpp SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_dcnone.mmp --- a/kerneltest/f32test/group/t_dcnone.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_dcnone.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -21,7 +21,8 @@ SOURCE t_dcnone.cpp SOURCE t_main.cpp SOURCEPATH ../fileutils/src -SOURCE t_chlffs.cpp +SOURCE f32_test_utils.cpp +SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib OS_LAYER_SYSTEMINCLUDE_SYMBIAN diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_dctcb.mmp --- a/kerneltest/f32test/group/t_dctcb.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_dctcb.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -21,7 +21,8 @@ SOURCE t_dctcb.cpp SOURCE t_main.cpp SOURCEPATH ../fileutils/src -SOURCE t_chlffs.cpp +SOURCE f32_test_utils.cpp +SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib OS_LAYER_SYSTEMINCLUDE_SYMBIAN diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_dctcballfiles.mmp --- a/kerneltest/f32test/group/t_dctcballfiles.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_dctcballfiles.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -21,7 +21,8 @@ SOURCE t_dctcballfiles.cpp SOURCE t_main.cpp SOURCEPATH ../fileutils/src -SOURCE t_chlffs.cpp +SOURCE f32_test_utils.cpp +SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib OS_LAYER_SYSTEMINCLUDE_SYMBIAN diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_dctcbdiskadmin.mmp --- a/kerneltest/f32test/group/t_dctcbdiskadmin.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_dctcbdiskadmin.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -21,7 +21,8 @@ SOURCE t_dctcbdiskadmin.cpp SOURCE t_main.cpp SOURCEPATH ../fileutils/src -SOURCE t_chlffs.cpp +SOURCE f32_test_utils.cpp +SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib OS_LAYER_SYSTEMINCLUDE_SYMBIAN diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_dlocl.mmp --- a/kerneltest/f32test/group/t_dlocl.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_dlocl.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -20,7 +20,8 @@ SOURCEPATH ../server SOURCE t_dlocl.cpp t_main.cpp SOURCEPATH ../fileutils/src -SOURCE t_chlffs.cpp +SOURCE f32_test_utils.cpp +SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib ektran.lib hal.lib OS_LAYER_SYSTEMINCLUDE_SYMBIAN diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_dspace.mmp --- a/kerneltest/f32test/group/t_dspace.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_dspace.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -21,7 +21,8 @@ SOURCE t_dspace.cpp SOURCE t_main.cpp SOURCEPATH ../fileutils/src -SOURCE t_chlffs.cpp +SOURCE f32_test_utils.cpp +SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib OS_LAYER_SYSTEMINCLUDE_SYMBIAN diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_fman.mmp --- a/kerneltest/f32test/group/t_fman.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_fman.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -21,6 +21,7 @@ source t_fman.cpp source t_main.cpp sourcepath ../fileutils/src +source f32_test_utils.cpp source t_chlffs.cpp library euser.lib efsrv.lib hal.lib diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_fnames.mmp --- a/kerneltest/f32test/group/t_fnames.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_fnames.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -21,6 +21,7 @@ SOURCE t_fnames.cpp SOURCE t_main.cpp SOURCEPATH ../fileutils/src +SOURCE f32_test_utils.cpp SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib OS_LAYER_SYSTEMINCLUDE_SYMBIAN diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_fragmentdp.mmp --- a/kerneltest/f32test/group/t_fragmentdp.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_fragmentdp.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -22,6 +22,7 @@ SOURCEPATH ../server SOURCE t_main.cpp SOURCEPATH ../fileutils/src +SOURCE f32_test_utils.cpp SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib OS_LAYER_SYSTEMINCLUDE_SYMBIAN diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_fsched.mmp --- a/kerneltest/f32test/group/t_fsched.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_fsched.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -20,9 +20,12 @@ SOURCEPATH ../server SOURCE t_fsched.cpp +SOURCEPATH ../fileutils/src +SOURCE f32_test_utils.cpp LIBRARY euser.lib efsrv.lib hal.lib OS_LAYER_SYSTEMINCLUDE_SYMBIAN +USERINCLUDE ../fileutils/inc EPOCSTACKSIZE 0x10000 EPOCHEAPSIZE 0x1000 0x02000000 diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_fsrvbm.mmp --- a/kerneltest/f32test/group/t_fsrvbm.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_fsrvbm.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -22,6 +22,7 @@ SOURCEPATH ../server SOURCE t_main.cpp SOURCEPATH ../fileutils/src +SOURCE f32_test_utils.cpp SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_fsy2k.mmp --- a/kerneltest/f32test/group/t_fsy2k.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_fsy2k.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -21,6 +21,7 @@ SOURCE t_fsy2k.cpp SOURCE t_main.cpp SOURCEPATH ../fileutils/src +SOURCE f32_test_utils.cpp SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_fsysbm.mmp --- a/kerneltest/f32test/group/t_fsysbm.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_fsysbm.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -22,6 +22,7 @@ SOURCEPATH ../server SOURCE t_main.cpp SOURCEPATH ../fileutils/src +SOURCE f32_test_utils.cpp SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_gdir.mmp --- a/kerneltest/f32test/group/t_gdir.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_gdir.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -21,6 +21,7 @@ SOURCE t_gdir.cpp SOURCE t_main.cpp SOURCEPATH ../fileutils/src +SOURCE f32_test_utils.cpp SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_gen.mmp --- a/kerneltest/f32test/group/t_gen.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_gen.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -20,6 +20,7 @@ SOURCEPATH ../server SOURCE t_main.cpp SOURCEPATH ../fileutils/src +SOURCE f32_test_utils.cpp SOURCE t_chlffs.cpp SOURCEPATH ../math SOURCE t_gen.cpp diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_gen32.mmp --- a/kerneltest/f32test/group/t_gen32.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_gen32.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -20,6 +20,7 @@ SOURCEPATH ../server SOURCE t_main.cpp SOURCEPATH ../fileutils/src +SOURCE f32_test_utils.cpp SOURCE t_chlffs.cpp SOURCEPATH ../math SOURCE t_gen32.cpp diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_handshare.mmp --- a/kerneltest/f32test/group/t_handshare.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_handshare.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -22,6 +22,7 @@ SOURCEPATH ../server SOURCE t_main.cpp SOURCEPATH ../fileutils/src +SOURCE f32_test_utils.cpp SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_localtime.mmp --- a/kerneltest/f32test/group/t_localtime.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_localtime.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -20,6 +20,7 @@ SOURCEPATH ../server SOURCE t_localtime.cpp t_main.cpp SOURCEPATH ../fileutils/src +SOURCE f32_test_utils.cpp SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_locate.mmp --- a/kerneltest/f32test/group/t_locate.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_locate.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -21,6 +21,7 @@ SOURCE t_locate.cpp SOURCE t_main.cpp SOURCEPATH ../fileutils/src +SOURCE f32_test_utils.cpp SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_lock.mmp --- a/kerneltest/f32test/group/t_lock.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_lock.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -21,6 +21,7 @@ SOURCE t_lock.cpp SOURCE t_main.cpp SOURCEPATH ../fileutils/src +SOURCE f32_test_utils.cpp SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_misc.mmp --- a/kerneltest/f32test/group/t_misc.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_misc.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -21,6 +21,7 @@ SOURCE t_misc.cpp SOURCE t_main.cpp SOURCEPATH ../fileutils/src +SOURCE f32_test_utils.cpp SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_nmbs.mmp --- a/kerneltest/f32test/group/t_nmbs.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_nmbs.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -21,6 +21,7 @@ SOURCE t_nmbs.cpp SOURCE t_main.cpp SOURCEPATH ../fileutils/src +SOURCE f32_test_utils.cpp SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_notifier.mmp --- a/kerneltest/f32test/group/t_notifier.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_notifier.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -20,8 +20,9 @@ sourcepath ../server source t_notifier.cpp source t_main.cpp -sourcepath ../fileutils/src -source t_chlffs.cpp +sourcepath ../fileutils/src +source f32_test_utils.cpp +source t_chlffs.cpp library euser.lib efsrv.lib hal.lib OS_LAYER_SYSTEMINCLUDE_SYMBIAN diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_notify.mmp --- a/kerneltest/f32test/group/t_notify.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_notify.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -21,6 +21,7 @@ source t_notify.cpp source t_main.cpp SOURCEPATH ../fileutils/src +source f32_test_utils.cpp source t_chlffs.cpp library euser.lib efsrv.lib hal.lib diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_notify_mfs.mmp --- a/kerneltest/f32test/group/t_notify_mfs.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_notify_mfs.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -22,8 +22,9 @@ source t_notify_perf_impl.cpp t_notify_perf_util.cpp sourcepath ../server source t_notify_mfs.cpp t_main.cpp -sourcepath ../fileutils/src -source t_chlffs.cpp +sourcepath ../fileutils/src +source f32_test_utils.cpp +source t_chlffs.cpp library euser.lib efsrv.lib hal.lib diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_notify_perf.mmp --- a/kerneltest/f32test/group/t_notify_perf.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_notify_perf.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -23,7 +23,8 @@ sourcepath ../server source t_main.cpp sourcepath ../fileutils/src -source t_chlffs.cpp +source f32_test_utils.cpp +source t_chlffs.cpp library euser.lib efsrv.lib hal.lib diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_notifydismount.mmp --- a/kerneltest/f32test/group/t_notifydismount.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_notifydismount.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -20,6 +20,7 @@ SOURCEPATH ../server SOURCE t_notifydismount.cpp t_main.cpp SOURCEPATH ../fileutils/src +SOURCE f32_test_utils.cpp SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_oom.mmp --- a/kerneltest/f32test/group/t_oom.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_oom.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -22,6 +22,7 @@ SOURCEPATH ../server SOURCE t_main.cpp SOURCEPATH ../fileutils/src +SOURCE f32_test_utils.cpp SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_open.mmp --- a/kerneltest/f32test/group/t_open.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_open.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -21,6 +21,7 @@ SOURCE t_open.cpp SOURCE t_main.cpp SOURCEPATH ../fileutils/src +SOURCE f32_test_utils.cpp SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_parse.mmp --- a/kerneltest/f32test/group/t_parse.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_parse.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -20,6 +20,7 @@ SOURCEPATH ../server SOURCE t_parse.cpp t_main.cpp SOURCEPATH ../fileutils/src +SOURCE f32_test_utils.cpp SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_proc.mmp --- a/kerneltest/f32test/group/t_proc.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_proc.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -20,8 +20,9 @@ SOURCEPATH ../server SOURCE t_main.cpp SOURCEPATH ../fileutils/src +SOURCE f32_test_utils.cpp SOURCE t_chlffs.cpp -SOURCEPATH ../manager +SOURCEPATH ../manager SOURCE t_proc.cpp LIBRARY euser.lib efsrv.lib hal.lib diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_ramstr.mmp --- a/kerneltest/f32test/group/t_ramstr.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_ramstr.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -22,6 +22,7 @@ SOURCEPATH ../server SOURCE t_main.cpp SOURCEPATH ../fileutils/src +SOURCE f32_test_utils.cpp SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_rand.mmp --- a/kerneltest/f32test/group/t_rand.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_rand.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -21,6 +21,7 @@ SOURCE t_rand.cpp SOURCE t_main.cpp SOURCEPATH ../fileutils/src +SOURCE f32_test_utils.cpp SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_rcount.mmp --- a/kerneltest/f32test/group/t_rcount.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_rcount.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -21,6 +21,7 @@ SOURCE t_rcount.cpp SOURCE t_main.cpp SOURCEPATH ../fileutils/src +SOURCE f32_test_utils.cpp SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_rdsect.mmp --- a/kerneltest/f32test/group/t_rdsect.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_rdsect.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -20,6 +20,7 @@ SOURCEPATH ../server SOURCE t_rdsect.cpp t_main.cpp SOURCEPATH ../fileutils/src +SOURCE f32_test_utils.cpp SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_resize.mmp --- a/kerneltest/f32test/group/t_resize.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_resize.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -21,6 +21,7 @@ SOURCE t_resize.cpp SOURCE t_main.cpp SOURCEPATH ../fileutils/src +SOURCE f32_test_utils.cpp SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_romg.mmp --- a/kerneltest/f32test/group/t_romg.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_romg.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -22,6 +22,7 @@ SOURCEPATH ../SERVER SOURCE T_MAIN.CPP SOURCEPATH ../fileutils/src +SOURCE f32_test_utils.cpp SOURCE T_CHLFFS.CPP LIBRARY EUSER.LIB EFSRV.LIB HAL.LIB diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_scan.mmp --- a/kerneltest/f32test/group/t_scan.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_scan.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -21,6 +21,7 @@ SOURCE t_scan.cpp SOURCE t_main.cpp SOURCEPATH ../fileutils/src +SOURCE f32_test_utils.cpp SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib OS_LAYER_SYSTEMINCLUDE_SYMBIAN diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_sess.mmp --- a/kerneltest/f32test/group/t_sess.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_sess.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -23,6 +23,7 @@ SOURCEPATH ../server SOURCE t_main.cpp SOURCEPATH ../fileutils/src +SOURCE f32_test_utils.cpp SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_soak1.mmp --- a/kerneltest/f32test/group/t_soak1.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_soak1.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -22,6 +22,7 @@ SOURCEPATH ../server SOURCE t_main.cpp SOURCEPATH ../fileutils/src +SOURCE f32_test_utils.cpp SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_vfat.mmp --- a/kerneltest/f32test/group/t_vfat.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_vfat.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -21,6 +21,7 @@ SOURCE t_vfat.cpp SOURCE t_main.cpp SOURCEPATH ../fileutils/src +SOURCE f32_test_utils.cpp SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib OS_LAYER_SYSTEMINCLUDE_SYMBIAN diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_virus.mmp --- a/kerneltest/f32test/group/t_virus.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_virus.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -22,6 +22,7 @@ SOURCEPATH ../server SOURCE t_main.cpp SOURCEPATH ../fileutils/src +SOURCE f32_test_utils.cpp SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_whet.mmp --- a/kerneltest/f32test/group/t_whet.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_whet.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -22,6 +22,7 @@ SOURCEPATH ../server SOURCE t_main.cpp SOURCEPATH ../fileutils/src +SOURCE f32_test_utils.cpp SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/t_whetvfp.mmp --- a/kerneltest/f32test/group/t_whetvfp.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/t_whetvfp.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -22,6 +22,7 @@ SOURCEPATH ../server SOURCE t_main.cpp SOURCEPATH ../fileutils/src +SOURCE f32_test_utils.cpp SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/group/wintest.bat --- a/kerneltest/f32test/group/wintest.bat Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/group/wintest.bat Wed Jun 23 19:44:53 2010 +0300 @@ -28,6 +28,9 @@ call :GetParentDirPath F32TEST_PATH echo F32TEST_PATH = %F32TEST_PATH% set EPOC32_DIR=%EPOCROOT%EPOC32\ +set F32TEST_BUILD_PATH=%EPOC32_DIR%BUILD%F32TEST_PATH%GROUP\ +if exist %EPOC32_DIR%data\z\test\f32test set F32TEST_BUILD_PATH=%EPOC32_DIR%data\z\test\f32test\ +echo F32TEST_BUILD_PATH = %F32TEST_BUILD_PATH% echo EPOC32_DIR = %EPOC32_DIR% set EMUL_MEDIA_PATH=%EPOC32_DIR%DATA\MEDIA\ echo EMUL_MEDIA_PATH = %EMUL_MEDIA_PATH% @@ -100,7 +103,7 @@ copy %F32TEST_PATH%\SERVER\T_FILE.CPP %EMUL_Z%\TEST\T_FILE.CPP copy %F32TEST_PATH%\SERVER\T_FSRV.CPP %EMUL_Z%\TEST\T_FSRV.CPP copy %F32TEST_PATH%\SERVER\T_RDSECT.TXT %EMUL_Z%\TEST\T_RDSECT.TXT -copy %EPOC32_DIR%BUILD%F32TEST_PATH%\GROUP\%1.AUTO.BAT %EMUL_Z%\TEST\%1.AUTO.BAT +copy %F32TEST_BUILD_PATH%\%1.AUTO.BAT %EMUL_Z%\TEST\%1.AUTO.BAT copy %REL_DIR%\T_CHKUID.EXE %EMUL_Z%\TEST\T_CHKUID.EXE REM Use both Sys and System directories until the switch has been made diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/loader/dlltree.pl --- a/kerneltest/f32test/loader/dlltree.pl Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/loader/dlltree.pl Wed Jun 23 19:44:53 2010 +0300 @@ -57,6 +57,16 @@ my $copy_end=$year+1900; my $argc=scalar(@ARGV); + +# check whether its raptor specific +my $is_raptor = 0; +if ($ARGV[$argc-1] eq "raptor") # change "raptor" to something you want. +{ + pop(@ARGV); + $is_raptor = 1; + $argc--; +} + ($argc==1 or $argc==2 or $argc==3) or die "Usage: perl dlltree.pl [-allowbad]\n"; my $infile=$ARGV[0]; open IN, $infile or die "Cannot open input file $infile\n"; @@ -795,13 +805,20 @@ open OUT, ">$dlltreename" or die "Could not open $dlltreename for output\n"; print OUT @dlltree; close OUT; -my $testbatch = "$ENV{EPOCROOT}epoc32\\build"; -$destpath =~ s/\//\\/go; -$testbatch.="\\" unless ($destpath =~ /^\\/); -$testbatch.=$destpath; -$testbatch.="##MAIN##.auto.bat"; -if (!$allowbad) { - push @iby, "data=$testbatch\t\ttest\\loader.auto.bat\n"; + +my $testbatch =''; +if($is_raptor) { + $testbatch="$ENV{EPOCROOT}\\epoc32\\data\\z\\test\\gen\\##MAIN##.auto.bat"; +} +else { + $testbatch = "$ENV{EPOCROOT}epoc32\\build"; + $destpath =~ s/\//\\/go; + $testbatch.="\\" unless ($destpath =~ /^\\/); + $testbatch.=$destpath; + $testbatch.="##MAIN##.auto.bat"; + } +if (!$allowbad){ + push @iby, "data=$testbatch\t\ttest\\loader.auto.bat\n"; } open OUT, ">$ibyname" or die "Could not open $ibyname for output\n"; print OUT @iby; diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/loader/ldrtst.flm --- a/kerneltest/f32test/loader/ldrtst.flm Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/loader/ldrtst.flm Wed Jun 23 19:44:53 2010 +0300 @@ -20,7 +20,7 @@ cp -u $$(filter-out %generated,$$^) $$@ $(TO_BLDINF)/$(GDIR)/generated: $(TO_BLDINF)/dlltree.pl $(TO_BLDINF)/dlltree.txt - perl $(TO_BLDINF)/dlltree.pl $(TO_BLDINF)/dlltree.txt $(TO_BLDINF)/$(GDIR) + perl $(TO_BLDINF)/dlltree.pl $(TO_BLDINF)/dlltree.txt $(TO_BLDINF)/$(GDIR) raptor touch $$@ endif diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/locl/CodepageUtils/src/t_cputils_cp932.cpp --- a/kerneltest/f32test/locl/CodepageUtils/src/t_cputils_cp932.cpp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/locl/CodepageUtils/src/t_cputils_cp932.cpp Wed Jun 23 19:44:53 2010 +0300 @@ -1,3 +1,16 @@ +// Copyright (c) 2010 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: // // Auto-generated by the FatConversiontable tool - Do not edit!!! // diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/locl/t_filematch.cpp --- a/kerneltest/f32test/locl/t_filematch.cpp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/locl/t_filematch.cpp Wed Jun 23 19:44:53 2010 +0300 @@ -114,7 +114,8 @@ r = dir.Open(TheFs, name, KEntryAttNormal); test_KErrNone(r); TEntry entry; - test(dir.Read(entry) == KErrNone); + r = dir.Read(entry); + test_KErrNone(r); dir.Close(); } @@ -128,7 +129,8 @@ r = dir.Open(TheFs, name, KEntryAttNormal); test_KErrNone(r); TEntry entry; - test(dir.Read(entry) == KErrEof); + r = dir.Read(entry); + test_Equal(KErrEof, r); dir.Close(); } @@ -184,11 +186,11 @@ F32_Test_Utils::SetConsole(test.Console()); TInt nRes=TheFs.CharToDrive(gDriveToTest, gDriveNum); - test(nRes==KErrNone); + test_KErrNone(nRes); PrintDrvInfo(TheFs, gDriveNum); - if(Is_Win32(TheFs, gDriveNum) || Is_Fat(TheFs, gDriveNum) || Is_Lffs(TheFs, gDriveNum)) + if(Is_SimulatedSystemDrive(TheFs, gDriveNum) || Is_Fat(TheFs, gDriveNum) || Is_Lffs(TheFs, gDriveNum)) { TestFilenameMatches(); } diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/plugins/version_2/crypto_encryption/group/t_encplugin.mmp --- a/kerneltest/f32test/plugins/version_2/crypto_encryption/group/t_encplugin.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/plugins/version_2/crypto_encryption/group/t_encplugin.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -22,6 +22,7 @@ SOURCEPATH ../../../../server SOURCE t_main.cpp SOURCEPATH ../../../../fileutils/src +SOURCE f32_test_utils.cpp SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/plugins/version_2/file64bit/group/t_file64bit_plugin.mmp --- a/kerneltest/f32test/plugins/version_2/file64bit/group/t_file64bit_plugin.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/plugins/version_2/file64bit/group/t_file64bit_plugin.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -26,6 +26,7 @@ SOURCEPATH ../../../../server SOURCE t_main.cpp SOURCEPATH ../../../../fileutils/src +SOURCE f32_test_utils.cpp SOURCE t_chlffs.cpp LIBRARY euser.lib efsrv.lib hal.lib diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/plugins/version_2/group/t_plugin_v2.mmp --- a/kerneltest/f32test/plugins/version_2/group/t_plugin_v2.mmp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/plugins/version_2/group/t_plugin_v2.mmp Wed Jun 23 19:44:53 2010 +0300 @@ -27,6 +27,7 @@ SOURCEPATH ../../../server SOURCE t_main.cpp SOURCEPATH ../../../fileutils/src +SOURCE f32_test_utils.cpp SOURCE t_chlffs.cpp USERINCLUDE ../../../server diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/plugins/version_2beta/t_plugin_v2beta.cpp --- a/kerneltest/f32test/plugins/version_2beta/t_plugin_v2beta.cpp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/plugins/version_2beta/t_plugin_v2beta.cpp Wed Jun 23 19:44:53 2010 +0300 @@ -172,7 +172,7 @@ } else - if ((gFileSystemExtensionLoaded || name.CompareF(_L("Win32"))==0)&& r == KErrNotSupported) + if ((gFileSystemExtensionLoaded || F32_Test_Utils::Is_Win32(TheFs,driveNum)) && r == KErrNotSupported) { test.Printf(_L("File system extension does not support local buffers\n")); file.Close(); @@ -449,7 +449,7 @@ // run T_FILE with trace plugin installed #if defined(__WINS__) // only in WINS to save time -TestLoadingOfTracePlugin(); + TestLoadingOfTracePlugin(); RProcess p; @@ -464,11 +464,11 @@ p.Logon(status); p.Resume(); User::WaitForRequest(status); -TestUnloadingOfTracePlugin(); + TestUnloadingOfTracePlugin(); #endif // __WINS__ // Cannot format drive C: so skip this test on that drive - if (!F32_Test_Utils::Is_Win32(TheFs, EDriveC)) + if (!F32_Test_Utils::Is_SimulatedSystemDrive(TheFs, EDriveC)) { TestLoadingOfFormatPlugin(); TestFormatDriveIntercept(); diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/server/b_gen.cpp --- a/kerneltest/f32test/server/b_gen.cpp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/server/b_gen.cpp Wed Jun 23 19:44:53 2010 +0300 @@ -693,12 +693,12 @@ PrintDrvInfo(TheFs, gDriveNum); - //-- quick format the drive, if it isn't the emulator's C: - if(!Is_Win32(TheFs, gDriveNum)) - { + //-- quick format the drive, if it isn't drive C: of the emulator or PlatSim + if(!Is_SimulatedSystemDrive(TheFs, gDriveNum)) + { nRes = FormatDrive(TheFs, gDriveNum, ETrue); test_KErrNone(nRes); - } + } //----------------------------------- TInt c; diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/server/b_open.cpp --- a/kerneltest/f32test/server/b_open.cpp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/server/b_open.cpp Wed Jun 23 19:44:53 2010 +0300 @@ -23,6 +23,9 @@ #include #include "t_server.h" #include "t_chlffs.h" +#include "f32_test_utils.h" + +using namespace F32_Test_Utils; #ifdef __WINS__ #define WIN32_LEAN_AND_MEAN @@ -344,15 +347,15 @@ // Call tests that may leave // { + if (Is_SimulatedSystemDrive(TheFs, CurrentDrive())) + { + // These tests try to create a huge file to fill up the drive. + // This fails on WINS with drives with > 1/2G free because + // RFile::SetSize() (among other things) only takes a TInt. + test.Printf(_L("Skipping B_OPEN on PlatSim/Emulator drive %C:\n"), gSessionPath[0]); + return; + } -#ifdef __WINS__ -// These tests try to create a huge file to fill up the drive. -// This fails on WINS with drives with > 1/2G free because -// RFile::SetSize() (among other things) only takes a TInt. -// - if (gSessionPath.Left(1).CompareF(_L("C")) == 0) - return; -#endif CreateTestDirectory(_L("\\B_OPEN\\")); InitTest(); testOpenFiles(); diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/server/t_ext1.cpp --- a/kerneltest/f32test/server/t_ext1.cpp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/server/t_ext1.cpp Wed Jun 23 19:44:53 2010 +0300 @@ -60,10 +60,10 @@ test_KErrNone(r); test.Printf(_L("fsName=%S\n"),&fsName); -#if defined(__WINS__) - if(drive==EDriveC) + if (Is_SimulatedSystemDrive(TheFs, drive)) { - // check that the extension cannot be mounted since not supported by the file system + // check that the extension cannot be mounted since it is not supported by the file system + test.Printf(_L("Test extension cannot be mounted")); r=TheFs.AddExtension(KExtensionLog); test_KErrNone(r); r=TheFs.MountExtension(KExtensionLogName,drive); @@ -72,7 +72,6 @@ test_KErrNone(r); return; } -#endif test.Next(_L("RFs::AddExtension()")); r=TheFs.AddExtension(KExtensionLog); @@ -279,10 +278,11 @@ TInt err=RFs::CharToDrive(gDriveToTest,drive); test_KErrNone(err); -#if defined(__WINS__) - if(drive==EDriveC) + if(Is_SimulatedSystemDrive(TheFs, drive)) + { + test.Printf(_L("Skipping TestPrimaryExtensions on PlatSim/Emulator drive %C:\n"), gSessionPath[0]); return; -#endif + } TPckgBuf drvSyncBuf; err = TheFs.QueryVolumeInfoExt(drive, EIsDriveSync, drvSyncBuf); @@ -456,7 +456,7 @@ test_KErrNone(err); if(!extensionsSupported) { - test.Printf(_L("Drive %d does not support file sys extensions. Skipping test."), drive); + test.Printf(_L("Drive %C: does not support file sys extensions. Skipping T_EXT1."), gSessionPath[0]); test.End(); test.Close(); return; @@ -475,6 +475,7 @@ TheFs.Drive(driveInfo,drive); if (driveInfo.iType == EMediaNANDFlash) { + test.Printf(_L("Skipping T_EXT1 as drive %C: is NAND\n"), gSessionPath[0]); return; } #endif diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/server/t_falsespace.cpp --- a/kerneltest/f32test/server/t_falsespace.cpp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/server/t_falsespace.cpp Wed Jun 23 19:44:53 2010 +0300 @@ -1178,11 +1178,9 @@ r = TheFs.Drive(drv, gTestDrive); test_KErrNone(r); - //-- print drive information PrintDrvInfo(TheFs, gTestDrive); - // do not run the remainder of this test on RAM drive if (drv.iType == EMediaRam) { @@ -1191,9 +1189,9 @@ return; } - if (Is_Win32(TheFs, gTestDrive)) + if (Is_SimulatedSystemDrive(TheFs, gTestDrive)) { - test.Printf(_L("Skipping on emulator %C: drive\n"), gSessionPath[0]); + test.Printf(_L("Skipping T_FALSESPACE on PlatSim/Emulator drive %C:\n"), gSessionPath[0]); return; } @@ -1201,12 +1199,12 @@ Test1(); // General test for new APIs Test2(); // Test to ensure drive and session reserve limits are not exceeded Test3(); - Test4(); // test filling the drive and that each checked API fails + Test4(); // Test filling the drive and that each checked API fails Test5(); Test6(); Test7(); TestForDEF142554(); - Test2(); // run this test to check reserves are being cleared correctly + Test2(); // Run this test to check reserves are being cleared correctly TestFAT4G_Boundary(); diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/server/t_file.cpp --- a/kerneltest/f32test/server/t_file.cpp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/server/t_file.cpp Wed Jun 23 19:44:53 2010 +0300 @@ -1175,12 +1175,8 @@ err = TheFs.GetShortName(KOrigFileName, shortName); test_KErrNone(err); - // Validate the generated shorname against the original filename. - if (Is_Win32(TheFs, gDriveNum)) - { - test(shortName==_L("2222~1.JAR")); - } - else if(!IsTestingLFFS()) + // Validate the generated shortname against the original filename. + if(!IsTestingLFFS()) { // LFFS short names not the same as VFAT ones test(shortName==_L("2222~1.JAR")); @@ -1777,11 +1773,11 @@ // Test max length filenames can be created/deleted // { - -#if defined(__WINS__) - if (gSessionPath[0]=='C') + if(Is_SimulatedSystemDrive(TheFs, gDriveNum)) + { + test.Printf(_L("Skipping TestMaxLengthFilenames() on PlatSim/Emulator drive %C:\n"), gSessionPath[0]); return; -#endif + } test.Next(_L("Test max length filenames")); TFileName bigName; @@ -3040,7 +3036,7 @@ gShortFileNamesSupported = ETrue; if(Is_Win32(TheFs, gDriveNum)) - {//-- find out if this is NTFS and if it supports short names (this feature can be switched OFF) + {//-- find out if this is NTFS and if it supports short names (this feature can be switched OFF) _LIT(KLongFN, "\\this is a long file name"); nRes = CreateEmptyFile(TheFs, KLongFN, 10); @@ -3054,12 +3050,12 @@ test_KErrNone(nRes); DeleteTestDirectory(); - } + } else - { + { nRes = FormatDrive(TheFs, gDriveNum, ETrue); test_KErrNone(nRes); - } + } CreateTestDirectory(_L("\\F32-TST\\TFILE\\")); diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/server/t_file64bit.cpp --- a/kerneltest/f32test/server/t_file64bit.cpp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/server/t_file64bit.cpp Wed Jun 23 19:44:53 2010 +0300 @@ -5961,9 +5961,11 @@ { KFileSizeMaxLargerThan4GBMinusOne = EFalse; //-- FAT doesn't support >= 4G files } - else if(Is_Win32(TheFs, aDrive)) - {//-- this is the emulator's windows drive. The maximal file size depends on the Windows FS used for this drive. - //-- if it is NTFS, files >= 4G are supported. + else if(Is_SimulatedSystemDrive(TheFs, aDrive)) + { + //-- This is the emulator's windows drive or PlatSim's HVFS. + //-- The maximal file size depends on the Windows FS used for this drive. + //-- If it is NTFS, files >= 4G are supported. r = CreateEmptyFile(TheFs, _L("\\test_file"), K4GB); KFileSizeMaxLargerThan4GBMinusOne = (r == KErrNone); diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/server/t_format.cpp --- a/kerneltest/f32test/server/t_format.cpp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/server/t_format.cpp Wed Jun 23 19:44:53 2010 +0300 @@ -695,9 +695,9 @@ test_KErrNone(nRes); //-- this will mark the current Mount as "Dismounted" and will instantiate another CMountCB for formatting - fmtMode = EQuickFormat | EForceFormat; + fmtMode = EQuickFormat | EForceFormat; - nRes = format.Open(TheFs, drivePath, fmtMode, fmtCnt); + nRes = format.Open(TheFs, drivePath, fmtMode, fmtCnt); test_KErrNone(nRes); nRes = DoFormatSteps(format, fmtCnt); @@ -877,8 +877,11 @@ PrintDrvInfo(TheFs, gDrive); - if(Is_Win32(TheFs, gDrive)) - return; //-- emulator drive c: + if(Is_SimulatedSystemDrive(TheFs, gDrive)) + { + test.Printf(_L("Skipping T_FORMAT on PlatSim/Emulator drive %C:\n"), gSessionPath[0]); + return; + } SetSessionPath(_L("\\")); diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/server/t_fsched.cpp --- a/kerneltest/f32test/server/t_fsched.cpp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/server/t_fsched.cpp Wed Jun 23 19:44:53 2010 +0300 @@ -29,6 +29,9 @@ #include "t_server.h" #include #include +#include "f32_test_utils.h" + +using namespace F32_Test_Utils; //---------------------------------------------------------------------------------------------- //! @SYMTestCaseID PBASE-T_FSCHED-0191 @@ -930,9 +933,9 @@ test.Printf(_L("\nSync read done %d ms before the write ended\n"),I64LOW(timeTaken.Int64() / KuStomS)); TReal time=I64LOW(timeTaken.Int64() / KuStomS); #if !defined(__WINS__) - // If this condition fails, means that writing the sync file while fairscheduling a small sync read takes too long + // If this condition fails, it means that writing the sync file while fairscheduling a small sync read takes too long test.Printf(_L("time: %f\n"), time); -// test((time > 0) && (((gTotalTimeSync[0]-time)>0) || ((gTotalTimeSync[1]-time)>0)) ); + // test((time > 0) && (((gTotalTimeSync[0]-time)>0) || ((gTotalTimeSync[1]-time)>0)) ); test(time > 0); #endif @@ -959,11 +962,14 @@ time = I64LOW(timeTaken.Int64() / KuStomS); #if !defined(__WINS__) - // If this condition fails, means that writing the async file while fairscheduling a small async read takes too long + if (!Is_HVFS(TheFs, gDrive)) + { + // If this condition fails, it means that writing the async file while fairscheduling a small async read takes too long test.Printf(_L("time: %f\n"), time); test.Printf(_L("gTotalTimeAsync[0] = %d , gTotalTimeAsync[1] = %d\n"),gTotalTimeAsync[0],gTotalTimeAsync[1] ); -// test((time > 0) && (((gTotalTimeAsync[0]-time)>0) || ((gTotalTimeAsync[1]-time)>0)) ); + // test((time > 0) && (((gTotalTimeAsync[0]-time)>0) || ((gTotalTimeAsync[1]-time)>0)) ); test(time > 0); + } #endif } @@ -998,9 +1004,9 @@ test.Printf(_L("\nSync write done %d ms before the big write ended\n"),I64LOW(timeTaken.Int64() / KuStomS)); TReal time=I64LOW(timeTaken.Int64() / KuStomS); #if !defined(__WINS__) - // If this condition fails, means that writing the sync file while fairscheduling a small sync write takes too long + // If this condition fails, it means that writing the sync file while fairscheduling a small sync write takes too long test.Printf(_L("time: %f\n"), time); -// test((time > 0) && (((gTotalTimeSync[0]-time)>0) || ((gTotalTimeSync[1]-time)>0)) ); + // test((time > 0) && (((gTotalTimeSync[0]-time)>0) || ((gTotalTimeSync[1]-time)>0)) ); test(time > 0); #endif @@ -1018,13 +1024,16 @@ timeTaken = time2.MicroSecondsFrom(time1); test.Printf(_L("\nAsync write done %d ms before the big write ended\n"),I64LOW(timeTaken.Int64() / KuStomS)); - time=I64LOW(timeTaken.Int64() / KuStomS); + time=I64LOW(timeTaken.Int64() / KuStomS); #if !defined(__WINS__) - // If this condition fails, means that writing the async file while fairscheduling a small async write takes too long + if (!Is_HVFS(TheFs, gDrive)) + { + // If this condition fails, it means that writing the async file while fairscheduling a small async write takes too long test.Printf(_L("time: %f\n"), time); test.Printf(_L("gTotalTimeAsync[0] = %d , gTotalTimeAsync[1] = %d\n"),gTotalTimeAsync[0],gTotalTimeAsync[1] ); -// test((time > 0) && (((gTotalTimeAsync[0]-time)>0) || ((gTotalTimeAsync[1]-time)>0)) ); + // test((time > 0) && (((gTotalTimeAsync[0]-time)>0) || ((gTotalTimeAsync[1]-time)>0)) ); test(time > 0); + } #endif bigFile.Close(); smallFile.Close(); @@ -1336,9 +1345,9 @@ TestWriteOrder(); // Format the drive to make sure no blocks are left to be erased in LFFS - #if !defined(__WINS__) + if (!Is_Win32(TheFs, gDrive)) Format(gDrive); - #endif + r = TheFs.MkDirAll(gSessionPath); TimeTakenToWriteBigFile(1); @@ -1505,10 +1514,9 @@ test.Printf(_L("%c: Media corruption; previous test may have aborted; else, check hardware\n"), (TUint)gDrive + 'A'); } TESTERROR(r); -#if !defined(__WINS__) - if ((volInfo.iDrive.iMediaAtt & KMediaAttFormattable)) + + if (!Is_Win32(TheFs, gDrive) && (volInfo.iDrive.iMediaAtt & KMediaAttFormattable)) Format(gDrive); -#endif if(CheckForDiskSize()) { diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/server/t_fsrv.cpp --- a/kerneltest/f32test/server/t_fsrv.cpp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/server/t_fsrv.cpp Wed Jun 23 19:44:53 2010 +0300 @@ -1682,10 +1682,8 @@ break; test_KErrNone(r); count++; -#if defined(__WINS__) - if (count==32 && sessionPath[0]=='C') - break; -#endif + if (Is_SimulatedSystemDrive(TheFs,gDrive) && count==32) + break; // Limit on disk size for emulator/PlatSim } r=TheFs.CheckDisk(fileName); diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/server/t_main.cpp --- a/kerneltest/f32test/server/t_main.cpp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/server/t_main.cpp Wed Jun 23 19:44:53 2010 +0300 @@ -24,6 +24,7 @@ #include #include "t_server.h" #include "t_chlffs.h" +#include "f32_test_utils.h" GLDEF_D RFs TheFs; GLDEF_D TFileName gSessionPath; @@ -157,14 +158,11 @@ while(illegalChar) { -#if defined(__WINS__) - if (gSessionPath[0]=='C') + if (F32_Test_Utils::Is_SimulatedSystemDrive(TheFs, CurrentDrive())) letter=(TChar)('A'+Math::Rand(aSeed)%26); else letter=(TChar)Math::Rand(aSeed)%256; -#else - letter=(TChar)Math::Rand(aSeed)%256; -#endif + TBool space=letter.IsSpace(); if (space && spaceChar==-1) spaceChar=i; diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/server/t_notify.cpp --- a/kerneltest/f32test/server/t_notify.cpp Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/server/t_notify.cpp Wed Jun 23 19:44:53 2010 +0300 @@ -21,6 +21,9 @@ #include #include #include "t_server.h" +#include "f32_test_utils.h" + +using namespace F32_Test_Utils; const TInt KHeapSize=0x200; @@ -139,7 +142,7 @@ { TRequestStatus s; fs.NotifyChange(ENotifyAll,s); - test(s==KRequestPending); + test_Value(s.Int(), s==KRequestPending); gSleepThread.Signal(); User::After(100000000); } @@ -216,7 +219,7 @@ TRequestStatus s; TFileName path=_L("\\F32-TST\\NOTIFY\\"); fs.NotifyChange(ENotifyAll,s,path); - test(s==KRequestPending); + test_Value(s.Int(), s==KRequestPending); gSleepThread.Signal(); User::After(100000000); } @@ -293,21 +296,21 @@ thread.Logon(thrdStat); thread.Resume(); User::WaitForRequest(thrdStat); - test(thrdStat==KErrNone); + test_KErrNone(thrdStat.Int()); thread.Close(); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); RFile file; r=file.Open(TheFs,_L("\\F32-TST\\NOTIFY\\NewFile.txt"),EFileRead|EFileWrite|EFileShareExclusive); test_KErrNone(r); file.Write(_L8("Somewhere over the rainbow..."),reqStat); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); TBuf8<256> buf; file.Read(0, buf,reqStat); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); file.Close(); r=file.Open(TheFs,_L("\\F32-TST\\NOTIFY\\NewFile.txt"),EFileRead|EFileReadAsyncAll|EFileShareExclusive); @@ -319,28 +322,28 @@ r=file.Open(TheFs,_L("\\F32-TST\\NOTIFY\\NewFile.txt"),EFileRead|EFileReadAsyncAll|EFileShareAny); test_KErrNone(r); file.Read(0, buf, 100, reqStat); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); file.Close(); User::WaitForRequest(reqStat); - test(reqStat==KErrCancel); + test_Value(reqStat.Int(), reqStat==KErrCancel); r=file.Open(TheFs,_L("\\F32-TST\\NOTIFY\\NewFile.txt"),EFileRead|EFileReadAsyncAll|EFileShareAny); test_KErrNone(r); file.Read(0, buf, 100, reqStat); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); file.ReadCancel(reqStat); User::WaitForRequest(reqStat); - test(reqStat==KErrCancel); + test_Value(reqStat.Int(), reqStat==KErrCancel); file.Close(); r=file.Open(TheFs,_L("\\F32-TST\\NOTIFY\\NewFile.txt"),EFileRead|EFileReadAsyncAll|EFileWrite|EFileShareAny); test_KErrNone(r); file.Read(0, buf, 100, reqStat); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); file.SetSize(100); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); - test(buf.Length() == 100); + test_KErrNone(reqStat.Int()); + test_Equal(100, buf.Length()); file.Close(); test.Next(_L("Repeat Test notification of an entry change")); @@ -349,15 +352,10 @@ thread.Logon(thrdStat); thread.Resume(); User::WaitForRequest(thrdStat); - test(thrdStat==KErrNone); + test_KErrNone(thrdStat.Int()); thread.Close(); User::WaitForRequest(reqStat); - if (reqStat!=KErrNone) - { - test.Printf(_L("ReqStat=%d\n"),reqStat.Int()); - //test.Getch(); - } - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); test.Next(_L("Test Notify cancel")); TheFs.NotifyChange(ENotifyEntry,reqStat); @@ -370,10 +368,10 @@ thread.Logon(thrdStat); thread.Resume(); User::WaitForRequest(thrdStat); - test(thrdStat==KErrNone); + test_KErrNone(thrdStat.Int()); thread.Close(); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); } static void Test2() @@ -396,14 +394,14 @@ test_KErrNone(r); fs2.NotifyChange(ENotifyEntry,reqStat2); - test(reqStat1==KRequestPending); - test(reqStat2==KRequestPending); + test_Value(reqStat1.Int(), reqStat1==KRequestPending); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); r=TheFs.Delete(_L("\\F32-TST\\NOTIFY\\NEWFILE.TXT")); test_KErrNone(r); User::WaitForRequest(reqStat1); User::WaitForRequest(reqStat2); - test(reqStat1==KErrNone); - test(reqStat2==KErrNone); + test_KErrNone(reqStat1.Int()); + test_KErrNone(reqStat2.Int()); } static void Test3() @@ -428,25 +426,25 @@ fs1.NotifyChange(ENotifyAll,status3); fs1.NotifyChange(ENotifyAll,status4); fs1.NotifyChange(ENotifyAll,status5); - test(status1==KRequestPending); - test(status2==KRequestPending); - test(status3==KRequestPending); - test(status4==KRequestPending); - test(status5==KRequestPending); + test_Value(status1.Int(), status1==KRequestPending); + test_Value(status2.Int(), status2==KRequestPending); + test_Value(status3.Int(), status3==KRequestPending); + test_Value(status4.Int(), status4==KRequestPending); + test_Value(status5.Int(), status5==KRequestPending); test.Next(_L("RFs::NotifyCancel()")); // Test that one call to RFs::NotifyCancel() cancels all outstanding requests fs1.NotifyChangeCancel(); User::WaitForRequest(status1); - test(status1==KErrCancel); + test_Value(status1.Int(), status1==KErrCancel); User::WaitForRequest(status2); - test(status2==KErrCancel); + test_Value(status2.Int(), status2==KErrCancel); User::WaitForRequest(status3); - test(status3==KErrCancel); + test_Value(status3.Int(), status3==KErrCancel); User::WaitForRequest(status4); - test(status4==KErrCancel); + test_Value(status4.Int(), status4==KErrCancel); User::WaitForRequest(status5); - test(status5==KErrCancel); + test_Value(status5.Int(), status5==KErrCancel); // Call the cancel function again to check no further action fs1.NotifyChangeCancel(); @@ -457,49 +455,49 @@ fs1.NotifyChange(ENotifyAll,status3); fs1.NotifyChange(ENotifyAll,status4); fs1.NotifyChange(ENotifyAll,status5); - test(status1==KRequestPending); - test(status2==KRequestPending); - test(status3==KRequestPending); - test(status4==KRequestPending); - test(status5==KRequestPending); + test_Value(status1.Int(), status1==KRequestPending); + test_Value(status2.Int(), status2==KRequestPending); + test_Value(status3.Int(), status3==KRequestPending); + test_Value(status4.Int(), status4==KRequestPending); + test_Value(status5.Int(), status5==KRequestPending); // Cancel the outstanding request with status5 test.Next(_L("RFs::NotifyCancel()")); fs1.NotifyChangeCancel(status5); User::WaitForRequest(status5); - test(status1==KRequestPending); - test(status2==KRequestPending); - test(status3==KRequestPending); - test(status4==KRequestPending); - test(status5==KErrCancel); + test_Value(status1.Int(), status1==KRequestPending); + test_Value(status2.Int(), status2==KRequestPending); + test_Value(status3.Int(), status3==KRequestPending); + test_Value(status4.Int(), status4==KRequestPending); + test_Value(status5.Int(), status5==KErrCancel); fs1.NotifyChangeCancel(status2); User::WaitForRequest(status2); - test(status1==KRequestPending); - test(status2==KErrCancel); - test(status3==KRequestPending); - test(status4==KRequestPending); + test_Value(status1.Int(), status1==KRequestPending); + test_Value(status2.Int(), status2==KErrCancel); + test_Value(status3.Int(), status3==KRequestPending); + test_Value(status4.Int(), status4==KRequestPending); fs1.NotifyChangeCancel(status4); User::WaitForRequest(status4); - test(status1==KRequestPending); - test(status3==KRequestPending); - test(status4==KErrCancel); - - fs1.NotifyChangeCancel(status4); // Test no side effects on trying to cancel a request - test(status4==KErrCancel); // that has already been cancelled + test_Value(status1.Int(), status1==KRequestPending); + test_Value(status3.Int(), status3==KRequestPending); + test_Value(status4.Int(), status4==KErrCancel); + + fs1.NotifyChangeCancel(status4); // Test no side effects on trying to cancel a request + test_Value(status4.Int(), status4==KErrCancel); // that has already been cancelled fs1.NotifyChangeCancel(status1); User::WaitForRequest(status1); - test(status1==KErrCancel); - test(status3==KRequestPending); + test_Value(status1.Int(), status1==KErrCancel); + test_Value(status3.Int(), status3==KRequestPending); fs1.NotifyChangeCancel(status1); // Test no side effects on trying to cancel a request - test(status1==KErrCancel); // that has already been cancelled + test_Value(status1.Int(), status1==KErrCancel); // that has already been cancelled fs1.NotifyChangeCancel(status3); User::WaitForRequest(status3); - test(status3==KErrCancel); + test_Value(status3.Int(), status3==KErrCancel); fs1.Close(); } @@ -560,7 +558,7 @@ TRequestStatus reqStat=0; TheFs.NotifyChange(ENotifyEntry,reqStat); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=gSleepThread.CreateLocal(0); test_KErrNone(r); @@ -569,12 +567,12 @@ test_KErrNone(r); clientThread.Resume(); gSleepThread.Wait(); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=TheFs.Delete(_L("\\F32-TST\\NOTIFY\\kangaroo.txt")); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); r=TheFs.Delete(_L("\\F32-TST\\NOTIFY\\koala.txt")); test_KErrNone(r); @@ -605,7 +603,7 @@ TRequestStatus reqStat=0; TInt r; TheFs.NotifyChange(ENotifyEntry,reqStat); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=gSleepThread.CreateLocal(0); test_KErrNone(r); RThread clientThread; @@ -614,7 +612,7 @@ clientThread.Resume(); gSleepThread.Wait(); TInt reqInt=reqStat.Int(); - test(reqInt==KErrNone); + test_KErrNone(reqInt); User::WaitForRequest(reqStat); WaitForMediaChange(); gSleepThread.Close(); @@ -641,7 +639,7 @@ MakeFile(_L("NewFile.TXT")); TInt r; TheFs.NotifyChange(ENotifyEntry,reqStat); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=gSleepThread.CreateLocal(0); test_KErrNone(r); @@ -650,7 +648,7 @@ test_KErrNone(r); clientThread.Resume(); gSleepThread.Wait(); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=TheFs.Delete(_L("Newfile.txt")); test_KErrNone(r); @@ -679,7 +677,7 @@ TFileName path = _L("\\F32-tst\\NOTIFY\\"); TInt r; TheFs.NotifyChange(ENotifyEntry,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=gSleepThread.CreateLocal(0); test_KErrNone(r); RThread clientThread; @@ -689,7 +687,7 @@ clientThread.Resume(); gSleepThread.Wait(); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); WaitForMediaChange(); gSleepThread.Close(); clientThread.Close(); @@ -701,7 +699,7 @@ TheFs.NotifyChange(ENotifyDisk,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=gSleepThread.CreateLocal(0); test_KErrNone(r); r=clientThread.Create(_L("Test6Thread2"),ThreadEntryPoint,0x4000,KHeapSize,KHeapSize,(TAny*)ETest6); @@ -709,7 +707,7 @@ clientThread.Resume(); gSleepThread.Wait(); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); WaitForMediaChange(); gSleepThread.Close(); clientThread.Close(); @@ -720,7 +718,7 @@ test_KErrNone(r); TheFs.NotifyChange(ENotifyWrite,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=gSleepThread.CreateLocal(0); test_KErrNone(r); r=clientThread.Create(_L("Test6Thread3"),ThreadEntryPoint,0x4000,KHeapSize,KHeapSize,(TAny*)ETest6); @@ -728,7 +726,7 @@ clientThread.Resume(); gSleepThread.Wait(); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); WaitForMediaChange(); gSleepThread.Close(); clientThread.Close(); @@ -756,17 +754,17 @@ TFileName path=_L("\\F32-TST\\NOTIFY\\BehindTheCurtain\\"); TRequestStatus reqStat(KRequestPending); TheFs.NotifyChange(ENotifyEntry,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=TheFs.MkDir(_L("\\F32-TST\\NOTIFY\\BehindTheCurtain\\")); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); path=_L("\\F32-TST\\NOTIFY\\BehindTheCurtain\\PayNoAttention.man"); TheFs.NotifyChange(ENotifyEntry,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); RFile file; r=file.Replace(TheFs,path,EFileStream); @@ -774,130 +772,130 @@ file.Close(); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); r=TheFs.Delete(path); test_KErrNone(r); TheFs.NotifyChange(ENotifyEntry,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); // Now cancel the outstanding request TheFs.NotifyChangeCancel(reqStat); User::WaitForRequest(reqStat); - test(reqStat==KErrCancel); + test_Value(reqStat.Int(), reqStat==KErrCancel); // Repeat with a ENotifyFile request TheFs.NotifyChange(ENotifyFile,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=file.Replace(TheFs,path,EFileStream); test_KErrNone(r); file.Close(); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); r=TheFs.Delete(path); test_KErrNone(r); TheFs.NotifyChange(ENotifyFile,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); // Now cancel the outstanding request TheFs.NotifyChangeCancel(reqStat); User::WaitForRequest(reqStat); - test(reqStat==KErrCancel); + test_Value(reqStat.Int(), reqStat==KErrCancel); // Repeat with an ENotifyAttributes request TheFs.NotifyChange(ENotifyAttributes,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=file.Replace(TheFs,path,EFileStream); test_KErrNone(r); file.Close(); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); // Monitoring attributes but informed anyway + test_KErrNone(reqStat.Int()); // Monitoring attributes but informed anyway r=TheFs.Delete(path); test_KErrNone(r); TheFs.NotifyChange(ENotifyAttributes,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); // Now cancel the outstanding request TheFs.NotifyChangeCancel(reqStat); User::WaitForRequest(reqStat); - test(reqStat==KErrCancel); + test_Value(reqStat.Int(), reqStat==KErrCancel); // Repeat with an ENotifyWrite request TheFs.NotifyChange(ENotifyWrite,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=file.Replace(TheFs,path,EFileStream); test_KErrNone(r); file.Close(); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); // Monitoring file writing but informed anyway + test_KErrNone(reqStat.Int()); // Monitoring file writing but informed anyway r=TheFs.Delete(path); test_KErrNone(r); TheFs.NotifyChange(ENotifyWrite,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); // Now cancel the outstanding request TheFs.NotifyChangeCancel(reqStat); User::WaitForRequest(reqStat); - test(reqStat==KErrCancel); + test_Value(reqStat.Int(), reqStat==KErrCancel); // Repeat with an ENotifyDisk request TheFs.NotifyChange(ENotifyDisk,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=file.Replace(TheFs,path,EFileStream); test_KErrNone(r); file.Close(); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); // Monitoring disk activity but informed anyway + test_KErrNone(reqStat.Int()); // Monitoring disk activity but informed anyway r=TheFs.Delete(path); test_KErrNone(r); TheFs.NotifyChange(ENotifyAttributes,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); // Now cancel the outstanding request TheFs.NotifyChangeCancel(reqStat); User::WaitForRequest(reqStat); - test(reqStat==KErrCancel); + test_Value(reqStat.Int(), reqStat==KErrCancel); // Now do much the same with directory monitoring path=_L("\\F32-TST\\NOTIFY\\BehindTheCurtain\\"); TheFs.RmDir(path); TheFs.NotifyChange(ENotifyDir,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); TheFs.MkDir(path); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); TheFs.RmDir(path); test_KErrNone(r); TheFs.NotifyChange(ENotifyDir,reqStat,path); test_KErrNone(r); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); // Now cancel the outstanding request TheFs.NotifyChangeCancel(reqStat); User::WaitForRequest(reqStat); - test(reqStat==KErrCancel); + test_Value(reqStat.Int(), reqStat==KErrCancel); TheFs.NotifyChange(ENotifyDir,reqStat,path); test_KErrNone(r); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); // Get a separate thread to create the directory RThread thread; @@ -908,9 +906,9 @@ thread.Close(); User::WaitForRequest(thrdStat); - test(thrdStat==KErrNone); + test_KErrNone(thrdStat.Int()); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); TheFs.RmDir(path); test_KErrNone(r); @@ -920,7 +918,7 @@ path=_L("\\F32-TST\\NOTIFY\\BehindTheCurtain\\PayNoAttention.man"); TheFs.NotifyChange(ENotifyEntry,reqStat,path); test_KErrNone(r); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); thread.Create(_L("RequestAheadThread"),ThreadEntryPoint,KDefaultStackSize,KHeapSize,KHeapSize,(TAny*)ETest10); thread.Logon(thrdStat); @@ -928,31 +926,31 @@ thread.Close(); User::WaitForRequest(thrdStat); - test(thrdStat==KErrNone); - test(reqStat==KRequestPending); + test_KErrNone(thrdStat.Int()); + test_Value(reqStat.Int(), reqStat==KRequestPending); // Now get a thread to create the file thread.Create(_L("RequestAhead"),ThreadEntryPoint,KDefaultStackSize,KHeapSize,KHeapSize,(TAny*)ETest11); thread.Logon(thrdStat); thread.Resume(); User::WaitForRequest(thrdStat); - test(thrdStat==KErrNone); + test_KErrNone(thrdStat.Int()); thread.Close(); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); TheFs.Delete(path); test_KErrNone(r); TheFs.NotifyChange(ENotifyEntry,reqStat,path); test_KErrNone(r); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); // Now cancel the outstanding request TheFs.NotifyChangeCancel(reqStat); User::WaitForRequest(reqStat); - test(reqStat==KErrCancel); + test_Value(reqStat.Int(), reqStat==KErrCancel); path=_L("\\F32-TST\\NOTIFY\\BehindTheCurtain\\"); TheFs.RmDir(path); @@ -972,52 +970,52 @@ TFileName path=(_L("\\F32-TST\\")); TheFs.NotifyChange(ENotifyEntry,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); RThread thread; TInt r=thread.Create(_L("MyThread"),ThreadEntryPoint,KDefaultStackSize,KHeapSize,KHeapSize,(TAny*)ETest1); test_KErrNone(r); thread.Logon(thrdStat); thread.Resume(); User::WaitForRequest(thrdStat); - test(thrdStat==KErrNone); + test_KErrNone(thrdStat.Int()); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); thread.Close(); // Repeat the test test.Next(_L("Repeat Test notification of an entry change")); TheFs.NotifyChange(ENotifyEntry,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=thread.Create(_L("MyThread2"),ThreadEntryPoint,KDefaultStackSize,KHeapSize,KHeapSize,(TAny*)ETest1); test_KErrNone(r); thread.Logon(thrdStat); thread.Resume(); User::WaitForRequest(thrdStat); - test(thrdStat==KErrNone); + test_KErrNone(thrdStat.Int()); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); thread.Close(); // Test it can be cancelled test.Next(_L("Test Notify cancel")); TheFs.NotifyChange(ENotifyEntry,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); TheFs.NotifyChangeCancel(); User::WaitForRequest(reqStat); - test(reqStat==KErrCancel); + test_Value(reqStat.Int(), reqStat==KErrCancel); // Test it can be notified again test.Next(_L("Test notification still works")); TheFs.NotifyChange(ENotifyEntry,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=thread.Create(_L("MyThread3"),ThreadEntryPoint,KDefaultStackSize,KHeapSize,KHeapSize,(TAny*)ETest1); test_KErrNone(r); thread.Logon(thrdStat); thread.Resume(); User::WaitForRequest(thrdStat); - test(thrdStat==KErrNone); + test_KErrNone(thrdStat.Int()); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); thread.Close(); // Test notification doesn't occur when a change occurs above the directory monitored @@ -1028,53 +1026,53 @@ test_Value(r, (r == KErrNone)||(r==KErrAlreadyExists)); path=_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\"); TheFs.NotifyChange(ENotifyEntry,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=thread.Create(_L("MyThread4"),ThreadEntryPoint,KDefaultStackSize,KHeapSize,KHeapSize,(TAny*)ETest1); test_KErrNone(r); thread.Logon(thrdStat); thread.Resume(); User::WaitForRequest(thrdStat); - test(thrdStat==KErrNone); + test_KErrNone(thrdStat.Int()); User::After(500000); thread.Close(); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); TheFs.NotifyChangeCancel(); User::WaitForRequest(reqStat); - test(reqStat==KErrCancel); + test_Value(reqStat.Int(), reqStat==KErrCancel); // Test notification occurs when a change is made to the subdirectory monitored test.Next(_L("Create a file in monitored subdirectory")); TheFs.NotifyChange(ENotifyEntry,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=thread.Create(_L("MyThread5"),ThreadEntryPoint,KDefaultStackSize,KHeapSize,KHeapSize,(TAny*)ETest2); test_KErrNone(r); thread.Logon(thrdStat); thread.Resume(); User::WaitForRequest(thrdStat); - test(thrdStat==KErrNone); + test_KErrNone(thrdStat.Int()); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); thread.Close(); test.Next(_L("Create a directory in monitored subdirectory")); TheFs.NotifyChange(ENotifyEntry,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=thread.Create(_L("MyThread6"),ThreadEntryPoint,KDefaultStackSize,KHeapSize,KHeapSize,(TAny*)ETest3); test_KErrNone(r); thread.Logon(thrdStat); thread.Resume(); User::WaitForRequest(thrdStat); - test(thrdStat==KErrNone); + test_KErrNone(thrdStat.Int()); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); thread.Close(); TheFs.NotifyChange(ENotifyEntry,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=TheFs.MkDir(_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\SCARECROW\\TINMAN\\")); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); r=TheFs.RmDir(_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\SCARECROW\\TINMAN\\")); @@ -1089,28 +1087,28 @@ path=_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\"); TheFs.NotifyChange(ENotifyEntry,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=thread.Create(_L("MyThread7"),ThreadEntryPoint,KDefaultStackSize,KHeapSize,KHeapSize,(TAny*)ETest1); test_KErrNone(r); thread.Logon(thrdStat); thread.Resume(); User::WaitForRequest(thrdStat); - test(thrdStat==KErrNone); + test_KErrNone(thrdStat.Int()); User::After(500000); thread.Close(); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); TheFs.NotifyChangeCancel(); User::WaitForRequest(reqStat); - test(reqStat==KErrCancel); + test_Value(reqStat.Int(), reqStat==KErrCancel); // Test notification occurs when a change is made to the subdirectory monitored test.Next(_L("Delete a file in monitored subdirectory")); TheFs.NotifyChange(ENotifyEntry,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=TheFs.Delete(_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\Dorothy.doc")); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); RFile file; r=file.Replace(TheFs,_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\WickedWitch.msg"),EFileStream); @@ -1121,104 +1119,104 @@ test.Next(_L("Monitor changes to a specific file")); path+=_L("WickedWitch.msg"); TheFs.NotifyChange(ENotifyAll,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=thread.Create(_L("MyThread8"),ThreadEntryPoint,KDefaultStackSize,KHeapSize,KHeapSize,(TAny*)ETest8); test_KErrNone(r); thread.Logon(thrdStat); thread.Resume(); User::WaitForRequest(thrdStat); - test(thrdStat==KErrNone); + test_KErrNone(thrdStat.Int()); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); thread.Close(); // Test notification does not occur if a change is made above the file TheFs.NotifyChange(ENotifyEntry,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); thread.Create(_L("MyThread9"),ThreadEntryPoint,KDefaultStackSize,KHeapSize,KHeapSize,(TAny*)ETest2); thread.Logon(thrdStat); thread.Resume(); User::WaitForRequest(thrdStat); - test(thrdStat==KErrNone); + test_KErrNone(thrdStat.Int()); User::After(500000); thread.Close(); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); TheFs.NotifyChangeCancel(); User::WaitForRequest(reqStat); - test(reqStat==KErrCancel); + test_Value(reqStat.Int(), reqStat==KErrCancel); // Test notification occurs when a change is made to the file test.Next(_L("Delete monitored file")); TheFs.NotifyChange(ENotifyEntry,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=TheFs.Delete(_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\WickedWitch.Msg")); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); // Test notification request is now submitted on the non existent path successfully TheFs.NotifyChange(ENotifyEntry,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); TheFs.NotifyChangeCancel(reqStat); User::WaitForRequest(reqStat); - test(reqStat==KErrCancel); + test_Value(reqStat.Int(), reqStat==KErrCancel); path=_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\Dorothy.Doc"); TheFs.NotifyChange(ENotifyEntry,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=TheFs.Delete(_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\Dorothy.Doc")); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); path=_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\"); TheFs.NotifyChange(ENotifyEntry,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=TheFs.RmDir(_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\")); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); // Submit a request for a path which does not yet exist path=_L("\\F32-TST\\NOTIFY\\GOOD_WITCH\\"); TheFs.NotifyChange(ENotifyEntry,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); // Now create the directory we are waiting on r=TheFs.MkDir(path); test_KErrNone(r); // Make sure the notification has now been received User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); // Submit a request for a file which does not yet exist path=_L("\\F32-TST\\NOTIFY\\GOOD_WITCH\\Red-Shoes.red"); TheFs.NotifyChange(ENotifyEntry,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); // Now create the file we are waiting on r=file.Replace(TheFs,path,EFileStream); test_KErrNone(r); file.Close(); // Make sure the notification has now been received User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); // Submit another notification request and delete the file TheFs.NotifyChange(ENotifyEntry,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=TheFs.Delete(path); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); path=_L("\\F32-TST\\NOTIFY\\GOOD_WITCH\\"); TheFs.NotifyChange(ENotifyEntry,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=TheFs.RmDir(path); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); // test passing in an empty string TheFs.NotifyChange(ENotifyEntry,reqStat,_L("")); User::WaitForRequest(reqStat); - test(reqStat==KErrArgument); + test_Value(reqStat.Int(), reqStat==KErrArgument); } static void Test9() @@ -1296,12 +1294,12 @@ test_KErrNone(r); fs6.NotifyChange(ENotifyEntry,reqStat6,path6); - test(reqStat1==KRequestPending); - test(reqStat2==KRequestPending); - test(reqStat3==KRequestPending); - test(reqStat4==KRequestPending); - test(reqStat5==KRequestPending); - test(reqStat6==KRequestPending); + test_Value(reqStat1.Int(), reqStat1==KRequestPending); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); + test_Value(reqStat5.Int(), reqStat5==KRequestPending); + test_Value(reqStat6.Int(), reqStat6==KRequestPending); // Make a change a the top level and check that only the session monitoring // that level is notified @@ -1310,13 +1308,13 @@ test_KErrNone(r); file.Close(); User::WaitForRequest(reqStat1); - test(reqStat1==KErrNone); - test(reqStat2==KRequestPending); - test(reqStat3==KRequestPending); - test(reqStat4==KRequestPending); - test(reqStat5==KRequestPending); + test_KErrNone(reqStat1.Int()); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); + test_Value(reqStat5.Int(), reqStat5==KRequestPending); User::WaitForRequest(reqStat6); - test(reqStat6==KErrNone); + test_KErrNone(reqStat6.Int()); r=TheFs.Delete(_L("\\F32-TST\\NewFile.txt")); test_KErrNone(r); @@ -1324,8 +1322,8 @@ // Renew the notify request at the top level and make a change one step lower fs1.NotifyChange(ENotifyEntry,reqStat1,path1); fs6.NotifyChange(ENotifyEntry,reqStat6,path6); - test(reqStat1==KRequestPending); - test(reqStat6==KRequestPending); + test_Value(reqStat1.Int(), reqStat1==KRequestPending); + test_Value(reqStat6.Int(), reqStat6==KRequestPending); test.Next(_L("Test clients monitoring levels 1 and 2 are notified")); r=file.Replace(TheFs,_L("\\F32-TST\\NOTIFY\\NewFile.txt"),EFileStream); @@ -1334,13 +1332,13 @@ User::WaitForRequest(reqStat1); User::WaitForRequest(reqStat2); - test(reqStat1==KErrNone); - test(reqStat2==KErrNone); - test(reqStat3==KRequestPending); - test(reqStat4==KRequestPending); - test(reqStat5==KRequestPending); + test_KErrNone(reqStat1.Int()); + test_KErrNone(reqStat2.Int()); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); + test_Value(reqStat5.Int(), reqStat5==KRequestPending); User::WaitForRequest(reqStat6); - test(reqStat6==KErrNone); + test_KErrNone(reqStat6.Int()); r=TheFs.Delete(_L("\\F32-TST\\NOTIFY\\NewFile.txt")); test_KErrNone(r); @@ -1350,9 +1348,9 @@ fs1.NotifyChange(ENotifyEntry,reqStat1,path1); fs2.NotifyChange(ENotifyEntry,reqStat2,path2); fs6.NotifyChange(ENotifyEntry,reqStat6,path6); - test(reqStat1==KRequestPending); - test(reqStat2==KRequestPending); - test(reqStat6==KRequestPending); + test_Value(reqStat1.Int(), reqStat1==KRequestPending); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_Value(reqStat6.Int(), reqStat6==KRequestPending); test.Next(_L("Test clients monitoring levels 1,2 and 3 are notified")); r=file.Replace(TheFs,_L("\\F32-TST\\NOTIFY\\ANIMAL\\NewFile.txt"),EFileStream); @@ -1362,13 +1360,13 @@ User::WaitForRequest(reqStat1); User::WaitForRequest(reqStat2); User::WaitForRequest(reqStat3); - test(reqStat1==KErrNone); - test(reqStat2==KErrNone); - test(reqStat3==KErrNone); - test(reqStat4==KRequestPending); - test(reqStat5==KRequestPending); + test_KErrNone(reqStat1.Int()); + test_KErrNone(reqStat2.Int()); + test_KErrNone(reqStat3.Int()); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); + test_Value(reqStat5.Int(), reqStat5==KRequestPending); User::WaitForRequest(reqStat6); - test(reqStat6==KErrNone); + test_KErrNone(reqStat6.Int()); r=TheFs.Delete(_L("\\F32-TST\\NOTIFY\\ANIMAL\\NewFile.txt")); test_KErrNone(r); @@ -1379,10 +1377,10 @@ fs2.NotifyChange(ENotifyEntry,reqStat2,path2); fs3.NotifyChange(ENotifyEntry,reqStat3,path3); fs6.NotifyChange(ENotifyEntry,reqStat6,path6); - test(reqStat1==KRequestPending); - test(reqStat2==KRequestPending); - test(reqStat3==KRequestPending); - test(reqStat6==KRequestPending); + test_Value(reqStat1.Int(), reqStat1==KRequestPending); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); + test_Value(reqStat4.Int(), reqStat6==KRequestPending); test.Next(_L("Test clients monitoring levels 1 - 4 are notified")); r=TheFs.Delete(_L("\\F32-TST\\NOTIFY\\ANIMAL\\cat.txt")); @@ -1391,13 +1389,13 @@ User::WaitForRequest(reqStat2); User::WaitForRequest(reqStat3); User::WaitForRequest(reqStat4); - test(reqStat1==KErrNone); - test(reqStat2==KErrNone); - test(reqStat3==KErrNone); - test(reqStat4==KErrNone); - test(reqStat5==KRequestPending); + test_KErrNone(reqStat1.Int()); + test_KErrNone(reqStat2.Int()); + test_KErrNone(reqStat3.Int()); + test_KErrNone(reqStat4.Int()); + test_Value(reqStat5.Int(), reqStat5==KRequestPending); User::WaitForRequest(reqStat6); - test(reqStat6==KErrNone); + test_KErrNone(reqStat6.Int()); // Renew the notify request at the top, second and third levels and on the file deleted above // which will be successful, but will not complete (for obvious reasons) @@ -1408,11 +1406,11 @@ fs3.NotifyChange(ENotifyEntry,reqStat3,path3); fs6.NotifyChange(ENotifyEntry,reqStat6,path6); fs4.NotifyChange(ENotifyEntry,reqStat4,path4); - test(reqStat1==KRequestPending); - test(reqStat2==KRequestPending); - test(reqStat3==KRequestPending); - test(reqStat4==KRequestPending); - test(reqStat6==KRequestPending); + test_Value(reqStat1.Int(), reqStat1==KRequestPending); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); + test_Value(reqStat6.Int(), reqStat6==KRequestPending); test.Next(_L("Test clients monitoring levels 1 - 3 and 5 are notified")); r=TheFs.Delete(_L("\\F32-TST\\NOTIFY\\ANIMAL\\dog.txt")); @@ -1423,16 +1421,16 @@ // Don't wait for reqStat4 User::WaitForRequest(reqStat5); User::WaitForRequest(reqStat6); - test(reqStat1==KErrNone); - test(reqStat2==KErrNone); - test(reqStat3==KErrNone); - test(reqStat4==KRequestPending); // File does not exist - test(reqStat5==KErrNone); - test(reqStat6==KErrNone); + test_KErrNone(reqStat1.Int()); + test_KErrNone(reqStat2.Int()); + test_KErrNone(reqStat3.Int()); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); // File does not exist + test_KErrNone(reqStat5.Int()); + test_KErrNone(reqStat6.Int()); fs4.NotifyChangeCancel(reqStat4); User::WaitForRequest(reqStat4); - test(reqStat4==KErrCancel); + test_Value(reqStat4.Int(), reqStat4==KErrCancel); // Renew the notify request at the top, second and third levels and attempt to renew // the request on the files deleted above (which will fail). @@ -1443,25 +1441,25 @@ fs4.NotifyChange(ENotifyEntry,reqStat4,path4); fs6.NotifyChange(ENotifyEntry,reqStat6,path6); fs5.NotifyChange(ENotifyEntry,reqStat5,path5); - test(reqStat1==KRequestPending); - test(reqStat2==KRequestPending); - test(reqStat3==KRequestPending); - test(reqStat4==KRequestPending); - test(reqStat5==KRequestPending); - test(reqStat6==KRequestPending); + test_Value(reqStat1.Int(), reqStat1==KRequestPending); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); + test_Value(reqStat5.Int(), reqStat5==KRequestPending); + test_Value(reqStat6.Int(), reqStat6==KRequestPending); r=TheFs.RmDir(_L("\\F32-TST\\NOTIFY\\ANIMAL\\")); test_KErrNone(r); User::WaitForRequest(reqStat1); User::WaitForRequest(reqStat2); User::WaitForRequest(reqStat3); - test(reqStat1==KErrNone); - test(reqStat2==KErrNone); - test(reqStat3==KErrNone); - test(reqStat4==KRequestPending); - test(reqStat5==KRequestPending); + test_KErrNone(reqStat1.Int()); + test_KErrNone(reqStat2.Int()); + test_KErrNone(reqStat3.Int()); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); + test_Value(reqStat5.Int(), reqStat5==KRequestPending); User::WaitForRequest(reqStat6); - test(reqStat6==KErrNone); + test_KErrNone(reqStat6.Int()); // Renew the notify request at the top and second levels on the third level // which was removed - it'll succeed but won't complete. @@ -1473,12 +1471,12 @@ fs3.NotifyChange(ENotifyEntry,reqStat3,path3); fs6.NotifyChange(ENotifyEntry,reqStat6,path6); - test(reqStat1==KRequestPending); - test(reqStat2==KRequestPending); - test(reqStat3==KRequestPending); - test(reqStat4==KRequestPending); - test(reqStat5==KRequestPending); - test(reqStat6==KRequestPending); + test_Value(reqStat1.Int(), reqStat1==KRequestPending); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); + test_Value(reqStat5.Int(), reqStat5==KRequestPending); + test_Value(reqStat6.Int(), reqStat6==KRequestPending); fs1.NotifyChangeCancel(); fs2.NotifyChangeCancel(); @@ -1525,25 +1523,25 @@ fs1.NotifyChange(ENotifyAll,status3,path); fs1.NotifyChange(ENotifyAll,status4,path); fs1.NotifyChange(ENotifyAll,status5,path); - test(status1==KRequestPending); - test(status2==KRequestPending); - test(status3==KRequestPending); - test(status4==KRequestPending); - test(status5==KRequestPending); + test_Value(status1.Int(), status1==KRequestPending); + test_Value(status2.Int(), status2==KRequestPending); + test_Value(status3.Int(), status3==KRequestPending); + test_Value(status4.Int(), status4==KRequestPending); + test_Value(status5.Int(), status5==KRequestPending); test.Next(_L("RFs::NotifyCancel()")); // Test that one call to RFs::NotifyCancel() cancels all outstanding requests fs1.NotifyChangeCancel(); User::WaitForRequest(status1); - test(status1==KErrCancel); + test_Value(status1.Int(), status1==KErrCancel); User::WaitForRequest(status2); - test(status2==KErrCancel); + test_Value(status2.Int(), status2==KErrCancel); User::WaitForRequest(status3); - test(status3==KErrCancel); + test_Value(status3.Int(), status3==KErrCancel); User::WaitForRequest(status4); - test(status4==KErrCancel); + test_Value(status4.Int(), status4==KErrCancel); User::WaitForRequest(status5); - test(status5==KErrCancel); + test_Value(status5.Int(), status5==KErrCancel); // Call the cancel function again to check no further action fs1.NotifyChangeCancel(); @@ -1554,62 +1552,62 @@ fs1.NotifyChange(ENotifyAll,status3,path); fs1.NotifyChange(ENotifyAll,status4,path); fs1.NotifyChange(ENotifyAll,status5,path); - test(status1==KRequestPending); - test(status2==KRequestPending); - test(status3==KRequestPending); - test(status4==KRequestPending); - test(status5==KRequestPending); + test_Value(status1.Int(), status1==KRequestPending); + test_Value(status2.Int(), status2==KRequestPending); + test_Value(status3.Int(), status3==KRequestPending); + test_Value(status4.Int(), status4==KRequestPending); + test_Value(status5.Int(), status5==KRequestPending); // Cancel the outstanding request with status5 test.Next(_L("RFs::NotifyCancel()")); fs1.NotifyChangeCancel(status5); User::WaitForRequest(status5); - test(status1==KRequestPending); - test(status2==KRequestPending); - test(status3==KRequestPending); - test(status4==KRequestPending); - test(status5==KErrCancel); + test_Value(status1.Int(), status1==KRequestPending); + test_Value(status2.Int(), status2==KRequestPending); + test_Value(status3.Int(), status3==KRequestPending); + test_Value(status4.Int(), status4==KRequestPending); + test_Value(status5.Int(), status5==KErrCancel); r=TheFs.MkDir(_L("\\F32-TST\\TROPICANA\\")); test_KErrNone(r); - test(status1==KRequestPending); - test(status2==KRequestPending); - test(status3==KRequestPending); - test(status4==KRequestPending); + test_Value(status1.Int(), status1==KRequestPending); + test_Value(status2.Int(), status2==KRequestPending); + test_Value(status3.Int(), status3==KRequestPending); + test_Value(status4.Int(), status4==KRequestPending); fs1.NotifyChangeCancel(status2); User::WaitForRequest(status2); - test(status1==KRequestPending); - test(status2==KErrCancel); - test(status3==KRequestPending); - test(status4==KRequestPending); + test_Value(status1.Int(), status1==KRequestPending); + test_Value(status2.Int(), status2==KErrCancel); + test_Value(status3.Int(), status3==KRequestPending); + test_Value(status4.Int(), status4==KRequestPending); r=TheFs.RmDir(_L("\\F32-TST\\TROPICANA\\")); test_KErrNone(r); - test(status1==KRequestPending); - test(status3==KRequestPending); - test(status4==KRequestPending); + test_Value(status1.Int(), status1==KRequestPending); + test_Value(status3.Int(), status3==KRequestPending); + test_Value(status4.Int(), status4==KRequestPending); fs1.NotifyChangeCancel(status4); User::WaitForRequest(status4); - test(status1==KRequestPending); - test(status3==KRequestPending); - test(status4==KErrCancel); + test_Value(status1.Int(), status1==KRequestPending); + test_Value(status3.Int(), status3==KRequestPending); + test_Value(status4.Int(), status4==KErrCancel); fs1.NotifyChangeCancel(status4); // Test no side effects on trying to cancel a request - test(status4==KErrCancel); // that has already been cancelled + test_Value(status4.Int(), status4==KErrCancel); // that has already been cancelled fs1.NotifyChangeCancel(status1); User::WaitForRequest(status1); - test(status1==KErrCancel); - test(status3==KRequestPending); + test_Value(status1.Int(), status1==KErrCancel); + test_Value(status3.Int(), status3==KRequestPending); fs1.NotifyChangeCancel(status1); // Test no side effects on trying to cancel a request - test(status1==KErrCancel); // that has already been cancelled + test_Value(status1.Int(), status1==KErrCancel); // that has already been cancelled fs1.NotifyChangeCancel(status3); User::WaitForRequest(status3); - test(status3==KErrCancel); + test_Value(status3.Int(), status3==KErrCancel); fs1.Close(); } @@ -1693,9 +1691,9 @@ test_KErrNone(r); fs3.NotifyChange(ENotifyEntry,reqStat3,path); - test(reqStat1==KRequestPending); - test(reqStat2==KRequestPending); - test(reqStat3==KRequestPending); + test_Value(reqStat1.Int(), reqStat1==KRequestPending); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); r=gSleepThread.CreateLocal(0); test_KErrNone(r); @@ -1705,18 +1703,18 @@ thread1.Resume(); gSleepThread.Wait(); - test(reqStat1==KRequestPending); - test(reqStat2==KRequestPending); - test(reqStat3==KRequestPending); + test_Value(reqStat1.Int(), reqStat1==KRequestPending); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); r=TheFs.Delete(_L("\\F32-TST\\NOTIFY\\kangaroo.txt")); test_KErrNone(r); User::WaitForRequest(reqStat1); User::WaitForRequest(reqStat2); User::WaitForRequest(reqStat3); - test(reqStat1==KErrNone); // All three notifications occur because they - test(reqStat2==KErrNone); // are all monitoring the top level directory - test(reqStat3==KErrNone); // Later, we'll test monitoring individual files... + test_KErrNone(reqStat1.Int()); // All three notifications occur because they + test_KErrNone(reqStat2.Int()); // are all monitoring the top level directory + test_KErrNone(reqStat3.Int()); // Later, we'll test monitoring individual files... gSleepThread.Close(); thread1.Close(); @@ -1730,9 +1728,9 @@ fs2.NotifyChange(ENotifyAll,reqStat2,path); fs3.NotifyChange(ENotifyAll,reqStat3,path); - test(reqStat1==KRequestPending); - test(reqStat2==KRequestPending); - test(reqStat3==KRequestPending); + test_Value(reqStat1.Int(), reqStat1==KRequestPending); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); r=gSleepThread.CreateLocal(0); test_KErrNone(r); @@ -1745,9 +1743,9 @@ User::WaitForRequest(reqStat1); User::WaitForRequest(reqStat2); User::WaitForRequest(reqStat3); - test(reqStat1==KErrNone); - test(reqStat2==KErrNone); - test(reqStat3==KErrNone); + test_KErrNone(reqStat1.Int()); + test_KErrNone(reqStat2.Int()); + test_KErrNone(reqStat3.Int()); gSleepThread.Close(); thread2.Close(); @@ -1764,9 +1762,9 @@ fs2.NotifyChange(ENotifyEntry,reqStat2,path2); fs3.NotifyChange(ENotifyAll,reqStat3,path3); - test(reqStat1==KRequestPending); - test(reqStat2==KRequestPending); - test(reqStat3==KRequestPending); + test_Value(reqStat1.Int(), reqStat1==KRequestPending); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); r=gSleepThread.CreateLocal(0); test_KErrNone(r); @@ -1777,15 +1775,15 @@ gSleepThread.Wait(); User::WaitForRequest(reqStat1); - test(reqStat1==KErrNone); - test(reqStat2==KRequestPending); // Monitoring with ENotifyEntry + test_KErrNone(reqStat1.Int()); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); // Monitoring with ENotifyEntry User::WaitForRequest(reqStat3); - test(reqStat3==KErrNone); + test_KErrNone(reqStat3.Int()); r=TheFs.Delete(_L("\\F32-TST\\NOTIFY\\koala.txt")); test_KErrNone(r); User::WaitForRequest(reqStat2); - test(reqStat2==KErrNone); + test_KErrNone(reqStat2.Int()); r=TheFs.Delete(_L("\\F32-TST\\NOTIFY\\kangaroo.txt")); test_KErrNone(r); @@ -1826,40 +1824,40 @@ TRequestStatus reqStat(KRequestPending); TRequestStatus thrdStat(KRequestPending); fs.NotifyChange(ENotifyAll,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); RThread thread; r=thread.Create(_L("MyThread7"),ThreadEntryPoint,KDefaultStackSize,KHeapSize,KHeapSize,(TAny*)ETest8); test_KErrNone(r); thread.Logon(thrdStat); thread.Resume(); User::WaitForRequest(thrdStat); - test(thrdStat==KErrNone); + test_KErrNone(thrdStat.Int()); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); thread.Close(); // Test notification does not occur if a change is made above the file fs.NotifyChange(ENotifyEntry,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=thread.Create(_L("MyThread8"),ThreadEntryPoint,KDefaultStackSize,KHeapSize,KHeapSize,(TAny*)ETest1); test_KErrNone(r); thread.Logon(thrdStat); thread.Resume(); User::WaitForRequest(thrdStat); - test(thrdStat==KErrNone); + test_KErrNone(thrdStat.Int()); User::After(500000); thread.Close(); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=TheFs.Delete(_L("\\F32-TST\\NOTIFY\\NEWFILE.TXT")); test_KErrNone(r); // Test notification does not occur if a change is made to another file r=file.Replace(TheFs,_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\Lion.log"),EFileStream); test_KErrNone(r); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); file.Close(); r=TheFs.Delete(_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\Lion.log")); test_KErrNone(r); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); // Test notification occurs when a change is made to the file @@ -1867,7 +1865,7 @@ r=TheFs.Delete(_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\WickedWitch.Msg")); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); fs.Close(); } @@ -1893,178 +1891,178 @@ RFile file; fs.NotifyChange(ENotifyAll,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=file.Replace(TheFs,_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\Dorothy.doc"),EFileRead|EFileWrite); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); fs.NotifyChange(ENotifyAll,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=file.Write(0,_L8("Pay no attention to the man behind the curtain")); test_KErrNone(r); file.Close(); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); // RFile::Read() a file within the monitored directory - no notification for reads path=_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\"); TBuf8<100> temp; fs.NotifyChange(ENotifyAll,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=file.Open(TheFs,_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\Dorothy.doc"),EFileRead|EFileWrite); test_KErrNone(r); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=file.Read(0,temp,100); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); // RFile::SetAtt() of a file within the monitored directory test.Next(_L("RFile::SetAtt()")); r=file.SetAtt(KEntryAttSystem,KEntryAttNormal); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); fs.NotifyChange(ENotifyAll,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); // RFile::SetSize() of a file within the monitored directory test.Next(_L("RFile::SetSize()")); r=file.SetSize(256); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); file.Close(); // RFile::Temp() to create a temp file within the monitored directory test.Next(_L("RFile::Temp()")); fs.NotifyChange(ENotifyAll,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); TFileName fileName; r=file.Temp(TheFs,path,fileName,EFileWrite); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); file.Close(); // RFile::SetModified() to change modification time of a file within monitored dir test.Next(_L("RFile::SetModified()")); fs.NotifyChange(ENotifyAll,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); TTime now; now.HomeTime(); r=file.Open(TheFs,_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\Dorothy.doc"),EFileRead|EFileWrite); test_KErrNone(r); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); file.SetModified(now); file.Close(); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); // RFs::SetEntry() to change a directory entry within the monitored directory test.Next(_L("RFs::SetEntry()")); TEntry entry; fs.NotifyChange(ENotifyAll,reqStat,path); r=TheFs.Entry(_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\Dorothy.doc"),entry); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); now.HomeTime(); r=TheFs.SetEntry(_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\Dorothy.doc"),now,KEntryAttHidden,KEntryAttNormal); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); // RFile::Set() to change file's modification time and attributes test.Next(_L("RFile::Set()")); fs.NotifyChange(ENotifyAll,reqStat,path); r=file.Open(TheFs,_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\Dorothy.doc"),EFileRead|EFileWrite); test_KErrNone(r); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); now.HomeTime(); r=file.Set(now,KEntryAttNormal,KEntryAttHidden); file.Close(); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); // RFs::SetDriveName() test.Next(_L("RFs::SetDriveName()")); fs.NotifyChange(ENotifyAll,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); User::After(KNotifyChangeAfter); r=TheFs.SetDriveName(KDefaultDrive,_L("DRIVETEST")); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); fs.NotifyChange(ENotifyEntry,reqStat,path); User::After(KNotifyChangeAfter); r=TheFs.SetDriveName(KDefaultDrive,_L("TEST")); test_KErrNone(r); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); fs.NotifyChangeCancel(reqStat); User::WaitForRequest(reqStat); - test(reqStat==KErrCancel); + test_Value(reqStat.Int(), reqStat==KErrCancel); fs.NotifyChange(ENotifyDisk,reqStat,path); User::After(KNotifyChangeAfter); r=TheFs.SetDriveName(KDefaultDrive,_L("DRIVE")); test_KErrNone(r); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); fs.NotifyChangeCancel(reqStat); User::WaitForRequest(reqStat); - test(reqStat==KErrCancel); + test_Value(reqStat.Int(), reqStat==KErrCancel); // RFs::MkDir() fs.NotifyChange(ENotifyAll,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); test.Next(_L("RFs::MkDir()")); r=TheFs.MkDir(_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\EMERALD_CITY\\")); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); // RFs::RmDir() test.Next(_L("RFs::RmDir()")); fs.NotifyChange(ENotifyAll,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=TheFs.RmDir(_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\EMERALD_CITY\\")); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); // RFile::Create() test.Next(_L("RFile::Create()")); fs.NotifyChange(ENotifyAll,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=file.Create(TheFs,_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\Good_Witch.bat"),EFileRead|EFileWrite); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); file.Close(); // RFs::Delete() test.Next(_L("RFs::Delete()")); fs.NotifyChange(ENotifyAll,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=TheFs.Delete(_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\Good_Witch.bat")); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); // RFile::Replace() test.Next(_L("RFile::Replace()")); fs.NotifyChange(ENotifyAll,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=file.Replace(TheFs,_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\Good_Witch.bat"),EFileRead|EFileWrite); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); file.Close(); // RFs::Delete() test.Next(_L("RFs::Delete()")); fs.NotifyChange(ENotifyAll,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=TheFs.Delete(_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\Good_Witch.bat")); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); // RFs::SetVolumeLabel() - should only be notification when monitoring relevant TNotifyTypes test.Next(_L("RFs::SetVolumeLabel")); @@ -2076,24 +2074,24 @@ r=TheFs.Volume(volInfo,driveNum); test_KErrNone(r); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); currentVolName=volInfo.iName; r=TheFs.SetVolumeLabel(_L("VOL"),driveNum); if (r==KErrNone) { User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); r=TheFs.Volume(volInfo,driveNum); test_KErrNone(r); test(volInfo.iName==_L("VOL")); // Test notification occurs under ENotifyDisk fs.NotifyChange(ENotifyDisk,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=TheFs.SetVolumeLabel(_L("ABCDEFGHIJK"),driveNum); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); r=TheFs.Volume(volInfo,driveNum); test_KErrNone(r); @@ -2103,7 +2101,7 @@ fs.NotifyChange(ENotifyAttributes,reqStat,path); r=TheFs.SetVolumeLabel(_L("TROPICANA"),driveNum); test_KErrNone(r); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=TheFs.Volume(volInfo,driveNum); test_KErrNone(r); @@ -2111,14 +2109,14 @@ fs.NotifyChangeCancel(reqStat); User::WaitForRequest(reqStat); - test(reqStat==KErrCancel); + test_Value(reqStat.Int(), reqStat==KErrCancel); // Test notification occurs under ENotifyEntry fs.NotifyChange(ENotifyEntry,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=TheFs.SetVolumeLabel(currentVolName,driveNum); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); r=TheFs.Volume(volInfo,driveNum); test_KErrNone(r); test(volInfo.iName==currentVolName); @@ -2136,19 +2134,17 @@ test.Next(_L("RFs::Rename()")); fs.NotifyChange(ENotifyEntry,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=TheFs.Rename(_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\Dorothy.doc"),_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\Toto.doc")); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); r=TheFs.Rename(_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\Toto.doc"),_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\Dorothy.doc")); test_KErrNone(r); -#if defined(__WINS__) - if(gSessionPath[0]=='Y'||gSessionPath[0]=='X') -#endif - { + if(!Is_SimulatedSystemDrive(TheFs,driveNum)) + {// Skip emulator/PlatSim drive C: test.Next(_L("RFs::Rename() with max path length")); TFileName longName=_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\"); while(longName.Length()<(KMaxFileName-2)) @@ -2156,11 +2152,11 @@ r=TheFs.Rename(_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\Dorothy.doc"),longName); test_KErrNone(r); fs.NotifyChange(ENotifyEntry,reqStat,longName); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=TheFs.Rename(longName,_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\Dorothy.doc")); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); } fs.Close(); @@ -2189,47 +2185,47 @@ RFile file; r=file.Open(TheFs,_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\Dorothy.doc"),EFileRead|EFileWrite); test_KErrNone(r); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=file.Write(0,_L8("Pay no attention to the man behind the curtain")); file.Close(); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); // RFile::Read() a file within the monitored directory - no notification for reads fs.NotifyChange(ENotifyAll,reqStat,path); TBuf8<100> temp; r=file.Open(TheFs,_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\Dorothy.doc"),EFileRead|EFileWrite); test_KErrNone(r); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=file.Read(0,temp,100); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); // RFile::SetAtt() of a file within the monitored directory test.Next(_L("RFile::SetAtt()")); r=file.SetAtt(KEntryAttNormal,KEntryAttHidden); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); // RFile::SetSize() of a file within the monitored directory test.Next(_L("RFile::SetSize()")); fs.NotifyChange(ENotifyAll,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=file.SetSize(256); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); file.Close(); // RFile::Temp() to create a temp file in the subtree test.Next(_L("RFile::Temp()")); fs.NotifyChange(ENotifyAll,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); TFileName fileName; r=file.Temp(TheFs,_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\"),fileName,EFileWrite); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); file.Close(); // RFile::SetModified() to change modification time of a file within monitored dir @@ -2239,117 +2235,117 @@ now.HomeTime(); r=file.Open(TheFs,_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\Dorothy.doc"),EFileRead|EFileWrite); test_KErrNone(r); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); file.SetModified(now); file.Close(); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); // RFs::Entry() to change a directory entry within the monitored directory test.Next(_L("RFs::Entry()")); fs.NotifyChange(ENotifyAll,reqStat,path); TEntry entry; r=TheFs.Entry(_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\Dorothy.doc"),entry); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); now.HomeTime(); r=TheFs.SetEntry(_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\Dorothy.doc"),now,KEntryAttHidden,KEntryAttNormal); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); // RFile::Set() to change file's modification time and attributes test.Next(_L("RFile::Set()")); fs.NotifyChange(ENotifyAll,reqStat,path); r=file.Open(TheFs,_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\Dorothy.doc"),EFileRead|EFileWrite); test_KErrNone(r); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); now.HomeTime(); r=file.Set(now,KEntryAttNormal,KEntryAttHidden); file.Close(); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); // RFs::SetDriveName() test.Next(_L("RFs::SetDriveName()")); fs.NotifyChange(ENotifyAll,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); User::After(KNotifyChangeAfter); r=TheFs.SetDriveName(KDefaultDrive,_L("DRIVETEST")); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); fs.NotifyChange(ENotifyEntry,reqStat,path); r=TheFs.SetDriveName(KDefaultDrive,_L("TEST")); test_KErrNone(r); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); User::After(KNotifyChangeAfter); fs.NotifyChangeCancel(reqStat); User::WaitForRequest(reqStat); - test(reqStat==KErrCancel); + test_Value(reqStat.Int(), reqStat==KErrCancel); fs.NotifyChange(ENotifyDisk,reqStat,path); User::After(KNotifyChangeAfter); r=TheFs.SetDriveName(KDefaultDrive,_L("DRIVE")); test_KErrNone(r); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); fs.NotifyChangeCancel(reqStat); User::WaitForRequest(reqStat); - test(reqStat==KErrCancel); + test_Value(reqStat.Int(), reqStat==KErrCancel); // RFs::MkDir() test.Next(_L("RFs::MkDir()")); fs.NotifyChange(ENotifyAll,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=TheFs.MkDir(_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\EMERALD_CITY\\")); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); // RFs::RmDir() test.Next(_L("RFs::RmDir()")); fs.NotifyChange(ENotifyAll,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=TheFs.RmDir(_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\EMERALD_CITY\\")); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); // RFile::Create() test.Next(_L("RFile::Create()")); fs.NotifyChange(ENotifyAll,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=file.Create(TheFs,_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\Good_Witch.bat"),EFileRead|EFileWrite); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); file.Close(); // RFs::Delete() test.Next(_L("RFs::Delete()")); fs.NotifyChange(ENotifyAll,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=TheFs.Delete(_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\Good_Witch.bat")); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); // RFile::Replace() test.Next(_L("RFile::Replace()")); fs.NotifyChange(ENotifyAll,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=file.Replace(TheFs,_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\Good_Witch.bat"),EFileRead|EFileWrite); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); file.Close(); // RFs::Delete() test.Next(_L("RFs::Delete()")); fs.NotifyChange(ENotifyAll,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=TheFs.Delete(_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\Good_Witch.bat")); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); // RFs::SetVolumeLabel() - should be notification under relevant TNotifyType monitoring // The operation is non-path specific so all outstanding interested requests are notified @@ -2362,24 +2358,24 @@ TFileName currentVolName; r=TheFs.Volume(volInfo,driveNum); test_KErrNone(r); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); currentVolName=volInfo.iName; r=TheFs.SetVolumeLabel(_L("VOL"),driveNum); if (r==KErrNone) { User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); r=TheFs.Volume(volInfo,driveNum); test_KErrNone(r); test(volInfo.iName==_L("VOL")); // Test notification occurs under ENotifyDisk fs.NotifyChange(ENotifyDisk,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=TheFs.SetVolumeLabel(_L("ABCDEFGHIJK"),driveNum); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); r=TheFs.Volume(volInfo,driveNum); test_KErrNone(r); @@ -2389,7 +2385,7 @@ fs.NotifyChange(ENotifyAttributes,reqStat,path); r=TheFs.SetVolumeLabel(_L("TROPICANA"),driveNum); test_KErrNone(r); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=TheFs.Volume(volInfo,driveNum); test_KErrNone(r); @@ -2397,14 +2393,14 @@ fs.NotifyChangeCancel(reqStat); User::WaitForRequest(reqStat); - test(reqStat==KErrCancel); + test_Value(reqStat.Int(), reqStat==KErrCancel); // Test notification occurs under ENotifyEntry fs.NotifyChange(ENotifyEntry,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=TheFs.SetVolumeLabel(currentVolName,driveNum); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); r=TheFs.Volume(volInfo,driveNum); test_KErrNone(r); test(volInfo.iName==currentVolName); @@ -2421,18 +2417,18 @@ // Test that notification is made when change is made to monitored directory fs.NotifyChange(ENotifyAll,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=TheFs.MkDir(_L("\\F32-TST\\NOTIFY\\EMERALD_CITY\\")); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); fs.NotifyChange(ENotifyAll,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=TheFs.RmDir(_L("\\F32-TST\\NOTIFY\\EMERALD_CITY\\")); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); fs.Close(); } @@ -2458,34 +2454,34 @@ RFile file; r=file.Open(TheFs,_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\Dorothy.doc"),EFileRead|EFileWrite); test_KErrNone(r); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=file.Write(0,_L8("Pay no attention to the man behind the curtain")); file.Close(); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); // RFile::Read() a file within the monitored directory - no notification for reads fs.NotifyChange(ENotifyAll,reqStat,path); TBuf8<100> temp; r=file.Open(TheFs,_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\Dorothy.doc"),EFileRead|EFileWrite); test_KErrNone(r); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=file.Read(0,temp,100); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); // RFile::SetAtt() of a file within the monitored directory r=file.SetAtt(KEntryAttNormal,KEntryAttHidden); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); // RFile::SetSize() of a file within the monitored directory fs.NotifyChange(ENotifyAll,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=file.SetSize(256); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); file.Close(); @@ -2495,108 +2491,108 @@ now.HomeTime(); r=file.Open(TheFs,_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\Dorothy.doc"),EFileRead|EFileWrite); test_KErrNone(r); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); file.SetModified(now); file.Close(); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); // RFs::Entry() to change a directory entry within the monitored directory fs.NotifyChange(ENotifyAll,reqStat,path); TEntry entry; r=TheFs.Entry(_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\Dorothy.doc"),entry); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); now.HomeTime(); r=TheFs.SetEntry(_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\Dorothy.doc"),now,KEntryAttHidden,KEntryAttNormal); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); // RFile::Set() to change file's modification time and attributes fs.NotifyChange(ENotifyAll,reqStat,path); r=file.Open(TheFs,_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\Dorothy.doc"),EFileRead|EFileWrite); test_KErrNone(r); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); now.HomeTime(); r=file.Set(now,KEntryAttNormal,KEntryAttHidden); file.Close(); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); // RFs::SetDriveName() - should be no notification ever with extended notification fs.NotifyChange(ENotifyAll,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); User::After(KNotifyChangeAfter); r=TheFs.SetDriveName(KDefaultDrive,_L("DRIVETEST")); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); fs.NotifyChange(ENotifyEntry,reqStat,path); User::After(KNotifyChangeAfter); r=TheFs.SetDriveName(KDefaultDrive,_L("TEST")); test_KErrNone(r); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); fs.NotifyChangeCancel(reqStat); User::WaitForRequest(reqStat); fs.NotifyChange(ENotifyDisk,reqStat,path); User::After(KNotifyChangeAfter); r=TheFs.SetDriveName(KDefaultDrive,_L("DRIVE")); test_KErrNone(r); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); fs.NotifyChangeCancel(reqStat); User::WaitForRequest(reqStat); - test(reqStat==KErrCancel); + test_Value(reqStat.Int(), reqStat==KErrCancel); // RFs::MkDir() fs.NotifyChange(ENotifyAll,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=TheFs.MkDir(_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\EMERALD_CITY\\")); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); // RFs::RmDir() fs.NotifyChange(ENotifyAll,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=TheFs.RmDir(_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\EMERALD_CITY\\")); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); // RFile::Create() fs.NotifyChange(ENotifyAll,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=file.Create(TheFs,_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\Good_Witch.bat"),EFileRead|EFileWrite); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); file.Close(); // RFs::Delete() fs.NotifyChange(ENotifyAll,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=TheFs.Delete(_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\Good_Witch.bat")); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); // RFile::Replace() fs.NotifyChange(ENotifyAll,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=file.Replace(TheFs,_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\Good_Witch.bat"),EFileRead|EFileWrite); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); file.Close(); // RFs::Delete() fs.NotifyChange(ENotifyAll,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=TheFs.Delete(_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\Good_Witch.bat")); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); // RFs::SetVolumeLabel() // Not path specific, so all outstanding requests of correct TNotifyType are notified @@ -2606,24 +2602,24 @@ TFileName currentVolName; r=TheFs.Volume(volInfo,driveNum); test_KErrNone(r); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); currentVolName=volInfo.iName; r=TheFs.SetVolumeLabel(_L("VOL"),driveNum); if (r==KErrNone) { User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); r=TheFs.Volume(volInfo,driveNum); test_KErrNone(r); test(volInfo.iName==_L("VOL")); // Test notification occurs under ENotifyDisk fs.NotifyChange(ENotifyDisk,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=TheFs.SetVolumeLabel(_L("ABCDEFGHIJK"),driveNum); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); r=TheFs.Volume(volInfo,driveNum); test_KErrNone(r); @@ -2633,7 +2629,7 @@ fs.NotifyChange(ENotifyAttributes,reqStat,path); r=TheFs.SetVolumeLabel(_L("TROPICANA"),driveNum); test_KErrNone(r); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=TheFs.Volume(volInfo,driveNum); test_KErrNone(r); @@ -2641,14 +2637,14 @@ fs.NotifyChangeCancel(reqStat); User::WaitForRequest(reqStat); - test(reqStat==KErrCancel); + test_Value(reqStat.Int(), reqStat==KErrCancel); // Test notification occurs under ENotifyEntry fs.NotifyChange(ENotifyEntry,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=TheFs.SetVolumeLabel(currentVolName,driveNum); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); r=TheFs.Volume(volInfo,driveNum); test_KErrNone(r); test(volInfo.iName==currentVolName); @@ -2663,26 +2659,26 @@ // RFs::Rename() fs.NotifyChange(ENotifyEntry,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=TheFs.Rename(_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\Dorothy.doc"),_L("\\F32-TST\\NOTIFY\\MUNCHKINS\\Toto.doc")); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); // Test that notification is made when change is made to monitored directory fs.NotifyChange(ENotifyAll,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=TheFs.MkDir(_L("\\F32-TST\\NOTIFY\\EMERALD_CITY\\")); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); fs.NotifyChange(ENotifyAll,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=TheFs.RmDir(_L("\\F32-TST\\NOTIFY\\EMERALD_CITY\\")); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); fs.Close(); } @@ -2767,59 +2763,59 @@ thread1.Resume(); gSleepThread.Wait(); - test(status1==KRequestPending); - test(status2==KRequestPending); - test(status3==KRequestPending); - test(status4==KRequestPending); - test(status5==KRequestPending); - test(status6==KRequestPending); - - test(statusExtended1==KRequestPending); - test(statusExtended2==KRequestPending); - test(statusExtended3==KRequestPending); - test(statusExtended4==KRequestPending); - test(statusExtended5==KRequestPending); - test(statusExtended6==KRequestPending); - - test(reqStat1==KRequestPending); - test(reqStat2==KRequestPending); - test(reqStat3==KRequestPending); - test(reqStat4==KRequestPending); + test_Value(status1.Int(), status1==KRequestPending); + test_Value(status2.Int(), status2==KRequestPending); + test_Value(status3.Int(), status3==KRequestPending); + test_Value(status4.Int(), status4==KRequestPending); + test_Value(status5.Int(), status5==KRequestPending); + test_Value(status6.Int(), status6==KRequestPending); + + test_Value(statusExtended1.Int(), statusExtended1==KRequestPending); + test_Value(statusExtended2.Int(), statusExtended2==KRequestPending); + test_Value(statusExtended3.Int(), statusExtended3==KRequestPending); + test_Value(statusExtended4.Int(), statusExtended4==KRequestPending); + test_Value(statusExtended5.Int(), statusExtended5==KRequestPending); + test_Value(statusExtended6.Int(), statusExtended6==KRequestPending); + + test_Value(reqStat1.Int(), reqStat1==KRequestPending); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); r=TheFs.Delete(_L("\\F32-TST\\NOTIFY\\kangaroo.txt")); test_KErrNone(r); User::WaitForRequest(reqStat1); - test(reqStat1==KErrNone); + test_KErrNone(reqStat1.Int()); User::WaitForRequest(status1); - test(status1==KErrNone); + test_KErrNone(status1.Int()); User::WaitForRequest(status2); - test(status2==KErrNone); + test_KErrNone(status2.Int()); User::WaitForRequest(status3); - test(status3==KErrNone); + test_KErrNone(status3.Int()); User::WaitForRequest(status4); - test(status4==KErrNone); + test_KErrNone(status4.Int()); User::WaitForRequest(status5); - test(status5==KErrNone); + test_KErrNone(status5.Int()); User::WaitForRequest(status6); - test(status6==KErrNone); + test_KErrNone(status6.Int()); User::WaitForRequest(statusExtended1); - test(statusExtended1==KErrNone); + test_KErrNone(statusExtended1.Int()); User::WaitForRequest(statusExtended2); - test(statusExtended2==KErrNone); + test_KErrNone(statusExtended2.Int()); User::WaitForRequest(statusExtended3); - test(statusExtended3==KErrNone); + test_KErrNone(statusExtended3.Int()); User::WaitForRequest(statusExtended4); - test(statusExtended4==KErrNone); + test_KErrNone(statusExtended4.Int()); User::WaitForRequest(statusExtended5); - test(statusExtended5==KErrNone); + test_KErrNone(statusExtended5.Int()); User::WaitForRequest(statusExtended6); - test(statusExtended6==KErrNone); + test_KErrNone(statusExtended6.Int()); User::WaitForRequest(reqStat2); - test(reqStat2==KErrNone); - test(reqStat3==KRequestPending); - test(reqStat4==KRequestPending); + test_KErrNone(reqStat2.Int()); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); fs.NotifyChangeCancel(); // Cancels both remaining notification requests User::WaitForRequest(reqStat3); @@ -2837,10 +2833,10 @@ fs.NotifyChange(ENotifyEntry,reqStat2,path2); fs.NotifyChange(ENotifyAll,reqStat3,path3); fs.NotifyChange(ENotifyEntry,reqStat4,path4); - test(reqStat1==KRequestPending); - test(reqStat2==KRequestPending); - test(reqStat3==KRequestPending); - test(reqStat4==KRequestPending); + test_Value(reqStat1.Int(), reqStat1==KRequestPending); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); r=gSleepThread.CreateLocal(0); test_KErrNone(r); @@ -2851,11 +2847,11 @@ gSleepThread.Wait(); User::WaitForRequest(reqStat1); - test(reqStat1==KErrNone); - test(reqStat2==KRequestPending); + test_KErrNone(reqStat1.Int()); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); User::WaitForRequest(reqStat3); - test(reqStat3==KErrNone); - test(reqStat4==KRequestPending); + test_KErrNone(reqStat3.Int()); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); gSleepThread.Close(); thread2.Close(); @@ -2863,10 +2859,10 @@ fs.NotifyChange(ENotifyAll,reqStat1,path1); fs.NotifyChange(ENotifyAll,reqStat3,path3); - test(reqStat1==KRequestPending); - test(reqStat2==KRequestPending); - test(reqStat3==KRequestPending); - test(reqStat4==KRequestPending); + test_Value(reqStat1.Int(), reqStat1==KRequestPending); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); r=gSleepThread.CreateLocal(0); test_KErrNone(r); @@ -2877,11 +2873,11 @@ gSleepThread.Wait(); User::WaitForRequest(reqStat1); - test(reqStat1==KErrNone); - test(reqStat2==KRequestPending); // Monitoring with ENotifyEntry + test_KErrNone(reqStat1.Int()); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); // Monitoring with ENotifyEntry User::WaitForRequest(reqStat3); - test(reqStat3==KErrNone); - test(reqStat4==KRequestPending); // Monitoring with ENotifyEntry + test_KErrNone(reqStat3.Int()); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); // Monitoring with ENotifyEntry RFs fs2; r=fs2.Connect(); @@ -2891,27 +2887,27 @@ TRequestStatus reqStat(KRequestPending); fs2.NotifyChange(ENotifyEntry,reqStat); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=TheFs.Delete(_L("\\F32-TST\\NOTIFY\\kangaroo.txt")); test_KErrNone(r); User::WaitForRequest(reqStat2); - test(reqStat2==KErrNone); - test(reqStat4==KRequestPending); + test_KErrNone(reqStat2.Int()); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); + test_KErrNone(reqStat.Int()); fs2.NotifyChange(ENotifyAll,reqStat); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); r=TheFs.Delete(_L("\\F32-TST\\NOTIFY\\koala.txt")); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); - test(reqStat4==KRequestPending); + test_KErrNone(reqStat.Int()); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); r=TheFs.Delete(_L("\\F32-TST\\NOTIFY\\dingo.txt")); test_KErrNone(r); User::WaitForRequest(reqStat4); - test(reqStat4==KErrNone); + test_KErrNone(reqStat4.Int()); gSleepThread.Close(); thread3.Close(); @@ -2958,40 +2954,40 @@ fs.NotifyChange(ENotifyDisk,reqStat7,path); - test(reqStat==KRequestPending); - test(reqStat2==KRequestPending); - test(reqStat3==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); User::WaitForRequest(reqStat4); - test(reqStat4==KErrArgument); // Cannot monitor a file with ENotifyDir - test(reqStat5==KRequestPending); - test(reqStat6==KRequestPending); + test_Value(reqStat4.Int(), reqStat4==KErrArgument); // Cannot monitor a file with ENotifyDir + test_Value(reqStat5.Int(), reqStat5==KRequestPending); + test_Value(reqStat6.Int(), reqStat6==KRequestPending); fs.NotifyChange(ENotifyEntry,reqStat4,path); - test(reqStat4==KRequestPending); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); r=file.Write(0,_L8("Pay no attention to the man behind the curtain")); file.Close(); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); - test(reqStat2==KRequestPending); // Monitoring with ENotifyFile + test_KErrNone(reqStat.Int()); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); // Monitoring with ENotifyFile User::WaitForRequest(reqStat3); - test(reqStat3==KErrNone); - test(reqStat4==KRequestPending); // Monitoring with ENotifyEntry - test(reqStat5==KRequestPending); - test(reqStat6==KRequestPending); - test(reqStat7==KRequestPending); + test_KErrNone(reqStat3.Int()); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); // Monitoring with ENotifyEntry + test_Value(reqStat5.Int(), reqStat5==KRequestPending); + test_Value(reqStat6.Int(), reqStat6==KRequestPending); + test_Value(reqStat7.Int(), reqStat7==KRequestPending); fs.NotifyChangeCancel(); // Cancels all outstanding notification requests User::WaitForRequest(reqStat2); - test(reqStat2==KErrCancel); + test_Value(reqStat2.Int(), reqStat2==KErrCancel); User::WaitForRequest(reqStat4); - test(reqStat4==KErrCancel); + test_Value(reqStat4.Int(), reqStat4==KErrCancel); User::WaitForRequest(reqStat5); - test(reqStat5==KErrCancel); + test_Value(reqStat5.Int(), reqStat5==KErrCancel); User::WaitForRequest(reqStat6); - test(reqStat6==KErrCancel); + test_Value(reqStat6.Int(), reqStat6==KErrCancel); User::WaitForRequest(reqStat7); - test(reqStat7==KErrCancel); + test_Value(reqStat7.Int(), reqStat7==KErrCancel); r=file.Open(TheFs,_L("\\F32-TST\\NOTIFY\\NewFile.txt"),EFileRead|EFileWrite); test_KErrNone(r); @@ -3005,57 +3001,57 @@ fs.NotifyChange(ENotifyWrite,reqStat6,path); fs.NotifyChange(ENotifyDisk,reqStat7,path); - test(reqStat==KRequestPending); - test(reqStat2==KRequestPending); - test(reqStat3==KRequestPending); - test(reqStat4==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); User::WaitForRequest(reqStat5); - test(reqStat5==KErrArgument); - test(reqStat6==KRequestPending); - test(reqStat7==KRequestPending); + test_Value(reqStat5.Int(), reqStat5==KErrArgument); + test_Value(reqStat6.Int(), reqStat6==KRequestPending); + test_Value(reqStat7.Int(), reqStat7==KRequestPending); test.Next(_L("RFile::SetAtt()")); r=file.SetAtt(KEntryAttSystem,KEntryAttNormal); test_KErrNone(r); User::WaitForRequest(reqStat); User::WaitForRequest(reqStat4); - test(reqStat==KErrNone); - test(reqStat2==KRequestPending); // Monitoring with ENotifyFile - test(reqStat3==KRequestPending); // Monitoring with ENotifyEntry - test(reqStat4==KErrNone); // Monitoring a file - can't use ENotifyDir - test(reqStat6==KRequestPending); - test(reqStat7==KRequestPending); + test_KErrNone(reqStat.Int()); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); // Monitoring with ENotifyFile + test_Value(reqStat3.Int(), reqStat3==KRequestPending); // Monitoring with ENotifyEntry + test_KErrNone(reqStat4.Int()); // Monitoring a file - can't use ENotifyDir + test_Value(reqStat6.Int(), reqStat6==KRequestPending); + test_Value(reqStat7.Int(), reqStat7==KRequestPending); fs.NotifyChange(ENotifyWrite,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); fs.NotifyChange(ENotifyDir,reqStat4,path); User::WaitForRequest(reqStat4); - test(reqStat4==KErrArgument); + test_Value(reqStat4.Int(), reqStat4==KErrArgument); r=file.SetAtt(KEntryAttNormal,KEntryAttSystem); test_KErrNone(r); - test(reqStat==KRequestPending); // Monitoring with ENotifyWrite + test_Value(reqStat.Int(), reqStat==KRequestPending); // Monitoring with ENotifyWrite fs.NotifyChangeCancel(); // Cancel outstanding notification request User::WaitForRequest(reqStat); - test(reqStat==KErrCancel); + test_Value(reqStat.Int(), reqStat==KErrCancel); User::WaitForRequest(reqStat2); - test(reqStat2==KErrCancel); + test_Value(reqStat2.Int(), reqStat2==KErrCancel); User::WaitForRequest(reqStat3); - test(reqStat3==KErrCancel); + test_Value(reqStat3.Int(), reqStat3==KErrCancel); User::WaitForRequest(reqStat6); - test(reqStat6==KErrCancel); + test_Value(reqStat6.Int(), reqStat6==KErrCancel); User::WaitForRequest(reqStat7); - test(reqStat7==KErrCancel); + test_Value(reqStat7.Int(), reqStat7==KErrCancel); fs.NotifyChange(ENotifyAll,reqStat,path); fs.NotifyChange(ENotifyFile,reqStat2,path); fs.NotifyChange(ENotifyEntry,reqStat3,path); fs.NotifyChange(ENotifyAttributes,reqStat4,path); - test(reqStat==KRequestPending); - test(reqStat2==KRequestPending); - test(reqStat3==KRequestPending); - test(reqStat4==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); // RFile::SetSize() of a file within the monitored directory test.Next(_L("RFile::SetSize()")); @@ -3063,30 +3059,30 @@ test_KErrNone(r); User::WaitForRequest(reqStat); User::WaitForRequest(reqStat4); - test(reqStat==KErrNone); - test(reqStat2==KRequestPending); // Monitoring with ENotifyFile - test(reqStat3==KRequestPending); // Monitoring with ENotifyEntry - test(reqStat4==KErrNone); + test_KErrNone(reqStat.Int()); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); // Monitoring with ENotifyFile + test_Value(reqStat3.Int(), reqStat3==KRequestPending); // Monitoring with ENotifyEntry + test_KErrNone(reqStat4.Int()); fs.NotifyChange(ENotifyWrite,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); fs.NotifyChange(ENotifyDir,reqStat4,path); User::WaitForRequest(reqStat4); - test(reqStat4==KErrArgument); + test_Value(reqStat4.Int(), reqStat4==KErrArgument); r=file.SetSize(200); test_KErrNone(r); User::After(1000000); - test(reqStat==KRequestPending); // Monitoring with ENotifyWrite + test_Value(reqStat.Int(), reqStat==KRequestPending); // Monitoring with ENotifyWrite file.Close(); fs.NotifyChangeCancel(); // Cancels all outstanding notification requests User::WaitForRequest(reqStat); - test(reqStat==KErrCancel); + test_Value(reqStat.Int(), reqStat==KErrCancel); User::WaitForRequest(reqStat2); - test(reqStat2==KErrCancel); + test_Value(reqStat2.Int(), reqStat2==KErrCancel); User::WaitForRequest(reqStat3); - test(reqStat3==KErrCancel); + test_Value(reqStat3.Int(), reqStat3==KErrCancel); // RFile::Temp() to create a temp file within the monitored directory test.Next(_L("RFile::Temp()")); @@ -3097,47 +3093,47 @@ fs.NotifyChange(ENotifyEntry,reqStat3,path); fs.NotifyChange(ENotifyAttributes,reqStat4,path); - test(reqStat==KRequestPending); - test(reqStat2==KRequestPending); - test(reqStat3==KRequestPending); - test(reqStat4==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); TFileName fileName; r=file.Temp(TheFs,path,fileName,EFileWrite); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); - test(reqStat2==KRequestPending); - test(reqStat3==KRequestPending); // Monitoring ENotifyEntry - test(reqStat4==KRequestPending); // Monitoring ENotifyAttributes + test_KErrNone(reqStat.Int()); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); // Monitoring ENotifyEntry + test_Value(reqStat4.Int(), reqStat4==KRequestPending); // Monitoring ENotifyAttributes file.Close(); fs.NotifyChangeCancel(); User::WaitForRequest(reqStat2); - test(reqStat2==KErrCancel); + test_Value(reqStat2.Int(), reqStat2==KErrCancel); User::WaitForRequest(reqStat3); - test(reqStat3==KErrCancel); + test_Value(reqStat3.Int(), reqStat3==KErrCancel); User::WaitForRequest(reqStat4); - test(reqStat4==KErrCancel); + test_Value(reqStat4.Int(), reqStat4==KErrCancel); fs.NotifyChange(ENotifyFile,reqStat,path); fs.NotifyChange(ENotifyDisk,reqStat2,path); fs.NotifyChange(ENotifyWrite,reqStat3,path); r=file.Temp(TheFs,path,fileName,EFileWrite); test_KErrNone(r); - test(reqStat==KRequestPending); // Monitoring ENotifyFile - test(reqStat2==KRequestPending); // Monitoring ENotifyDisk - test(reqStat3==KRequestPending); // Monitoring ENotifyWrite + test_Value(reqStat.Int(), reqStat==KRequestPending); // Monitoring ENotifyFile + test_Value(reqStat2.Int(), reqStat2==KRequestPending); // Monitoring ENotifyDisk + test_Value(reqStat3.Int(), reqStat3==KRequestPending); // Monitoring ENotifyWrite file.Close(); fs.NotifyChangeCancel(); // Cancels all outstanding notification requests User::WaitForRequest(reqStat); - test(reqStat==KErrCancel); + test_Value(reqStat.Int(), reqStat==KErrCancel); User::WaitForRequest(reqStat2); - test(reqStat2==KErrCancel); + test_Value(reqStat2.Int(), reqStat2==KErrCancel); User::WaitForRequest(reqStat3); - test(reqStat3==KErrCancel); + test_Value(reqStat3.Int(), reqStat3==KErrCancel); // RFile::SetModified() to change modification time of a file within monitored dir test.Next(_L("RFile::SetModified()")); @@ -3147,30 +3143,30 @@ fs.NotifyChange(ENotifyAttributes,reqStat3,path); fs.NotifyChange(ENotifyFile,reqStat4,path); - test(reqStat==KRequestPending); - test(reqStat2==KRequestPending); - test(reqStat3==KRequestPending); - test(reqStat4==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); TTime now; now.HomeTime(); r=file.Open(TheFs,_L("\\F32-TST\\NOTIFY\\NewFile.txt"),EFileRead|EFileWrite); test_KErrNone(r); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); file.SetModified(now); file.Close(); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); - test(reqStat2==KRequestPending); + test_KErrNone(reqStat.Int()); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); User::WaitForRequest(reqStat3); - test(reqStat3==KErrNone); - test(reqStat4==KRequestPending); + test_KErrNone(reqStat3.Int()); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); fs.NotifyChangeCancel(); User::WaitForRequest(reqStat2); - test(reqStat2==KErrCancel); + test_Value(reqStat2.Int(), reqStat2==KErrCancel); User::WaitForRequest(reqStat4); - test(reqStat4==KErrCancel); + test_Value(reqStat4.Int(), reqStat4==KErrCancel); // RFs::SetEntry() to change a directory entry within the monitored directory test.Next(_L("RFs::SetEntry()")); @@ -3180,28 +3176,28 @@ fs.NotifyChange(ENotifyAttributes,reqStat3,path); fs.NotifyChange(ENotifyDisk,reqStat4,path); - test(reqStat==KRequestPending); - test(reqStat2==KRequestPending); - test(reqStat3==KRequestPending); - test(reqStat4==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); r=TheFs.Entry(_L("\\F32-TST\\NOTIFY\\NewFile.txt"),entry); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); now.HomeTime(); r=TheFs.SetEntry(_L("\\F32-TST\\NOTIFY\\NewFile.txt"),now,KEntryAttHidden,KEntryAttNormal); test_KErrNone(r); User::WaitForRequest(reqStat); User::WaitForRequest(reqStat3); - test(reqStat==KErrNone); - test(reqStat2==KRequestPending); - test(reqStat3==KErrNone); - test(reqStat4==KRequestPending); + test_KErrNone(reqStat.Int()); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_KErrNone(reqStat3.Int()); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); fs.NotifyChangeCancel(); User::WaitForRequest(reqStat2); - test(reqStat2==KErrCancel); + test_Value(reqStat2.Int(), reqStat2==KErrCancel); User::WaitForRequest(reqStat4); - test(reqStat4==KErrCancel); + test_Value(reqStat4.Int(), reqStat4==KErrCancel); // RFile::Set() to change file's modification time and attributes test.Next(_L("RFile::Set()")); @@ -3210,29 +3206,29 @@ fs.NotifyChange(ENotifyAttributes,reqStat3,path); fs.NotifyChange(ENotifyWrite,reqStat4,path); - test(reqStat==KRequestPending); - test(reqStat2==KRequestPending); - test(reqStat3==KRequestPending); - test(reqStat4==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); r=file.Open(TheFs,_L("\\F32-TST\\NOTIFY\\NewFile.txt"),EFileRead|EFileWrite); test_KErrNone(r); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); now.HomeTime(); r=file.Set(now,KEntryAttNormal,KEntryAttHidden); file.Close(); User::WaitForRequest(reqStat); User::WaitForRequest(reqStat3); - test(reqStat==KErrNone); - test(reqStat2==KRequestPending); - test(reqStat3==KErrNone); - test(reqStat4==KRequestPending); + test_KErrNone(reqStat.Int()); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_KErrNone(reqStat3.Int()); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); fs.NotifyChangeCancel(); User::WaitForRequest(reqStat2); - test(reqStat2==KErrCancel); + test_Value(reqStat2.Int(), reqStat2==KErrCancel); User::WaitForRequest(reqStat4); - test(reqStat4==KErrCancel); + test_Value(reqStat4.Int(), reqStat4==KErrCancel); // RFs::SetDriveName() @@ -3242,27 +3238,27 @@ fs.NotifyChange(ENotifyDisk,reqStat3,path); fs.NotifyChange(ENotifyAttributes,reqStat4,path); - test(reqStat==KRequestPending); - test(reqStat2==KRequestPending); - test(reqStat3==KRequestPending); - test(reqStat4==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); User::After(KNotifyChangeAfter); r=TheFs.SetDriveName(KDefaultDrive,_L("DRIVETEST")); test_KErrNone(r); User::WaitForRequest(reqStat); - test(reqStat==KErrNone); - test(reqStat2==KRequestPending); - test(reqStat3==KRequestPending); - test(reqStat4==KRequestPending); + test_KErrNone(reqStat.Int()); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); fs.NotifyChangeCancel(); User::WaitForRequest(reqStat2); - test(reqStat2==KErrCancel); + test_Value(reqStat2.Int(), reqStat2==KErrCancel); User::WaitForRequest(reqStat3); - test(reqStat3==KErrCancel); + test_Value(reqStat3.Int(), reqStat3==KErrCancel); User::WaitForRequest(reqStat4); - test(reqStat4==KErrCancel); + test_Value(reqStat4.Int(), reqStat4==KErrCancel); // RFs::MkDir() test.Next(_L("RFs::MkDir()")); @@ -3273,20 +3269,20 @@ fs.NotifyChange(ENotifyDir,reqStat3,path); fs.NotifyChange(ENotifyFile,reqStat4,path); - test(reqStat==KRequestPending); - test(reqStat2==KRequestPending); - test(reqStat3==KRequestPending); - test(reqStat4==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); r=TheFs.MkDir(_L("\\F32-TST\\NOTIFY\\EMERALD_CITY\\")); test_KErrNone(r); User::WaitForRequest(reqStat); User::WaitForRequest(reqStat2); User::WaitForRequest(reqStat3); - test(reqStat==KErrNone); - test(reqStat2==KErrNone); - test(reqStat3==KErrNone); - test(reqStat4==KRequestPending); + test_KErrNone(reqStat.Int()); + test_KErrNone(reqStat2.Int()); + test_KErrNone(reqStat3.Int()); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); // RFs::RmDir() test.Next(_L("RFs::RmDir()")); @@ -3294,24 +3290,24 @@ fs.NotifyChange(ENotifyDir,reqStat2,path); fs.NotifyChange(ENotifyWrite,reqStat3,path); - test(reqStat==KRequestPending); - test(reqStat2==KRequestPending); - test(reqStat3==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); r=TheFs.RmDir(_L("\\F32-TST\\NOTIFY\\EMERALD_CITY\\")); test_KErrNone(r); User::WaitForRequest(reqStat); User::WaitForRequest(reqStat2); - test(reqStat==KErrNone); - test(reqStat2==KErrNone); - test(reqStat3==KRequestPending); - test(reqStat4==KRequestPending); + test_KErrNone(reqStat.Int()); + test_KErrNone(reqStat2.Int()); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); fs.NotifyChangeCancel(); User::WaitForRequest(reqStat3); - test(reqStat3==KErrCancel); + test_Value(reqStat3.Int(), reqStat3==KErrCancel); User::WaitForRequest(reqStat4); - test(reqStat4==KErrCancel); + test_Value(reqStat4.Int(), reqStat4==KErrCancel); // RFile::Create() test.Next(_L("RFile::Create()")); @@ -3320,20 +3316,20 @@ fs.NotifyChange(ENotifyDir,reqStat3,path); fs.NotifyChange(ENotifyFile,reqStat4,path); - test(reqStat==KRequestPending); - test(reqStat2==KRequestPending); - test(reqStat3==KRequestPending); - test(reqStat4==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); r=file.Create(TheFs,_L("\\F32-TST\\NOTIFY\\Good_Witch.bat"),EFileRead|EFileWrite); test_KErrNone(r); User::WaitForRequest(reqStat); User::WaitForRequest(reqStat2); User::WaitForRequest(reqStat4); - test(reqStat==KErrNone); - test(reqStat2==KErrNone); - test(reqStat3==KRequestPending); // Monitoring ENotifyDir - test(reqStat4==KErrNone); + test_KErrNone(reqStat.Int()); + test_KErrNone(reqStat2.Int()); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); // Monitoring ENotifyDir + test_KErrNone(reqStat4.Int()); file.Close(); fs.NotifyChangeCancel(reqStat3); User::WaitForRequest(reqStat3); @@ -3343,26 +3339,26 @@ fs.NotifyChange(ENotifyDisk,reqStat3,path); fs.NotifyChange(ENotifyWrite,reqStat4,path); - test(reqStat==KRequestPending); - test(reqStat2==KRequestPending); - test(reqStat3==KRequestPending); - test(reqStat4==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); r=file.Create(TheFs,_L("\\F32-TST\\NOTIFY\\Bad_Witch.bat"),EFileRead|EFileWrite); test_KErrNone(r); User::WaitForRequest(reqStat); User::WaitForRequest(reqStat2); - test(reqStat==KErrNone); - test(reqStat2==KErrNone); - test(reqStat3==KRequestPending); - test(reqStat4==KRequestPending); + test_KErrNone(reqStat.Int()); + test_KErrNone(reqStat2.Int()); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); file.Close(); fs.NotifyChangeCancel(); User::WaitForRequest(reqStat3); - test(reqStat3==KErrCancel); + test_Value(reqStat3.Int(), reqStat3==KErrCancel); User::WaitForRequest(reqStat4); - test(reqStat4==KErrCancel); + test_Value(reqStat4.Int(), reqStat4==KErrCancel); // RFs::Delete() test.Next(_L("RFs::Delete()")); @@ -3371,46 +3367,46 @@ fs.NotifyChange(ENotifyDir,reqStat3,path); fs.NotifyChange(ENotifyFile,reqStat4,path); - test(reqStat==KRequestPending); - test(reqStat2==KRequestPending); - test(reqStat3==KRequestPending); - test(reqStat4==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); r=TheFs.Delete(_L("\\F32-TST\\NOTIFY\\Good_Witch.bat")); test_KErrNone(r); User::WaitForRequest(reqStat); User::WaitForRequest(reqStat2); User::WaitForRequest(reqStat4); - test(reqStat==KErrNone); - test(reqStat2==KErrNone); - test(reqStat3==KRequestPending); // Monitoring ENotifyDir - test(reqStat4==KErrNone); + test_KErrNone(reqStat.Int()); + test_KErrNone(reqStat2.Int()); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); // Monitoring ENotifyDir + test_KErrNone(reqStat4.Int()); fs.NotifyChangeCancel(reqStat3); User::WaitForRequest(reqStat3); - test(reqStat3==KErrCancel); + test_Value(reqStat3.Int(), reqStat3==KErrCancel); fs.NotifyChange(ENotifyAll,reqStat,path); fs.NotifyChange(ENotifyEntry,reqStat2,path); fs.NotifyChange(ENotifyAttributes,reqStat3,path); fs.NotifyChange(ENotifyAll,reqStat4,path); - test(reqStat==KRequestPending); - test(reqStat2==KRequestPending); - test(reqStat3==KRequestPending); - test(reqStat4==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); r=TheFs.Delete(_L("\\F32-TST\\NOTIFY\\Bad_Witch.bat")); test_KErrNone(r); User::WaitForRequest(reqStat); User::WaitForRequest(reqStat2); User::WaitForRequest(reqStat4); - test(reqStat==KErrNone); - test(reqStat2==KErrNone); - test(reqStat3==KRequestPending); - test(reqStat4==KErrNone); + test_KErrNone(reqStat.Int()); + test_KErrNone(reqStat2.Int()); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); + test_KErrNone(reqStat4.Int()); fs.NotifyChangeCancel(reqStat3); User::WaitForRequest(reqStat3); - test(reqStat3==KErrCancel); + test_Value(reqStat3.Int(), reqStat3==KErrCancel); // RFile::Replace() test.Next(_L("RFile::Replace()")); @@ -3419,28 +3415,28 @@ fs.NotifyChange(ENotifyFile,reqStat3,path); fs.NotifyChange(ENotifyDir,reqStat4,path); - test(reqStat==KRequestPending); - test(reqStat2==KRequestPending); - test(reqStat3==KRequestPending); - test(reqStat4==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); r=file.Replace(TheFs,_L("\\F32-TST\\NOTIFY\\Good_Witch.bat"),EFileRead|EFileWrite); test_KErrNone(r); User::WaitForRequest(reqStat); User::WaitForRequest(reqStat2); User::WaitForRequest(reqStat3); - test(reqStat==KErrNone); - test(reqStat2==KErrNone); - test(reqStat3==KErrNone); - test(reqStat4==KRequestPending); + test_KErrNone(reqStat.Int()); + test_KErrNone(reqStat2.Int()); + test_KErrNone(reqStat3.Int()); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); file.Close(); fs.NotifyChangeCancel(); - test(reqStat==KErrNone); - test(reqStat2==KErrNone); - test(reqStat3==KErrNone); + test_KErrNone(reqStat.Int()); + test_KErrNone(reqStat2.Int()); + test_KErrNone(reqStat3.Int()); User::WaitForRequest(reqStat4); - test(reqStat4==KErrCancel); + test_Value(reqStat4.Int(), reqStat4==KErrCancel); // RFs::Delete() test.Next(_L("RFs::Delete()")); @@ -3450,21 +3446,21 @@ fs.NotifyChange(ENotifyFile,reqStat3,path); fs.NotifyChange(ENotifyDir,reqStat4,path); - test(reqStat==KRequestPending); - test(reqStat2==KRequestPending); - test(reqStat3==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); User::WaitForRequest(reqStat4); - test(reqStat4==KErrArgument); + test_Value(reqStat4.Int(), reqStat4==KErrArgument); r=TheFs.Delete(_L("\\F32-TST\\NOTIFY\\Good_Witch.bat")); test_KErrNone(r); User::WaitForRequest(reqStat); User::WaitForRequest(reqStat2); User::WaitForRequest(reqStat3); - test(reqStat==KErrNone); - test(reqStat2==KErrNone); - test(reqStat3==KErrNone); - test(reqStat4==KErrArgument); + test_KErrNone(reqStat.Int()); + test_KErrNone(reqStat2.Int()); + test_KErrNone(reqStat3.Int()); + test_Value(reqStat4.Int(), reqStat4==KErrArgument); // RFs::SetVolumeLabel() test.Next(_L("RFs::SetVolumeLabel()")); @@ -3477,20 +3473,20 @@ fs.NotifyChange(ENotifyAttributes,reqStat6,path); fs.NotifyChange(ENotifyDisk,reqStat7,path); - test(reqStat==KRequestPending); - test(reqStat2==KRequestPending); - test(reqStat3==KRequestPending); - test(reqStat4==KRequestPending); - test(reqStat5==KRequestPending); - test(reqStat6==KRequestPending); - test(reqStat7==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); + test_Value(reqStat5.Int(), reqStat5==KRequestPending); + test_Value(reqStat6.Int(), reqStat6==KRequestPending); + test_Value(reqStat7.Int(), reqStat7==KRequestPending); TInt driveNum=CurrentDrive(); TVolumeInfo volInfo; TFileName currentVolName; r=TheFs.Volume(volInfo,driveNum); test_KErrNone(r); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); currentVolName=volInfo.iName; r=TheFs.SetVolumeLabel(_L("VOL"),driveNum); @@ -3500,21 +3496,21 @@ User::WaitForRequest(reqStat2); User::WaitForRequest(reqStat7); - test(reqStat==KErrNone); - test(reqStat2==KErrNone); - test(reqStat3==KRequestPending); - test(reqStat4==KRequestPending); - test(reqStat5==KRequestPending); - test(reqStat6==KRequestPending); - test(reqStat7==KErrNone); + test_KErrNone(reqStat.Int()); + test_KErrNone(reqStat2.Int()); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); + test_Value(reqStat5.Int(), reqStat5==KRequestPending); + test_Value(reqStat6.Int(), reqStat6==KRequestPending); + test_KErrNone(reqStat7.Int()); fs.NotifyChange(ENotifyAll,reqStat,path); fs.NotifyChange(ENotifyEntry,reqStat2,path); fs.NotifyChange(ENotifyDisk,reqStat7,path); - test(reqStat==KRequestPending); - test(reqStat2==KRequestPending); - test(reqStat7==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_Value(reqStat7.Int(), reqStat7==KRequestPending); r=TheFs.SetVolumeLabel(currentVolName,driveNum); test_KErrNone(r); @@ -3523,13 +3519,13 @@ User::WaitForRequest(reqStat2); User::WaitForRequest(reqStat7); - test(reqStat==KErrNone); - test(reqStat2==KErrNone); - test(reqStat3==KRequestPending); - test(reqStat4==KRequestPending); - test(reqStat5==KRequestPending); - test(reqStat6==KRequestPending); - test(reqStat7==KErrNone); + test_KErrNone(reqStat.Int()); + test_KErrNone(reqStat2.Int()); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); + test_Value(reqStat5.Int(), reqStat5==KRequestPending); + test_Value(reqStat6.Int(), reqStat6==KRequestPending); + test_KErrNone(reqStat7.Int()); r=TheFs.Volume(volInfo,driveNum); test_KErrNone(r); @@ -3538,13 +3534,13 @@ fs.NotifyChangeCancel(); User::WaitForRequest(reqStat3); - test(reqStat3==KErrCancel); + test_Value(reqStat3.Int(), reqStat3==KErrCancel); User::WaitForRequest(reqStat4); - test(reqStat4==KErrCancel); + test_Value(reqStat4.Int(), reqStat4==KErrCancel); User::WaitForRequest(reqStat5); - test(reqStat5==KErrCancel); + test_Value(reqStat5.Int(), reqStat5==KErrCancel); User::WaitForRequest(reqStat6); - test(reqStat6==KErrCancel); + test_Value(reqStat6.Int(), reqStat6==KErrCancel); } else // RFs::SetVolumeLabel() doesn't work on subst drives @@ -3571,24 +3567,24 @@ fs.NotifyChange(ENotifyFile,reqStat3,path); fs.NotifyChange(ENotifyDir,reqStat4,path); - test(reqStat==KRequestPending); - test(reqStat2==KRequestPending); - test(reqStat3==KRequestPending); - test(reqStat4==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); r=file.Rename(_L("\\F32-TST\\NOTIFY\\OldFile.abc")); test_Value(r, r == KErrNone||r==KErrAlreadyExists); User::WaitForRequest(reqStat); User::WaitForRequest(reqStat2); User::WaitForRequest(reqStat3); - test(reqStat==KErrNone); - test(reqStat2==KErrNone); - test(reqStat3==KErrNone); - test(reqStat4==KRequestPending); // Monitoring ENotifyDir + test_KErrNone(reqStat.Int()); + test_KErrNone(reqStat2.Int()); + test_KErrNone(reqStat3.Int()); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); // Monitoring ENotifyDir file.Close(); fs.NotifyChangeCancel(); User::WaitForRequest(reqStat4); - test(reqStat4==KErrCancel); + test_Value(reqStat4.Int(), reqStat4==KErrCancel); path=_L("\\F32-TST\\NOTIFY\\OldFile.abc"); @@ -3599,21 +3595,21 @@ fs.NotifyChange(ENotifyFile,reqStat3,path); fs.NotifyChange(ENotifyDir,reqStat4,path); - test(reqStat==KRequestPending); - test(reqStat2==KRequestPending); - test(reqStat3==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); User::WaitForRequest(reqStat4); - test(reqStat4==KErrArgument); + test_Value(reqStat4.Int(), reqStat4==KErrArgument); r=file.Rename(_L("\\F32-TST\\NOTIFY\\NewFile.xyz")); test_KErrNone(r); User::WaitForRequest(reqStat); User::WaitForRequest(reqStat2); User::WaitForRequest(reqStat3); - test(reqStat==KErrNone); - test(reqStat2==KErrNone); - test(reqStat3==KErrNone); - test(reqStat4==KErrArgument); + test_KErrNone(reqStat.Int()); + test_KErrNone(reqStat2.Int()); + test_KErrNone(reqStat3.Int()); + test_Value(reqStat4.Int(), reqStat4==KErrArgument); file.Close(); // RFs::Rename() @@ -3624,27 +3620,27 @@ fs.NotifyChange(ENotifyFile,reqStat3,path); fs.NotifyChange(ENotifyDir,reqStat4,path); - test(reqStat==KRequestPending); - test(reqStat2==KRequestPending); - test(reqStat3==KRequestPending); - test(reqStat4==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); r=TheFs.Rename(_L("\\F32-TST\\NOTIFY\\NewFile.xyz"),_L("\\F32-TST\\NOTIFY\\NewerFile.cat")); test_KErrNone(r); User::WaitForRequest(reqStat); User::WaitForRequest(reqStat2); User::WaitForRequest(reqStat3); - test(reqStat==KErrNone); - test(reqStat2==KErrNone); - test(reqStat3==KErrNone); - test(reqStat4==KRequestPending); // Changed a file not a directory entry + test_KErrNone(reqStat.Int()); + test_KErrNone(reqStat2.Int()); + test_KErrNone(reqStat3.Int()); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); // Changed a file not a directory entry fs.NotifyChangeCancel(); - test(reqStat==KErrNone); - test(reqStat2==KErrNone); - test(reqStat3==KErrNone); + test_KErrNone(reqStat.Int()); + test_KErrNone(reqStat2.Int()); + test_KErrNone(reqStat3.Int()); User::WaitForRequest(reqStat4); - test(reqStat4==KErrCancel); + test_Value(reqStat4.Int(), reqStat4==KErrCancel); path=_L("\\F32-TST\\NOTIFY\\NewerFile.cat"); fs.NotifyChange(ENotifyAll,reqStat,path); @@ -3652,20 +3648,20 @@ fs.NotifyChange(ENotifyFile,reqStat3,path); fs.NotifyChange(ENotifyDir,reqStat4,path); - test(reqStat==KRequestPending); - test(reqStat2==KRequestPending); - test(reqStat3==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); User::WaitForRequest(reqStat4); - test(reqStat4==KErrArgument); + test_Value(reqStat4.Int(), reqStat4==KErrArgument); r=TheFs.Rename(_L("\\F32-TST\\NOTIFY\\NewerFile.cat"),_L("\\F32-TST\\NOTIFY\\Original.dog")); test_KErrNone(r); User::WaitForRequest(reqStat); User::WaitForRequest(reqStat2); User::WaitForRequest(reqStat3); - test(reqStat==KErrNone); - test(reqStat2==KErrNone); - test(reqStat3==KErrNone); + test_KErrNone(reqStat.Int()); + test_KErrNone(reqStat2.Int()); + test_KErrNone(reqStat3.Int()); path=_L("\\F32-TST\\NOTIFY\\"); fs.NotifyChange(ENotifyAll,reqStat,path); @@ -3673,10 +3669,10 @@ fs.NotifyChange(ENotifyFile,reqStat3,path); fs.NotifyChange(ENotifyDir,reqStat4,path); - test(reqStat==KRequestPending); - test(reqStat2==KRequestPending); - test(reqStat3==KRequestPending); - test(reqStat4==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); r=TheFs.Rename(_L("\\F32-TST\\NOTIFY\\"),_L("\\F32-TST\\NOTIFY_TEMP\\")); test_KErrNone(r); @@ -3684,11 +3680,11 @@ User::WaitForRequest(reqStat2); User::WaitForRequest(reqStat3); User::WaitForRequest(reqStat4); - test(reqStat==KErrNone); - test(reqStat2==KErrNone); - test(reqStat3==KErrNone); // Changed a directory entry but notified anyway despite - test(reqStat4==KErrNone); // requesting file notification only because the path we - // were monitoring has changed + test_KErrNone(reqStat.Int()); + test_KErrNone(reqStat2.Int()); + test_KErrNone(reqStat3.Int()); // Changed a directory entry but notified anyway despite + test_KErrNone(reqStat4.Int()); // requesting file notification only because the path we + // were monitoring has changed path=_L("\\F32-TST\\NOTIFY_TEMP\\Original.dog"); fs.NotifyChange(ENotifyAll,reqStat,path); @@ -3696,102 +3692,102 @@ fs.NotifyChange(ENotifyFile,reqStat3,path); fs.NotifyChange(ENotifyDir,reqStat4,path); - test(reqStat==KRequestPending); - test(reqStat2==KRequestPending); - test(reqStat3==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); User::WaitForRequest(reqStat4); - test(reqStat4==KErrArgument); + test_Value(reqStat4.Int(), reqStat4==KErrArgument); r=TheFs.Rename(_L("\\F32-TST\\NOTIFY_TEMP\\"),_L("\\F32-TST\\NOTIFY\\")); test_KErrNone(r); User::WaitForRequest(reqStat); User::WaitForRequest(reqStat2); User::WaitForRequest(reqStat3); - test(reqStat==KErrNone); // Modified a directory above the level at which we - test(reqStat2==KErrNone); // are monitoring for changes - we must be notified - test(reqStat3==KErrNone); // anyway because the path has changed + test_KErrNone(reqStat.Int()); // Modified a directory above the level at which we + test_KErrNone(reqStat2.Int()); // are monitoring for changes - we must be notified + test_KErrNone(reqStat3.Int()); // anyway because the path has changed fs.NotifyChange(ENotifyAll,reqStat,path); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); fs.NotifyChange(ENotifyEntry,reqStat2,path); - test(reqStat2==KRequestPending); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); fs.NotifyChange(ENotifyFile,reqStat3,path); - test(reqStat3==KRequestPending); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); fs.NotifyChangeCancel(reqStat); User::WaitForRequest(reqStat); - test(reqStat==KErrCancel); + test_Value(reqStat.Int(), reqStat==KErrCancel); fs.NotifyChangeCancel(reqStat2); User::WaitForRequest(reqStat2); - test(reqStat2==KErrCancel); + test_Value(reqStat2.Int(), reqStat2==KErrCancel); fs.NotifyChangeCancel(reqStat3); User::WaitForRequest(reqStat3); - test(reqStat3==KErrCancel); + test_Value(reqStat3.Int(), reqStat3==KErrCancel); path=_L("\\F32-TST\\NOTIFY\\Original.dog"); fs.NotifyChange(ENotifyAll,reqStat,path); fs.NotifyChange(ENotifyEntry,reqStat2,path); fs.NotifyChange(ENotifyFile,reqStat3,path); - test(reqStat==KRequestPending); - test(reqStat2==KRequestPending); - test(reqStat3==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); r=TheFs.Delete(_L("\\F32-TST\\NOTIFY\\Original.dog")); test_KErrNone(r); User::WaitForRequest(reqStat); User::WaitForRequest(reqStat2); User::WaitForRequest(reqStat3); - test(reqStat==KErrNone); - test(reqStat2==KErrNone); - test(reqStat3==KErrNone); + test_KErrNone(reqStat.Int()); + test_KErrNone(reqStat2.Int()); + test_KErrNone(reqStat3.Int()); path=_L("\\F32-TST\\NOTIFY\\"); fs.NotifyChange(ENotifyAll,reqStat,path); fs.NotifyChange(ENotifyEntry,reqStat2,path); fs.NotifyChange(ENotifyDir,reqStat3,path); - test(reqStat==KRequestPending); - test(reqStat2==KRequestPending); - test(reqStat3==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); r=TheFs.Rename(_L("\\F32-TST\\"),_L("\\F32-TEST\\")); test_KErrNone(r); User::WaitForRequest(reqStat); User::WaitForRequest(reqStat2); User::WaitForRequest(reqStat3); - test(reqStat==KErrNone); // Modified a directory above the level at which we - test(reqStat2==KErrNone); // are monitoring for changes but we receive notification - test(reqStat3==KErrNone); // because the notification path has been changed + test_KErrNone(reqStat.Int()); // Modified a directory above the level at which we + test_KErrNone(reqStat2.Int()); // are monitoring for changes but we receive notification + test_KErrNone(reqStat3.Int()); // because the notification path has been changed fs.NotifyChange(ENotifyAll,reqStat,path); // Notification request is submitted, despite the subject's disappearance - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); fs.NotifyChange(ENotifyEntry,reqStat2,path); // Notification request is submitted, despite the subject's disappearance - test(reqStat2==KRequestPending); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); fs.NotifyChange(ENotifyFile,reqStat3,path); // Notification request is submitted, despite the subject's disappearance - test(reqStat3==KRequestPending); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); fs.NotifyChangeCancel(reqStat); User::WaitForRequest(reqStat); - test(reqStat==KErrCancel); + test_Value(reqStat.Int(), reqStat==KErrCancel); fs.NotifyChangeCancel(reqStat2); User::WaitForRequest(reqStat2); - test(reqStat2==KErrCancel); + test_Value(reqStat2.Int(), reqStat2==KErrCancel); fs.NotifyChangeCancel(reqStat3); User::WaitForRequest(reqStat3); - test(reqStat3==KErrCancel); + test_Value(reqStat3.Int(), reqStat3==KErrCancel); path=_L("\\F32-TEST\\NOTIFY\\"); fs.NotifyChange(ENotifyAll,reqStat,path); fs.NotifyChange(ENotifyEntry,reqStat2,path); fs.NotifyChange(ENotifyDir,reqStat3,path); - test(reqStat==KRequestPending); - test(reqStat2==KRequestPending); - test(reqStat3==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); r=TheFs.Rename(_L("\\F32-TEST\\NOTIFY\\"),_L("\\F32-TEST\\NOTIFY_CHANGED\\")); test_KErrNone(r); @@ -3800,9 +3796,9 @@ User::WaitForRequest(reqStat2); User::WaitForRequest(reqStat3); - test(reqStat==KErrNone); // Rename the directory we were monitoring - test(reqStat2==KErrNone); - test(reqStat3==KErrNone); + test_KErrNone(reqStat.Int()); // Rename the directory we were monitoring + test_KErrNone(reqStat2.Int()); + test_KErrNone(reqStat3.Int()); // Tidy up the test directory before continuing (while testing notifications of renaming to the monitored directory) @@ -3812,10 +3808,10 @@ fs.NotifyChange(ENotifyDir,reqStat3,path); fs.NotifyChange(ENotifyFile,reqStat4,path); - test(reqStat==KRequestPending); - test(reqStat2==KRequestPending); - test(reqStat3==KRequestPending); - test(reqStat4==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); r=TheFs.Rename(_L("\\F32-TEST\\"),_L("\\F32-TST\\")); test_KErrNone(r); @@ -3824,14 +3820,14 @@ User::WaitForRequest(reqStat2); User::WaitForRequest(reqStat3); - test(reqStat==KErrNone); // Renaming to (under) the directory we were monitoring - test(reqStat2==KErrNone); - test(reqStat3==KErrNone); - test(reqStat4==KRequestPending); + test_KErrNone(reqStat.Int()); // Renaming to (under) the directory we were monitoring + test_KErrNone(reqStat2.Int()); + test_KErrNone(reqStat3.Int()); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); fs.NotifyChangeCancel(reqStat4); User::WaitForRequest(reqStat4); - test(reqStat4==KErrCancel); + test_Value(reqStat4.Int(), reqStat4==KErrCancel); path=_L("\\F32-TST\\NOTIFY\\"); fs.NotifyChange(ENotifyAll,reqStat,path); @@ -3839,10 +3835,10 @@ fs.NotifyChange(ENotifyDir,reqStat3,path); fs.NotifyChange(ENotifyFile,reqStat4,path); - test(reqStat==KRequestPending); - test(reqStat2==KRequestPending); - test(reqStat3==KRequestPending); - test(reqStat4==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); r=TheFs.Rename(_L("\\F32-TST\\NOTIFY_CHANGED\\"),_L("\\F32-TST\\NOTIFY\\")); test_KErrNone(r); @@ -3851,14 +3847,14 @@ User::WaitForRequest(reqStat2); User::WaitForRequest(reqStat3); - test(reqStat==KErrNone); // Renaming to the directory we were monitoring - test(reqStat2==KErrNone); - test(reqStat3==KErrNone); - test(reqStat4==KRequestPending); + test_KErrNone(reqStat.Int()); // Renaming to the directory we were monitoring + test_KErrNone(reqStat2.Int()); + test_KErrNone(reqStat3.Int()); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); fs.NotifyChangeCancel(reqStat4); User::WaitForRequest(reqStat4); - test(reqStat4==KErrCancel); + test_Value(reqStat4.Int(), reqStat4==KErrCancel); // Test combinations of notify types test.Next(_L("Test combinations of notify types")); @@ -3869,24 +3865,24 @@ fs.NotifyChange((TNotifyType)(ENotifyDir|ENotifyFile),reqStat3,path); fs.NotifyChange((TNotifyType)(ENotifyDisk|ENotifyAttributes),reqStat4,path); - test(reqStat==KRequestPending); - test(reqStat2==KRequestPending); - test(reqStat3==KRequestPending); - test(reqStat4==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); r=file.Create(TheFs,_L("\\F32-TST\\NOTIFY\\Munchkin.msg"),EFileRead|EFileWrite); test_KErrNone(r); User::WaitForRequest(reqStat); User::WaitForRequest(reqStat2); User::WaitForRequest(reqStat3); - test(reqStat==KErrNone); - test(reqStat2==KErrNone); - test(reqStat3==KErrNone); - test(reqStat4==KRequestPending); // Monitoring ENotifyAttributes|ENotifyDisk + test_KErrNone(reqStat.Int()); + test_KErrNone(reqStat2.Int()); + test_KErrNone(reqStat3.Int()); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); // Monitoring ENotifyAttributes|ENotifyDisk file.Close(); fs.NotifyChangeCancel(reqStat4); User::WaitForRequest(reqStat4); - test(reqStat4==KErrCancel); + test_Value(reqStat4.Int(), reqStat4==KErrCancel); // RFile::SetModified() fs.NotifyChange(ENotifyAll,reqStat,path); @@ -3894,28 +3890,28 @@ fs.NotifyChange((TNotifyType)(ENotifyDir|ENotifyFile),reqStat3,path); fs.NotifyChange((TNotifyType)(ENotifyDisk|ENotifyAttributes),reqStat4,path); - test(reqStat==KRequestPending); - test(reqStat2==KRequestPending); - test(reqStat3==KRequestPending); - test(reqStat4==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); TTime nowTime; nowTime.HomeTime(); r=file.Open(TheFs,_L("\\F32-TST\\NOTIFY\\Munchkin.msg"),EFileRead|EFileWrite); test_KErrNone(r); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); file.SetModified(now); file.Close(); User::WaitForRequest(reqStat); User::WaitForRequest(reqStat2); User::WaitForRequest(reqStat4); - test(reqStat==KErrNone); - test(reqStat2==KErrNone); - test(reqStat3==KRequestPending); - test(reqStat4==KErrNone); + test_KErrNone(reqStat.Int()); + test_KErrNone(reqStat2.Int()); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); + test_KErrNone(reqStat4.Int()); fs.NotifyChangeCancel(); User::WaitForRequest(reqStat3); - test(reqStat3==KErrCancel); + test_Value(reqStat3.Int(), reqStat3==KErrCancel); // RFile::Write() fs.NotifyChange(ENotifyAll,reqStat,path); @@ -3923,10 +3919,10 @@ fs.NotifyChange((TNotifyType)(ENotifyFile|ENotifyWrite),reqStat3,path); fs.NotifyChange((TNotifyType)(ENotifyDir|ENotifyWrite),reqStat4,path); - test(reqStat==KRequestPending); - test(reqStat2==KRequestPending); - test(reqStat3==KRequestPending); - test(reqStat4==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); r=file.Open(TheFs,_L("\\F32-TST\\NOTIFY\\Munchkin.msg"),EFileRead|EFileWrite); test_KErrNone(r); @@ -3935,13 +3931,13 @@ User::WaitForRequest(reqStat); User::WaitForRequest(reqStat3); User::WaitForRequest(reqStat4); - test(reqStat==KErrNone); - test(reqStat2==KRequestPending); - test(reqStat3==KErrNone); - test(reqStat4==KErrNone); + test_KErrNone(reqStat.Int()); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_KErrNone(reqStat3.Int()); + test_KErrNone(reqStat4.Int()); fs.NotifyChangeCancel(reqStat2); // Cancels all outstanding notification requests User::WaitForRequest(reqStat2); - test(reqStat2==KErrCancel); + test_Value(reqStat2.Int(), reqStat2==KErrCancel); // RFs::Delete() test.Next(_L("RFs::Delete()")); @@ -3950,23 +3946,23 @@ fs.NotifyChange((TNotifyType)(ENotifyFile|ENotifyWrite),reqStat3,path); fs.NotifyChange((TNotifyType)(ENotifyDir|ENotifyWrite),reqStat4,path); - test(reqStat==KRequestPending); - test(reqStat2==KRequestPending); - test(reqStat3==KRequestPending); - test(reqStat4==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); + test_Value(reqStat2.Int(), reqStat2==KRequestPending); + test_Value(reqStat3.Int(), reqStat3==KRequestPending); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); r=TheFs.Delete(_L("\\F32-TST\\NOTIFY\\Munchkin.msg")); test_KErrNone(r); User::WaitForRequest(reqStat); User::WaitForRequest(reqStat2); User::WaitForRequest(reqStat3); - test(reqStat==KErrNone); - test(reqStat2==KErrNone); - test(reqStat3==KErrNone); - test(reqStat4==KRequestPending); + test_KErrNone(reqStat.Int()); + test_KErrNone(reqStat2.Int()); + test_KErrNone(reqStat3.Int()); + test_Value(reqStat4.Int(), reqStat4==KRequestPending); fs.NotifyChangeCancel(reqStat4); User::WaitForRequest(reqStat4); - test(reqStat4==KErrCancel); + test_Value(reqStat4.Int(), reqStat4==KErrCancel); fs.Close(); } @@ -3998,12 +3994,12 @@ // ask the user to eject the media TheFs.NotifyChange(ENotifyEntry,reqStat); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); test.Printf(_L("Please eject media on drive %C...\n"), 'A' + driveNum); User::WaitForRequest(reqStat); test.Printf(_L("Done.\n")); TInt reqInt=reqStat.Int(); - test(reqInt==KErrNone); + test_KErrNone(reqInt); User::WaitForRequest(reqStat); // verify TDriveInfo.iType == EMediaNotPresent @@ -4015,12 +4011,12 @@ // ask the user to re-insert the media TheFs.NotifyChange(ENotifyEntry,reqStat); - test(reqStat==KRequestPending); + test_Value(reqStat.Int(), reqStat==KRequestPending); test.Printf(_L("Please re-insert media...\n")); User::WaitForRequest(reqStat); test.Printf(_L("Done.\n")); reqInt = reqStat.Int(); - test(reqInt==KErrNone); + test_KErrNone(reqInt); User::WaitForRequest(reqStat); // verify TDriveInfo.iType == EMediaHardDisk @@ -4063,8 +4059,8 @@ TBuf8<596> readBuf; reader.Read(0, readBuf, 100, readStat1); User::WaitForRequest(readStat1); - test(readStat1==KErrNone); - test(readBuf.Length()==0); + test_KErrNone(readStat1.Int()); + test_Equal(0, readBuf.Length()); reader.Close(); test.Next(_L("Test asynchronous read fails in EFileShareExclusive mode")); @@ -4079,19 +4075,19 @@ r=reader.Open(TheFs,_L("\\F32-TST\\NOTIFY\\NewFile.txt"),EFileRead|EFileReadAsyncAll|EFileShareAny); test_KErrNone(r); reader.Read(0, readBuf, 100, readStat1); - test(readStat1==KRequestPending); + test_Value(readStat1.Int(), readStat1==KRequestPending); reader.Close(); User::WaitForRequest(readStat1); - test(readStat1==KErrCancel); + test_Value(readStat1.Int(), readStat1==KErrCancel); test.Next(_L("Test asynchronous read can be cancelled")); r=reader.Open(TheFs,_L("\\F32-TST\\NOTIFY\\NewFile.txt"),EFileRead|EFileReadAsyncAll|EFileShareAny); test_KErrNone(r); reader.Read(0, readBuf, 100, readStat1); - test(readStat1==KRequestPending); + test_Value(readStat1.Int(), readStat1==KRequestPending); reader.ReadCancel(readStat1); User::WaitForRequest(readStat1); - test(readStat1==KErrCancel); + test_Value(readStat1.Int(), readStat1==KErrCancel); reader.Close(); // DEF105438: File server thread safety issues @@ -4103,11 +4099,11 @@ RThread thisThread; thisThread.SetPriority(EPriorityRealTime); reader.Read(0, readBuf, 100, readStat1); - test(readStat1==KRequestPending); + test_Value(readStat1.Int(), readStat1==KRequestPending); reader.ReadCancel(readStat1); test.Printf(_L("readStat1 %d"), readStat1.Int()); User::WaitForRequest(readStat1); - test(readStat1==KErrCancel); + test_Value(readStat1.Int(), readStat1==KErrCancel); reader.Close(); thisThread.SetPriority(EPriorityNormal); @@ -4115,12 +4111,12 @@ r=reader.Open(TheFs,_L("\\F32-TST\\NOTIFY\\NewFile.txt"),EFileRead|EFileReadAsyncAll|EFileWrite|EFileShareAny); test_KErrNone(r); reader.Read(0, readBuf, 100, readStat1); - test(readStat1==KRequestPending); + test_Value(readStat1.Int(), readStat1==KRequestPending); r = reader.SetSize(100); test_KErrNone(r); User::WaitForRequest(readStat1); - test(readStat1==KErrNone); - test(readBuf.Length() == 100); + test_KErrNone(readStat1.Int()); + test_Equal(100, readBuf.Length()); r=reader.SetSize(0); test_KErrNone(r); reader.Close(); @@ -4129,13 +4125,13 @@ r=reader.Open(TheFs,_L("\\F32-TST\\NOTIFY\\NewFile.txt"),EFileRead|EFileReadAsyncAll|EFileWrite|EFileShareAny); test_KErrNone(r); reader.Read(0, readBuf, 26, readStat1); - test(readStat1==KRequestPending); + test_Value(readStat1.Int(), readStat1==KRequestPending); RFile writer; r=writer.Open(TheFs,_L("\\F32-TST\\NOTIFY\\NewFile.txt"),EFileWrite|EFileShareAny); writer.Write(_L8("ABCDEFGHIJKLMNOPQRSTUVWXYZ")); User::WaitForRequest(readStat1); - test(readStat1==KErrNone); - test(readBuf.Length() == 26); + test_KErrNone(readStat1.Int()); + test_Equal(26, readBuf.Length()); reader.Close(); writer.Close(); @@ -4150,8 +4146,8 @@ TBuf8<596> readBuf2; test.Printf(_L(">Read%d[%d]\n"), 1, KReadLen); reader.Read(KReadLen, readBuf2, KReadLen, readStat2); - test(readStat1==KRequestPending); - test(readStat2==KRequestPending); + test_Value(readStat1.Int(), readStat1==KRequestPending); + test_Value(readStat2.Int(), readStat2==KRequestPending); RThread thread; r=thread.Create(_L("MyThread"),ThreadEntryPoint,KDefaultStackSize,KHeapSize,KHeapSize,(TAny*)ETest12); @@ -4164,7 +4160,7 @@ TRequestStatus timerStat(KRequestPending); timer.CreateLocal(); timer.After(timerStat, 30000000); // 30 seconds timeout (the following async test should take 10 seconds) - test(timerStat==KRequestPending); + test_Value(timerStat.Int(), timerStat==KRequestPending); #define ODDPASS (pass&0x01) #define REQSTAT (ODDPASS ? readStat2 : readStat1) @@ -4178,13 +4174,13 @@ FOREVER { User::WaitForRequest(REQSTAT, timerStat); - test(REQSTAT==KErrNone); - test(timerStat==KRequestPending); - test(READBUF.Length() == COMPLEN); + test_KErrNone(REQSTAT.Int()); + test_Value(timerStat.Int(), timerStat==KRequestPending); + test_Equal(COMPLEN, READBUF.Length()); test(READBUF.Right(KReadLen) == _L8("ABCDEFGHIJKLMNOPQRSTUVWXYZ")); test.Printf(_L(">Read%d[%d]\n"), pass&0x01, READLEN); reader.Read(READPOS, READBUF, READLEN, REQSTAT); - test(REQSTAT==KRequestPending); + test_Value(REQSTAT.Int(), REQSTAT==KRequestPending); if(++pass==10) break; } @@ -4194,12 +4190,12 @@ User::WaitForRequest(timerStat); reader.Close(); User::WaitForRequest(readStat1); - test(readStat1==KErrCancel); + test_Value(readStat1.Int(), readStat1==KErrCancel); User::WaitForRequest(readStat2); - test(readStat2==KErrCancel); + test_Value(readStat2.Int(), readStat2==KErrCancel); User::WaitForRequest(thrdStat); - test(thrdStat==KErrNone); + test_KErrNone(thrdStat.Int()); } @@ -4219,7 +4215,7 @@ //-- set up notifier TheFs.NotifyChange(ENotifyAll, reqStatNotify1, KTestPath); - test(reqStatNotify1.Int() == KRequestPending); + test_Value(reqStatNotify1.Int(), reqStatNotify1 == KRequestPending); //-- create a file in the root dir RFile file; @@ -4233,7 +4229,7 @@ //-- check that the notifier worked User::WaitForRequest(reqStatNotify1); - test(reqStatNotify1.Int() == KErrNone); + test_KErrNone(reqStatNotify1.Int()); } @@ -4324,7 +4320,7 @@ // Test RFs::NotifyChange() extended notification TInt uid; - test(HAL::Get(HAL::EMachineUid,uid)==KErrNone); + test_KErrNone(HAL::Get(HAL::EMachineUid,uid)); if(uid!=HAL::EMachineUid_Cogent && uid!=HAL::EMachineUid_IQ80310 && uid != HAL::EMachineUid_Integrator && uid!=HAL::EMachineUid_X86PC) MediaChangeExtendedNotification(); diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/smassstorage/scripts/usbinterop1.pl --- a/kerneltest/f32test/smassstorage/scripts/usbinterop1.pl Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/smassstorage/scripts/usbinterop1.pl Wed Jun 23 19:44:53 2010 +0300 @@ -279,8 +279,4 @@ TestExpectedResults: Read data from files should match with written. -=head1 COPYRIGHT - -Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). All rights reserved. - =cut diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/smassstorage/scripts/usbinterop2.pl --- a/kerneltest/f32test/smassstorage/scripts/usbinterop2.pl Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/smassstorage/scripts/usbinterop2.pl Wed Jun 23 19:44:53 2010 +0300 @@ -163,8 +163,4 @@ with written. Sum of file size and free space should be close to drive size. -=head1 COPYRIGHT - -Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). All rights reserved. - =cut diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/smassstorage/scripts/usbperformance.pl --- a/kerneltest/f32test/smassstorage/scripts/usbperformance.pl Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/smassstorage/scripts/usbperformance.pl Wed Jun 23 19:44:53 2010 +0300 @@ -174,8 +174,4 @@ free space for the file that is going to be created. The default size is 400 MB. -=head1 COPYRIGHT - - Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). All rights reserved. - =cut diff -r 657f875b013e -r 73ea206103e6 kerneltest/f32test/smassstorage/scripts/usbperformance_multifile.pl --- a/kerneltest/f32test/smassstorage/scripts/usbperformance_multifile.pl Fri Jun 11 15:02:23 2010 +0300 +++ b/kerneltest/f32test/smassstorage/scripts/usbperformance_multifile.pl Wed Jun 23 19:44:53 2010 +0300 @@ -186,8 +186,4 @@ free space for the file that is going to be created. The default size is 400 MB. -=head1 COPYRIGHT - -Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). All rights reserved. - =cut diff -r 657f875b013e -r 73ea206103e6 package_definition.xml --- a/package_definition.xml Fri Jun 11 15:02:23 2010 +0300 +++ b/package_definition.xml Wed Jun 23 19:44:53 2010 +0300 @@ -141,7 +141,7 @@ - + diff -r 657f875b013e -r 73ea206103e6 userlibandfileserver/fileserver/bmarm/efileu.def --- a/userlibandfileserver/fileserver/bmarm/efileu.def Fri Jun 11 15:02:23 2010 +0300 +++ b/userlibandfileserver/fileserver/bmarm/efileu.def Wed Jun 23 19:44:53 2010 +0300 @@ -241,4 +241,4 @@ GetDriveInfo__FR10TDriveInfoi @ 240 NONAME R3UNUSED ; GetDriveInfo(TDriveInfo &, int) Volume__C9RFsPluginR11TVolumeInfoi @ 241 NONAME R3UNUSED ; RFsPlugin::Volume(TVolumeInfo &, int) const IsSequentialMode__C7CFileCB @ 242 NONAME R3UNUSED ; CFileCB::IsSequentialMode(void) const - + DirectIOMode__7CFileCBRC12RMessagePtr2 @ 243 NONAME R3UNUSED ; CFileCB::DirectIOMode(RMessagePtr2 const &) diff -r 657f875b013e -r 73ea206103e6 userlibandfileserver/fileserver/bwins/efileu.def --- a/userlibandfileserver/fileserver/bwins/efileu.def Fri Jun 11 15:02:23 2010 +0300 +++ b/userlibandfileserver/fileserver/bwins/efileu.def Wed Jun 23 19:44:53 2010 +0300 @@ -242,4 +242,4 @@ ?GetDriveInfo@@YAXAAVTDriveInfo@@H@Z @ 241 NONAME ; void GetDriveInfo(class TDriveInfo &, int) ?Volume@RFsPlugin@@QBEHAAVTVolumeInfo@@H@Z @ 242 NONAME ; int RFsPlugin::Volume(class TVolumeInfo &, int) const ?IsSequentialMode@CFileCB@@QBEHXZ @ 243 NONAME ; int CFileCB::IsSequentialMode(void) const - + ?DirectIOMode@CFileCB@@QAEHABVRMessagePtr2@@@Z @ 244 NONAME ; int CFileCB::DirectIOMode(class RMessagePtr2 const &) diff -r 657f875b013e -r 73ea206103e6 userlibandfileserver/fileserver/bx86/efileu.def --- a/userlibandfileserver/fileserver/bx86/efileu.def Fri Jun 11 15:02:23 2010 +0300 +++ b/userlibandfileserver/fileserver/bx86/efileu.def Wed Jun 23 19:44:53 2010 +0300 @@ -242,4 +242,5 @@ ?GetDriveInfo@@YAXAAVTDriveInfo@@H@Z @ 241 NONAME ; void __cdecl GetDriveInfo(class TDriveInfo &,int) ?Volume@RFsPlugin@@QBEHAAVTVolumeInfo@@H@Z @ 242 NONAME ; public: int __thiscall RFsPlugin::Volume(class TVolumeInfo &,int)const ?IsSequentialMode@CFileCB@@QBEHXZ @ 243 NONAME ; public: int __thiscall CFileCB::IsSequentialMode(void)const + ?DirectIOMode@CFileCB@@QAEHABVRMessagePtr2@@@Z @ 244 NONAME ; int CFileCB::DirectIOMode(class RMessagePtr2 const &) diff -r 657f875b013e -r 73ea206103e6 userlibandfileserver/fileserver/eabi/efileu.def --- a/userlibandfileserver/fileserver/eabi/efileu.def Fri Jun 11 15:02:23 2010 +0300 +++ b/userlibandfileserver/fileserver/eabi/efileu.def Wed Jun 23 19:44:53 2010 +0300 @@ -314,4 +314,5 @@ _ZNK11CFileSystem9DriveInfoER10TDriveInfoi @ 313 NONAME _ZNK9RFsPlugin6VolumeER11TVolumeInfoi @ 314 NONAME _ZNK7CFileCB16IsSequentialModeEv @ 315 NONAME + _ZN7CFileCB12DirectIOModeERK12RMessagePtr2 @ 316 NONAME diff -r 657f875b013e -r 73ea206103e6 userlibandfileserver/fileserver/group/release.txt --- a/userlibandfileserver/fileserver/group/release.txt Fri Jun 11 15:02:23 2010 +0300 +++ b/userlibandfileserver/fileserver/group/release.txt Wed Jun 23 19:44:53 2010 +0300 @@ -1,3 +1,48 @@ +Version 2.00.3046 +================= +(Made by vfebvre 07/06/2010) + +1. davegord + 1. ou1cimx1#414735 Occasional Loader crashes observed during T_WSD_TST_* tests + Crash caused by interrupt occurring during handling of SWI called from + SVC mode -- which is not supported. Fix is for Loader not to call RDebug + methods while executing in supervisor mode. + + +Version 2.00.3045 +================= +(Made by vfebvre 04/06/2010) + +1. famustaf + 1. ou1cimx1#383105 Modify F32 Tests for Platsim's HVFS + + +Version 2.00.3044 +================= +(Made by vfebvre 27/05/2010) + +1. vfebvre + 1. ou1cimx1#400806 Warnings reported by the Symbian Foundation license checker + +2. h14jiang + 1. DEF145205 File server crash observed when running F32TEST T_PLUGIN_V2 + +3. michcox + 1. ou1cimx1#378866 MCL Symbian.org Bug 2544 - Possible deadlocks on f32 plugin chains + +4. vinjose + 1. ou1cimx1#394794 Raptor creates incorrect .iby files for f32test/loader + + +Version 2.00.3043 +================= +(Made by vfebvre 27/05/2010) + +1. paconway + 1. REQ 417-56766 MBBMS over CMMB for TD-SCDMA Gen. 2 MobileTv + PackageReleaseID=497412 FeatureReleaseID=494378 + + Version 2.00.3042 ================= (Made by vfebvre 14/05/2010) diff -r 657f875b013e -r 73ea206103e6 userlibandfileserver/fileserver/inc/f32fsys.h --- a/userlibandfileserver/fileserver/inc/f32fsys.h Fri Jun 11 15:02:23 2010 +0300 +++ b/userlibandfileserver/fileserver/inc/f32fsys.h Wed Jun 23 19:44:53 2010 +0300 @@ -1632,6 +1632,7 @@ IMPORT_C TInt64 Size64() const; IMPORT_C void SetSize64(TInt64 aSize, TBool aDriveLocked); IMPORT_C void SetMaxSupportedSize(TUint64 aMaxFileSize); + IMPORT_C TBool DirectIOMode(const RMessagePtr2& aMessage); TInt64 CachedSize64() const; diff -r 657f875b013e -r 73ea206103e6 userlibandfileserver/fileserver/inc/f32ver.h --- a/userlibandfileserver/fileserver/inc/f32ver.h Fri Jun 11 15:02:23 2010 +0300 +++ b/userlibandfileserver/fileserver/inc/f32ver.h Wed Jun 23 19:44:53 2010 +0300 @@ -58,6 +58,6 @@ @see TVersion */ -const TInt KF32BuildVersionNumber=3042; +const TInt KF32BuildVersionNumber=3046; // #endif diff -r 657f875b013e -r 73ea206103e6 userlibandfileserver/fileserver/sfat32/inc/sl_std.h --- a/userlibandfileserver/fileserver/sfat32/inc/sl_std.h Fri Jun 11 15:02:23 2010 +0300 +++ b/userlibandfileserver/fileserver/sfat32/inc/sl_std.h Wed Jun 23 19:44:53 2010 +0300 @@ -92,12 +92,12 @@ //-- public interface to the local drive. Provides media driver's error handling (critical and non-critical user notifiers) //-- and thread-safety if required. - TInt ReadNonCritical(TInt64 aPos,TInt aLength,const TAny* aTrg,const RMessagePtr2 &aMessage,TInt anOffset) const; + TInt ReadNonCritical(TInt64 aPos,TInt aLength,const TAny* aTrg,const RMessagePtr2 &aMessage,TInt anOffset, TUint aFlag) const; TInt ReadNonCritical(TInt64 aPos,TInt aLength,TDes8& aTrg) const; TInt ReadCritical(TInt64 aPos,TInt aLength,TDes8& aTrg) const; TInt WriteCritical(TInt64 aPos,const TDesC8& aSrc); - TInt WriteNonCritical(TInt64 aPos,TInt aLength,const TAny* aSrc,const RMessagePtr2 &aMessage,TInt anOffset); + TInt WriteNonCritical(TInt64 aPos,TInt aLength,const TAny* aSrc,const RMessagePtr2 &aMessage,TInt anOffset, TUint aFlag); TInt GetLastErrorInfo(TDes8& aErrorInfo) const; @@ -148,9 +148,9 @@ inline void LeaveCriticalSection() const {iLock.Signal();} //-- methods' wrappers that are used by TDriveInterface - TInt Read(TInt64 aPos,TInt aLength,const TAny* aTrg,const RMessagePtr2 &aMessage,TInt anOffset) const; + TInt Read(TInt64 aPos,TInt aLength,const TAny* aTrg,const RMessagePtr2 &aMessage,TInt anOffset, TUint aFlag) const; TInt Read(TInt64 aPos,TInt aLength,TDes8& aTrg) const; - TInt Write(TInt64 aPos,TInt aLength,const TAny* aSrc,const RMessagePtr2 &aMessage,TInt anOffset); + TInt Write(TInt64 aPos,TInt aLength,const TAny* aSrc,const RMessagePtr2 &aMessage,TInt anOffset, TUint aFlag); TInt Write(TInt64 aPos, const TDesC8& aSrc); TInt GetLastErrorInfo(TDes8& aErrorInfo) const; TInt Caps(TDes8& anInfo) const; @@ -336,7 +336,7 @@ @param aMessage Refrence to server message from request @param anOffset Offset into read data to write */ - virtual void ReadL(TInt64 aPos,TInt aLength,const TAny* aTrg,const RMessagePtr2 &aMessage,TInt anOffset) const = 0; + virtual void ReadL(TInt64 aPos,TInt aLength,const TAny* aTrg,const RMessagePtr2 &aMessage,TInt anOffset, TUint aFlag) const = 0; /** Disk write function @@ -347,7 +347,7 @@ @param aMessage Refrence to server message from request, contains data @param anOffset Offset into write data to use in write */ - virtual void WriteL(TInt64 aPos,TInt aLength,const TAny* aSrc,const RMessagePtr2 &aMessage,TInt anOffset) = 0; + virtual void WriteL(TInt64 aPos,TInt aLength,const TAny* aSrc,const RMessagePtr2 &aMessage,TInt anOffset, TUint aFlag) = 0; virtual inline MWTCacheInterface* DirCacheInterface(); @@ -570,8 +570,8 @@ void DirReadL(const TEntryPos& aPos,TInt aLength,TDes8& aDes) const; void DirWriteL(const TEntryPos& aPos,const TDesC8& aDes); - void ReadFromClusterListL(TEntryPos& aPos,TInt aLength,const TAny* aTrg,const RMessagePtr2& aMessage,TInt anOffset) const; - void WriteToClusterListL(TEntryPos& aPos,TInt aLength,const TAny* aSrc,const RMessagePtr2& aMessage,TInt anOffset, TUint& aBadcluster, TUint& aGoodcluster); + void ReadFromClusterListL(TEntryPos& aPos,TInt aLength,const TAny* aTrg,const RMessagePtr2& aMessage,TInt anOffset, TUint aFlag) const; + void WriteToClusterListL(TEntryPos& aPos,TInt aLength,const TAny* aSrc,const RMessagePtr2& aMessage,TInt anOffset, TUint& aBadcluster, TUint& aGoodcluster, TUint aFlag); void MoveToNextEntryL(TEntryPos& aPos) const; void MoveToDosEntryL(TEntryPos& aPos,TFatDirEntry& anEntry) const; @@ -703,8 +703,8 @@ void DoCheckFatForLoopsL(TUint32 aCluster, TUint32& aPreviousCluster, TUint32& aChangePreviousCluster, TUint32& aCount) const; void InitializeL(const TLocalDriveCaps& aLocDrvCaps, TBool aIgnoreFSInfo=EFalse); - void DoReadFromClusterListL(TEntryPos& aPos,TInt aLength,const TAny* aTrg,const RMessagePtr2& aMessage,TInt anOffset) const; - void DoWriteToClusterListL(TEntryPos& aPos,TInt aLength,const TAny* aSrc,const RMessagePtr2& aMessage,TInt anOffset, TUint aLastcluster, TUint& aBadcluster, TUint& aGoodcluster); + void DoReadFromClusterListL(TEntryPos& aPos,TInt aLength,const TAny* aTrg,const RMessagePtr2& aMessage,TInt anOffset, TUint aFlag) const; + void DoWriteToClusterListL(TEntryPos& aPos,TInt aLength,const TAny* aSrc,const RMessagePtr2& aMessage,TInt anOffset, TUint aLastcluster, TUint& aBadcluster, TUint& aGoodcluster, TUint aFlag); TBool IsUniqueNameL(const TShortName& aName, TUint32 aDirCluster); TBool FindShortNameL(const TShortName& aName,TEntryPos& anEntryPos); diff -r 657f875b013e -r 73ea206103e6 userlibandfileserver/fileserver/sfat32/sl_disk.cpp --- a/userlibandfileserver/fileserver/sfat32/sl_disk.cpp Fri Jun 11 15:02:23 2010 +0300 +++ b/userlibandfileserver/fileserver/sfat32/sl_disk.cpp Wed Jun 23 19:44:53 2010 +0300 @@ -286,11 +286,11 @@ @leave on error */ -void CAtaDisk::ReadL(TInt64 aPos,TInt aLength,const TAny* aTrg,const RMessagePtr2 &aMessage,TInt anOffset) const +void CAtaDisk::ReadL(TInt64 aPos,TInt aLength,const TAny* aTrg,const RMessagePtr2 &aMessage,TInt anOffset, TUint aFlag) const { __PRINT4(_L("CAtaDisk::ReadL() pos:%u:%u, len:%u, offset:%u"), I64HIGH(aPos), I64LOW(aPos), aLength, anOffset); - User::LeaveIfError(iDrive.ReadNonCritical(aPos,aLength,aTrg,aMessage,anOffset)); + User::LeaveIfError(iDrive.ReadNonCritical(aPos,aLength,aTrg,aMessage,anOffset, aFlag)); } //------------------------------------------------------------------------------------- @@ -309,12 +309,12 @@ @leave on error */ -void CAtaDisk::WriteL(TInt64 aPos,TInt aLength,const TAny* aSrc,const RMessagePtr2 &aMessage,TInt anOffset) +void CAtaDisk::WriteL(TInt64 aPos,TInt aLength,const TAny* aSrc,const RMessagePtr2 &aMessage,TInt anOffset, TUint aFlag) { __PRINT4(_L("CAtaDisk::WriteL() pos:%u:%u, len:%u, offset:%u"), I64HIGH(aPos), I64LOW(aPos), aLength, anOffset); //-- write data to the media directly - User::LeaveIfError(iDrive.WriteNonCritical(aPos,aLength,aSrc,aMessage,anOffset)); + User::LeaveIfError(iDrive.WriteNonCritical(aPos,aLength,aSrc,aMessage,anOffset, aFlag)); //-- we need to invalidate UID cache page that corresponds to aPos (if any). This is UID caching specific. UID is stored in the first few bytes of //-- the executable module and therefore belongs to one cache page only. @@ -444,7 +444,7 @@ // // Read from ramDrive into thread relative descriptor // -void CRamDisk::ReadL(TInt64 aPos,TInt aLength,const TAny* /*aTrg*/,const RMessagePtr2 &aMessage,TInt anOffset) const +void CRamDisk::ReadL(TInt64 aPos,TInt aLength,const TAny* /*aTrg*/,const RMessagePtr2 &aMessage,TInt anOffset, TUint /*aFlag*/) const { __PRINT2(_L("CRamDisk::ReadL TAny* Pos 0x%x, Len %d"),aPos,aLength); __ASSERT_ALWAYS((aPos+aLength<=I64INT(iFatMount->Size())) && (aLength>=0),User::Leave(KErrCorrupt)); @@ -457,7 +457,7 @@ // // Write from thread relative descriptor into ramDrive // -void CRamDisk::WriteL(TInt64 aPos,TInt aLength,const TAny* /*aSrc*/,const RMessagePtr2 &aMessage,TInt anOffset) +void CRamDisk::WriteL(TInt64 aPos,TInt aLength,const TAny* /*aSrc*/,const RMessagePtr2 &aMessage,TInt anOffset, TUint /*aFlag*/) { __PRINT2(_L("CRamDisk::WriteL TAny* Pos 0x%x, Len %d"),aPos,aLength); __ASSERT_ALWAYS(aPos+aLength<=I64INT(iFatMount->Size()),User::Leave(KErrCorrupt)); diff -r 657f875b013e -r 73ea206103e6 userlibandfileserver/fileserver/sfat32/sl_disk.h --- a/userlibandfileserver/fileserver/sfat32/sl_disk.h Fri Jun 11 15:02:23 2010 +0300 +++ b/userlibandfileserver/fileserver/sfat32/sl_disk.h Wed Jun 23 19:44:53 2010 +0300 @@ -49,8 +49,8 @@ virtual void InvalidateUidCachePage(TUint64 aPos); - void ReadL(TInt64 aPos,TInt aLength,const TAny* aTrg,const RMessagePtr2 &aMessage,TInt anOffset) const; - void WriteL(TInt64 aPos,TInt aLength,const TAny* aSrc,const RMessagePtr2 &aMessage,TInt anOffset); + void ReadL(TInt64 aPos,TInt aLength,const TAny* aTrg,const RMessagePtr2 &aMessage,TInt anOffset, TUint aFlag) const; + void WriteL(TInt64 aPos,TInt aLength,const TAny* aSrc,const RMessagePtr2 &aMessage,TInt anOffset, TUint aFlag); virtual TInt GetLastErrorInfo(TDes8& aErrorInfo) const; MWTCacheInterface* DirCacheInterface(); @@ -80,11 +80,9 @@ public: void ReadCachedL(TInt64 aPos,TInt aLength,TDes8& aDes) const; void WriteCachedL(TInt64 aPos,const TDesC8& aDes); - void ReadL(TInt64 aPos,TInt aLength,const TAny* aTrg,const RMessagePtr2 &aMessage,TInt anOffset) const; - void WriteL(TInt64 aPos,TInt aLength,const TAny* aSrc,const RMessagePtr2 &aMessage,TInt anOffset); - - - + void ReadL(TInt64 aPos,TInt aLength,const TAny* aTrg,const RMessagePtr2 &aMessage,TInt anOffset, TUint aFlag) const; + void WriteL(TInt64 aPos,TInt aLength,const TAny* aSrc,const RMessagePtr2 &aMessage,TInt anOffset, TUint aFlag); + private: inline TUint8 *RamDiskBase() const; diff -r 657f875b013e -r 73ea206103e6 userlibandfileserver/fileserver/sfat32/sl_drv.cpp --- a/userlibandfileserver/fileserver/sfat32/sl_drv.cpp Fri Jun 11 15:02:23 2010 +0300 +++ b/userlibandfileserver/fileserver/sfat32/sl_drv.cpp Wed Jun 23 19:44:53 2010 +0300 @@ -117,7 +117,7 @@ @return KErrBadPower - failure due to low power */ -TInt TDriveInterface::ReadNonCritical(TInt64 aPos,TInt aLength,const TAny* aTrg,const RMessagePtr2 &aMessage,TInt anOffset) const +TInt TDriveInterface::ReadNonCritical(TInt64 aPos,TInt aLength,const TAny* aTrg,const RMessagePtr2 &aMessage,TInt anOffset, TUint aFlag) const { //__PRINT2(_L("#=+++ Read_nc2: pos:%LU, len:%u"), aPos, aLength); @@ -126,7 +126,7 @@ for(;;) { - nRes = iProxyDrive.Read(aPos, aLength, aTrg, aMessage, anOffset); + nRes = iProxyDrive.Read(aPos, aLength, aTrg, aMessage, anOffset, aFlag); if (nRes==KErrNone) break; @@ -200,7 +200,7 @@ @return KErrCorrupt - an illegal write is detected @return KErrAccessDenied - write to protected media */ -TInt TDriveInterface::WriteNonCritical(TInt64 aPos, TInt aLength, const TAny* aSrc, const RMessagePtr2 &aMessage, TInt anOffset) +TInt TDriveInterface::WriteNonCritical(TInt64 aPos, TInt aLength, const TAny* aSrc, const RMessagePtr2 &aMessage, TInt anOffset, TUint aFlag) { //__PRINT2(_L("#=+++ Write_NC: pos:%LU, len:%u"), aPos, aLength); @@ -211,7 +211,7 @@ for(;;) { iMount->OpenMountForWrite(); //-- make a callback to CFatMountCB to perform some actions on 1st write. - nRes = iProxyDrive.Write(aPos, aLength, aSrc, aMessage, anOffset); + nRes = iProxyDrive.Write(aPos, aLength, aSrc, aMessage, anOffset, aFlag); if (nRes==KErrNone) break; @@ -542,10 +542,10 @@ //-- see original TDriveInterface methods -TInt TDriveInterface::XProxyDriveWrapper::Read(TInt64 aPos,TInt aLength,const TAny* aTrg,const RMessagePtr2 &aMessage,TInt anOffset) const +TInt TDriveInterface::XProxyDriveWrapper::Read(TInt64 aPos,TInt aLength,const TAny* aTrg,const RMessagePtr2 &aMessage,TInt anOffset, TUint aFlag) const { EnterCriticalSection(); - TInt nRes = iLocalDrive->Read(aPos, aLength, aTrg, aMessage.Handle(), anOffset); + TInt nRes = iLocalDrive->Read(aPos, aLength, aTrg, aMessage.Handle(), anOffset, aFlag); LeaveCriticalSection(); return nRes; } @@ -558,10 +558,10 @@ return nRes; } -TInt TDriveInterface::XProxyDriveWrapper::Write(TInt64 aPos,TInt aLength,const TAny* aSrc,const RMessagePtr2 &aMessage,TInt anOffset) +TInt TDriveInterface::XProxyDriveWrapper::Write(TInt64 aPos,TInt aLength,const TAny* aSrc,const RMessagePtr2 &aMessage,TInt anOffset, TUint aFlag) { EnterCriticalSection(); - TInt nRes = iLocalDrive->Write(aPos, aLength, aSrc, aMessage.Handle(), anOffset); + TInt nRes = iLocalDrive->Write(aPos, aLength, aSrc, aMessage.Handle(), anOffset, aFlag); LeaveCriticalSection(); return nRes; } diff -r 657f875b013e -r 73ea206103e6 userlibandfileserver/fileserver/sfat32/sl_file.cpp --- a/userlibandfileserver/fileserver/sfat32/sl_file.cpp Fri Jun 11 15:02:23 2010 +0300 +++ b/userlibandfileserver/fileserver/sfat32/sl_file.cpp Wed Jun 23 19:44:53 2010 +0300 @@ -245,8 +245,10 @@ if((startPos + length > curSize) || (startPos > startPos + length) ) aLength=curSize-startPos; + + TUint flag = DirectIOMode(aMessage) ? RLocalDrive::ELocDrvDirectIO : 0; - FatMount().ReadFromClusterListL(iCurrentPos,aLength,aDes,aMessage,aOffset); + FatMount().ReadFromClusterListL(iCurrentPos,aLength,aDes,aMessage,aOffset, flag); aLength=iCurrentPos.iPos-startPos; } @@ -295,7 +297,9 @@ TUint badcluster=0; TUint goodcluster=0; - TRAPD(ret, FatMount().WriteToClusterListL(iCurrentPos,aLength,aSrc,aMessage,aOffset,badcluster, goodcluster)); + TUint flag = DirectIOMode(aMessage) ? RLocalDrive::ELocDrvDirectIO : 0; + + TRAPD(ret, FatMount().WriteToClusterListL(iCurrentPos,aLength,aSrc,aMessage,aOffset,badcluster, goodcluster, flag)); if (ret == KErrCorrupt || ret == KErrDied) { diff -r 657f875b013e -r 73ea206103e6 userlibandfileserver/fileserver/sfat32/sl_mnt.cpp --- a/userlibandfileserver/fileserver/sfat32/sl_mnt.cpp Fri Jun 11 15:02:23 2010 +0300 +++ b/userlibandfileserver/fileserver/sfat32/sl_mnt.cpp Wed Jun 23 19:44:53 2010 +0300 @@ -1607,7 +1607,7 @@ /** Overwrite as many contiguous file clusters as possible. */ -void CFatMountCB::DoWriteToClusterListL(TEntryPos& aPos,TInt aLength,const TAny* aSrc,const RMessagePtr2& aMessage,TInt anOffset, TUint aLastcluster, TUint& aBadcluster, TUint& aGoodcluster) +void CFatMountCB::DoWriteToClusterListL(TEntryPos& aPos,TInt aLength,const TAny* aSrc,const RMessagePtr2& aMessage,TInt anOffset, TUint aLastcluster, TUint& aBadcluster, TUint& aGoodcluster, TUint aFlag) { __PRINT(_L("CFatMountCB::DoWriteToClusterListL")); @@ -1621,7 +1621,7 @@ const TInt writeLength=Min(aLength,(clusterListLen<WriteL(dataStart,writeLength,aSrc,aMessage,anOffset)); + TRAPD(r, iRawDisk->WriteL(dataStart,writeLength,aSrc,aMessage,anOffset, aFlag)); if(r == KErrNone) // Write succeded { @@ -1736,7 +1736,7 @@ //----------------------------------------------------------------------------------------- -void CFatMountCB::WriteToClusterListL(TEntryPos& aPos,TInt aLength,const TAny* aSrc,const RMessagePtr2& aMessage,TInt anOffset, TUint& aBadcluster, TUint& aGoodcluster) +void CFatMountCB::WriteToClusterListL(TEntryPos& aPos,TInt aLength,const TAny* aSrc,const RMessagePtr2& aMessage,TInt anOffset, TUint& aBadcluster, TUint& aGoodcluster, TUint aFlag) // // Overwrite cluster list. // @@ -1758,7 +1758,7 @@ TInt previouscluster=0; FOREVER { - DoWriteToClusterListL(aPos,length-offset,aSrc,aMessage,anOffset+offset, previouscluster, aBadcluster, aGoodcluster); + DoWriteToClusterListL(aPos,length-offset,aSrc,aMessage,anOffset+offset, previouscluster, aBadcluster, aGoodcluster, aFlag); if (offset == (aPos.iPos-startPos)) continue; offset=aPos.iPos-startPos; @@ -1773,7 +1773,7 @@ //----------------------------------------------------------------------------------------- -void CFatMountCB::DoReadFromClusterListL(TEntryPos& aPos,TInt aLength,const TAny* aTrg,const RMessagePtr2& aMessage,TInt anOffset) const +void CFatMountCB::DoReadFromClusterListL(TEntryPos& aPos,TInt aLength,const TAny* aTrg,const RMessagePtr2& aMessage,TInt anOffset, TUint aFlag) const // // Read from as many contiguous file clusters as possible // @@ -1789,7 +1789,7 @@ const TInt readLength=Min(aLength,(clusterListLen<ReadL(dataStart,readLength,aTrg,aMessage,anOffset)); + TRAPD(r, iRawDisk->ReadL(dataStart,readLength,aTrg,aMessage,anOffset, aFlag)); if(r == KErrNone) // Read succeded { @@ -1814,7 +1814,7 @@ //----------------------------------------------------------------------------------------- -void CFatMountCB::ReadFromClusterListL(TEntryPos& aPos,TInt aLength,const TAny* aTrg,const RMessagePtr2& aMessage,TInt anOffset) const +void CFatMountCB::ReadFromClusterListL(TEntryPos& aPos,TInt aLength,const TAny* aTrg,const RMessagePtr2& aMessage,TInt anOffset, TUint aFlag) const // // Read from cluster list // @@ -1834,7 +1834,7 @@ TInt offset=0; FOREVER { - DoReadFromClusterListL(aPos,aLength-offset,aTrg,aMessage,anOffset+offset); + DoReadFromClusterListL(aPos,aLength-offset,aTrg,aMessage,anOffset+offset, aFlag); offset=aPos.iPos-startPos; if ((offset0,Fault(EReadFileSectionFailed)); TInt64 dataAddress=(FAT().DataPositionInBytes(cluster))+pos; - iRawDisk->ReadL(dataAddress,readLength,aTrg,aMessage,readTotal); + iRawDisk->ReadL(dataAddress,readLength,aTrg,aMessage,readTotal, 0); readTotal += readLength; if (readTotal == aLength) @@ -3256,7 +3256,7 @@ // Read aLength of data from disk directly to thread relative descriptor // { - iRawDisk->ReadL(aPos,aLength,aTrg,aMessage,anOffset); + iRawDisk->ReadL(aPos,aLength,aTrg,aMessage,anOffset, 0); } //----------------------------------------------------------------------------------------- @@ -3271,7 +3271,7 @@ //-- check if we are trying to write to the FAT directly and wait until FAT scan thread finishes in this case. FAT().RequestRawWriteAccess(aPos, aLength); - iRawDisk->WriteL(aPos,aLength,aSrc,aMessage,anOffset); + iRawDisk->WriteL(aPos,aLength,aSrc,aMessage,anOffset, 0); //-- Note: FAT directory cache will be invalidated in MountL() } diff -r 657f875b013e -r 73ea206103e6 userlibandfileserver/fileserver/sfat32/sl_mnt32.cpp --- a/userlibandfileserver/fileserver/sfat32/sl_mnt32.cpp Fri Jun 11 15:02:23 2010 +0300 +++ b/userlibandfileserver/fileserver/sfat32/sl_mnt32.cpp Wed Jun 23 19:44:53 2010 +0300 @@ -1073,7 +1073,7 @@ TInt readLength = (TInt)Min((TInt64)(aLength-readTotal),(clusterListLen<0,Fault(EReadFileSectionFailed)); TInt64 dataAddress=(FAT().DataPositionInBytes(cluster))+pos; - iRawDisk->ReadL(dataAddress,readLength,aTrg,aMessage,readTotal); + iRawDisk->ReadL(dataAddress,readLength,aTrg,aMessage,readTotal, 0); readTotal += readLength; if (readTotal == aLength) diff -r 657f875b013e -r 73ea206103e6 userlibandfileserver/fileserver/sfile/sf_file.cpp --- a/userlibandfileserver/fileserver/sfile/sf_file.cpp Fri Jun 11 15:02:23 2010 +0300 +++ b/userlibandfileserver/fileserver/sfile/sf_file.cpp Wed Jun 23 19:44:53 2010 +0300 @@ -701,8 +701,18 @@ // Current operation points to a local buffer // The request originated from the file server (e.g. file cache) with a local message handle (KLocalMessageHandle) TPtr8 dataDesc((TUint8*) currentOperation.iReadWriteArgs.iData + currentOperation.iReadWriteArgs.iOffset, len, len); - const RLocalMessage msg; - TRAP(r,file->ReadL(pos, len, &dataDesc, msg, 0)); + + // save the client's RMessage2 + const RMessage2 msgClient = aRequest->Message(); + + // overwrite RMessage2 in CFsMessageRequest with RLocalMessage + const RLocalMessage msgLocal; + const_cast (aRequest->Message()) = msgLocal; + + TRAP(r,file->ReadL(pos, len, &dataDesc, aRequest->Message(), 0)); + + // restore the client's RMessage2 + const_cast (aRequest->Message()) = msgClient; } } @@ -1099,8 +1109,18 @@ else { TPtr8 dataDesc((TUint8*) currentOperation.iReadWriteArgs.iData + currentOperation.iReadWriteArgs.iOffset, len, len); - const RLocalMessage msg; - TRAP(r,file->WriteL(pos, len, &dataDesc, msg, 0)); + + // save the client's RMessage2 + const RMessage2 msgClient = aRequest->Message(); + + // overwrite RMessage2 in CFsMessageRequest with RLocalMessage + const RLocalMessage msgLocal; + const_cast (aRequest->Message()) = msgLocal; + + TRAP(r,file->WriteL(pos, len, &dataDesc, aRequest->Message(), 0)); + + // restore the client's RMessage2 + const_cast (aRequest->Message()) = msgClient; } } @@ -3670,13 +3690,25 @@ - - - - - - - - - - +EXPORT_C TBool CFileCB::DirectIOMode(const RMessagePtr2& aMessage) + { + CFsMessageRequest* msgRequest = CFsMessageRequest::RequestFromMessage(aMessage); + + TInt func = msgRequest->Operation()->Function(); + ASSERT(func == EFsFileRead || func == EFsFileWrite || func == EFsFileWriteDirty || func == EFsReadFileSection); + + CFileShare* share; + CFileCB* file; + GetFileFromScratch(msgRequest, share, file); + if (share == NULL) // no share indicates this is a request originating from the file cache + return EFalse; + + return func == EFsFileRead ? share->iMode & EFileReadDirectIO : share->iMode & EFileWriteDirectIO; + } + + + + + + + diff -r 657f875b013e -r 73ea206103e6 userlibandfileserver/fileserver/sfile/sf_lepoc.cpp --- a/userlibandfileserver/fileserver/sfile/sf_lepoc.cpp Fri Jun 11 15:02:23 2010 +0300 +++ b/userlibandfileserver/fileserver/sfile/sf_lepoc.cpp Wed Jun 23 19:44:53 2010 +0300 @@ -287,9 +287,22 @@ } } -// A version that will work in user or supervisor mode -void MyPrintf(const char* aFmt, ...) +/** +It would be nice to be able to print debug information from the various functions +supervisor-mode functions below. Unfortunately, we can't call RDebug::Printf() or +any of its relatives in supervisor mode, and of course we can't call the equivalent +kernel functions even when we're already in supervisor mode, because the entry +points aren't visible. + +So this function just wraps and guards the call to RDebug, so we won't call it +in SVC mode. The outcome is that trace messages are only generated if using the +flexible memory model, where the code doesn't actually run in SVC mode anyway. +*/ +void svPrintf(const char* aFmt, ...) { + if (gExecutesInSupervisorMode) + return; + VA_LIST list; VA_START(list, aFmt); TPtrC8 fmt((const TText8*)aFmt); @@ -379,15 +392,15 @@ E32Image& exporter = *(E32Image*)aPtr; // Dump everything potentially useful that we know about the exporter ... - __LDRTRACE(MyPrintf("RelocateExports: paged? %d, iRomImageHeader@%08x, iHeader@%08x", + __LDRTRACE(svPrintf("RelocateExports: paged? %d, iRomImageHeader@%08x, iHeader@%08x", exporter.iUseCodePaging, exporter.iRomImageHeader, exporter.iHeader)); - __LDRTRACE(MyPrintf(" iCodeLoadAddress %08x, iCodeRunAddress %08x, iCodeSize %x iTextSize %x", + __LDRTRACE(svPrintf(" iCodeLoadAddress %08x, iCodeRunAddress %08x, iCodeSize %x iTextSize %x", exporter.iCodeLoadAddress, exporter.iCodeRunAddress, exporter.iCodeSize, exporter.iTextSize)) - __LDRTRACE(MyPrintf(" iDataLoadAddress %08x, iDataRunAddress %08x, iDataSize %x iBssSize %x iTotalDataSize %x", + __LDRTRACE(svPrintf(" iDataLoadAddress %08x, iDataRunAddress %08x, iDataSize %x iBssSize %x iTotalDataSize %x", exporter.iDataLoadAddress, exporter.iDataRunAddress, exporter.iDataSize, exporter.iBssSize, exporter.iTotalDataSize)); - __LDRTRACE(MyPrintf(" iCodeDelta, %x iDataDelta %x, iExportDirEntryDelta %x", + __LDRTRACE(svPrintf(" iCodeDelta, %x iDataDelta %x, iExportDirEntryDelta %x", exporter.iCodeDelta, exporter.iDataDelta, exporter.iExportDirEntryDelta)); // It turns out that very little of the exporter info is useful! For @@ -429,7 +442,7 @@ newValue = relocAddr; // unknown - just leave it alone *destExport++ = newValue; - __LDRTRACE(MyPrintf("RelocateExports: export %d %08x => %08x %c", + __LDRTRACE(svPrintf("RelocateExports: export %d %08x => %08x %c", exporter.iExportDirCount-i, relocAddr, newValue, (relocAddr >= codeStart && relocAddr < codeFinish) ? 'C' : (relocAddr >= dataStart && relocAddr < dataFinish) ? 'D' : 'X')); @@ -471,39 +484,39 @@ E32Image& exporter = *info.iExporter; #ifdef _DEBUG - __LDRTRACE(MyPrintf(">svFixupImportAddresses %d imports, code@%08x, fixup@%08x exporter@%08x", + __LDRTRACE(svPrintf(">svFixupImportAddresses %d imports, code@%08x, fixup@%08x exporter@%08x", info.iNumImports, info.iCodeLoadAddress, info.iFixup64, info.iExporter)); // Dump everything potentially useful that we know about the exporter ... - __LDRTRACE(MyPrintf("%S: paged? %d, iRomImageHeader@%08x, iHeader@%08x", + __LDRTRACE(svPrintf("%S: paged? %d, iRomImageHeader@%08x, iHeader@%08x", &exporter.iFileName, exporter.iUseCodePaging, exporter.iRomImageHeader, exporter.iHeader)); - __LDRTRACE(MyPrintf("iCodeLoadAddress %08x, iCodeRunAddress %08x, iCodeSize %x iTextSize %x", + __LDRTRACE(svPrintf("iCodeLoadAddress %08x, iCodeRunAddress %08x, iCodeSize %x iTextSize %x", exporter.iCodeLoadAddress, exporter.iCodeRunAddress, exporter.iCodeSize, exporter.iTextSize)) - __LDRTRACE(MyPrintf("iDataLoadAddress %08x, iDataRunAddress %08x, iDataSize %x iBssSize %x iTotalDataSize %x", + __LDRTRACE(svPrintf("iDataLoadAddress %08x, iDataRunAddress %08x, iDataSize %x iBssSize %x iTotalDataSize %x", exporter.iDataLoadAddress, exporter.iDataRunAddress, exporter.iDataSize, exporter.iBssSize, exporter.iTotalDataSize)); - __LDRTRACE(MyPrintf("iCodeDelta, %x iDataDelta %x, iExportDirEntryDelta %x", + __LDRTRACE(svPrintf("iCodeDelta, %x iDataDelta %x, iExportDirEntryDelta %x", exporter.iCodeDelta, exporter.iDataDelta, exporter.iExportDirEntryDelta)); if (exporter.iRomImageHeader) { const TRomImageHeader& rh = *exporter.iRomImageHeader; - __LDRTRACE(MyPrintf("ROM: iCodeAddress %08x, iCodeSize %x, iTextSize %x", + __LDRTRACE(svPrintf("ROM: iCodeAddress %08x, iCodeSize %x, iTextSize %x", rh.iCodeAddress, rh.iCodeSize, rh.iTextSize)); - __LDRTRACE(MyPrintf("ROM: iDataAddress %08x, iDataSize %x, iBssSize %x", + __LDRTRACE(svPrintf("ROM: iDataAddress %08x, iDataSize %x, iBssSize %x", rh.iDataAddress, rh.iDataSize, rh.iBssSize)); - __LDRTRACE(MyPrintf("ROM: iDataBssLinearBase %08x, iTotalDataSize %x", + __LDRTRACE(svPrintf("ROM: iDataBssLinearBase %08x, iTotalDataSize %x", rh.iDataBssLinearBase, rh.iTotalDataSize)); } if (exporter.iHeader) { const E32ImageHeader& ih = *exporter.iHeader; - __LDRTRACE(MyPrintf("HEAD: iCodeBase %08x, iCodeSize %x, iTextSize %x", + __LDRTRACE(svPrintf("HEAD: iCodeBase %08x, iCodeSize %x, iTextSize %x", ih.iCodeBase, ih.iCodeSize, ih.iTextSize)); - __LDRTRACE(MyPrintf("HEAD: iDataBase %08x, iDataSize %x, iBssSize %x", + __LDRTRACE(svPrintf("HEAD: iDataBase %08x, iDataSize %x, iBssSize %x", ih.iDataBase, ih.iDataSize, ih.iBssSize)); } #endif // _DEBUG @@ -538,7 +551,7 @@ newValue = expAddr; } - __LDRTRACE(MyPrintf("svFixupImportAddresses: import[%d]@%08x is export[%d] == %08x", + __LDRTRACE(svPrintf("svFixupImportAddresses: import[%d]@%08x is export[%d] == %08x", iat - info.iIat, iat, ordinal, newValue)); // In non-paged code, we can simply replace the ordinals in the IAT with the @@ -573,39 +586,39 @@ E32Image& exporter = *info.iExporter; #ifdef _DEBUG - __LDRTRACE(MyPrintf(">svElfDerivedFixupImportAddresses %d imports, code@%08x, fixup@%08x exporter@%08x", + __LDRTRACE(svPrintf(">svElfDerivedFixupImportAddresses %d imports, code@%08x, fixup@%08x exporter@%08x", info.iNumImports, info.iCodeLoadAddress, info.iFixup64, info.iExporter)); // Dump everything potentially useful that we know about the exporter ... - __LDRTRACE(MyPrintf("%S: paged? %d, iRomImageHeader@%08x, iHeader@%08x", + __LDRTRACE(svPrintf("%S: paged? %d, iRomImageHeader@%08x, iHeader@%08x", &exporter.iFileName, exporter.iUseCodePaging, exporter.iRomImageHeader, exporter.iHeader)); - __LDRTRACE(MyPrintf("iCodeLoadAddress %08x, iCodeRunAddress %08x, iCodeSize %x iTextSize %x", + __LDRTRACE(svPrintf("iCodeLoadAddress %08x, iCodeRunAddress %08x, iCodeSize %x iTextSize %x", exporter.iCodeLoadAddress, exporter.iCodeRunAddress, exporter.iCodeSize, exporter.iTextSize)) - __LDRTRACE(MyPrintf("iDataLoadAddress %08x, iDataRunAddress %08x, iDataSize %x iBssSize %x iTotalDataSize %x", + __LDRTRACE(svPrintf("iDataLoadAddress %08x, iDataRunAddress %08x, iDataSize %x iBssSize %x iTotalDataSize %x", exporter.iDataLoadAddress, exporter.iDataRunAddress, exporter.iDataSize, exporter.iBssSize, exporter.iTotalDataSize)); - __LDRTRACE(MyPrintf("iCodeDelta, %x iDataDelta %x, iExportDirEntryDelta %x", + __LDRTRACE(svPrintf("iCodeDelta, %x iDataDelta %x, iExportDirEntryDelta %x", exporter.iCodeDelta, exporter.iDataDelta, exporter.iExportDirEntryDelta)); if (exporter.iRomImageHeader) { const TRomImageHeader& rh = *exporter.iRomImageHeader; - __LDRTRACE(MyPrintf("ROM: iCodeAddress %08x, iCodeSize %x, iTextSize %x", + __LDRTRACE(svPrintf("ROM: iCodeAddress %08x, iCodeSize %x, iTextSize %x", rh.iCodeAddress, rh.iCodeSize, rh.iTextSize)); - __LDRTRACE(MyPrintf("ROM: iDataAddress %08x, iDataSize %x, iBssSize %x", + __LDRTRACE(svPrintf("ROM: iDataAddress %08x, iDataSize %x, iBssSize %x", rh.iDataAddress, rh.iDataSize, rh.iBssSize)); - __LDRTRACE(MyPrintf("ROM: iDataBssLinearBase %08x, iTotalDataSize %x", + __LDRTRACE(svPrintf("ROM: iDataBssLinearBase %08x, iTotalDataSize %x", rh.iDataBssLinearBase, rh.iTotalDataSize)); } if (exporter.iHeader) { const E32ImageHeader& ih = *exporter.iHeader; - __LDRTRACE(MyPrintf("HEAD: iCodeBase %08x, iCodeSize %x, iTextSize %x", + __LDRTRACE(svPrintf("HEAD: iCodeBase %08x, iCodeSize %x, iTextSize %x", ih.iCodeBase, ih.iCodeSize, ih.iTextSize)); - __LDRTRACE(MyPrintf("HEAD: iDataBase %08x, iDataSize %x, iBssSize %x", + __LDRTRACE(svPrintf("HEAD: iDataBase %08x, iDataSize %x, iBssSize %x", ih.iDataBase, ih.iDataSize, ih.iBssSize)); } #endif // _DEBUG @@ -700,7 +713,7 @@ newValue = expAddr + sectionDelta + adjustment; } - __LDRTRACE(MyPrintf("svElfDerivedFixupImportAddresses: import[%d] (%08x:%08x) is export[%d] %08x+%08x => %08x", + __LDRTRACE(svPrintf("svElfDerivedFixupImportAddresses: import[%d] (%08x:%08x) is export[%d] %08x+%08x => %08x", iol - info.iImportOffsetList, codePtr, importInfo, ordinal, expAddr, adjustment, newValue)); // In non-paged code, we can simply replace the ordinals in the IAT with the @@ -3248,30 +3261,6 @@ } -/** -This function is defined because RArray does not natively support -sorting 64-bit integers. - -It is used by FixupDlls to order the import fixup locations in the image -so they can be organized by page. - -@param aLeft 64-bit unsigned integer to compare against aRight. -@param aRight 64-bit unsigned integer to compare against aLeft. -@return -1 if aLeft < aRight; 0 if aLeft == aRight; and - +1 if aLeft > aRight. This conforms to the behavior - which is expected from a function used by TLinearOrder. -*/ -static TInt Uint64LinearOrderFunc(const TUint64& aLeft, const TUint64& aRight) - { - if (aLeft < aRight) - return -1; - else if (aLeft > aRight) - return 1; - else - return 0; - } - - TUint64* E32Image::ExpandFixups(TInt aNumFixups) { __IF_DEBUG(Printf("ExpandFixups,%d+%d", iFixupCount,aNumFixups)); @@ -3315,8 +3304,10 @@ // sort the array in address order, to organize by page RArray fixup64ToSort(sizeof(TUint64), iFixups, iFixupCount); - // SortUnsigned doesn't work on TUint64 - fixup64ToSort.Sort(TLinearOrder(Uint64LinearOrderFunc)); + + // address is in high word of entry, offset 4 + fixup64ToSort.SetKeyOffset(4); + fixup64ToSort.SortUnsigned(); // now have
pairs, organize into pages. // Each page is stored as fXXX YYYY ZZZZ where YYYY ZZZZ is written diff -r 657f875b013e -r 73ea206103e6 userlibandfileserver/fileserver/sfile/sf_plugin.h --- a/userlibandfileserver/fileserver/sfile/sf_plugin.h Fri Jun 11 15:02:23 2010 +0300 +++ b/userlibandfileserver/fileserver/sfile/sf_plugin.h Wed Jun 23 19:44:53 2010 +0300 @@ -66,7 +66,7 @@ static TInt IsInChain(TInt aUPos, TInt aPos,TInt aDrive, CFsPluginFactory* aPluginFactory); static CFsPlugin* FindByUniquePosition(TInt aPos); - static TInt InitPlugin(CFsPlugin& aPlugin); + static TInt InitPlugin(CFsPlugin& aPlugin, RLibrary aLibrary); static void TransferRequests(CPluginThread* aPluginThread); static void CancelPlugin(CFsPlugin* aPlugin,CSessionFs* aSession); static TInt ChainCount(); diff -r 657f875b013e -r 73ea206103e6 userlibandfileserver/fileserver/sfile/sf_plugin_man.cpp --- a/userlibandfileserver/fileserver/sfile/sf_plugin_man.cpp Fri Jun 11 15:02:23 2010 +0300 +++ b/userlibandfileserver/fileserver/sfile/sf_plugin_man.cpp Wed Jun 23 19:44:53 2010 +0300 @@ -162,7 +162,7 @@ return err; } - err = InitPlugin(*pP); + err = InitPlugin(*pP, aPluginFactory.Library()); if(err != KErrNone) { return err; @@ -624,13 +624,13 @@ Create a plugin thread Should only by called from main file server thread with plugin thread unavailable */ -TInt FsPluginManager::InitPlugin(CFsPlugin& aPlugin) +TInt FsPluginManager::InitPlugin(CFsPlugin& aPlugin, RLibrary aLibrary) { TInt err = KErrNone; if(!aPlugin.iThreadP) { - TRAP(err,aPlugin.iThreadP=CPluginThread::NewL(aPlugin)); + TRAP(err,aPlugin.iThreadP=CPluginThread::NewL(aPlugin, aLibrary)); if(err!=KErrNone) return err; } @@ -745,11 +745,12 @@ FsPluginManager::LockChain(); TInt count = FsPluginManager::ChainCount(); + TInt oldCount = count; TInt i; for(i=0; iiCurrentPlugin = plugin; aRequest->Status() = KRequestPending; @@ -761,6 +762,12 @@ FsPluginManager::LockChain(); __ASSERT_ALWAYS(aRequest->Status().Int()==KErrNone||aRequest->Status().Int()==KErrCancel,Fault(ESessionDisconnectThread2)); count = FsPluginManager::ChainCount(); + //If a plugin was removed whilst the chain was unlocked we need to make sure we don't skip any plugins + if(count != oldCount) + { + i=0; + oldCount = count; + } } FsPluginManager::UnlockChain(); diff -r 657f875b013e -r 73ea206103e6 userlibandfileserver/fileserver/sfile/sf_plugin_ops.cpp --- a/userlibandfileserver/fileserver/sfile/sf_plugin_ops.cpp Fri Jun 11 15:02:23 2010 +0300 +++ b/userlibandfileserver/fileserver/sfile/sf_plugin_ops.cpp Wed Jun 23 19:44:53 2010 +0300 @@ -252,8 +252,11 @@ CFsPlugin* plugin=NULL; FsPluginManager::LockChain(); TInt err = FsPluginManager::Plugin(plugin, aRequest->Message().Int2()); - if(err != KErrNone) + if(err != KErrNone) //should be ok but just in case + { + FsPluginManager::UnlockChain(); return err; + } TInt r = KErrNotFound; if(plugin) diff -r 657f875b013e -r 73ea206103e6 userlibandfileserver/fileserver/sfile/sf_std.h --- a/userlibandfileserver/fileserver/sfile/sf_std.h Fri Jun 11 15:02:23 2010 +0300 +++ b/userlibandfileserver/fileserver/sfile/sf_std.h Wed Jun 23 19:44:53 2010 +0300 @@ -114,6 +114,8 @@ #define __PLUGIN_PRINT3(t,a,b,c) #endif +#define _LOFF(p,T,f) ((T*)(((TUint8*)(p))-_FOFF(T,f))) + const TInt KMaxTotalDriveReserved =0x100000; const TInt KMaxSessionDriveReserved =0x10000; @@ -807,7 +809,7 @@ NONSHARABLE_CLASS(CPluginThread) : public CRequestThread { public: - CPluginThread(CFsPlugin& aPlugin); + CPluginThread(CFsPlugin& aPlugin, RLibrary aLibrary); ~CPluginThread(); void CompleteSessionRequests(CSessionFs* aSession, TInt aValue); @@ -819,7 +821,7 @@ void OperationLockSignal(); private: - static CPluginThread* NewL(CFsPlugin& aPlugin); + static CPluginThread* NewL(CFsPlugin& aPlugin, RLibrary aLibrary); TUint StartL(); virtual TInt DoThreadInitialise(); private: @@ -828,6 +830,7 @@ /** @prototype */ RSemaphore iOperationLock; + RLibrary iLib; // contains a handle to the library which created the plugin friend class FsPluginManager; }; @@ -1311,6 +1314,7 @@ inline void Init(); void ReStart(); TBool IsPluginRequest(); + static inline CFsMessageRequest* RequestFromMessage(const RMessagePtr2& aMessage); // UID of the process to touching the file. (To be used in notification framework). // TUid iUID; diff -r 657f875b013e -r 73ea206103e6 userlibandfileserver/fileserver/sfile/sf_std.inl --- a/userlibandfileserver/fileserver/sfile/sf_std.inl Fri Jun 11 15:02:23 2010 +0300 +++ b/userlibandfileserver/fileserver/sfile/sf_std.inl Wed Jun 23 19:44:53 2010 +0300 @@ -252,6 +252,11 @@ void CFsMessageRequest::SetMessage(RMessage2& aMessage) {iMessage=aMessage;} + +CFsMessageRequest* CFsMessageRequest::RequestFromMessage(const RMessagePtr2& aMessage) + {return _LOFF(&aMessage, CFsMessageRequest, iMessage);} + + TMsgOperation* CFsMessageRequest::CurrentOperationPtr() {return iCurrentOperation;} diff -r 657f875b013e -r 73ea206103e6 userlibandfileserver/fileserver/sfile/sf_thread.cpp --- a/userlibandfileserver/fileserver/sfile/sf_thread.cpp Fri Jun 11 15:02:23 2010 +0300 +++ b/userlibandfileserver/fileserver/sfile/sf_thread.cpp Wed Jun 23 19:44:53 2010 +0300 @@ -926,24 +926,34 @@ } -CPluginThread::CPluginThread(CFsPlugin& aPlugin) - : iPlugin(aPlugin) +CPluginThread::CPluginThread(CFsPlugin& aPlugin, RLibrary aLibrary) + : iPlugin(aPlugin), iLib(aLibrary) { /** @prototype */ iOperationLock.Close(); iPlugin.Open(); + + /* + Duplicate the handle to the DLL which created the plugin to prevent + TFsRemovePlugin::DoRequestL() from unmapping the DLL's code segment before + this thread's destructor has been called as the destructor closes the plugin + which results in a call to the plugin's derived destructor contained in the DLL (!) + */ + TInt r = iLib.Duplicate(iThread, EOwnerProcess); + __ASSERT_ALWAYS(r==KErrNone, Fault(EFsThreadConstructor)); } CPluginThread::~CPluginThread() { iPlugin.Close(); + iLib.Close(); } -CPluginThread* CPluginThread::NewL(CFsPlugin& aPlugin) +CPluginThread* CPluginThread::NewL(CFsPlugin& aPlugin, RLibrary aLibrary) { __PRINT(_L("CPluginThread::NewL()")); - CPluginThread* pT=new(ELeave) CPluginThread(aPlugin); + CPluginThread* pT=new(ELeave) CPluginThread(aPlugin, aLibrary); TInt r=pT->Initialise(); /** @prototype */