# HG changeset patch # User Dremov Kirill (Nokia-D-MSW/Tampere) # Date 1276257743 -10800 # Node ID 657f875b013ed343faa63d5a301b0e1667a43c06 # Parent 95f71bcdcdb7221198af04e874d47d9a86672a42 Revision: 201023 Kit: 2010123 diff -r 95f71bcdcdb7 -r 657f875b013e baseapitest/basesvs/group/basesvs.mrp --- a/baseapitest/basesvs/group/basesvs.mrp Thu May 27 14:17:14 2010 +0300 +++ b/baseapitest/basesvs/group/basesvs.mrp Fri Jun 11 15:02:23 2010 +0300 @@ -1,19 +1,3 @@ -# -# 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 "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: -# - component basesvs source \sf\os\kernelhwsrv\baseapitest\basesvs notes_source \sf\os\kernelhwsrv\baseapitest\basesvs\group\release.txt diff -r 95f71bcdcdb7 -r 657f875b013e brdbootldr/ubootldr/base_ubootldr.mrp --- a/brdbootldr/ubootldr/base_ubootldr.mrp Thu May 27 14:17:14 2010 +0300 +++ b/brdbootldr/ubootldr/base_ubootldr.mrp Fri Jun 11 15:02:23 2010 +0300 @@ -1,18 +1,3 @@ -# -# 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 "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: -# # component name "Bootstrap" component base_ubootldr diff -r 95f71bcdcdb7 -r 657f875b013e brdbootldr/ubootldr/inflate.c --- a/brdbootldr/ubootldr/inflate.c Thu May 27 14:17:14 2010 +0300 +++ b/brdbootldr/ubootldr/inflate.c Fri Jun 11 15:02:23 2010 +0300 @@ -1,19 +1,3 @@ -/* -* 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 "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: -* -*/ /* inflate.c -- Not copyrighted 1992 by Mark Adler version c10p1, 10 January 1993 */ diff -r 95f71bcdcdb7 -r 657f875b013e bsptemplate/asspandvariant/base_template.mrp --- a/bsptemplate/asspandvariant/base_template.mrp Thu May 27 14:17:14 2010 +0300 +++ b/bsptemplate/asspandvariant/base_template.mrp Fri Jun 11 15:02:23 2010 +0300 @@ -1,18 +1,3 @@ -# -# 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 "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: -# # component name "Template Variant" component base_template diff -r 95f71bcdcdb7 -r 657f875b013e bsptemplate/asspandvariant/template_assp/pa_usbc.cpp --- a/bsptemplate/asspandvariant/template_assp/pa_usbc.cpp Thu May 27 14:17:14 2010 +0300 +++ b/bsptemplate/asspandvariant/template_assp/pa_usbc.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -1904,7 +1904,7 @@ #ifdef _DEBUG _LIT(KIns, "inserted"); _LIT(KRem, "removed"); - __KTRACE_OPT(KUSB, Kern::Printf(" > USB cable now %lS", ptr->iCableConnected ? &KIns : &KRem)); + __KTRACE_OPT(KUSB, Kern::Printf(" > USB cable now %S", ptr->iCableConnected ? &KIns : &KRem)); #endif if (ptr->iCableConnected) { diff -r 95f71bcdcdb7 -r 657f875b013e bsptemplate/asspandvariant/template_variant/hal/config.hcf --- a/bsptemplate/asspandvariant/template_variant/hal/config.hcf Thu May 27 14:17:14 2010 +0300 +++ b/bsptemplate/asspandvariant/template_variant/hal/config.hcf Fri Jun 11 15:02:23 2010 +0300 @@ -99,3 +99,4 @@ ECustomResourceDrive : set = 0 EDisplayNumberOfScreens=0 ENumCpus=GetNumCpus +EDigitiserOrientation : set = DigitiserOrientation diff -r 95f71bcdcdb7 -r 657f875b013e build.config.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/build.config.xml Fri Jun 11 15:02:23 2010 +0300 @@ -0,0 +1,284 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff -r 95f71bcdcdb7 -r 657f875b013e halservices/hal/base_hal.mrp --- a/halservices/hal/base_hal.mrp Thu May 27 14:17:14 2010 +0300 +++ b/halservices/hal/base_hal.mrp Fri Jun 11 15:02:23 2010 +0300 @@ -1,18 +1,3 @@ -# -# 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 "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: -# # component name "User Side Hardware Abstraction" component base_hal diff -r 95f71bcdcdb7 -r 657f875b013e halservices/hal/inc/hal_data.h --- a/halservices/hal/inc/hal_data.h Thu May 27 14:17:14 2010 +0300 +++ b/halservices/hal/inc/hal_data.h Fri Jun 11 15:02:23 2010 +0300 @@ -1110,6 +1110,13 @@ */ ENumCpus, + /** + The orientation of the Digitiser. Usually mirrors device orientation. + + @see TDigitiserOrientation for allowed values + @capability WriteDeviceData needed to Set this attribute + */ + EDigitiserOrientation, /* * NOTE: @@ -1328,6 +1335,29 @@ EPowerBackupStatus_Good, }; + + /** + Describes the orientation of the screen digitiser, usually mirrors the + device orientation not necessarily the display rotation as this might be + limited to upright and left 90 only. The values in degrees measures + the anti-clockwise angle from the left edge of the digitiser from the + normal default position of the device. + + User-side clients can use attribute to inform the digitiser driver of the + digitiser orientation. The driver may then use this information to adjust + X.Y sampling depending on input pointer type. + + @see HALData::TAttribute + */ + enum TDigitiserOrientation + { + EDigitiserOrientation_default, ///< Driver using build-in default + EDigitiserOrientation_000, ///< Device normal 'make-call' position + EDigitiserOrientation_090, ///< Device rotated left 90 degrees + EDigitiserOrientation_180, ///< Device rotated 180 degrees + EDigitiserOrientation_270 ///< Device rotated right 90 degrees + }; + }; #endif diff -r 95f71bcdcdb7 -r 657f875b013e halservices/hal/rom/hal.hby --- a/halservices/hal/rom/hal.hby Thu May 27 14:17:14 2010 +0300 +++ b/halservices/hal/rom/hal.hby Fri Jun 11 15:02:23 2010 +0300 @@ -1,4 +1,4 @@ -// Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). +// Copyright (c) 2007-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" @@ -139,3 +139,5 @@ #define ESerialNumber 117 #define ECpuProfilingDefaultInterruptBase 118 #define ENumCpus 119 +#define EDigitiserOrientation 120 + diff -r 95f71bcdcdb7 -r 657f875b013e halservices/hal/src/userhal.cpp --- a/halservices/hal/src/userhal.cpp Thu May 27 14:17:14 2010 +0300 +++ b/halservices/hal/src/userhal.cpp Fri Jun 11 15:02:23 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" @@ -41,7 +41,8 @@ EInvalidAttribKeybd=13, EInvalidAttribPen=14, EInvalidAttribMouse=15, - EInvalidAttrib3DPointer=16 + EInvalidAttrib3DPointer=16, + EInvalidAttribDigitiserOrientation=17 }; void Panic(THalUserHalPanic aPanic) @@ -929,3 +930,27 @@ return KErrNone; } +// EDigitiserOrientation +#if defined(_DEBUG) +TInt DigitiserOrientation(TInt aDeviceNumber, TInt aAttrib, TBool aSet, TAny* aInOut) +#else +TInt DigitiserOrientation(TInt aDeviceNumber, TInt /*aAttrib*/, TBool aSet, TAny* aInOut) +#endif + { + __ASSERT_DEBUG(aAttrib == HALData::EDigitiserOrientation, Panic(EInvalidAttribDigitiserOrientation)); + __ASSERT_DEBUG(aDeviceNumber >= 0, Panic(EInvalidAttribDigitiserOrientation)); + + if (aSet) + { + //Set + if ( ((TInt)aInOut) < 0 || ((TInt)aInOut) > HALData::EDigitiserOrientation_270) + return KErrArgument; + return UserSvr::HalFunction(EHalGroupDigitiser, EDigitiserOrientation, aInOut, (TAny*)ETrue, aDeviceNumber); + } + + //Get + __ASSERT_DEBUG(aInOut != 0, Panic(EInvalidAttribDigitiserOrientation)); + return UserSvr::HalFunction(EHalGroupDigitiser, EDigitiserOrientation, aInOut, (TAny*)EFalse, aDeviceNumber); + } + + diff -r 95f71bcdcdb7 -r 657f875b013e halservices/hal/tsrc/t_newhal.cpp --- a/halservices/hal/tsrc/t_newhal.cpp Thu May 27 14:17:14 2010 +0300 +++ b/halservices/hal/tsrc/t_newhal.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -144,7 +144,7 @@ _S("ESerialNumber"), _S("ECpuProfilingDefaultInterruptBase"), _S("ENumCpus"), - + _S("EDigitiserOrientation") }; TInt MatchAbbrev(const TDesC& anInput, const TText** aList, TInt aListLen) @@ -159,7 +159,7 @@ if (r>=0) { // substring matches - if (r==0 && list_entry.Length()==anInput.Length()) + if (r==0 && list_entry.Length()==anInput.Length()) { // exact match return i; diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/base_e32.history.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kernel/eka/base_e32.history.xml Fri Jun 11 15:02:23 2010 +0300 @@ -0,0 +1,9 @@ + + + + + + + MINOR CHANGE: Improved test code T_Match by adding more cases to test for INC092513 (SYSLIB-UNICODE-CT-3337) + + diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/base_e32.mrp --- a/kernel/eka/base_e32.mrp Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/base_e32.mrp Fri Jun 11 15:02:23 2010 +0300 @@ -1,18 +1,3 @@ -# -# 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 "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: -# # component name "Kernel Architecture 2" component base_e32 diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/bld.inf --- a/kernel/eka/bld.inf Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/bld.inf Fri Jun 11 15:02:23 2010 +0300 @@ -262,6 +262,8 @@ include/drivers/resourcecontrol_trace.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(drivers/) include/drivers/resource_category.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(drivers/) include/drivers/resource_extend.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(drivers/) +include/drivers/resourcecontrol_settings.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(drivers/) +include/drivers/resourcecontrol_clientsettings.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(drivers/) // Power Resource Manager User-Side API include/drivers/resmanus_trace.h SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(drivers/) diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/bmarm/ekernsmp.def --- a/kernel/eka/bmarm/ekernsmp.def Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/bmarm/ekernsmp.def Fri Jun 11 15:02:23 2010 +0300 @@ -1054,4 +1054,5 @@ SetNumberOfActiveCpus__5NKerni @ 1053 NONAME 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) diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/bmarm/ekernu.def --- a/kernel/eka/bmarm/ekernu.def Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/bmarm/ekernu.def Fri Jun 11 15:02:23 2010 +0300 @@ -1051,3 +1051,4 @@ Stats__13KernCoreStatsPv @ 1050 NONAME R3UNUSED ; KernCoreStats::Stats(void *) 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) diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/bwins/ekernu.def --- a/kernel/eka/bwins/ekernu.def Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/bwins/ekernu.def Fri Jun 11 15:02:23 2010 +0300 @@ -934,4 +934,5 @@ ?Engage@KernCoreStats@@SAHH@Z @ 933 NONAME ; public: static int KernCoreStats::Engage(int) ?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) diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/bx86/ekernsmp.def --- a/kernel/eka/bx86/ekernsmp.def Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/bx86/ekernsmp.def Fri Jun 11 15:02:23 2010 +0300 @@ -1011,4 +1011,5 @@ ?Stats@KernCoreStats@@SAHPAX@Z @ 1010 NONAME ; public: static int KernCoreStats::Stats(void *) ?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) diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/bx86/ekernu.def --- a/kernel/eka/bx86/ekernu.def Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/bx86/ekernu.def Fri Jun 11 15:02:23 2010 +0300 @@ -956,4 +956,5 @@ ?Retire@KernCoreStats@@SAHHH@Z @ 955 NONAME ; public: static int KernCoreStats::Retire(int, int) ?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) diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/bx86gcc/ekernsmp.def --- a/kernel/eka/bx86gcc/ekernsmp.def Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/bx86gcc/ekernsmp.def Fri Jun 11 15:02:23 2010 +0300 @@ -1099,4 +1099,5 @@ _ZN13KernCoreStats9ConfigureEj @ 1098 NONAME _ZN5NKern21SetNumberOfActiveCpusEi @ 1099 NONAME _ZN4Epoc11FreeRamZoneEj @ 1100 NONAME + _ZN16TBitMapAllocator14SelectiveAllocEii @ 1101 NONAME diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/bx86gcc/ekernu.def --- a/kernel/eka/bx86gcc/ekernu.def Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/bx86gcc/ekernu.def Fri Jun 11 15:02:23 2010 +0300 @@ -1039,4 +1039,5 @@ _ZN13KernCoreStats9EnterIdleEv @ 1038 NONAME _ZN13KernCoreStats9LeaveIdleEj @ 1039 NONAME _ZN4Epoc11FreeRamZoneEj @ 1040 NONAME + _ZN16TBitMapAllocator14SelectiveAllocEii @ 1041 NONAME diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/drivers/adc/base_e32_drivers_adc.mrp --- a/kernel/eka/drivers/adc/base_e32_drivers_adc.mrp Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/drivers/adc/base_e32_drivers_adc.mrp Fri Jun 11 15:02:23 2010 +0300 @@ -1,18 +1,3 @@ -# -# 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 "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: -# # component name "ADC controller" component base_e32_drivers_adc diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/drivers/bsp/base_e32_drivers_bsp.mrp --- a/kernel/eka/drivers/bsp/base_e32_drivers_bsp.mrp Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/drivers/bsp/base_e32_drivers_bsp.mrp Fri Jun 11 15:02:23 2010 +0300 @@ -1,18 +1,3 @@ -# -# 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 "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: -# # component name "Generic Board Support Packages" component base_e32_drivers_bsp diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/drivers/camerasc/base_drivers_camerasc.mrp --- a/kernel/eka/drivers/camerasc/base_drivers_camerasc.mrp Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/drivers/camerasc/base_drivers_camerasc.mrp Fri Jun 11 15:02:23 2010 +0300 @@ -1,18 +1,3 @@ -# -# 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 "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: -# # component name "Camera Driver - Shared Chunk" component base_drivers_camerasc diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/drivers/debug/group/base_e32_drivers_debug.mrp --- a/kernel/eka/drivers/debug/group/base_e32_drivers_debug.mrp Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/drivers/debug/group/base_e32_drivers_debug.mrp Fri Jun 11 15:02:23 2010 +0300 @@ -1,18 +1,3 @@ -# -# 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 "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: -# # component name "Run mode debugger" component base_e32_drivers_debug diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/drivers/display/base_e32_drivers_display.mrp --- a/kernel/eka/drivers/display/base_e32_drivers_display.mrp Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/drivers/display/base_e32_drivers_display.mrp Fri Jun 11 15:02:23 2010 +0300 @@ -1,18 +1,3 @@ -# -# 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 "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: -# # component name "Graphics GCE Driver" component base_e32_drivers_display diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/drivers/eabi/rm_debug_extu.def --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kernel/eka/drivers/eabi/rm_debug_extu.def Fri Jun 11 15:02:23 2010 +0300 @@ -0,0 +1,22 @@ +EXPORTS + _Z19CreateLogicalDevicev @ 1 NONAME + _ZN5Debug7GetListEPKNS_9TListItemEi @ 2 NONAME + _ZTI11DDebugAgent @ 3 NONAME + _ZTI12DRMDStepping @ 4 NONAME + _ZTI14DBufferManager @ 5 NONAME + _ZTI14DTargetProcess @ 6 NONAME + _ZTI15DProcessTracker @ 7 NONAME + _ZTI16DRM_DebugChannel @ 8 NONAME + _ZTI17D_RMD_Breakpoints @ 9 NONAME + _ZTI21DRM_DebugEventHandler @ 10 NONAME + _ZTI22DRM_DebugDriverFactory @ 11 NONAME + _ZTV11DDebugAgent @ 12 NONAME + _ZTV12DRMDStepping @ 13 NONAME + _ZTV14DBufferManager @ 14 NONAME + _ZTV14DTargetProcess @ 15 NONAME + _ZTV15DProcessTracker @ 16 NONAME + _ZTV16DRM_DebugChannel @ 17 NONAME + _ZTV17D_RMD_Breakpoints @ 18 NONAME + _ZTV21DRM_DebugEventHandler @ 19 NONAME + _ZTV22DRM_DebugDriverFactory @ 20 NONAME + diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/drivers/ecomm/base_e32_drivers_ecomm.mrp --- a/kernel/eka/drivers/ecomm/base_e32_drivers_ecomm.mrp Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/drivers/ecomm/base_e32_drivers_ecomm.mrp Fri Jun 11 15:02:23 2010 +0300 @@ -1,18 +1,3 @@ -# -# 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 "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: -# # component name "Serial Port Driver" component base_e32_drivers_ecomm diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/drivers/ethernet/base_e32_drivers_ethernet.mrp --- a/kernel/eka/drivers/ethernet/base_e32_drivers_ethernet.mrp Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/drivers/ethernet/base_e32_drivers_ethernet.mrp Fri Jun 11 15:02:23 2010 +0300 @@ -1,18 +1,3 @@ -# -# 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 "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: -# # component name "Ethernet Driver" component base_e32_drivers_ethernet diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/drivers/locmedia/base_e32_drivers_locmedia.mrp --- a/kernel/eka/drivers/locmedia/base_e32_drivers_locmedia.mrp Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/drivers/locmedia/base_e32_drivers_locmedia.mrp Fri Jun 11 15:02:23 2010 +0300 @@ -1,18 +1,3 @@ -# -# 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 "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: -# # component name "Local Media Subsystem" component base_e32_drivers_locmedia diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/drivers/locmedia/locmedia.cpp --- a/kernel/eka/drivers/locmedia/locmedia.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/drivers/locmedia/locmedia.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -2878,9 +2878,10 @@ } else #endif - - CompleteRequest(m, s); - OstTraceDefExt3( OST_TRACE_CATEGORY_RND, TRACE_INTERNALS, DPRIMARYMEDIABASE_DOREQUEST_RETURN, "Return req Id=%d; Remote Thread=0x%x; retval=%d", (TInt) m.Id(), (TUint) m.RemoteThread(), (TInt) s); + { + CompleteRequest(m, s); + OstTraceDefExt2( OST_TRACE_CATEGORY_RND, TRACE_INTERNALS, DPRIMARYMEDIABASE_DOREQUEST_RETURN, "Return Remote Thread=0x%x; retval=%d", (TUint) m.RemoteThread(), (TInt) s); + } } iCurrentReq=NULL; @@ -4956,7 +4957,7 @@ { OstTraceFunctionEntry0( LOCDRV_REGISTERMEDIADEVICE_ENTRY ); // Create TLocDrv / DMedia objects to handle a media device - __KTRACE_OPT(KBOOT,Kern::Printf("RegisterMediaDevice %lS dev=%1d #drives=%d 1st=%d PM=%08x #media=%d",&aName,aDevice,aDriveCount,*aDriveList,aPrimaryMedia,aNumMedia)); + __KTRACE_OPT(KBOOT,Kern::Printf("RegisterMediaDevice %S dev=%1d #drives=%d 1st=%d PM=%08x #media=%d",&aName,aDevice,aDriveCount,*aDriveList,aPrimaryMedia,aNumMedia)); OstTraceExt5( TRACE_INTERNALS, LOCDRV_REGISTERMEDIADEVICE1, "aDevice=%d; aDriveCount=%d; aDriveList=%d; aPrimaryMedia=0x%08x; aNumMedia=%d", (TInt) aDevice, (TInt) aDriveCount, (TInt) *aDriveList, (TUint) aPrimaryMedia, (TInt) aNumMedia ); if (UsedMedia+aNumMedia>KMaxLocalDrives) @@ -5331,7 +5332,7 @@ drive = TheDrives[i]; if(drive && drive->iPrimaryMedia == aPrimaryMedia) { - __KTRACE_OPT2(KBOOT,KLOCDPAGING, Kern::Printf("RegisterPagingDevice: local drive %d, partition type %x base %lx size %lx name %lS", i, drive->iPartitionType, drive->iPartitionBaseAddr, drive->iPartitionLen, DriveNames[i] ? DriveNames[i] : &KNullDesC8)); + __KTRACE_OPT2(KBOOT,KLOCDPAGING, Kern::Printf("RegisterPagingDevice: local drive %d, partition type %x base %lx size %lx name %S", i, drive->iPartitionType, drive->iPartitionBaseAddr, drive->iPartitionLen, DriveNames[i] ? DriveNames[i] : &KNullDesC8)); // ROM partition ? if ((romPagingDriveNumber == KErrNotFound) && (drive->iPartitionType == KPartitionTypeROM) && @@ -5388,7 +5389,7 @@ #ifdef __DEBUG_DEMAND_PAGING__ Kern::Printf("PagingDevice :"); - Kern::Printf("Name %lS", firstLocalDriveNumber >= 0 && DriveNames[firstLocalDriveNumber] ? DriveNames[firstLocalDriveNumber] : &KNullDesC8); + Kern::Printf("Name %S", firstLocalDriveNumber >= 0 && DriveNames[firstLocalDriveNumber] ? DriveNames[firstLocalDriveNumber] : &KNullDesC8); Kern::Printf("iType 0x%x", pagingDevice->iType); Kern::Printf("iReadUnitShift 0x%x", pagingDevice->iReadUnitShift); Kern::Printf("iFirstLocalDriveNumber 0x%x", pagingDevice->iFirstLocalDriveNumber); @@ -5612,7 +5613,7 @@ if (!(sock_mask & (1<iDevice, DriveNames[i])); + __KTRACE_OPT(KLOCDRV,Kern::Printf("Socket %d device %d name %S", sockNum, pM->iDevice, DriveNames[i])); OstTraceExt2( TRACE_INTERNALS, GETDRIVEINFO1, "Socket=%d; device=%d", sockNum, (TUint) pM->iDevice ); if ( (sockNum + 1) > sockets ) sockets = sockNum + 1; @@ -5620,7 +5621,7 @@ sock_mask |= (1<iDevice,DriveNames[i])); + __KTRACE_OPT(KLOCDRV,Kern::Printf("Drive %d device %d name %S",i,pM->iDevice,DriveNames[i])); OstTraceExt2( TRACE_INTERNALS, GETDRIVEINFO2, "Drive=%d; device=%d", i, (TUint) pM->iDevice ); info.iRegisteredDriveBitmask |= (0x01 << i); diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/drivers/media/base_e32_drivers_media.mrp --- a/kernel/eka/drivers/media/base_e32_drivers_media.mrp Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/drivers/media/base_e32_drivers_media.mrp Fri Jun 11 15:02:23 2010 +0300 @@ -1,18 +1,3 @@ -# -# 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 "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: -# # component name "Media Drivers" component base_e32_drivers_media diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/drivers/medmmc/medmmc.cpp --- a/kernel/eka/drivers/medmmc/medmmc.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/drivers/medmmc/medmmc.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -1485,7 +1485,8 @@ } } } - + +#ifdef _ENABLE_EMMC_RELIABLE_WRITE_ //Reliable Write only supported by v4.3+ MMC media if (iCard->ExtendedCSD().ExtendedCSDRev() >= 3) { @@ -1497,6 +1498,7 @@ iSession->Command().iFlags|= KMMCCmdFlagReliableWrite; } } +#endif //_ENABLE_EMMC_RELIABLE_WRITE_ // Engage the data transfer session... r = EngageAndSetWriteRequest(aMedReq); diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/drivers/pbus/mmc/stack.cpp --- a/kernel/eka/drivers/pbus/mmc/stack.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/drivers/pbus/mmc/stack.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -6408,6 +6408,9 @@ { EStBegin=0, EStNextIndex, + EStSendStatus, + EStGetStatus, + EStUnlock, EStInitStackAfterUnlock, EStIssuedLockUnlock, EStDone, @@ -6470,6 +6473,25 @@ // // Upon completion, test the next card before performing further initialisation. // + + SMF_STATE(EStSendStatus) + + s.FillCommandDesc(ECmdSendStatus, 0); + + SMF_INVOKES(ExecCommandSMST,EStGetStatus) + + SMF_STATE(EStGetStatus) + + const TMMCStatus st = s.LastStatus(); + if((st & KMMCStatCardIsLocked) == 0) + { + SMF_RETURN(err) + } + + SMF_STATE(EStUnlock) + + const TMapping *mp = NULL; + mp = iSocket->iPasswordStore->FindMappingInStore(iCardArray->CardP(iAutoUnlockIndex)->CID()); TMMCard &cd = *(iCardArray->CardP(iAutoUnlockIndex++)); OstTrace1( TRACE_INTERNALS, DMMCSTACK_CIMAUTOUNLOCKSM4, "Attempting to unlock card %d", cd.Number() ); diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/drivers/pbus/pccard/epoc/pccd_init.cpp --- a/kernel/eka/drivers/pbus/pccard/epoc/pccd_init.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/drivers/pbus/pccard/epoc/pccd_init.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -122,7 +122,7 @@ if (!pM) return KErrNoMemory; r=LocDrv::RegisterMediaDevice(mdi.iDevice,mdi.iDriveCount,mdi.iDriveList,pM,mdi.iNumMedia,*mdi.iDeviceName); - __KTRACE_OPT(KPBUS1,Kern::Printf("Registering PcCard device %lS (socket %d) for %d drives returns %d",mdi.iDeviceName,pM->iSocket->iSocketNumber,mdi.iDriveCount,r)); + __KTRACE_OPT(KPBUS1,Kern::Printf("Registering PcCard device %S (socket %d) for %d drives returns %d",mdi.iDeviceName,pM->iSocket->iSocketNumber,mdi.iDriveCount,r)); if (r!=KErrNone) return r; } diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/drivers/pbus/pccard/socket.cpp --- a/kernel/eka/drivers/pbus/pccard/socket.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/drivers/pbus/pccard/socket.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -141,7 +141,7 @@ // { - __KTRACE_OPT(KPBUS1,Kern::Printf(">Skt(%d):Create(%lS)",iSocketNumber,aName)); + __KTRACE_OPT(KPBUS1,Kern::Printf(">Skt(%d):Create(%S)",iSocketNumber,aName)); TInt r=DPBusSocket::Create(aName); if (r!=KErrNone) diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/drivers/pbus/spbus.cpp --- a/kernel/eka/drivers/pbus/spbus.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/drivers/pbus/spbus.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -683,7 +683,7 @@ TInt DPBusSocket::Create(const TDesC* aName) { OstTraceFunctionEntry1( DPBUSSOCKET_CREATE_ENTRY, this ); - __KTRACE_OPT(KPBUS1,Kern::Printf(">DPBusSocket(%d)::Create %lS",iSocketNumber,aName)); + __KTRACE_OPT(KPBUS1,Kern::Printf(">DPBusSocket(%d)::Create %S",iSocketNumber,aName)); OstTrace1(TRACE_INTERNALS, DPBUSSOCKET_CREATE, "iSocketNumber=%d",iSocketNumber); iName=aName; DPBusPowerHandler* pH=new DPBusPowerHandler(this); diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/drivers/power/smppower/idlehelper.cia --- a/kernel/eka/drivers/power/smppower/idlehelper.cia Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/drivers/power/smppower/idlehelper.cia Fri Jun 11 15:02:23 2010 +0300 @@ -85,12 +85,12 @@ LDREX(3,1); // r3 = iIdlingCpus asm("orr r3,r0,r3"); // orr in mask for this CPU asm("cmp r3,r2"); // compare to iAllEngagedCpusMask - asm("orreq r3,r3,#%a0" : : "i" (TIdleSupport::KGlobalIdleFlag)); // if equal orr in KGlobalIdleFlag + asm("orreq r3,r3,#%a0" : : "i" ((TUint32)TIdleSupport::KGlobalIdleFlag)); // if equal orr in KGlobalIdleFlag STREX(12,3,1); asm("cmp r12, #0 "); // asm("bne 1b "); // write didn't succeed try again __DATA_MEMORY_BARRIER__(r12); - asm("and r0,r3,#%a0" : : "i" (TIdleSupport::KGlobalIdleFlag)); + asm("and r0,r3,#%a0" : : "i" ((TUint32)TIdleSupport::KGlobalIdleFlag)); __JUMP(,lr); asm("__iAllEngagedCpusMask:"); asm(".word %a0" : : "i" ((TInt)&TIdleSupport::iAllEngagedCpusMask));// @@ -125,7 +125,7 @@ asm("stmfd sp!, {r4-r5,lr} "); asm("add r0,r0,#%a0" : : "i" _FOFF(TSyncPointBase, iStageAndCPUWaitingMask)); // skip vt asm("ldr r4,[r0,#4]"); - asm("ldr r4,[r4]") + asm("ldr r4,[r4]"); __DATA_MEMORY_BARRIER_Z__(r12); // asm("1: "); LDREX(2,0); // r2 = iStageAndCPUWaitingMask, r4 = iAllEnagedCpusMask @@ -149,7 +149,7 @@ #endif asm("2: "); asm("cmp r3,r5"); // all (old stage does not equal new stage) - asm("ldmfdne sp!, {r4-r5,pc}"); // yup return + asm("bne 3f"); // yup return #ifdef SYNCPOINT_WFE __DATA_MEMORY_BARRIER__(r12); ARM_WFE; @@ -158,6 +158,8 @@ __DATA_MEMORY_BARRIER__(r12); // ensure read is observed asm("mov r3,r2,lsr #16"); // re-read new stage asm("b 2b"); // loop back + asm("3: "); + asm("ldmfd sp!, {r4-r5,pc}"); // return } /** @@ -188,7 +190,7 @@ asm("stmfd sp!, {r4,lr} "); asm("add r0,r0,#%a0" : : "i" _FOFF(TSyncPointBase, iStageAndCPUWaitingMask)); // skip vt asm("ldr r4,[r0,#4]"); - asm("ldr r4,[r4]") + asm("ldr r4,[r4]"); __DATA_MEMORY_BARRIER_Z__(r12); // asm("1: "); LDREX(2,0); // r2 = iStageAndCPUWaitingMask, r4 = iAllEnagedCpusMask @@ -208,7 +210,7 @@ #endif asm("2: "); asm("ands r3,r2,#0x80000000"); // MSB set? - asm("ldmfdne sp!, {r4,pc}"); // yup return + asm("bne 4f"); // yup return #ifdef SYNCPOINT_WFE __DATA_MEMORY_BARRIER__(r12); ARM_WFE; @@ -222,7 +224,8 @@ __DATA_MEMORY_BARRIER__(r12); // ensure that's written ARM_SEV; #endif - asm("ldmfd sp!, {r4,pc}"); // yup return + asm("4:"); + asm("ldmfd sp!, {r4,pc}"); // return } @@ -292,7 +295,7 @@ } #endif -__NAKED__ TInt TIdleSupport::IntPending() +__NAKED__ TUint32 TIdleSupport::IntPending() { asm("ldr r1,__KCPUIFAddr");//r1 = address of iBaseIntIfAddress asm("ldr r1, [r1]");//r1 = address of Hw GIC CPU interrupt interface base address diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/drivers/power/smppower/idlehelper_lib.mmp --- a/kernel/eka/drivers/power/smppower/idlehelper_lib.mmp Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/drivers/power/smppower/idlehelper_lib.mmp Fri Jun 11 15:02:23 2010 +0300 @@ -1,7 +1,7 @@ // Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies). // All rights reserved. // This component and the accompanying materials are made available -// under the terms of "Eclipse Public License v1.0" +// 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 ". // diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/drivers/power/smppower/sample_idlehandler/smpidlehandler.cpp --- a/kernel/eka/drivers/power/smppower/sample_idlehandler/smpidlehandler.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/drivers/power/smppower/sample_idlehandler/smpidlehandler.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -41,6 +41,11 @@ } +DSMPIdleHandler::~DSMPIdleHandler() + { + } + + /** To be called after construction in a thread context with interrupts enabled. Power extension entry point ideal @pre thread context ints enable no kernel locks or fast mutexes diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/drivers/power/smppower/sample_idlehandler/smpidlehandler_lib.mmp --- a/kernel/eka/drivers/power/smppower/sample_idlehandler/smpidlehandler_lib.mmp Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/drivers/power/smppower/sample_idlehandler/smpidlehandler_lib.mmp Fri Jun 11 15:02:23 2010 +0300 @@ -1,7 +1,7 @@ // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). // All rights reserved. // This component and the accompanying materials are made available -// under the terms of "Eclipse Public License v1.0" +// 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 ". // diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/drivers/soundsc/base_e32_drivers_sound.mrp --- a/kernel/eka/drivers/soundsc/base_e32_drivers_sound.mrp Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/drivers/soundsc/base_e32_drivers_sound.mrp Fri Jun 11 15:02:23 2010 +0300 @@ -1,18 +1,3 @@ -# -# 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 "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: -# # component name "Audio Driver" component base_e32_drivers_sound diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/drivers/trace/base_e32_drivers_trace.mrp --- a/kernel/eka/drivers/trace/base_e32_drivers_trace.mrp Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/drivers/trace/base_e32_drivers_trace.mrp Fri Jun 11 15:02:23 2010 +0300 @@ -1,18 +1,3 @@ -# -# 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 "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: -# # component name "Kernel Trace Tool" component base_e32_drivers_trace diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/drivers/usbc/base_e32_drivers_usbcli.mrp --- a/kernel/eka/drivers/usbc/base_e32_drivers_usbcli.mrp Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/drivers/usbc/base_e32_drivers_usbcli.mrp Fri Jun 11 15:02:23 2010 +0300 @@ -1,18 +1,3 @@ -# -# 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 "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: -# # component name "USB Client Driver" component base_e32_drivers_usbcli diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/drivers/usbho/usbdescriptors/base_drivers_usbdescriptors.mrp --- a/kernel/eka/drivers/usbho/usbdescriptors/base_drivers_usbdescriptors.mrp Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/drivers/usbho/usbdescriptors/base_drivers_usbdescriptors.mrp Fri Jun 11 15:02:23 2010 +0300 @@ -1,18 +1,3 @@ -# -# 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 "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: -# # component name "USB Descriptors" component base_drivers_usbdescriptors diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/drivers/usbho/usbdi_utils/base_drivers_usbdi_utils.mrp --- a/kernel/eka/drivers/usbho/usbdi_utils/base_drivers_usbdi_utils.mrp Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/drivers/usbho/usbdi_utils/base_drivers_usbdi_utils.mrp Fri Jun 11 15:02:23 2010 +0300 @@ -1,18 +1,3 @@ -# -# 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 "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: -# # component name "USB DI Utils" component base_drivers_usbdi_utils diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/drivers/xyin/d_xyin.cpp --- a/kernel/eka/drivers/xyin/d_xyin.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/drivers/xyin/d_xyin.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -1,4 +1,4 @@ -// Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies). +// Copyright (c) 1998-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" @@ -19,6 +19,7 @@ #include #include +#include _LIT(KLitDigitiser,"Digitiser"); @@ -50,7 +51,8 @@ : DPowerHandler(KLitDigitiser), iMsgQ(rxMsg,this,NULL,1), iSampleDfc(sampleDfc,this,5), - iPenUpDfc(penUpDfc,this,5) + iPenUpDfc(penUpDfc,this,5), + iOrientation(HALData::EDigitiserOrientation_default) { // iBufferIndex=0; // iLastPos=TPoint(0,0); @@ -358,6 +360,26 @@ case EDigitiserHalXYState: kumemput32(a1, (TBool*)&iPointerOn, sizeof(TBool)); break; + + // a2 = TBool aSet (ETrue for setting, EFalse for retrieval) + // a1 = TDigitizerOrientation (set) + // a1 = &TDigitizerOrientation (get) + case EDigitiserOrientation: + if ((TBool)a2) + { + // Set the orientation attribute + // In case user thread, check it has WDD capability + if(!Kern::CurrentThreadHasCapability(ECapabilityWriteDeviceData,__PLATSEC_DIAGNOSTIC_STRING("Checked by Hal function EDigitiserOrientation"))) + return KErrPermissionDenied; + iOrientation = (TInt)a1; + } + else + { + // Get the orientation attribute, safe copy it into user memory + kumemput32(a1, &iOrientation, sizeof(TInt)); + } + break; + default: r=KErrNotSupported; break; diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/eabi/ekernsmp.def --- a/kernel/eka/eabi/ekernsmp.def Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/eabi/ekernsmp.def Fri Jun 11 15:02:23 2010 +0300 @@ -1188,4 +1188,5 @@ _ZN5NKern21SetNumberOfActiveCpusEi @ 1187 NONAME _ZN3Arm14SetIdleHandlerEPFvPvmPVvES0_ @ 1188 NONAME _ZN4Epoc11FreeRamZoneEj @ 1189 NONAME + _ZN16TBitMapAllocator14SelectiveAllocEii @ 1190 NONAME diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/eabi/ekernu.def --- a/kernel/eka/eabi/ekernu.def Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/eabi/ekernu.def Fri Jun 11 15:02:23 2010 +0300 @@ -1180,4 +1180,5 @@ _ZN13KernCoreStats9LeaveIdleEj @ 1179 NONAME _ZN3Arm14SetIdleHandlerEPFvPvmES0_ @ 1180 NONAME _ZN4Epoc11FreeRamZoneEj @ 1181 NONAME + _ZN16TBitMapAllocator14SelectiveAllocEii @ 1182 NONAME diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/euser/base_e32_euser.mrp --- a/kernel/eka/euser/base_e32_euser.mrp Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/euser/base_e32_euser.mrp Fri Jun 11 15:02:23 2010 +0300 @@ -1,18 +1,3 @@ -# -# 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 "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: -# # component name "User Library" component base_e32_euser diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/ewsrv/base_e32_ewsrv.mrp --- a/kernel/eka/ewsrv/base_e32_ewsrv.mrp Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/ewsrv/base_e32_ewsrv.mrp Fri Jun 11 15:02:23 2010 +0300 @@ -1,18 +1,3 @@ -# -# 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 "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: -# # component name "Text Window Server" component base_e32_ewsrv diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/include/d32comm.h --- a/kernel/eka/include/d32comm.h Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/include/d32comm.h Fri Jun 11 15:02:23 2010 +0300 @@ -1,4 +1,4 @@ -// Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies). +// Copyright (c) 1995-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" @@ -30,64 +30,6 @@ #include /** - Enumeration of number of data bits for serial port configuration. - Typically, these values are used to initialize the iDataBits of - TCommConfigV01 before calling DComm::Configure() or any other serial - comm API to configure the serial port's databits size. - */ -enum TDataBits {EData5,EData6,EData7,EData8}; -/** - Enumeration of number of stop bits for serial port configuration. - Typically, these values are used to initialize the iStopBits of - TCommConfigV01 before calling DComm::Configure() or any other serial - comm API to configure the serial port's stopbits. - */ -enum TStopBits {EStop1,EStop2}; -/** - Enumeration of types of parity for serial port configuration. - Typically, these values are used to initialize the iParity of - TCommConfigV01 before calling DComm::Configure() or any other serial - comm API to configure the serial port's parity setting. - */ -enum TParity {EParityNone,EParityEven,EParityOdd,EParityMark,EParitySpace}; -/** - Enumeration of baud rates in bits per second for serial port configuration. - * e.g EBps115200 is for 115200Bps data rate - Typically, these values are used to initialize the iRate of TCommConfigV01 - before calling DComm::Configure() or any other serial comm API to configure - the serial port's baud rate. - */ -enum TBps - { - EBps50, - EBps75, - EBps110, - EBps134, - EBps150, - EBps300, - EBps600, - EBps1200, - EBps1800, - EBps2000, - EBps2400, - EBps3600, - EBps4800, - EBps7200, - EBps9600, - EBps19200, - EBps38400, - EBps57600, - EBps115200, - EBps230400, - EBps460800, - EBps576000, - EBps1152000, - EBps4000000, - EBps921600, - EBpsAutobaud=0x40000000, - EBpsSpecial=0x80000000, - }; -/** Enumeration of Fifo status (enable and disable) for serial port configuration. Typically, these values are used to initialize the iFifo of TCommConfigV01 before calling DComm::Configure() or any other serial comm API to configure diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/include/d32public.h --- a/kernel/eka/include/d32public.h Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/include/d32public.h Fri Jun 11 15:02:23 2010 +0300 @@ -1,4 +1,4 @@ -// Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies). +// Copyright (c) 1995-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" @@ -26,6 +26,67 @@ #ifndef __D32PUBLIC_H__ #define __D32PUBLIC_H__ +/** + Enumeration of number of data bits for serial port configuration. + Typically, these values are used to initialize the iDataBits of + TCommConfigV01 before calling DComm::Configure() or any other serial + comm API to configure the serial port's databits size. + */ +enum TDataBits {EData5,EData6,EData7,EData8}; + +/** + Enumeration of number of stop bits for serial port configuration. + Typically, these values are used to initialize the iStopBits of + TCommConfigV01 before calling DComm::Configure() or any other serial + comm API to configure the serial port's stopbits. + */ +enum TStopBits {EStop1,EStop2}; + +/** + Enumeration of types of parity for serial port configuration. + Typically, these values are used to initialize the iParity of + TCommConfigV01 before calling DComm::Configure() or any other serial + comm API to configure the serial port's parity setting. + */ +enum TParity {EParityNone,EParityEven,EParityOdd,EParityMark,EParitySpace}; + +/** + Enumeration of baud rates in bits per second for serial port configuration. + * e.g EBps115200 is for 115200Bps data rate + Typically, these values are used to initialize the iRate of TCommConfigV01 + before calling DComm::Configure() or any other serial comm API to configure + the serial port's baud rate. + */ +enum TBps + { + EBps50, + EBps75, + EBps110, + EBps134, + EBps150, + EBps300, + EBps600, + EBps1200, + EBps1800, + EBps2000, + EBps2400, + EBps3600, + EBps4800, + EBps7200, + EBps9600, + EBps19200, + EBps38400, + EBps57600, + EBps115200, + EBps230400, + EBps460800, + EBps576000, + EBps1152000, + EBps4000000, + EBps921600, + EBpsAutobaud=0x40000000, + EBpsSpecial=0x80000000, + }; enum TFlowControl { diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/include/d32usbdi_errors.h --- a/kernel/eka/include/d32usbdi_errors.h Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/include/d32usbdi_errors.h Fri Jun 11 15:02:23 2010 +0300 @@ -201,6 +201,7 @@ EUsbDevMonDeviceAttachDenied = 41, EUsbHubDriverZeroInterfaceTokenProduced = 42, EUsbInterfaceSuccessfulPipeOpenWithNoPipe = 43, + EFailedToLockHostStackInWaitDeviceStateMutex = 44, }; _LIT(KUsbDescFaultCat, "USBDesc-Fault"); diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/include/drivers/dma_v1.h --- a/kernel/eka/include/drivers/dma_v1.h Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/include/drivers/dma_v1.h Fri Jun 11 15:02:23 2010 +0300 @@ -349,27 +349,66 @@ virtual void DoUnlink(SDmaDesHdr& aHdr); virtual void DoDfc(DDmaRequest& aCurReq, SDmaDesHdr*& aCompletedHdr) = 0; /** - This function allows the Platform Specific Layer (PSL) to control the - power management of the channel or its controller by overriding the - PIL's default implementation (which does nothing) and making appropriate - use of the Power Resource Manager (PRM). + This function allows the Platform Specific Layer (PSL) to control the + power management of the channel or its controller by overriding the + PIL's default implementation (which does nothing) and making + appropriate use of the Power Resource Manager (PRM). + + The function gets called by the PIL whenever the channel's queued + requests count has changed in a significant way, either before the + channel's Transfer() method is invoked for a request on a previously + empty request queue, or immediately after the request count has become + zero because of request cancellation or completion. + + Depending on the current and previous observed values of + iQueuedRequests, the PSL may power down or power up the channel. - The function gets called by the PIL whenever the channel's queued - requests count has changed in a significant way, either before the - channel's Transfer() method is invoked for a request on a previously - empty request queue, or immediately after the request count has become - zero because of request cancellation or completion. + Note that iQueuedRequests gets accessed and changed by different + threads, so the PSL needs to take the usual precautions when evaluating + the variable's value. Also, due to the multithreaded framework + architecture, there is no guarantee that the function calls always + arrive at the PSL level in the strict chronological order of + iQueuedRequests being incremented/decremented in the PIL, i.e. it might + happen that the PSL finds iQueuedRequests to have the same value in two + or more consecutive calls (that's why the previous observed value needs + to be locally available and taken into account). It is however promised + that before any actual transfer commences the PSL will find the request + count to be greater than zero and that after the last request has + finished it will be found to be zero. + + None of the internal DMA framework mutexes is being held by the PIL + when calling this function. - Depending on the current value of iQueuedRequests, the PSL may power - down or power up the channel. Note that iQueuedRequests gets accessed - and changed by different threads, so the PSL needs to take the usual - precautions when evaluating the variable's value. + Here is an example implementation for a derived channel class: + + @code + + class TFooDmaChannel : public TDmaSgChannel + { + DMutex* iDmaMutex; + TInt iPrevQueuedRequests; + virtual void QueuedRequestCountChanged(); + }; - None of the internal DMA framework mutexes is being held by the PIL when - calling this function. + void TFooDmaChannel::QueuedRequestCountChanged() + { + Kern::MutexWait(*iDmaMutex); + if ((iQueuedRequests > 0) && (iPrevQueuedRequests == 0)) + { + IncreasePowerCount(); // Base port specific + } + else if ((iQueuedRequests == 0) && (iPrevQueuedRequests > 0)) + { + DecreasePowerCount(); // Base port specific + } + iPrevQueuedRequests = iQueuedRequests; + Kern::MutexSignal(*iDmaMutex); + } - @see iQueuedRequests - */ + @endcode + + @see iQueuedRequests + */ virtual void QueuedRequestCountChanged(); #if defined(__CPU_ARM) && !defined(__EABI__) inline virtual ~TDmaChannel() {} // kill really annoying warning diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/include/drivers/dma_v2.h --- a/kernel/eka/include/drivers/dma_v2.h Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/include/drivers/dma_v2.h Fri Jun 11 15:02:23 2010 +0300 @@ -70,7 +70,7 @@ Some peripherals may require a post-increment address mode. - @see DDmaRequest::Fragment + @see DDmaRequest::Fragment() Note: This enum is only required for backwards compatibility with the old DMA framework, it can be removed once this is no longer needed. @@ -337,10 +337,11 @@ Works like ExpandDesList except that it uses the iSrcFirstHdr and iSrcLastHdr fields. - @see ExpandDesList + @see ExpandDesList() - This function can only be used if SDmacCaps::iAsymHwDescriptors is - true, otherwise it will just return KErrGeneral. + This function should only be used if SDmacCaps::iAsymHwDescriptors is + reported as true, as only then the framework will actually use the + allocated descriptors. @param aCount Number of descriptors to append. @@ -357,10 +358,11 @@ Works like ExpandDesList except that it uses the iDstFirstHdr and iDstLastHdr fields. - @see ExpandDesList + @see ExpandDesList() - This function can only be used if SDmacCaps::iAsymHwDescriptors is - true, otherwise it will just return KErrGeneral. + This function should only be used if SDmacCaps::iAsymHwDescriptors is + reported as true, as only then the framework will actually use the + allocated descriptors. @param aCount Number of descriptors to append. @@ -373,7 +375,9 @@ /** Free resources associated with this request. - Assume the request is not being transferred or pending. + Assumes the request is not being transferred or pending. + + @see ExpandDesList() @released */ @@ -383,10 +387,9 @@ /** Free resources associated with this request. This function variant operates on the source port descriptor chain. - @see FreeDesList + Assumes the request is not being transferred or pending. - This function can only be used if SDmacCaps::iAsymHwDescriptors is - true, otherwise it will do nothing. + @see ExpandSrcDesList() @prototype */ @@ -396,10 +399,9 @@ /** Free resources associated with this request. This function variant operates on the destination port descriptor chain. - @see FreeDesList + Assumes the request is not being transferred or pending. - This function can only be used if SDmacCaps::iAsymHwDescriptors is - true, otherwise it will do nothing. + @see ExpandDstDesList() @prototype */ @@ -1197,14 +1199,53 @@ empty request queue, or immediately after the request count has become zero because of request cancellation or completion. - Depending on the current value of iQueuedRequests, the PSL may power - down or power up the channel. Note that iQueuedRequests gets accessed - and changed by different threads, so the PSL needs to take the usual - precautions when evaluating the variable's value. + Depending on the current and previous observed values of + iQueuedRequests, the PSL may power down or power up the channel. + + Note that iQueuedRequests gets accessed and changed by different + threads, so the PSL needs to take the usual precautions when evaluating + the variable's value. Also, due to the multithreaded framework + architecture, there is no guarantee that the function calls always + arrive at the PSL level in the strict chronological order of + iQueuedRequests being incremented/decremented in the PIL, i.e. it might + happen that the PSL finds iQueuedRequests to have the same value in two + or more consecutive calls (that's why the previous observed value needs + to be locally available and taken into account). It is however promised + that before any actual transfer commences the PSL will find the request + count to be greater than zero and that after the last request has + finished it will be found to be zero. None of the internal DMA framework mutexes is being held by the PIL when calling this function. + Here is an example implementation for a derived channel class: + + @code + + class TFooDmaChannel : public TDmaSgChannel + { + DMutex* iDmaMutex; + TInt iPrevQueuedRequests; + virtual void QueuedRequestCountChanged(); + }; + + void TFooDmaChannel::QueuedRequestCountChanged() + { + Kern::MutexWait(*iDmaMutex); + if ((iQueuedRequests > 0) && (iPrevQueuedRequests == 0)) + { + IncreasePowerCount(); // Base port specific + } + else if ((iQueuedRequests == 0) && (iPrevQueuedRequests > 0)) + { + DecreasePowerCount(); // Base port specific + } + iPrevQueuedRequests = iQueuedRequests; + Kern::MutexSignal(*iDmaMutex); + } + + @endcode + @see iQueuedRequests */ virtual void QueuedRequestCountChanged(); diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/include/drivers/resourcecontrol_clientsettings.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kernel/eka/include/drivers/resourcecontrol_clientsettings.h Fri Jun 11 15:02:23 2010 +0300 @@ -0,0 +1,109 @@ +// 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\include\drivers\resourcecontrol_clientsettings.h +// +// + +#ifndef __RESOURCECONTROL_CLIENTSETTINGS_H__ +#define __RESOURCECONTROL_CLIENTSETTINGS_H__ + +#include + +const TUint KBitPerClientSettings = 5; // 0 - 31, Max of 32 elements defined for use per client +const TUint KClientElementIdBase = 0x10; // Max of 16 elements defined for use by resman +const TUint8 KStaticResourceTableSize = 5; + +inline TUint ElementId_ClientSettingBase(TUint aClientToken) + { + return ((aClientToken << KBitPerClientSettings) + KClientElementIdBase); + } + +inline HCR::TElementId ElementId_ClientName(TUint aClientToken) + { + return ((HCR::TElementId) ElementId_ClientSettingBase(aClientToken)); + } + +inline HCR::TElementId ElementId_ClientPropertyFlag(TUint aClientToken) + { + return ((HCR::TElementId) (ElementId_ClientSettingBase(aClientToken) + 1)); + } + +inline HCR::TElementId ElementId_ClientPreallocation(TUint aClientToken) + { + return ((HCR::TElementId) (ElementId_ClientSettingBase(aClientToken) + 2)); + } + +inline HCR::TElementId ElementId_ClientStaticResource(TUint aClientToken, TUint aResource) + { + return ((HCR::TElementId) (ElementId_ClientSettingBase(aClientToken) + 3 + aResource)); + } + +inline HCR::TElementId ElementId_ClientDynamicResource(TUint aClientToken, TUint aResource) + { + return ((HCR::TElementId) (ElementId_ClientSettingBase(aClientToken) + 3 + KStaticResourceTableSize + aResource)); + } + + +// Dynamic Resource Settings + +const TUint KDynamicResourceElementIdBase = 0x20000; +const TUint KBitPerDynamicResourceSettings = 5; // 0 - 31, Max of 32 elements defined for use per dynamic resource + +inline TUint ElementId_DynamicResourceBase(TUint aDynamicResource) + { + return ((aDynamicResource << KBitPerDynamicResourceSettings) + KDynamicResourceElementIdBase); + } + +inline HCR::TElementId ElementId_DynamicResourceName(TUint aDynamicResource) + { + return ((HCR::TElementId) (ElementId_DynamicResourceBase(aDynamicResource))); + } + +inline HCR::TElementId ElementId_DynamicResourcePropertyFlag(TUint aDynamicResource) + { + return ((HCR::TElementId) (ElementId_DynamicResourceBase(aDynamicResource) + 1)); + } + +inline HCR::TElementId ElementId_DynamicResourceMaxLevel(TUint aDynamicResource) + { + return ((HCR::TElementId) (ElementId_DynamicResourceBase(aDynamicResource) + 2)); + } + +inline HCR::TElementId ElementId_DynamicResourceMinLevel(TUint aDynamicResource) + { + return ((HCR::TElementId) (ElementId_DynamicResourceBase(aDynamicResource) + 3)); + } + +inline HCR::TElementId ElementId_DynamicResourceDefaultLevel(TUint aDynamicResource) + { + return ((HCR::TElementId) (ElementId_DynamicResourceBase(aDynamicResource) + 4)); + } + +inline HCR::TElementId ElementId_DynamicResourceDependencyMask1(TUint aDynamicResource) + { + return ((HCR::TElementId) (ElementId_DynamicResourceBase(aDynamicResource) + 5)); + } + +inline HCR::TElementId ElementId_DynamicResourceDependencyMask2(TUint aDynamicResource) + { + return ((HCR::TElementId) (ElementId_DynamicResourceBase(aDynamicResource) + 6)); + } + +inline HCR::TElementId ElementId_DynamicResourceDependencyMask3(TUint aDynamicResource) + { + return ((HCR::TElementId) (ElementId_DynamicResourceBase(aDynamicResource) + 7)); + } + +#endif + diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/include/drivers/resourcecontrol_settings.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kernel/eka/include/drivers/resourcecontrol_settings.h Fri Jun 11 15:02:23 2010 +0300 @@ -0,0 +1,29 @@ +// 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\include\drivers\resourcecontrol_settings.h +// +// + +#ifndef __RESOURCECONTROL_SETTINGS_H__ +#define __RESOURCECONTROL_SETTINGS_H__ + +#include + +const HCR::TElementId KPRMPoolSizeKernelClient = 0; +const HCR::TElementId KPRMPoolSizeUserClient = 1; +const HCR::TElementId KPRMPoolSizeClientLevel = 2; +const HCR::TElementId KPRMPoolSizeClientRequest = 3; + +#endif + diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/include/drivers/smppower/idlehelper.h --- a/kernel/eka/include/drivers/smppower/idlehelper.h Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/include/drivers/smppower/idlehelper.h Fri Jun 11 15:02:23 2010 +0300 @@ -1,24 +1,26 @@ /* * Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* 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: +* Description: * os\kernelhwsrv\kernel\eka\include\drivers\smpidlehelper.h * Helper classes required to implement CPU idle * functionality in a SMP BSP. * */ - /** @file @prototype @@ -174,7 +176,7 @@ static void ClearIdleIPI(); static void DoWFI();//puts current CPU in wait for interrupt state static TBool IsIntPending(); - static TInt IntPending(); + static TUint32 IntPending(); static TUint32 GetTimerCount();//HW timer can be used for tracing //Atomic checks used to synchronise cores going idle static TBool ClearLocalAndCheckGlobalIdle(TUint32); diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/include/drivers/smppower/sample_idlehandler/smpidlehandler.h --- a/kernel/eka/include/drivers/smppower/sample_idlehandler/smpidlehandler.h Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/include/drivers/smppower/sample_idlehandler/smpidlehandler.h Fri Jun 11 15:02:23 2010 +0300 @@ -1,24 +1,26 @@ /* * Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* 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: +* Description: * os/kernelhwsrv/kernel/eka/include/drivers/smppower/sample_idlehandler/smpidlehandler.h * Example of a generic idle handler layer * */ - #ifndef __SMPIDLEHANDLER_H__ #define __SMPIDLEHANDLER_H__ @@ -41,6 +43,8 @@ DSMPIdleHandler(); + virtual ~DSMPIdleHandler(); + /* called to init and bind the idle handler. After this call idle will be directed to idle handler @pre thread context, no locks no fast mutexes, interrupt on diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/include/drivers/xyin.h --- a/kernel/eka/include/drivers/xyin.h Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/include/drivers/xyin.h Fri Jun 11 15:02:23 2010 +0300 @@ -1,4 +1,4 @@ -// Copyright (c) 1998-2009 Nokia Corporation and/or its subsidiary(-ies). +// Copyright (c) 1998-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,6 +27,7 @@ #include #include + #ifdef _DEBUG //#define __DIGITISER_DEBUG1__ //#define __DIGITISER_DEBUG2__ @@ -180,6 +181,7 @@ TState iState; TInt iCount; TUint8 iPointerOn; + TInt iOrientation; // HALData::TDigitizerOrientation }; diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/include/e32math.h --- a/kernel/eka/include/e32math.h Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/include/e32math.h Fri Jun 11 15:02:23 2010 +0300 @@ -456,11 +456,6 @@ IMPORT_C static TInt ATan(TReal &aTrg,const TReal &aSrc); IMPORT_C static TInt ATan(TReal &aTrg,const TReal &aSrcY,const TReal &aSrcX); IMPORT_C static TInt Cos(TReal &aTrg,const TReal &aSrc); - - /** - This function is not implemented by Symbian OS. - */ - IMPORT_C static TInt DtoR(TReal &aTrg,const TDesC &aSrc,TInt &aPos,const TChar aPoint); IMPORT_C static TInt Exp(TReal &aTrg,const TReal &aSrc); IMPORT_C static TInt Frac(TReal &aTrg,const TReal &aSrc); IMPORT_C static TInt Int(TReal &aTrg,const TReal &aSrc); diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/include/e32ver.h --- a/kernel/eka/include/e32ver.h Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/include/e32ver.h Fri Jun 11 15:02:23 2010 +0300 @@ -28,7 +28,7 @@ const TInt KE32MajorVersionNumber=2; const TInt KE32MinorVersionNumber=0; -const TInt KE32BuildVersionNumber=3076; +const TInt KE32BuildVersionNumber=3085; const TInt KMachineConfigurationMajorVersionNumber=1; const TInt KMachineConfigurationMinorVersionNumber=0; diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/include/kernel/kbma.h --- a/kernel/eka/include/kernel/kbma.h Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/include/kernel/kbma.h Fri Jun 11 15:02:23 2010 +0300 @@ -39,6 +39,7 @@ IMPORT_C void Free(TInt aPos); IMPORT_C void Alloc(TInt aStart, TInt aLength); IMPORT_C void Free(TInt aStart, TInt aLength); + IMPORT_C TUint SelectiveAlloc(TInt aStart, TInt aLength); IMPORT_C void SelectiveFree(TInt aStart, TInt aLength); IMPORT_C TBool NotFree(TInt aStart, TInt aLength) const; IMPORT_C TBool NotAllocated(TInt aStart, TInt aLength) const; diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/include/kernel/kern_priv.h --- a/kernel/eka/include/kernel/kern_priv.h Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/include/kernel/kern_priv.h Fri Jun 11 15:02:23 2010 +0300 @@ -2787,6 +2787,7 @@ static TUint NumberOfFreeDpPages(); static TUint NumberOfDirtyDpPages(); static TInt MovePage(TPhysAddr aOld, TPhysAddr& aNew, TUint aBlockZoneId, TBool aBlockRest); + static TInt MoveAndAllocPage(TPhysAddr aAddr, TZonePageType aPageType); static TInt DiscardPage(TPhysAddr aAddr, TUint aBlockZoneId, TBool aBlockRest); static void RamZoneClaimed(SZone* aZone); static TInt RamDefragFault(TAny* aExceptionInfo); diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/include/kernel/kerncorestats.h --- a/kernel/eka/include/kernel/kerncorestats.h Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/include/kernel/kerncorestats.h Fri Jun 11 15:02:23 2010 +0300 @@ -1,7 +1,7 @@ // Copyright (c) 1994-2009 Nokia Corporation and/or its subsidiary(-ies). // All rights reserved. // This component and the accompanying materials are made available -// under the terms of "Eclipse Public License v1.0" +// 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". // diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/include/memmodel/epoc/mmubase/mmubase.h --- a/kernel/eka/include/memmodel/epoc/mmubase/mmubase.h Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/include/memmodel/epoc/mmubase/mmubase.h Fri Jun 11 15:02:23 2010 +0300 @@ -526,8 +526,8 @@ public: TInt AllocRamPages(TPhysAddr* aPageList, TInt aNumPages, TZonePageType aPageType, TUint aBlockedZoneId=KRamZoneInvalidId, TBool aBlockRest=EFalse); TInt ZoneAllocRamPages(TUint* aZoneIdList, TUint aZoneIdCount, TPhysAddr* aPageList, TInt aNumPages, TZonePageType aPageType); - TInt AllocContiguousRam(TInt aSize, TPhysAddr& aPhysAddr, TZonePageType aPageType, TInt aAlign, TUint aBlockedZoneId=KRamZoneInvalidId, TBool aBlockRest=EFalse); - TInt ZoneAllocContiguousRam(TUint* aZoneIdList, TUint aZoneIdCount, TInt aSize, TPhysAddr& aPhysAddr, TZonePageType aPageType, TInt aAlign); + TInt AllocContiguousRam(TInt aSize, TPhysAddr& aPhysAddr, TInt aAlign); + TInt ZoneAllocContiguousRam(TUint* aZoneIdList, TUint aZoneIdCount, TInt aSize, TPhysAddr& aPhysAddr, TInt aAlign); public: TInt iPageSize; // page size in bytes diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/include/memmodel/epoc/mmubase/ramalloc.h --- a/kernel/eka/include/memmodel/epoc/mmubase/ramalloc.h Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/include/memmodel/epoc/mmubase/ramalloc.h Fri Jun 11 15:02:23 2010 +0300 @@ -142,8 +142,14 @@ void FreeRamPages(TPhysAddr* aPageList, TInt aNumPages, TZonePageType aType); TInt AllocRamPages(TPhysAddr* aPageList, TInt aNumPages, TZonePageType aType, TUint aBlockedZoneId=KRamZoneInvalidId, TBool aBlockRest=EFalse); TInt ZoneAllocRamPages(TUint* aZoneIdList, TUint aZoneIdCount, TPhysAddr* aPageList, TInt aNumPages, TZonePageType aType); - TInt AllocContiguousRam(TUint aNumPages, TPhysAddr& aPhysAddr, TZonePageType aType, TInt aAlign=0, TUint aBlockZoneId=KRamZoneInvalidId, TBool aBlockRest=EFalse); - TInt ZoneAllocContiguousRam(TUint* aZoneIdList, TUint aZoneIdCount, TInt aSize, TPhysAddr& aPhysAddr, TZonePageType aType, TInt aAlign); + TInt AllocContiguousRam(TUint aNumPages, TPhysAddr& aPhysAddr, TInt aAlign=0); +#if !defined(__MEMMODEL_MULTIPLE__) && !defined(__MEMMODEL_MOVING__) + void BlockContiguousRegion(TPhysAddr aAddrBase, TUint aNumPages); + void UnblockSetAllocRuns(TUint& aOffset1, TUint& aOffset2, TUint aRunLength1, TUint aRunLength2, TUint& aAllocLength, TUint& aAllocStart); + void UnblockContiguousRegion(TPhysAddr aAddrBase, TUint aNumPages); + TBool ClearContiguousRegion(TPhysAddr aAddrBase, TPhysAddr aZoneBase, TUint aNumPages, TInt& aOffset); +#endif + TInt ZoneAllocContiguousRam(TUint* aZoneIdList, TUint aZoneIdCount, TInt aSize, TPhysAddr& aPhysAddr, TInt aAlign); #ifdef _DEBUG void DebugDump(); #endif @@ -158,6 +164,7 @@ TInt GetZoneAddress(TUint aZoneId, TPhysAddr& aPhysBase, TUint& aNumPages); TInt HalFunction(TInt aFunction, TAny* a1, TAny* a2); TInt NextAllocatedPage(SZone* aZone, TUint& aOffset, TZonePageType aType) const; + TInt NextAllocatedRun(SZone* aZone, TUint& aOffset, TUint aEndOffset, TZonePageType aType) const; TUint GenDefragFreePages(TZonePageType aType) const; SZone* GeneralDefragStart0(TGenDefragStage& aStage, TUint& aRequiredToBeDiscarded); SZone* GeneralDefragNextZone0(); @@ -205,9 +212,7 @@ SDblQueLink* iZoneGeneralPrefLink; /**< Link to the current RAM zone being defragged*/ SDblQueLink* iZoneGeneralTmpLink; /**< Link to the current RAM zone being defragged*/ TUint iZoneGeneralStage; /**< The current stage of any general defrag operation*/ -#ifdef _DEBUG - TBool iAllowBmaVerify; -#endif + TUint iContiguousReserved; /**< The count of the number of separate contiguous allocations that have reserved pages*/ }; #endif diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/include/u32hal.h --- a/kernel/eka/include/u32hal.h Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/include/u32hal.h Fri Jun 11 15:02:23 2010 +0300 @@ -1,4 +1,4 @@ -// Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies). +// Copyright (c) 1995-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" @@ -2015,7 +2015,23 @@ @see TPckgBuf @see TDigitiserInfoV02 */ - EDigitiserHal3DInfo + EDigitiserHal3DInfo, + + /** + Get or sets the digitiser driver's current orientation property. + Requirements of the HAL function handler's 2nd, 3rd and 4th parameters: + + - TInt aFunction : This enum value. + - TAny* a1 : if Set, a TDigitiserOrientation value the driver should now use + : If Get, a pointer to a TDigitiserOrientation. The HAL function + : needs to set its value to the current value used in the driver. + - TAny* a2 : Cast to a TInt. Should be assigned the value + : EFalse - Get property; ETrue - Set property + + @see HALData::TDigitiserOrientation + @capability WriteDeviceData To set the property, None to read + */ + EDigitiserOrientation }; diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/kernel/device.cpp --- a/kernel/eka/kernel/device.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/kernel/device.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -629,9 +629,9 @@ r=pdev.FindByFullName(h,n,fn); if (r!=KErrNone) break; - __KTRACE_OPT(KDEVICE,Kern::Printf("Found PDD %lS",&fn)); + __KTRACE_OPT(KDEVICE,Kern::Printf("Found PDD %S",&fn)); pP=(DPhysicalDevice *)pdev.At(h); - __KTRACE_OPT(KDEVICE,{TBuf<16> verBuf(iVersion.Name()); Kern::Printf("unit=%d, info=%08x, ver=%lS",aInfo.iUnit,aInfo.iInfo,&verBuf);}); + __KTRACE_OPT(KDEVICE,{TBuf<16> verBuf(iVersion.Name()); Kern::Printf("unit=%d, info=%08x, ver=%S",aInfo.iUnit,aInfo.iInfo,&verBuf);}); r=pP->Validate(aInfo.iUnit,aInfo.iInfo,iVersion); __KTRACE_OPT(KDEVICE,Kern::Printf("DPhysicalDevice::Validate returns %d",r)); if (r!=KErrNotSupported) @@ -692,7 +692,7 @@ info.iPhysicalDevice=&pddName; } - __KTRACE_OPT(KDEVICE,Kern::Printf("Exec::ChannelCreate LDD %lS PDD %lS Unit %d",&lddName,info.iPhysicalDevice,info.iUnit)); + __KTRACE_OPT(KDEVICE,Kern::Printf("Exec::ChannelCreate LDD %S PDD %S Unit %d",&lddName,info.iPhysicalDevice,info.iUnit)); TInt r=Kern::ValidateName(lddName); if (r<0) diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/kernel/kerncorestats.cpp --- a/kernel/eka/kernel/kerncorestats.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/kernel/kerncorestats.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -1,7 +1,7 @@ // Copyright (c) 1994-2009 Nokia Corporation and/or its subsidiary(-ies). // All rights reserved. // This component and the accompanying materials are made available -// under the terms of "Eclipse Public License v1.0" +// 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". // diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/kernel/object.cpp --- a/kernel/eka/kernel/object.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/kernel/object.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -441,7 +441,7 @@ EXPORT_C TInt DObject::SetName(const TDesC* aName) { CHECK_PRECONDITIONS(MASK_THREAD_CRITICAL,"DObject::SetName"); - __KTRACE_OPT(KOBJECT,Kern::Printf("SetName %O (%lS)",this,aName)); + __KTRACE_OPT(KOBJECT,Kern::Printf("SetName %O (%S)",this,aName)); TAny* pN=NULL; if (aName) { @@ -456,7 +456,7 @@ pN = __e32_atomic_swp_ord_ptr(&iName, pN); if (iName) { - __KTRACE_OPT(KOBJECT,Kern::Printf("Name is now %lS",iName)); + __KTRACE_OPT(KOBJECT,Kern::Printf("Name is now %S",iName)); } else { @@ -1164,7 +1164,7 @@ __KTRACE_OPT(KOBJECT,Kern::Printf("Container %d created OK",pC->UniqueID())); return pC; } - __KTRACE_OPT(KOBJECT,Kern::Printf("Error %d creating mutex %lS",r,&n)); + __KTRACE_OPT(KOBJECT,Kern::Printf("Error %d creating mutex %S",r,&n)); } return NULL; } diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/kernel/power.cpp --- a/kernel/eka/kernel/power.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/kernel/power.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -194,7 +194,7 @@ // Called in CS void DPowerManager::AppendHandler(DPowerHandler* aPh) { // called by drivers (power handler) - __KTRACE_OPT(KPOWER,Kern::Printf("PowerManger::AppendHandler('%lS')", &aPh->iName)); + __KTRACE_OPT(KPOWER,Kern::Printf("PowerManger::AppendHandler('%S')", &aPh->iName)); __ASSERT_CRITICAL; //Check to ensure that handler is not added multiple times and not part of any other list __PM_ASSERT(!(aPh->iPrev) && !(aPh->iNext)); @@ -220,7 +220,7 @@ // Called in CS void DPowerManager::RemoveHandler(DPowerHandler* aPh) { // called by drivers (power handler) - __KTRACE_OPT(KPOWER,Kern::Printf("PowerManger::RemoveHandler('%lS')", &aPh->iName)); + __KTRACE_OPT(KPOWER,Kern::Printf("PowerManger::RemoveHandler('%S')", &aPh->iName)); __ASSERT_CRITICAL; Lock(); __PM_ASSERT(aPh); @@ -529,7 +529,7 @@ iStatus |= EDone; #endif NKern::Lock(); - __KTRACE_OPT(KPOWER,Kern::Printf("DPowerHandler::Done('%lS') sem=0x%x", &iName, iSem)); + __KTRACE_OPT(KPOWER,Kern::Printf("DPowerHandler::Done('%S') sem=0x%x", &iName, iSem)); NFastSemaphore* sem = (NFastSemaphore*)__e32_atomic_swp_ord_ptr(&iSem, 0); if (sem) sem->Signal(); diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/kernel/scodeseg.cpp --- a/kernel/eka/kernel/scodeseg.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/kernel/scodeseg.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -671,7 +671,7 @@ const TInt KValidAttrMask = ECodeSegAttKernel | ECodeSegAttGlobal | ECodeSegAttFixed | ECodeSegAttABIMask | ECodeSegAttHDll | ECodeSegAttExpVer | ECodeSegAttNmdExpData | ECodeSegAttSMPSafe; - __KTRACE_OPT(KDLL,Kern::Printf("DCodeSeg::Create %08x file %lS ver %08x process %O",this,&aInfo.iFileName,aInfo.iModuleVersion,aProcess)); + __KTRACE_OPT(KDLL,Kern::Printf("DCodeSeg::Create %08x file %S ver %08x process %O",this,&aInfo.iFileName,aInfo.iModuleVersion,aProcess)); TInt32 uid1=aInfo.iUids.iUid[0].iUid; if (uid1!=KDynamicLibraryUidValue && uid1!=KExecutableImageUidValue) return KErrNotSupported; @@ -1420,7 +1420,7 @@ { TCodeSegCreateInfo info; kumemget32(&info, &aInfo, sizeof(info)); - __KTRACE_OPT2(KEXEC,KDLL,Kern::Printf("Exec::CodeSegCreate %lS ver %08x", &info.iFileName, info.iModuleVersion)); + __KTRACE_OPT2(KEXEC,KDLL,Kern::Printf("Exec::CodeSegCreate %S ver %08x", &info.iFileName, info.iModuleVersion)); __KTRACE_OPT(KDLL,DumpCodeSegCreateInfo(info)); K::CheckFileServerAccess(); // only F32 can use this exec function info.iHandle=NULL; @@ -1448,7 +1448,7 @@ { TCodeSegCreateInfo info; kumemget32(&info, &aInfo, sizeof(info)); - __KTRACE_OPT2(KEXEC,KDLL,Kern::Printf("Exec::CodeSegLoaded %lS ver %08x", &info.iFileName, info.iModuleVersion)); + __KTRACE_OPT2(KEXEC,KDLL,Kern::Printf("Exec::CodeSegLoaded %S ver %08x", &info.iFileName, info.iModuleVersion)); __KTRACE_OPT(KDLL,DumpCodeSegCreateInfo(info)); DCodeSeg* pS=DCodeSeg::VerifyCallerAndHandle(info.iHandle); Kern::AccessCode(); @@ -1667,7 +1667,7 @@ { TProcessCreateInfo info; kumemget32(&info, &aInfo, sizeof(info)); - __KTRACE_OPT2(KEXEC,KDLL,Kern::Printf("Exec::ProcessCreate %lS ver %08x", &info.iFileName, info.iModuleVersion)); + __KTRACE_OPT2(KEXEC,KDLL,Kern::Printf("Exec::ProcessCreate %S ver %08x", &info.iFileName, info.iModuleVersion)); __KTRACE_OPT(KDLL,DumpProcessCreateInfo(info)); K::CheckFileServerAccess(); // only F32 can use this exec function if (info.iHandle) @@ -1794,7 +1794,7 @@ { TProcessCreateInfo info; kumemget32(&info, &aInfo, sizeof(info)); - __KTRACE_OPT2(KEXEC,KDLL,Kern::Printf("Exec::ProcessLoaded %lS ver %08x", &info.iFileName, info.iModuleVersion)); + __KTRACE_OPT2(KEXEC,KDLL,Kern::Printf("Exec::ProcessLoaded %S ver %08x", &info.iFileName, info.iModuleVersion)); __KTRACE_OPT(KDLL,DumpProcessCreateInfo(info)); K::CheckFileServerAccess(); // only F32 can use this exec function NKern::LockSystem(); diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/kernel/server.cpp --- a/kernel/eka/kernel/server.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/kernel/server.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -840,7 +840,7 @@ TBuf cat; if (aType==EExitPanic && aCategory) GetCategory(cat,*aCategory); - __KTRACE_OPT(KEXEC,Kern::Printf("Exec::ThreadKill %d,%d,%lS",aType,aReason,&cat)); + __KTRACE_OPT(KEXEC,Kern::Printf("Exec::ThreadKill %d,%d,%S",aType,aReason,&cat)); K::CheckKernelUnlocked(); NKern::LockSystem(); DThread* pT=(DThread*)K::ObjectFromHandle(aHandle,EThread); @@ -856,7 +856,7 @@ TBuf cat; if (aType==EExitPanic && aCategory) GetCategory(cat,*aCategory); - __KTRACE_OPT(KEXEC,Kern::Printf("Exec::ProcessKill %d,%d,%lS",aType,aReason,&cat)); + __KTRACE_OPT(KEXEC,Kern::Printf("Exec::ProcessKill %d,%d,%S",aType,aReason,&cat)); K::CheckKernelUnlocked(); NKern::LockSystem(); DProcess* pP=(DProcess*)K::ThreadEnterCS(aHandle,EProcess); @@ -932,7 +932,7 @@ { CHECK_PRECONDITIONS(MASK_THREAD_STANDARD,"Kern::PanicCurrentThread"); // enter with system unlocked - __KTRACE_OPT(KEXEC,Kern::Printf("Kern::PanicCurrentThread %lS %d",&aCategory,aReason)); + __KTRACE_OPT(KEXEC,Kern::Printf("Kern::PanicCurrentThread %S %d",&aCategory,aReason)); K::CheckKernelUnlocked(); NKern::LockSystem(); TheCurrentThread->Die(EExitPanic,aReason,aCategory); // doesn't return diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/kernel/sexec.cpp --- a/kernel/eka/kernel/sexec.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/kernel/sexec.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -36,7 +36,7 @@ TFindHandle h; Kern::KUDesGet(match,aName); kumemget32(&h,&aFindHandle,sizeof(h)); - __KTRACE_OPT(KEXEC,Kern::Printf("ObjN: %lS %08x", &match, h.Handle())); + __KTRACE_OPT(KEXEC,Kern::Printf("ObjN: %S %08x", &match, h.Handle())); NKern::ThreadEnterCS(); TInt r=pC->FindByFullName(h, match, fn); NKern::ThreadLeaveCS(); @@ -812,7 +812,7 @@ TKName n; if (aName) Kern::KUDesGet(n,*aName); - __KTRACE_OPT(KEXEC,Kern::Printf("Exec::ChunkCreate %lS",&n)); + __KTRACE_OPT(KEXEC,Kern::Printf("Exec::ChunkCreate %S",&n)); TChunkCreate uinfo; SChunkCreateInfo info; kumemget32(&uinfo,&anInfo,sizeof(uinfo)); @@ -938,9 +938,9 @@ TInt ExecHandler::OpenObject(TObjectType aObjType, const TDesC8& aName, TOwnerType aType) { - __KTRACE_OPT(KTHREAD,Kern::Printf("Exec::OpenObject %lS",&aName)); TFullName n; Kern::KUDesGet(n,aName); + __KTRACE_OPT(KTHREAD,Kern::Printf("Exec::OpenObject %S",&n)); if (Kern::ValidateFullName(n)!=KErrNone) K::PanicKernExec(EBadName); if ((TUint)aObjType>=(TUint)ENumObjectTypes) @@ -1012,12 +1012,12 @@ { Kern::KUDesGet(n,*aName); pN=&n; + __KTRACE_OPT(KSEMAPHORE,Kern::Printf("Exec::MutexCreate %S",pN)); } else if (aType==EOwnerThread) pO=TheCurrentThread; else pO=TheCurrentThread->iOwningProcess; - __KTRACE_OPT(KSEMAPHORE,Kern::Printf("Exec::MutexCreate %lS",aName)); NKern::ThreadEnterCS(); DMutex* pM; TInt r=K::MutexCreate(pM, *pN, pO, ETrue, KMutexOrdUser); @@ -1036,7 +1036,6 @@ TInt ExecHandler::SemaphoreCreate(const TDesC8* aName, TInt aCount, TOwnerType aType) { - __KTRACE_OPT(KSEMAPHORE,Kern::Printf("Exec::SemaphoreCreate %lS",aName)); TKName n; DObject* pO=NULL; const TDesC* pN=NULL; @@ -1044,6 +1043,7 @@ { Kern::KUDesGet(n,*aName); pN=&n; + __KTRACE_OPT(KSEMAPHORE,Kern::Printf("Exec::SemaphoreCreate %S",pN)); } else if (aType==EOwnerThread) pO=TheCurrentThread; @@ -1230,7 +1230,7 @@ { TKName n; Kern::KUDesGet(n,aName); - __KTRACE_OPT(KEXEC,Kern::Printf("Exec::ThreadRename %lS",&n)); + __KTRACE_OPT(KEXEC,Kern::Printf("Exec::ThreadRename %S",&n)); NKern::LockSystem(); DThread* pT=(DThread*)K::ThreadEnterCS(aHandle,EThread); if (pT!=TheCurrentThread && @@ -1255,7 +1255,7 @@ { TKName n; Kern::KUDesGet(n,aName); - __KTRACE_OPT(KEXEC,Kern::Printf("Exec::ProcessRename %lS",&n)); + __KTRACE_OPT(KEXEC,Kern::Printf("Exec::ProcessRename %S",&n)); NKern::LockSystem(); DProcess* pP=(DProcess*)K::ThreadEnterCS(aHandle,EProcess); if (pP->iSecurityZone!=TheCurrentThread->iOwningProcess->iSecurityZone) @@ -1907,7 +1907,7 @@ { TKName n; Kern::KUDesGet(n,aName); - __KTRACE_OPT(KEXEC,Kern::Printf("Exec::ThreadCreate %lS",&n)); + __KTRACE_OPT(KEXEC,Kern::Printf("Exec::ThreadCreate %S",&n)); TUint32 infoBuf[KMaxThreadCreateInfo/sizeof(TUint32)]; SThreadCreateInfo& info = *(SThreadCreateInfo*)infoBuf; kumemget32(&info, &aInfo, sizeof(SThreadCreateInfo)); @@ -1942,7 +1942,7 @@ TInt K::MutexCreate(DMutex*& aMutex, const TDesC& aName, DObject* anOwner, TBool aVisible, TUint aOrder) { - __KTRACE_OPT(KSEMAPHORE,Kern::Printf("K::MutexCreate %lS owner %O visible=%d order=%02x",&aName,anOwner,aVisible,aOrder)); + __KTRACE_OPT(KSEMAPHORE,Kern::Printf("K::MutexCreate %S owner %O visible=%d order=%02x",&aName,anOwner,aVisible,aOrder)); DMutex* pM=new DMutex; TInt r=KErrNoMemory; if (pM) @@ -2009,7 +2009,7 @@ EXPORT_C TInt Kern::ThreadCreate(SThreadCreateInfo& aInfo) { CHECK_PRECONDITIONS(MASK_THREAD_CRITICAL,"Kern::ThreadCreate"); - __KTRACE_OPT(KEXEC,Kern::Printf("Kern::ThreadCreate %lS",&aInfo.iName)); + __KTRACE_OPT(KEXEC,Kern::Printf("Kern::ThreadCreate %S",&aInfo.iName)); aInfo.iHandle=NULL; DThread* pT=NULL; TBool svc = aInfo.iType!=EThreadUser; diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/kernel/sipc.cpp --- a/kernel/eka/kernel/sipc.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/kernel/sipc.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -2044,7 +2044,7 @@ TBuf cat; if (aType==EExitPanic && aCategory) GetCategory(cat,*aCategory); - __KTRACE_OPT(KEXEC,Kern::Printf("Exec::MessageKill %d,%d,%lS",aType,aReason,&cat)); + __KTRACE_OPT(KEXEC,Kern::Printf("Exec::MessageKill %d,%d,%S",aType,aReason,&cat)); K::CheckKernelUnlocked(); NKern::LockSystem(); RMessageK* pM = RMessageK::MessageK(aHandle); diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/kernel/skernel.cpp --- a/kernel/eka/kernel/skernel.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/kernel/skernel.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -53,7 +53,7 @@ // Enter and return with system unlocked. TInt DSemaphore::Create(DObject* aOwner, const TDesC* aName, TInt aInitialCount, TBool aVisible) { - __KTRACE_OPT(KSEMAPHORE,Kern::Printf("DSemaphore::Create owner %O, name %lS, init count=%d, visible=%d",aOwner,aName,aInitialCount,aVisible)); + __KTRACE_OPT(KSEMAPHORE,Kern::Printf("DSemaphore::Create owner %O, name %S, init count=%d, visible=%d",aOwner,aName,aInitialCount,aVisible)); if (aInitialCount<0) return KErrArgument; SetOwner(aOwner); @@ -306,7 +306,7 @@ // Enter and return with system unlocked. TInt DMutex::Create(DObject* aOwner, const TDesC* aName, TBool aVisible, TUint aOrder) { - __KTRACE_OPT(KSEMAPHORE,Kern::Printf("DMutex::Create owner %O, name %lS, visible=%d, order=%02x",aOwner,aName,aVisible,aOrder)); + __KTRACE_OPT(KSEMAPHORE,Kern::Printf("DMutex::Create owner %O, name %S, visible=%d, order=%02x",aOwner,aName,aVisible,aOrder)); iOrder = (TUint8)aOrder; SetOwner(aOwner); TInt r=KErrNone; @@ -654,7 +654,7 @@ // Enter and return with system unlocked. TInt DCondVar::Create(DObject* aOwner, const TDesC* aName, TBool aVisible) { - __KTRACE_OPT(KSEMAPHORE,Kern::Printf("DCondVar::Create owner %O, name %lS, visible=%d",aOwner,aName,aVisible)); + __KTRACE_OPT(KSEMAPHORE,Kern::Printf("DCondVar::Create owner %O, name %S, visible=%d",aOwner,aName,aVisible)); SetOwner(aOwner); TInt r=KErrNone; if (aName && aName->Length()) @@ -1080,12 +1080,12 @@ { Kern::KUDesGet(n,*aName); pN=&n; + __KTRACE_OPT(KSEMAPHORE,Kern::Printf("Exec::CondVarCreate %S", pN)); } else if (aType==EOwnerThread) pO=TheCurrentThread; else pO=TheCurrentThread->iOwningProcess; - __KTRACE_OPT(KSEMAPHORE,Kern::Printf("Exec::CondVarCreate %lS", aName)); NKern::ThreadEnterCS(); TInt r=KErrNoMemory; DCondVar* pV = new DCondVar; diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/kernel/smonitor.cpp --- a/kernel/eka/kernel/smonitor.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/kernel/smonitor.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -322,7 +322,7 @@ } PrintLine(buf); Printf("Default priority %d WaitLink Priority %d\r\n",pT->iDefaultPriority,pT->iWaitLink.iPriority); - Printf("ExitInfo %d,%d,%lS\r\n",pT->iExitType,pT->iExitReason,&pT->iExitCategory); + Printf("ExitInfo %d,%d,%S\r\n",pT->iExitType,pT->iExitReason,&pT->iExitCategory); Printf("Flags %08x, Handles %08x\r\n",pT->iFlags,&pT->iHandles); Printf("Supervisor stack base %08x size %x\r\n", pT->iSupervisorStack, pT->iSupervisorStackSize); Printf("User stack base %08x size %x\r\n", pT->iUserStackRunAddress, pT->iUserStackSize); @@ -493,7 +493,7 @@ void Monitor::DumpProcessData(DProcess* pP) { - Printf("ExitInfo %d,%d,%lS\r\n",pP->iExitType,pP->iExitReason,&pP->iExitCategory); + Printf("ExitInfo %d,%d,%S\r\n",pP->iExitType,pP->iExitReason,&pP->iExitCategory); Printf("Flags %08x, Handles %08x, Attributes %08x\r\n",pP->iFlags,&pP->iHandles,pP->iAttributes); Printf("DataBssChunk %08x, CodeSeg %08x\r\n",pP->iDataBssStackChunk,pP->iCodeSeg); Printf("DllLock %08x, Process Lock %08x SID %08x\r\n",pP->iDllLock,pP->iProcessLock,pP->iS.iSecureId); diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/kernel/sprocess.cpp --- a/kernel/eka/kernel/sprocess.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/kernel/sprocess.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -324,7 +324,7 @@ iGeneration = NextGeneration(aName, iUids.iUid[2]); - __KTRACE_OPT(KTHREAD,Kern::Printf("DProcess::Rename %O to %lS",this,&aName)); + __KTRACE_OPT(KTHREAD,Kern::Printf("DProcess::Rename %O to %S",this,&aName)); TInt r = SetName(&aName); #ifdef BTRACE_THREAD_IDENTIFICATION Name(n); @@ -530,7 +530,7 @@ // Kill a process. Enter and return with system unlocked and calling thread in critical section. // { - __KTRACE_OPT(KPROC,Kern::Printf("Process %O Die: %d %d %lS",this,aType,aReason,&aCategory)); + __KTRACE_OPT(KPROC,Kern::Printf("Process %O Die: %d %d %S",this,aType,aReason,&aCategory)); TInt r=WaitProcessLock(); if (r!=KErrNone) @@ -612,7 +612,7 @@ TInt DProcess::NewThread(DThread*& aThread, SThreadCreateInfo& anInfo, TInt* aHandle, TOwnerType aType) { __KTRACE_OPT(KTHREAD,Kern::Printf("NewThread proc %O, func %08x ptr %08x",this,anInfo.iFunction,anInfo.iPtr)); - __KTRACE_OPT(KTHREAD,Kern::Printf("type %d name %lS pri %d",anInfo.iType,&anInfo.iName,anInfo.iInitialThreadPriority)); + __KTRACE_OPT(KTHREAD,Kern::Printf("type %d name %S pri %d",anInfo.iType,&anInfo.iName,anInfo.iInitialThreadPriority)); if (aHandle) *aHandle=0; TInt r=GetNewThread(aThread,anInfo); diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/kernel/sthread.cpp --- a/kernel/eka/kernel/sthread.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/kernel/sthread.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -699,7 +699,7 @@ #ifdef KPANIC if (iExitType==EExitPanic) { - __KTRACE_OPT2(KPANIC,KSCHED,Kern::Printf("Thread %O Panic %lS %d",this,&iExitCategory,iExitReason)); + __KTRACE_OPT2(KPANIC,KSCHED,Kern::Printf("Thread %O Panic %S %d",this,&iExitCategory,iExitReason)); } else if (iExitType==EExitTerminate) { @@ -830,7 +830,7 @@ void DThread::Die(TExitType aType, TInt aReason, const TDesC& aCategory) { CHECK_PRECONDITIONS(MASK_SYSTEM_LOCKED,"DThread::Die"); - __KTRACE_OPT(KTHREAD,Kern::Printf("Thread %O Die: %d,%d,%lS",this,aType,aReason,&aCategory)); + __KTRACE_OPT(KTHREAD,Kern::Printf("Thread %O Die: %d,%d,%S",this,aType,aReason,&aCategory)); SetExitInfo(aType,aReason,aCategory); // If necessary, decrement count of running user threads in this process. We get here if the @@ -923,7 +923,7 @@ TInt DThread::Create(SThreadCreateInfo& aInfo) { - __KTRACE_OPT(KTHREAD,Kern::Printf("DThread::Create %lS owner %O size %03x", &aInfo.iName, + __KTRACE_OPT(KTHREAD,Kern::Printf("DThread::Create %S owner %O size %03x", &aInfo.iName, iOwningProcess, aInfo.iTotalSize)); if (aInfo.iTotalSize < (TInt)sizeof(SThreadCreateInfo)) @@ -1268,7 +1268,7 @@ TInt r=K::Containers[EThread]->CheckUniqueFullName(this,aName); if (r==KErrNone) { - __KTRACE_OPT(KTHREAD,Kern::Printf("DThread::Rename %O to %lS",this,&aName)); + __KTRACE_OPT(KTHREAD,Kern::Printf("DThread::Rename %O to %S",this,&aName)); r=SetName(&aName); #ifdef BTRACE_THREAD_IDENTIFICATION Name(n); diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/kernel/sutils.cpp --- a/kernel/eka/kernel/sutils.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/kernel/sutils.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -1580,7 +1580,7 @@ TInt DThread::OpenObject(TOwnerType aType, const TDesC& aName, TInt& aHandle, DObject*& anObj, TInt aObjType) { - __KTRACE_OPT(KEXEC,Kern::Printf("DThread::OpenObject %lS",&aName)); + __KTRACE_OPT(KEXEC,Kern::Printf("DThread::OpenObject %S",&aName)); anObj=NULL; TInt r=Kern::ValidateFullName(aName); if (r!=KErrNone) @@ -2373,7 +2373,7 @@ EXPORT_C TInt Kern::SemaphoreCreate(DSemaphore*& aSem, const TDesC& aName, TInt aInitialCount) { CHECK_PRECONDITIONS(MASK_THREAD_CRITICAL,"Kern::SemaphoreCreate"); - __KTRACE_OPT(KSEMAPHORE,Kern::Printf("Kern::SemaphoreCreate %lS init %d", &aName, aInitialCount)); + __KTRACE_OPT(KSEMAPHORE,Kern::Printf("Kern::SemaphoreCreate %S init %d", &aName, aInitialCount)); TInt r = KErrNoMemory; DSemaphore* pS = new DSemaphore; if (pS) diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/klib/bma.cpp --- a/kernel/eka/klib/bma.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/klib/bma.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -762,6 +762,49 @@ } +/** Allocates a specific range of bit positions. + + The specified range must lie within the total range for this allocator but it is + not necessary that all the positions are currently free. + + @param aStart First position to allocate. + @param aLength Number of consecutive positions to allocate, must be >0. + @return The number of previously free positions that were allocated. + */ +EXPORT_C TUint TBitMapAllocator::SelectiveAlloc(TInt aStart, TInt aLength) + { + __ASSERT_ALWAYS(TUint(aStart) < TUint(iSize), TBMA_FAULT()); + __ASSERT_ALWAYS(TUint(aStart + aLength) >= TUint(aStart), TBMA_FAULT()); + __ASSERT_ALWAYS(TUint(aStart + aLength) <= TUint(iSize), TBMA_FAULT()); + TInt wix = aStart >> 5; + TInt sbit = aStart & 31; + TUint32* pW = iMap + wix; + iAvail -= aLength; // update free count assuming no positions already allocated + TInt ebit = sbit + aLength; + if (ebit < 32) + { + TUint32 b = ((0xffffffffu >> aLength) >> sbit) | ~(0xffffffffu >> sbit); + TUint32 w = *pW; + *pW = w & b; // mark all positions allocated + TUint allocated = __e32_bit_count_32(~w & ~b); + iAvail += allocated; // increase free count by number of positions already allocated + return aLength - allocated; + } + TUint32 b = ~(0xffffffffu >> sbit); + while (ebit > 0) + { + TUint32 w = *pW; + *pW++ = w & b; // mark all positions allocated + TUint allocated = __e32_bit_count_32(~w & ~b); + iAvail += allocated; // increase free count by number of positions already allocated + aLength -= allocated; + ebit -= 32; + b = (ebit >= 32)? 0 : 0xffffffff >> ebit; + } + return aLength; + } + + /** Copies a range from another allocator, mark remainder as occupied. Values of bit positions from aFirst to aFirst+aLen-1 inclusive in allocator diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/memmodel/emul/win32/mcodeseg.cpp --- a/kernel/eka/memmodel/emul/win32/mcodeseg.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/memmodel/emul/win32/mcodeseg.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -66,8 +66,8 @@ Kern::Printf("iAccessCount = %d", a.iAccessCount); Kern::Printf("iEntryPtVeneer = %08x", a.iEntryPtVeneer); Kern::Printf("iFileEntryPoint = %08x", a.iFileEntryPoint); - Kern::Printf("iFileName = %lS", a.iFileName); - Kern::Printf("iRootName = %lS", &a.iRootName); + Kern::Printf("iFileName = %S", a.iFileName); + Kern::Printf("iRootName = %S", &a.iRootName); Kern::Printf("iExtOffset = %d", a.iExtOffset); Kern::Printf("iModuleVersion = %08x", a.iModuleVersion); Kern::Printf("iUids = %08x %08x %08x", uid[0], uid[1], uid[2]); @@ -1111,7 +1111,7 @@ // in order to make them appear to be in z:\system\libs void P::NormalizeExecutableFileName(TDes& a) { - __KTRACE_OPT(KDLL, Kern::Printf("NormalizeExecutableFileName %lS", &a)); + __KTRACE_OPT(KDLL, Kern::Printf("NormalizeExecutableFileName %S", &a)); if (a.Length()<3 || a[1]!=':' || a[2]!='\\') { // don't have a drive so assume in 'ROM' @@ -1120,7 +1120,7 @@ if (initial.Length()==0 || initial[0]!='\\') a.Append('\\'); a+=initial; - __KTRACE_OPT(KDLL, Kern::Printf("NormalizeExecutableFileName -> %lS", &a)); + __KTRACE_OPT(KDLL, Kern::Printf("NormalizeExecutableFileName -> %S", &a)); } } diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/memmodel/epoc/flexible/mmu/mdefrag.cpp --- a/kernel/eka/memmodel/epoc/flexible/mmu/mdefrag.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/memmodel/epoc/flexible/mmu/mdefrag.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -124,7 +124,8 @@ TInt M::MovePage(TPhysAddr aOld, TPhysAddr& aNew, TUint aBlockZoneId, TBool aBlockRest) { - TInt r; + // Returns this when page is not paged or managed or free but is a real RAM page. + TInt r = KErrNotSupported; // get memory object corresponding to the page... DMemoryObject* memory = 0; @@ -136,30 +137,76 @@ {// The page is paged so let the pager handle it. return ThePager.DiscardPage(pi, aBlockZoneId, aBlockRest); } - if (pi->Type()==SPageInfo::EManaged) - memory = pi->Owner(); - } - MmuLock::Unlock(); - - // Note, whilst we hold the RamAllocLock the page can't change it's use - // and we can safely assume that it still belongs to the memory object - // at a fixed page index. - // Also, as memory objects can't be destroyed whilst they still own pages - // we can safely access this object without taking an explicit referernce, - // i.e. we don't need to Open() the memory object. - if (!pi) - {// page info for aOld not found so aOld is not a RAM page... - r = KErrArgument; - } - else if(!memory) - { - // page does not have a memory manager, so we can't move it... - r = KErrNotSupported; + switch (pi->Type()) + { + case SPageInfo::EManaged: + memory = pi->Owner(); + // Note, whilst we hold the RamAllocLock the page can't change it's use + // and we can safely assume that it still belongs to the memory object + // at a fixed page index. + // Also, as memory objects can't be destroyed whilst they still own pages + // we can safely access this object without taking an explicit reference, + // i.e. we don't need to Open() the memory object. + MmuLock::Unlock(); + // move page... + r = memory->iManager->MovePage(memory, pi, aNew, aBlockZoneId, aBlockRest); + break; + case SPageInfo::EUnused: + r = KErrNotFound; // This page is free so nothing to do. + // Fall through.. + default: + MmuLock::Unlock(); + } } else - { - // move page... - r = memory->iManager->MovePage(memory, pi, aNew, aBlockZoneId, aBlockRest); + {// page info for aOld not found so aOld is not a RAM page... + MmuLock::Unlock(); + r = KErrArgument; } return r; } + + +TInt M::MoveAndAllocPage(TPhysAddr aAddr, TZonePageType aPageType) + { + // Returns this when page is not paged or managed or free but is a real RAM page. + TInt r = KErrNotSupported; + + // get memory object corresponding to the page... + DMemoryObject* memory = 0; + MmuLock::Lock(); + SPageInfo* pi = SPageInfo::SafeFromPhysAddr(aAddr & ~KPageMask); + if(pi) + { + if (pi->PagedState() != SPageInfo::EUnpaged) + {// The page is paged so let the pager handle it. + return ThePager.DiscardAndAllocPage(pi, aPageType); + } + switch (pi->Type()) + { + case SPageInfo::EManaged: + memory = pi->Owner(); + // Note, whilst we hold the RamAllocLock the page can't change it's use + // and we can safely assume that it still belongs to the memory object + // at a fixed page index. + // Also, as memory objects can't be destroyed whilst they still own pages + // we can safely access this object without taking an explicit referernce, + // i.e. we don't need to Open() the memory object. + MmuLock::Unlock(); + // move page... + r = memory->iManager->MoveAndAllocPage(memory, pi, aPageType); + break; + case SPageInfo::EUnused: + r = KErrNone; // This page is free so nothing to do. + // Fall through.. + default: + MmuLock::Unlock(); + } + } + else + {// page info for aAddr not found so aAddr is not a RAM page... + MmuLock::Unlock(); + r = KErrArgument; + } + return r; + } diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/memmodel/epoc/flexible/mmu/mmanager.cpp --- a/kernel/eka/memmodel/epoc/flexible/mmu/mmanager.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/memmodel/epoc/flexible/mmu/mmanager.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -134,6 +134,13 @@ return KErrNotSupported; } + +TInt DMemoryManager::MoveAndAllocPage(DMemoryObject*, SPageInfo*, TZonePageType) + { + return KErrNotSupported; + } + + TZonePageType DMemoryManager::PageType() {// This should not be invoked on memory managers that do not use the methods // AllocPages() and FreePages(). @@ -721,6 +728,7 @@ public: // from DMemoryManager... virtual TInt MovePage(DMemoryObject* aMemory, SPageInfo* aOldPageInfo, TPhysAddr& aNewPage, TUint aBlockZoneId, TBool aBlockRest); + virtual TInt MoveAndAllocPage(DMemoryObject* aMemory, SPageInfo* aPageInfo, TZonePageType aPageType); virtual TInt HandleFault( DMemoryObject* aMemory, TUint aIndex, DMemoryMapping* aMapping, TUint aMapInstanceCount, TUint aAccessPermissions); virtual TZonePageType PageType(); @@ -887,6 +895,18 @@ } +TInt DMovableMemoryManager::MoveAndAllocPage(DMemoryObject* aMemory, SPageInfo* aPageInfo, TZonePageType aPageType) + { + TPhysAddr newPage; + TInt r = MovePage(aMemory, aPageInfo, newPage, KRamZoneInvalidId, EFalse); + if (r == KErrNone) + { + TheMmu.MarkPageAllocated(aPageInfo->PhysAddr(), aPageType); + } + return r; + } + + TInt DMovableMemoryManager::HandleFault(DMemoryObject* aMemory, TUint aIndex, DMemoryMapping* aMapping, TUint aMapInstanceCount, TUint aAccessPermissions) { diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/memmodel/epoc/flexible/mmu/mmanager.h --- a/kernel/eka/memmodel/epoc/flexible/mmu/mmanager.h Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/memmodel/epoc/flexible/mmu/mmanager.h Fri Jun 11 15:02:23 2010 +0300 @@ -359,11 +359,37 @@ virtual void Unpin(DMemoryObject* aMemory, DMemoryMappingBase* aMapping, TPinArgs& aPinArgs) =0; /** - @todo + Attempt to move the page specified to a new physical location. The new physical + location for the page to be moved to is allocated by this method. However, + aBlockZoneId and aBlockRest can be used to control which RAM zone the new + location is in. + + @param aMemory The memory object that owns the page. + @param aOldPageInfo The page info for the physical page to move. + @param aNewPage On success this will hold the physical address of the new + location for the page. + @param aBlockZoneId The ID of a RAM zone not to allocate the new page into. + @param aBlockRest When set to ETrue the search for a new page will stop if it + ever needs to look at aBlockZoneId. + @return KErrNone on success, KErrInUse if the page couldn't be moved, + or KErrNoMemory if it wasn't possible to allocate a new page. */ virtual TInt MovePage(DMemoryObject* aMemory, SPageInfo* aOldPageInfo, TPhysAddr& aNewPage, TUint aBlockZoneId, TBool aBlockRest); /** + Move the page specified to a new physical location and mark the page as + allocated as type aPageType. + + @param aMemory The memory object that owns the page. + @param aPageInfo The page info for the physical page to move. + @param aPageType The type of the page to allocate into the orignal physical + location of the page to move. + @return KErrNone on success, KErrInUse if the page couldn't be moved, + or KErrNoMemory if it wasn't possible to allocate a new page. + */ + virtual TInt MoveAndAllocPage(DMemoryObject* aMemory, SPageInfo* aPageInfo, TZonePageType aPageType); + + /** Return the TZonePageType of the pages that the memory manager can allocate and free. */ virtual TZonePageType PageType(); diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/memmodel/epoc/flexible/mmu/mmu.cpp --- a/kernel/eka/memmodel/epoc/flexible/mmu/mmu.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/memmodel/epoc/flexible/mmu/mmu.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -622,7 +622,7 @@ __KTRACE_OPT(KMMU,Kern::Printf("Mmu::ZoneAllocPhysicalRam(?,%d,%d,?,%d)", aZoneIdCount, aBytes, aPhysAddr, aAlign)); __NK_ASSERT_DEBUG(RamAllocLock::IsHeld()); - TInt r = iRamPageAllocator->ZoneAllocContiguousRam(aZoneIdList, aZoneIdCount, aBytes, aPhysAddr, EPageFixed, aAlign); + TInt r = iRamPageAllocator->ZoneAllocContiguousRam(aZoneIdList, aZoneIdCount, aBytes, aPhysAddr, aAlign); if(r!=KErrNone) iRamAllocFailed = ETrue; else @@ -871,6 +871,22 @@ } +/** +Mark a page as being allocated to a particular page type. + +NOTE - This page should not be used until PagesAllocated() has been invoked on it. + +@param aPhysAddr The physical address of the page to mark as allocated. +@param aZonePageType The type of the page to mark as allocated. +*/ +void Mmu::MarkPageAllocated(TPhysAddr aPhysAddr, TZonePageType aZonePageType) + { + __KTRACE_OPT(KMMU,Kern::Printf("Mmu::MarkPageAllocated(0x%x, %d)", aPhysAddr, aZonePageType)); + __NK_ASSERT_DEBUG(RamAllocLock::IsHeld()); + iRamPageAllocator->MarkPageAllocated(aPhysAddr, aZonePageType); + } + + void Mmu::FreeRam(TPhysAddr* aPages, TUint aCount, TZonePageType aZonePageType) { __KTRACE_OPT(KMMU,Kern::Printf("Mmu::FreeRam(?,%d)",aCount)); @@ -890,20 +906,31 @@ SPageInfo* pi = SPageInfo::FromPhysAddr(pagePhys); PageFreed(pi); - // If this is an old page of a page being moved that was previously pinned - // then make sure it is freed as discardable otherwise despite DPager::DonatePages() - // having marked it as discardable it would be freed as movable. - __NK_ASSERT_DEBUG(pi->PagedState() != SPageInfo::EPagedPinnedMoved || aCount == 1); - if (pi->PagedState() == SPageInfo::EPagedPinnedMoved) - aZonePageType = EPageDiscard; - - if(ThePager.PageFreed(pi)==KErrNone) - --aCount; // pager has dealt with this page, so one less for us - else + switch (ThePager.PageFreed(pi)) { - // All paged pages should have been dealt with by the pager above. - __NK_ASSERT_DEBUG(pi->PagedState() == SPageInfo::EUnpaged); - *pagesOut++ = pagePhys; // store page address for freeing later + case KErrNone: + --aCount; // pager has dealt with this page, so one less for us + break; + case KErrCompletion: + // This was a pager controlled page but it is no longer required. + __NK_ASSERT_DEBUG(aZonePageType == EPageMovable || aZonePageType == EPageDiscard); + __NK_ASSERT_DEBUG(pi->PagedState() == SPageInfo::EUnpaged); + if (aZonePageType == EPageMovable) + {// This page was donated to the pager so have to free it here + // as aZonePageType is incorrect for this page but aPages may + // contain a mixture of movable and discardable pages. + MmuLock::Unlock(); + iRamPageAllocator->FreeRamPages(&pagePhys, 1, EPageDiscard); + aCount--; // We've freed this page here so one less to free later + flash = 0; // reset flash count as we released the mmulock. + MmuLock::Lock(); + break; + } + // fall through.. + default: + // Free this page.. + __NK_ASSERT_DEBUG(pi->PagedState() == SPageInfo::EUnpaged); + *pagesOut++ = pagePhys; // store page address for freeing later } } MmuLock::Unlock(); @@ -922,21 +949,15 @@ __KTRACE_OPT(KMMU,Kern::Printf("Mmu::AllocContiguousRam returns simulated OOM %d",KErrNoMemory)); return KErrNoMemory; } - // Only the page sets EAllocNoPagerReclaim and it shouldn't allocate contiguous ram. + // Only the pager sets EAllocNoPagerReclaim and it shouldn't allocate contiguous ram. __NK_ASSERT_DEBUG(!(aFlags&EAllocNoPagerReclaim)); #endif - TInt r = iRamPageAllocator->AllocContiguousRam(aCount, aPhysAddr, EPageFixed, aAlign+KPageShift); - if(r==KErrNoMemory && aCount > KMaxFreeableContiguousPages) - { - // flush paging cache and retry... - ThePager.FlushAll(); - r = iRamPageAllocator->AllocContiguousRam(aCount, aPhysAddr, EPageFixed, aAlign+KPageShift); - } + TInt r = iRamPageAllocator->AllocContiguousRam(aCount, aPhysAddr, aAlign+KPageShift); if(r!=KErrNone) iRamAllocFailed = ETrue; else PagesAllocated((TPhysAddr*)(aPhysAddr|1), aCount, aFlags); - __KTRACE_OPT(KMMU,Kern::Printf("AllocContiguouseRam returns %d and aPhysAddr=0x%08x",r,aPhysAddr)); + __KTRACE_OPT(KMMU,Kern::Printf("AllocContiguousRam returns %d and aPhysAddr=0x%08x",r,aPhysAddr)); return r; } diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/memmodel/epoc/flexible/mmu/mmu.h --- a/kernel/eka/memmodel/epoc/flexible/mmu/mmu.h Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/memmodel/epoc/flexible/mmu/mmu.h Fri Jun 11 15:02:23 2010 +0300 @@ -1962,6 +1962,7 @@ TInt AllocRam( TPhysAddr* aPages, TUint aCount, TRamAllocFlags aFlags, TZonePageType aZonePageType, TUint aBlockZoneId=KRamZoneInvalidId, TBool aBlockRest=EFalse); + void MarkPageAllocated(TPhysAddr aPhysAddr, TZonePageType aZonePageType); void FreeRam(TPhysAddr* aPages, TUint aCount, TZonePageType aZonePageType); TInt AllocContiguousRam(TPhysAddr& aPhysAddr, TUint aCount, TUint aAlign, TRamAllocFlags aFlags); void FreeContiguousRam(TPhysAddr aPhysAddr, TUint aCount); diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/memmodel/epoc/flexible/mmu/mpagecleaner.cpp --- a/kernel/eka/memmodel/epoc/flexible/mmu/mpagecleaner.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/memmodel/epoc/flexible/mmu/mpagecleaner.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -1,7 +1,7 @@ // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). // All rights reserved. // This component and the accompanying materials are made available -// under the terms of "Eclipse Public License v1.0" +// 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". // @@ -30,8 +30,8 @@ const TInt KThreadPriority = 25; -// The length of time the paging device is idle before we decide to use it for cleaning dirty -// pages, in milliseconds. +/// The length of time the paging device is idle before we decide to use it for cleaning dirty +/// pages, in milliseconds. const TInt KIdleDelayInMillis = 2; class DPageCleaner @@ -63,13 +63,13 @@ // All state below is accessed with the MmuLock held. - // Whether the paging device is currently idle. + /// Whether the paging device is currently idle. TBool iPagingDeviceIdle; - // Whether the paging device has been idle for longer than the wait period. + /// Whether the paging device has been idle for longer than the wait period. TBool iIdleForAWhile; - // Whether the page cleaner is currently running. + /// Whether the page cleaner is currently running. TBool iCleaningInProgress; }; diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/memmodel/epoc/flexible/mmu/mpagecleaner.h --- a/kernel/eka/memmodel/epoc/flexible/mmu/mpagecleaner.h Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/memmodel/epoc/flexible/mmu/mpagecleaner.h Fri Jun 11 15:02:23 2010 +0300 @@ -1,7 +1,7 @@ // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies). // All rights reserved. // This component and the accompanying materials are made available -// under the terms of "Eclipse Public License v1.0" +// 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". // diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/memmodel/epoc/flexible/mmu/mpager.cpp --- a/kernel/eka/memmodel/epoc/flexible/mmu/mpager.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/memmodel/epoc/flexible/mmu/mpager.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -307,6 +307,7 @@ TInt DPager::PageFreed(SPageInfo* aPageInfo) { + __NK_ASSERT_DEBUG(RamAllocLock::IsHeld()); __NK_ASSERT_DEBUG(MmuLock::IsHeld()); __NK_ASSERT_DEBUG(CheckLists()); @@ -351,7 +352,7 @@ // This page was pinned when it was moved but it has not been returned // to the free pool yet so make sure it is... aPageInfo->SetPagedState(SPageInfo::EUnpaged); // Must be unpaged before returned to free pool. - return KErrNotFound; + return KErrCompletion; default: __NK_ASSERT_DEBUG(0); @@ -365,6 +366,14 @@ SetClean(*aPageInfo); } + if (iNumberOfFreePages > 0) + {// The paging cache is not at the minimum size so safe to let the + // ram allocator free this page. + iNumberOfFreePages--; + aPageInfo->SetPagedState(SPageInfo::EUnpaged); + return KErrCompletion; + } + // Need to hold onto this page as have reached the page cache limit. // add as oldest page... aPageInfo->SetPagedState(SPageInfo::EPagedOldestClean); iOldestCleanList.Add(&aPageInfo->iLink); @@ -413,8 +422,8 @@ #ifdef _DEBUG if (!IsPageTableUnpagedRemoveAllowed(aPageInfo)) __NK_ASSERT_DEBUG(0); +#endif break; -#endif default: __NK_ASSERT_DEBUG(0); return; @@ -803,6 +812,20 @@ } +TInt DPager::DiscardAndAllocPage(SPageInfo* aPageInfo, TZonePageType aPageType) + { + TInt r = DiscardPage(aPageInfo, KRamZoneInvalidId, EFalse); + if (r == KErrNone) + { + TheMmu.MarkPageAllocated(aPageInfo->PhysAddr(), aPageType); + } + // Flash the ram alloc lock as we may have had to write a page out to swap. + RamAllocLock::Unlock(); + RamAllocLock::Lock(); + return r; + } + + static TBool DiscardCanStealPage(SPageInfo* aOldPageInfo, TBool aBlockRest) { // If the page is pinned or if the page is dirty and a general defrag is being performed then @@ -1002,6 +1025,9 @@ __NK_ASSERT_DEBUG(iNumberOfFreePages>0); --iNumberOfFreePages; + // The page must be unpaged, otherwise it wasn't successfully removed + // from the live list. + __NK_ASSERT_DEBUG(aPageInfo.PagedState() == SPageInfo::EUnpaged); MmuLock::Unlock(); TPhysAddr pagePhys = aPageInfo.PhysAddr(); @@ -2068,6 +2094,7 @@ } +// WARNING THIS METHOD MAY HOLD THE RAM ALLOC LOCK FOR EXCESSIVE PERIODS. DON'T USE THIS IN ANY PRODUCTION CODE. void DPager::FlushAll() { NKern::ThreadEnterCS(); @@ -2108,7 +2135,9 @@ } ++pi; if(((TUint)pi&(0xf<> KPageShift; - TInt r = iRamPageAllocator->AllocContiguousRam(contigPages, aPhysAddr, aPageType, aAlign, aBlockedZoneId, aBlockRest); + TInt r = iRamPageAllocator->AllocContiguousRam(contigPages, aPhysAddr, aAlign); if (r == KErrNoMemory && contigPages > KMaxFreeableContiguousPages) {// Allocation failed but as this is a large allocation flush the RAM cache // and reattempt the allocation as large allocation wouldn't discard pages. iRamCache->FlushAll(); - r = iRamPageAllocator->AllocContiguousRam(contigPages, aPhysAddr, aPageType, aAlign, aBlockedZoneId, aBlockRest); + r = iRamPageAllocator->AllocContiguousRam(contigPages, aPhysAddr, aAlign); } return r; } @@ -750,16 +749,15 @@ @param aZoneIdCount The number of IDs listed in aZoneIdList @param aSize The number of bytes to allocate @param aPhysAddr Will receive the physical base address of the allocated RAM -@param aPageType The type of the pages being allocated @param aAlign The log base 2 alginment required */ -TInt MmuBase::ZoneAllocContiguousRam(TUint* aZoneIdList, TUint aZoneIdCount, TInt aSize, TPhysAddr& aPhysAddr, TZonePageType aPageType, TInt aAlign) +TInt MmuBase::ZoneAllocContiguousRam(TUint* aZoneIdList, TUint aZoneIdCount, TInt aSize, TPhysAddr& aPhysAddr, TInt aAlign) { #ifdef _DEBUG if(K::CheckForSimulatedAllocFail()) return KErrNoMemory; #endif - return iRamPageAllocator->ZoneAllocContiguousRam(aZoneIdList, aZoneIdCount, aSize, aPhysAddr, aPageType, aAlign); + return iRamPageAllocator->ZoneAllocContiguousRam(aZoneIdList, aZoneIdCount, aSize, aPhysAddr, aAlign); } SPageInfo* SPageInfo::SafeFromPhysAddr(TPhysAddr aAddress) diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/memmodel/epoc/mmubase/ramalloc.cpp --- a/kernel/eka/memmodel/epoc/mmubase/ramalloc.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/memmodel/epoc/mmubase/ramalloc.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -354,13 +354,13 @@ aZone->iAllocPages[EPageFixed], aZone->iAllocPages[EPageMovable],aZone->iAllocPages[EPageDiscard])); Panic(EZonesCountErr); } - __ASSERT_DEBUG(free == (TUint32)aZone->iBma[KBmaAllPages]->iAvail, Panic(EAllocRamPagesInconsistent)); __KTRACE_OPT(KMMU2,Kern::Printf("ZoneFreePages - aCount %x free %x, alloc %x",aCount,free,alloc)); __KTRACE_OPT(KMMU2,Kern::Printf("Alloc Unk %x Fx %x Mv %x Dis %x",aZone->iAllocPages[EPageUnknown], aZone->iAllocPages[EPageFixed], aZone->iAllocPages[EPageMovable],aZone->iAllocPages[EPageDiscard])); - if (iAllowBmaVerify) + if (!iContiguousReserved) { + __ASSERT_DEBUG(free == (TUint32)aZone->iBma[KBmaAllPages]->iAvail, Panic(EAllocRamPagesInconsistent)); TBitMapAllocator& bmaType = *(aZone->iBma[(aType != EPageUnknown)? aType : EPageFixed]); TUint allocPages; if (aType == EPageFixed || aType == EPageUnknown) @@ -495,13 +495,13 @@ aZone->iAllocPages[EPageFixed], aZone->iAllocPages[EPageMovable],aZone->iAllocPages[EPageDiscard])); Panic(EZonesCountErr); } - __ASSERT_DEBUG(free == (TUint32)aZone->iBma[KBmaAllPages]->iAvail, Panic(EAllocRamPagesInconsistent)); __KTRACE_OPT(KMMU2,Kern::Printf("ZoneFreePages - aCount %x free %x, alloc %x",aCount,free,alloc)); __KTRACE_OPT(KMMU2,Kern::Printf("Alloc Unk %x Fx %x Mv %x Dis %x",aZone->iAllocPages[EPageUnknown], aZone->iAllocPages[EPageFixed], aZone->iAllocPages[EPageMovable],aZone->iAllocPages[EPageDiscard])); - if (iAllowBmaVerify) + if (!iContiguousReserved) { + __ASSERT_DEBUG(free == (TUint32)aZone->iBma[KBmaAllPages]->iAvail, Panic(EAllocRamPagesInconsistent)); TBitMapAllocator& bmaType = *(aZone->iBma[(aType != EPageUnknown)? aType : EPageFixed]); TUint allocPages; if (aType == EPageFixed || aType == EPageUnknown) @@ -968,7 +968,7 @@ // Temporarily fill preference list so SetPhysicalRamState can succeed #ifdef _DEBUG // Block bma verificaitons as bma and alloc counts aren't consistent yet. - iAllowBmaVerify = EFalse; + iContiguousReserved = 1; #endif const SZone* const lastZone = iZones + iNumZones; zone = iZones; @@ -984,7 +984,7 @@ } #ifdef _DEBUG // Only now is it safe to enable bma verifications - iAllowBmaVerify = ETrue; + iContiguousReserved = 0; #endif /////////////////////////////////////////////////////////////////////////// @@ -1135,6 +1135,7 @@ } } + TInt DRamAllocator::MarkPageAllocated(TPhysAddr aAddr, TZonePageType aType) { __KTRACE_OPT(KMMU,Kern::Printf("DRamAllocator::MarkPageAllocated %08x",aAddr)); @@ -1160,7 +1161,12 @@ return KErrAlreadyExists; // page is already allocated } bmaAll.Alloc(n,1); - bmaType.Alloc(n,1); + if (bmaType.NotAllocated(n,1)) + bmaType.Alloc(n,1); +#ifdef _DEBUG + else // Allow this page to already be reserved in bmaType as AllocContiguousRam() may have done this. + __NK_ASSERT_DEBUG(aType == EPageFixed); +#endif --iTotalFreeRamPages; ZoneAllocPages(z, 1, aType); __KTRACE_OPT(KMMU,Kern::Printf("Total free RAM pages now = %d",iTotalFreeRamPages)); @@ -1171,6 +1177,7 @@ return KErrNone; } + TInt DRamAllocator::FreeRamPage(TPhysAddr aAddr, TZonePageType aType) { __KTRACE_OPT(KMMU,Kern::Printf("FreeRamPage %08x",aAddr)); @@ -1201,17 +1208,27 @@ __KTRACE_OPT(KMMU2,Kern::Printf("Zone index %d page index %04x",z-iZones,n)); TBitMapAllocator& bmaAll = *(z->iBma[KBmaAllPages]); TBitMapAllocator& bmaType = *(z->iBma[aType]); - bmaAll.Free(n); + bmaType.Free(n); - ++iTotalFreeRamPages; - ZoneFreePages(z, 1, aType); - + if (iContiguousReserved && aType != EPageFixed && z->iBma[EPageFixed]->NotFree(n, 1)) + {// This page has been reserved by AllocContiguous() so don't free it + // but allocate it as fixed. + ZoneFreePages(z, 1, aType); + ZoneAllocPages(z, 1, EPageFixed); + } + else + { + bmaAll.Free(n); + ++iTotalFreeRamPages; + ZoneFreePages(z, 1, aType); + } #ifdef BTRACE_RAM_ALLOCATOR BTrace8(BTrace::ERamAllocator, BTrace::ERamAllocFreePage, aType, aAddr); #endif return KErrNone; } + void DRamAllocator::FreeRamPages(TPhysAddr* aPageList, TInt aNumPages, TZonePageType aType) { __KTRACE_OPT(KMMU,Kern::Printf("FreeRamPages count=%08x",aNumPages)); @@ -1259,11 +1276,37 @@ pa += KPageSize; } __KTRACE_OPT(KMMU2,Kern::Printf("%d consecutive pages, zp_rem=%x, %d remaining pages",n,zp_rem,aNumPages)); - bmaAll.Free(ix,n); TBitMapAllocator& bmaType = *(z->iBma[aType]); bmaType.Free(ix,n); - iTotalFreeRamPages += n; - ZoneFreePages(z, n, aType); + + if (iContiguousReserved && aType != EPageFixed) + {// See if a page has been reserved by AllocContiguous() in this range. + TUint pagesFreed = 0; + TUint allocStart = ix; + TUint freeOffset = ix; + TUint endOffset = ix + n - 1; + while (freeOffset <= endOffset) + { + TUint runLength = NextAllocatedRun(z, allocStart, endOffset, EPageFixed); + if (allocStart > freeOffset) + { + TUint freed = allocStart - freeOffset; + bmaAll.Free(freeOffset, freed); + pagesFreed += freed; + } + allocStart += runLength; + freeOffset = allocStart; + } + iTotalFreeRamPages += pagesFreed; + ZoneFreePages(z, n, aType); + ZoneAllocPages(z, n - pagesFreed, EPageFixed); + } + else + { + bmaAll.Free(ix,n); + iTotalFreeRamPages += n; + ZoneFreePages(z, n, aType); + } #ifdef BTRACE_RAM_ALLOCATOR BTrace12(BTrace::ERamAllocator, BTrace::ERamAllocFreePages, aType, n, first_pa); #endif @@ -1273,6 +1316,7 @@ #endif } + /** Attempt to clear upto the required amount of discardable or movable pages from the RAM zone. @@ -1464,7 +1508,7 @@ {// Allocating as part of a general defragmentation and // can't allocate without using a RAM zone less preferable than // the current least prefeable RAM zone with movable and/or - //discardable. + // discardable. __NK_ASSERT_DEBUG(numMissing); goto exit; } @@ -1679,29 +1723,173 @@ return r; } + +#if !defined(__MEMMODEL_MULTIPLE__) && !defined(__MEMMODEL_MOVING__) +void DRamAllocator::BlockContiguousRegion(TPhysAddr aAddrBase, TUint aNumPages) + { + // Shouldn't be asked to block zero pages, addrEndPage would be wrong if we did. + __NK_ASSERT_DEBUG(aNumPages); + TPhysAddr addr = aAddrBase; + TPhysAddr addrEndPage = aAddrBase + ((aNumPages - 1) << KPageShift); + TInt tmpOffset; + SZone* endZone = GetZoneAndOffset(addrEndPage, tmpOffset); + SZone* tmpZone; + do + { + tmpZone = GetZoneAndOffset(addr, tmpOffset); + __NK_ASSERT_DEBUG(tmpZone != NULL); + TUint runLength = (addrEndPage < tmpZone->iPhysEnd)? + ((addrEndPage - addr) >> KPageShift) + 1: + tmpZone->iPhysPages - tmpOffset; + TUint reserved = tmpZone->iBma[KBmaAllPages]->SelectiveAlloc(tmpOffset, runLength); + if (reserved) + { +#ifdef _DEBUG + TUint runEnd = tmpOffset + runLength; + TUint free = 0; + for (TUint i = tmpOffset; i < runEnd; i++) + if (tmpZone->iBma[EPageMovable]->NotAllocated(i,1) && tmpZone->iBma[EPageDiscard]->NotAllocated(i,1)) + free++; + __NK_ASSERT_DEBUG(free == reserved); +#endif + ZoneAllocPages(tmpZone, reserved, EPageFixed); + iTotalFreeRamPages -= reserved; + } + tmpZone->iBma[EPageFixed]->Alloc(tmpOffset, runLength); + addr = tmpZone->iPhysEnd + 1; + } + while (tmpZone != endZone); + } + + +FORCE_INLINE void DRamAllocator::UnblockSetAllocRuns( TUint& aOffset1, TUint& aOffset2, + TUint aRunLength1, TUint aRunLength2, + TUint& aAllocLength, TUint& aAllocStart) + { + aAllocStart = aOffset1; + aAllocLength = aRunLength1; + aOffset1 += aAllocLength; + if (aOffset1 == aOffset2) + { + aAllocLength += aRunLength2; + aOffset2 += aRunLength2; + aOffset1 = aOffset2; + } + } + + +void DRamAllocator::UnblockContiguousRegion(TPhysAddr aAddrBase, TUint aNumPages) + { + // Shouldn't be asked to unblock zero pages, addrEndPage would be wrong if we did. + __NK_ASSERT_DEBUG(aNumPages); + TPhysAddr addr = aAddrBase; + TPhysAddr addrEndPage = aAddrBase + ((aNumPages - 1) << KPageShift); + TInt tmpOffset; + SZone* endZone = GetZoneAndOffset(addrEndPage, tmpOffset); + SZone* tmpZone; + do + { + tmpZone = GetZoneAndOffset(addr, tmpOffset); + __NK_ASSERT_DEBUG(tmpZone != NULL); + TUint runLength = (addrEndPage < tmpZone->iPhysEnd)? + ((addrEndPage - addr) >> KPageShift) + 1: + tmpZone->iPhysPages - tmpOffset; + TUint unreserved = 0; + TUint runEnd = tmpOffset + runLength - 1; + TUint freeOffset = tmpOffset; + TUint discardOffset = freeOffset; + TUint movableOffset = freeOffset; + __KTRACE_OPT(KMMU2, Kern::Printf("freeOff %d, runEnd %d", freeOffset, runEnd)); + while (freeOffset <= runEnd) + { + TUint discardRun; + TUint movableRun; + discardRun = NextAllocatedRun(tmpZone, discardOffset, runEnd, EPageDiscard); + movableRun = NextAllocatedRun(tmpZone, movableOffset, runEnd, EPageMovable); + TUint allocLength; + TUint allocStart; + __KTRACE_OPT(KMMU2, Kern::Printf("disOff %d len %d movOff %d len %d", discardOffset, discardRun, movableOffset, movableRun)); + if (discardOffset < movableOffset) + UnblockSetAllocRuns(discardOffset, movableOffset, discardRun, movableRun, allocLength, allocStart); + else + UnblockSetAllocRuns(movableOffset, discardOffset, movableRun, discardRun, allocLength, allocStart); + + if (allocStart > freeOffset) + { + unreserved += allocStart - freeOffset; + tmpZone->iBma[KBmaAllPages]->Free(freeOffset, allocStart - freeOffset); + __NK_ASSERT_DEBUG( !tmpZone->iBma[EPageMovable]->NotFree(freeOffset, allocStart - freeOffset) && + !tmpZone->iBma[EPageDiscard]->NotFree(freeOffset, allocStart - freeOffset)); + } + __KTRACE_OPT(KMMU2, Kern::Printf("disOff %d len %d movOff %d len %d start %d len %d", discardOffset, discardRun, movableOffset, movableRun, allocStart, allocLength)); + freeOffset = allocStart + allocLength; + __KTRACE_OPT(KMMU2, Kern::Printf("freeOff %d", freeOffset)); + } + tmpZone->iBma[EPageFixed]->Free(tmpOffset, runLength); + ZoneFreePages(tmpZone, unreserved, EPageFixed); + iTotalFreeRamPages += unreserved; + addr = tmpZone->iPhysEnd + 1; + } + while (tmpZone != endZone); + } + + +TBool DRamAllocator::ClearContiguousRegion(TPhysAddr aAddrBase, TPhysAddr aZoneBase, TUint aNumPages, TInt& aOffset) + { + TPhysAddr addr = aAddrBase; + TPhysAddr addrEnd = aAddrBase + (aNumPages << KPageShift); + TInt contigOffset = 0; + SZone* contigZone = GetZoneAndOffset(addr, contigOffset); + for (; addr != addrEnd; addr += KPageSize, contigOffset++) + { + if (contigZone->iPhysEnd < addr) + { + contigZone = GetZoneAndOffset(addr, contigOffset); + __NK_ASSERT_DEBUG(contigZone != NULL); + } + + __NK_ASSERT_DEBUG(contigZone != NULL); + __NK_ASSERT_DEBUG(contigZone->iBma[EPageFixed]->NotFree(contigOffset, 1)); + __NK_ASSERT_DEBUG(SPageInfo::SafeFromPhysAddr(addr) != NULL); + + // WARNING - This may flash the ram alloc mutex. + TInt exRet = M::MoveAndAllocPage(addr, EPageFixed); + if (exRet != KErrNone) + {// This page couldn't be moved or discarded so + // restart the search the page after this one. + __KTRACE_OPT(KMMU2, Kern::Printf("ContigMov fail contigOffset 0x%x exRet %d", contigOffset, exRet)); + aOffset = (addr < aZoneBase)? 0 : contigOffset + 1; + break; + } + } + return addr == addrEnd; + } + + /** Search through the zones for the requested contiguous RAM, first in preference order then, if that fails, in address order. +No support for non-fixed pages as this will discard and move pages if required. + @param aNumPages The number of contiguous pages to find @param aPhysAddr Will contain the base address of any contiguous run if found -@param aType The page type of the memory to be allocated @param aAlign Alignment specified as the alignment shift -@param aBlockedZoneId The ID of a zone that can't be allocated into, by default this has no effect -@param aBlockRest Set to ETrue to stop allocation as soon as aBlockedZoneId is reached in preference ordering. EFalse otherwise. @return KErrNone on success, KErrNoMemory otherwise */ -TInt DRamAllocator::AllocContiguousRam(TUint aNumPages, TPhysAddr& aPhysAddr, TZonePageType aType, TInt aAlign, TUint aBlockedZoneId, TBool aBlockRest) +TInt DRamAllocator::AllocContiguousRam(TUint aNumPages, TPhysAddr& aPhysAddr, TInt aAlign) { __KTRACE_OPT(KMMU,Kern::Printf("AllocContiguousRam size %08x align %d",aNumPages,aAlign)); M::RamAllocIsLocked(); - // No support for non-fixed pages as this will discard and move - // pages if required. - __NK_ASSERT_DEBUG(aType == EPageFixed); + if ((TUint)aNumPages > iTotalFreeRamPages + M::NumberOfFreeDpPages()) + {// Not enough free space and not enough freeable pages. + return KErrNoMemory; + } + TInt alignWrtPage = Max(aAlign - KPageShift, 0); TUint32 alignmask = (1u << alignWrtPage) - 1; @@ -1716,7 +1904,124 @@ TInt offset = 0; iZoneTmpAddrIndex = -1; iZoneTmpPrefLink = iZonePrefList.First(); - while (NextAllocZone(zone, searchState, aType, aBlockedZoneId, aBlockRest)) + while (NextAllocZone(zone, searchState, EPageFixed, KRamZoneInvalidId, EFalse)) + { + // Be sure to start from scratch if zone not contiguous with previous zone + if (prevZone && (zone->iPhysBase == 0 || (zone->iPhysBase - 1) != prevZone->iPhysEnd)) + { + carryAll = 0; + carryImmov = 0; + } + prevZone = zone; + TBitMapAllocator& bmaAll = *(zone->iBma[KBmaAllPages]); + base = TInt(zone->iPhysBase >> KPageShift); + TInt runLength; + __KTRACE_OPT(KMMU,Kern::Printf("AllocAligned: base=%08x carryAll=%08x offset=%08x", base, carryAll, offset)); + offset = bmaAll.AllocAligned(aNumPages, alignWrtPage, base, EFalse, carryAll, runLength); + __KTRACE_OPT(KMMU,Kern::Printf("AllocAligned: offset=%08x", offset)); + + if (offset >= 0) + { + // Have found enough contiguous pages so return address of physical page + // at the start of the region + aPhysAddr = TPhysAddr((base + offset - carryAll + alignmask) & ~alignmask) << KPageShift; + MarkPagesAllocated(aPhysAddr, aNumPages, EPageFixed); + + __KTRACE_OPT(KMMU,Kern::Printf("AllocContiguousRam returns %08x",aPhysAddr)); +#ifdef BTRACE_RAM_ALLOCATOR + BTrace12(BTrace::ERamAllocator, BTrace::ERamAllocContiguousRam, EPageFixed, aNumPages, aPhysAddr); +#endif + return KErrNone; + } + // No run found when looking in just the free pages so see if this + // RAM zone could be used if pages where moved or discarded. + TBitMapAllocator& bmaImmov = *(zone->iBma[EPageFixed]); + offset = 0; // Clear so searches whole of fixed BMA on the first pass. + do + { + __KTRACE_OPT(KMMU,Kern::Printf("AllocAligned: base=%08x carryImmov=%08x offset=%08x", base, carryImmov, offset)); + offset = bmaImmov.AllocAligned(aNumPages, alignWrtPage, base, EFalse, carryImmov, runLength, offset); + __KTRACE_OPT(KMMU,Kern::Printf("AllocAligned: offset=%08x", offset)); + if (offset >= 0) + {// Have found a run in immovable page bma so attempt to clear + // it for the allocation. + TPhysAddr addrBase = TPhysAddr((base + offset - carryImmov + alignmask) & ~alignmask) << KPageShift; + __KTRACE_OPT(KMMU2, Kern::Printf(">AllocContig fix run 0x%08x - 0x%08x 0x%x", addrBase, addrBase + (aNumPages << KPageShift), TheCurrentThread)); + + // Block the contiguous region from being allocated. + iContiguousReserved++; + BlockContiguousRegion(addrBase, aNumPages); + if (ClearContiguousRegion(addrBase, zone->iPhysBase, aNumPages, offset)) + {// Cleared all the required pages. + // Return address of physical page at the start of the region. + iContiguousReserved--; + aPhysAddr = addrBase; + __KTRACE_OPT(KMMU,Kern::Printf("AllocContiguousRam returns %08x",aPhysAddr)); +#ifdef BTRACE_RAM_ALLOCATOR + BTrace12(BTrace::ERamAllocator, BTrace::ERamAllocContiguousRam, EPageFixed, aNumPages, aPhysAddr); +#endif + __KTRACE_OPT(KMMU2, Kern::Printf("= 0 && (TUint)offset < zone->iPhysPages); + } + return KErrNoMemory; + } + +#else + +/** +Search through the zones for the requested contiguous RAM, first in preference +order then, if that fails, in address order. + +No support for non-fixed pages as this will discard and move pages if required. + +@param aNumPages The number of contiguous pages to find +@param aPhysAddr Will contain the base address of any contiguous run if found +@param aAlign Alignment specified as the alignment shift + +@return KErrNone on success, KErrNoMemory otherwise +*/ +TInt DRamAllocator::AllocContiguousRam(TUint aNumPages, TPhysAddr& aPhysAddr, TInt aAlign) + { + __KTRACE_OPT(KMMU,Kern::Printf("AllocContiguousRam size %08x align %d",aNumPages,aAlign)); + + M::RamAllocIsLocked(); + + TInt alignWrtPage = Max(aAlign - KPageShift, 0); + TUint32 alignmask = (1u << alignWrtPage) - 1; + + // Attempt to find enough pages searching in preference order first then + // in address order + TZoneSearchState searchState = EZoneSearchPref; + SZone* zone; + SZone* prevZone = NULL; + TInt carryAll = 0; // Carry for all pages bma, clear to start new run. + TInt carryImmov = 0; // Carry for immovable pages bma, clear to start new run. + TInt base = 0; + TInt offset = 0; + iZoneTmpAddrIndex = -1; + iZoneTmpPrefLink = iZonePrefList.First(); + while (NextAllocZone(zone, searchState, EPageFixed, KRamZoneInvalidId, EFalse)) { // Be sure to start from scratch if zone not contiguous with previous zone if (prevZone && (zone->iPhysBase == 0 || (zone->iPhysBase - 1) != prevZone->iPhysEnd)) @@ -1736,11 +2041,11 @@ {// Have found enough contiguous pages so return address of physical page // at the start of the region aPhysAddr = TPhysAddr((base + offset - carryAll + alignmask) & ~alignmask) << KPageShift; - MarkPagesAllocated(aPhysAddr, aNumPages, aType); + MarkPagesAllocated(aPhysAddr, aNumPages, EPageFixed); __KTRACE_OPT(KMMU,Kern::Printf("AllocContiguousRam returns %08x",aPhysAddr)); #ifdef BTRACE_RAM_ALLOCATOR - BTrace12(BTrace::ERamAllocator, BTrace::ERamAllocContiguousRam, aType, aNumPages, aPhysAddr); + BTrace12(BTrace::ERamAllocator, BTrace::ERamAllocContiguousRam, EPageFixed, aNumPages, aPhysAddr); #endif return KErrNone; } @@ -1788,12 +2093,11 @@ contigZone = GetZoneAndOffset(addr, contigOffset); __NK_ASSERT_DEBUG(contigZone != NULL); } -#ifdef _DEBUG // This page shouldn't be allocated as fixed, only movable or discardable. + // This page shouldn't be allocated as fixed, only movable or discardable. __NK_ASSERT_DEBUG(contigZone != NULL); __NK_ASSERT_DEBUG(contigZone->iBma[EPageFixed]->NotAllocated(contigOffset, 1)); - SPageInfo* pageInfo = SPageInfo::SafeFromPhysAddr(addr); - __NK_ASSERT_DEBUG(pageInfo != NULL); -#endif + __NK_ASSERT_DEBUG(SPageInfo::SafeFromPhysAddr(addr) != NULL); + TPhysAddr newAddr; TInt moveRet = M::MovePage(addr, newAddr, contigZone->iId, EFalse); if (moveRet != KErrNone && moveRet != KErrNotFound) @@ -1827,11 +2131,11 @@ {// Cleared all the required pages so allocate them. // Return address of physical page at the start of the region. aPhysAddr = addrBase; - MarkPagesAllocated(aPhysAddr, aNumPages, aType); + MarkPagesAllocated(aPhysAddr, aNumPages, EPageFixed); __KTRACE_OPT(KMMU,Kern::Printf("AllocContiguousRam returns %08x",aPhysAddr)); #ifdef BTRACE_RAM_ALLOCATOR - BTrace12(BTrace::ERamAllocator, BTrace::ERamAllocContiguousRam, aType, aNumPages, aPhysAddr); + BTrace12(BTrace::ERamAllocator, BTrace::ERamAllocContiguousRam, EPageFixed, aNumPages, aPhysAddr); #endif return KErrNone; } @@ -1844,6 +2148,7 @@ } return KErrNoMemory; } +#endif // !defined(__MEMODEL_MULTIPLE__) || !defined(__MEMODEL_MOVING__) /** @@ -1858,19 +2163,17 @@ @param aZoneIdCount The number of the IDs listed by aZoneIdList. @param aSize The number of contiguous bytes to find @param aPhysAddr Will contain the base address of the contiguous run if found -@param aType The page type of the memory to be allocated @param aAlign Alignment specified as the alignment shift @return KErrNone on success, KErrNoMemory if allocation couldn't succeed or the RAM zone has the KRamZoneFlagNoAlloc flag set. KErrArgument if a zone of aZoneIdList exists or if aSize is larger than the size of the zone. */ -TInt DRamAllocator::ZoneAllocContiguousRam(TUint* aZoneIdList, TUint aZoneIdCount, TInt aSize, TPhysAddr& aPhysAddr, TZonePageType aType, TInt aAlign) +TInt DRamAllocator::ZoneAllocContiguousRam(TUint* aZoneIdList, TUint aZoneIdCount, TInt aSize, TPhysAddr& aPhysAddr, TInt aAlign) { __KTRACE_OPT(KMMU,Kern::Printf("ZoneAllocContiguousRam zones 0x%x size 0x%08x align %d",aZoneIdCount, aSize, aAlign)); M::RamAllocIsLocked(); - __NK_ASSERT_DEBUG(aType == EPageFixed); TUint numPages = (aSize + KPageSize - 1) >> KPageShift; @@ -1930,11 +2233,11 @@ // Have found enough contiguous pages so mark the pages allocated and // return address of physical page at the start of the region. aPhysAddr = TPhysAddr((base + offset - carry + alignmask) & ~alignmask) << KPageShift; - MarkPagesAllocated(aPhysAddr, numPages, aType); + MarkPagesAllocated(aPhysAddr, numPages, EPageFixed); __KTRACE_OPT(KMMU,Kern::Printf("ZoneAllocContiguousRam returns %08x",aPhysAddr)); #ifdef BTRACE_RAM_ALLOCATOR - BTrace12(BTrace::ERamAllocator, BTrace::ERamAllocZoneContiguousRam, aType, numPages, aPhysAddr); + BTrace12(BTrace::ERamAllocator, BTrace::ERamAllocZoneContiguousRam, EPageFixed, numPages, aPhysAddr); #endif return KErrNone; } @@ -2106,34 +2409,34 @@ // Makes things simpler for bma selection. __NK_ASSERT_DEBUG(aType != EPageUnknown); - if (aOffset >= aZone->iPhysPages) + TUint zoneEndOffset = aZone->iPhysPages - 1; + if (aOffset > zoneEndOffset) {// Starting point is outside the zone return KErrArgument; } - TUint offset = aOffset; - TUint endOffset = aZone->iPhysPages; - TUint endOffsetAligned = endOffset & KWordAlignMask; + TUint wordIndex = aOffset >> 5; + TUint endWordIndex = zoneEndOffset >> 5; // Select the BMA to search, TUint bmaIndex = (aType == EPageTypes)? KBmaAllPages : aType; - TUint32* map = &(aZone->iBma[bmaIndex]->iMap[offset >> 5]); - TUint32 bits = *map++; + TUint32* map = &(aZone->iBma[bmaIndex]->iMap[wordIndex]); + TUint32* mapEnd = &(aZone->iBma[bmaIndex]->iMap[endWordIndex]); + TUint32 bits = *map; // Set bits for pages before 'offset' (i.e. ones we want to ignore)... - bits |= ~(KMaxTUint32 >> (offset & ~KWordAlignMask)); + bits |= ~(KMaxTUint32 >> (aOffset & ~KWordAlignMask)); // Find the first bit map word from aOffset in aZone with allocated pages - while (bits == KMaxTUint32 && offset < endOffsetAligned) + while (bits == KMaxTUint32 && map < mapEnd) { - bits = *map++; - offset = (offset + 32) & KWordAlignMask; + bits = *++map; } - if (offset >= endOffsetAligned && endOffset != endOffsetAligned) + if (map == mapEnd) {// Have reached the last bit mask word so set the bits that are // outside of the zone so that they are ignored. - bits |= KMaxTUint32 >> (endOffset - endOffsetAligned); + bits |= (KMaxTUint32 >> (zoneEndOffset & ~KWordAlignMask)) >> 1; } if (bits == KMaxTUint32) @@ -2143,25 +2446,104 @@ // Now we have bits with allocated pages in it so determine the exact // offset of the next allocated page - TUint32 mask = 0x80000000 >> (offset & ~KWordAlignMask); - while (bits & mask) - { - mask >>= 1; - offset++; - } - - if (offset >= endOffset) - {// Reached the end of the zone without finding an allocated page after aOffset - return KErrNotFound; - } - - // Should definitely have found an allocated page within aZone's pages - __NK_ASSERT_DEBUG(mask != 0 && !(bits & mask) && offset < aZone->iPhysPages); - - aOffset = offset; + TInt msOne = __e32_find_ms1_32(~bits); + __NK_ASSERT_DEBUG(msOne >= 0); // Must have at least one allocated page in the word. + TUint msOneOffset = 31 - msOne; + aOffset = ((map - aZone->iBma[bmaIndex]->iMap) << 5) + msOneOffset; return KErrNone; } + +/** +Get the next run of pages in this zone that are allocated after aOffset. + +@param aZone The zone to find the next allocated page in. +@param aOffset On entry this is the offset from which the next allocated + page in the zone should be found, on return it will be the offset + of the next allocated page. +@param aEndOffset The last offset within this RAM zone to check for allocated runs. +@return The length of any run found, KErrNotFound if no more pages in +the zone after aOffset are allocated, KErrArgument if aOffset is outside the zone. +*/ +TInt DRamAllocator::NextAllocatedRun(SZone* aZone, TUint& aOffset, TUint aEndOffset, TZonePageType aType) const + { + const TUint KWordAlignMask = KMaxTUint32 << 5; + + M::RamAllocIsLocked(); + + __NK_ASSERT_DEBUG(aZone - iZones < (TInt)iNumZones); + // Makes things simpler for bma selection. + __NK_ASSERT_DEBUG(aType != EPageUnknown); + + if (aOffset > aEndOffset) + {// UnblockContiguous() has already searched the whole range for this page type. + return 0; + } + + TUint wordIndex = aOffset >> 5; + TUint endWordIndex = aEndOffset >> 5; + + // Select the BMA to search, + TUint bmaIndex = (aType == EPageTypes)? KBmaAllPages : aType; + TUint32* map = &(aZone->iBma[bmaIndex]->iMap[wordIndex]); + TUint32* mapEnd = &(aZone->iBma[bmaIndex]->iMap[endWordIndex]); + TUint32 bits = *map; + + // Set bits for pages before 'offset' (i.e. ones we want to ignore)... + bits |= ~(KMaxTUint32 >> (aOffset & ~KWordAlignMask)); + + // Find the first bit map word from aOffset in aZone with allocated pages + while (bits == KMaxTUint32 && map < mapEnd) + { + bits = *++map; + } + + if (map == mapEnd) + {// Have reached the last bit mask word so set the bits that are + // outside of the range so that they are ignored. + bits |= (KMaxTUint32 >> (aEndOffset & ~KWordAlignMask)) >> 1; + } + + if (bits == KMaxTUint32) + {// No allocated pages found in the range. + aOffset = aEndOffset + 1; + return 0; + } + + // Now we have bits with allocated pages in it so determine the exact + // offset of the next allocated page + TInt msOne = __e32_find_ms1_32(~bits); + __NK_ASSERT_DEBUG(msOne >= 0); // Must have at least one allocated page in the word. + TUint msOneOffset = 31 - msOne; + aOffset = ((map - aZone->iBma[bmaIndex]->iMap) << 5) + msOneOffset; + TUint32* runWord = map; + + if (map < mapEnd && __e32_bit_count_32(~bits) == msOne + 1) + {// The whole of the region in this word is allocated. + // Find the next word which isn't completely allocated within the range. + do + { + bits = *++map; + } + while (!bits && map < mapEnd); + } + + // Clear any bits before the run so can get next free from __e32_find_msl_32(). + if (runWord == map) + bits &= KMaxTUint32 >> (aOffset & ~KWordAlignMask); + TInt msFree = __e32_find_ms1_32(bits); + __NK_ASSERT_DEBUG(msFree >= 0 || map == mapEnd); + TUint msFreeOffset = (msFree >= 0)? 31 - msFree : 32; + TUint endIndex = map - aZone->iBma[bmaIndex]->iMap; + TUint runEnd = (endIndex << 5) + msFreeOffset; + if (runEnd > aEndOffset + 1) // Ensure we don't go past the range. + runEnd = aEndOffset + 1; + __NK_ASSERT_DEBUG(runEnd > aOffset); + + return runEnd - aOffset; + } + + /** See if any of the least preferable RAM zones can be emptied. If they can then initialise the allocator for a general defragmentation operation. diff -r 95f71bcdcdb7 -r 657f875b013e kernel/eka/memmodel/epoc/moving/mchunk.cpp --- a/kernel/eka/memmodel/epoc/moving/mchunk.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kernel/eka/memmodel/epoc/moving/mchunk.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -467,7 +467,8 @@ { // Allocate a block of contiguous RAM from the free pool TInt numPages=(endOffset-offset)>>m.iPageShift; - r=m.AllocContiguousRam(numPages<1) { TInt align=aSeparateGlobal ? KPageDirectoryShift : KPageDirectoryShift-1; - r=AllocContiguousRam(aNumPages<>m.iPageShift; - r=m.AllocContiguousRam(numPages< +#include +#include +#include "k32bm.h" + + + + + + +class DBMRapuDevice : public DPhysicalDevice + { +public: + DBMRapuDevice(); + virtual TInt Install(); + virtual void GetCaps(TDes8& aDes) const; + virtual TInt Create(DBase*& aChannel, TInt aUnit, const TDesC8* anInfo, const TVersion& aVer); + virtual TInt Validate(TInt aUnit, const TDesC8* anInfo, const TVersion& aVer); + }; + +class DBMRapuChannel : public DBMPChannel + { +public: + DBMRapuChannel(); + ~DBMRapuChannel(); + virtual TBMTicks TimerPeriod(); + virtual TBMTicks TimerStamp(); + virtual TBMNs TimerTicksToNs(TBMTicks); + virtual TBMTicks TimerNsToTicks(TBMNs); + virtual TInt BindInterrupt(MBMIsr*); + virtual TInt BindInterrupt(MBMInterruptLatencyIsr*); + virtual void RequestInterrupt(); + virtual void CancelInterrupt(); + +private: + + static const TBMTicks KBMRapuPeriod = (((TBMTicks) 1) << 32); + // Ticks at 1000Hz, input clock to timer @ 32.768 MHz. + static const TInt KHighResTimerFrequency = 32768000; // 32.768 MHz + + static const TBMNs KBMRapuNsPerTick = (1000*1000*1000) / KHighResTimerFrequency; + static const TInt KRTC_Freq = 32768; + static const TInt KRTC_Ratio = 1172; + + + + static void Isr(TAny*); + + MBMIsr* iIsr; + MBMInterruptLatencyIsr* iInterruptLatencyIsr; + TUint iTmpStartCount; + TUint iTmpLongCount; + NTimer iTimer; + volatile TUint iStartCount; + volatile TUint iRunCount; + volatile TUint iCancelCount; + }; + + RTC001_STR& RTC001 = *reinterpret_cast(KRapRegRTC001); + GPT003_STR& GPT003 = *reinterpret_cast(KRapRegGPT003A0); + + +DECLARE_STANDARD_PDD() +// +// Create a new device +// + { + __ASSERT_CRITICAL; + return new DBMRapuDevice; + } + +DBMRapuDevice::DBMRapuDevice() +// +// Constructor +// + { + + iVersion = TVersion(1,0,1); + } + +TInt DBMRapuDevice::Install() +// +// Install the device driver. +// + { + + TInt r = SetName(&KBMPdName); + return r; + } + +void DBMRapuDevice::GetCaps(TDes8& aDes) const +// +// Return the Comm capabilities. +// + { + + } + +TInt DBMRapuDevice::Create(DBase*& aChannel, TInt /*aUnit*/, const TDesC8* /*aInfo*/, const TVersion& /*aVer*/) +// +// Create a channel on the device. +// + { + + __ASSERT_CRITICAL; + aChannel = new DBMRapuChannel; + return aChannel?KErrNone:KErrNoMemory; + } + +TInt DBMRapuDevice::Validate(TInt /*aUnit*/, const TDesC8* /*anInfo*/, const TVersion& aVer) + { + + if (!Kern::QueryVersionSupported(iVersion,aVer)) + { + return KErrNotSupported; + } + return KErrNone; + } + +DBMRapuChannel::DBMRapuChannel() + : iTimer(&Isr, this) + { + iTmpStartCount = 0; + iTmpLongCount = 0; + } + +DBMRapuChannel::~DBMRapuChannel() + { + //Kern::Printf(("DBMRapuChannel::~DBMRapuChannel()")); + CancelInterrupt(); + } + +TBMTicks DBMRapuChannel::TimerPeriod() + { + //Kern::Printf(("DBMRapuChannel::TimerPeriod()")); + return KBMRapuPeriod; + } + +TBMTicks DBMRapuChannel::TimerStamp() + { + //Kern::Printf(("DBMRapuChannel::TimerStamp(), iTimerCount = %u"), RPTimer1::Timer().iTimerCount); + TUint tmpTimeStamp; + RTC001.TRIGGER = 0; + tmpTimeStamp = RTC001.LONGCOUNT; + tmpTimeStamp *= KRTC_Ratio; + tmpTimeStamp += RTC001.SHORTCOUNT; + return tmpTimeStamp; + } + + +TBMNs DBMRapuChannel::TimerTicksToNs(TBMTicks ticks) + { + //Kern::Printf(("DBMRapuChannel::TimerTIcksToNs(), iNsPerTick = %u"), (TBMTicks)iNsPerTick); + return ticks * KBMRapuNsPerTick; + } + +TBMTicks DBMRapuChannel::TimerNsToTicks(TBMNs ns) + { + //Kern::Printf(("DBMRapuChannel::TimerNsToTicks()")); + return ns / KBMRapuNsPerTick; + } + +void DBMRapuChannel::Isr(TAny* ptr) + { + //Kern::Printf(("DBMRapuChannel::Isr()")); + // Read RTC001 + RTC001.TRIGGER = 0; + TUint x = RTC001.LONGCOUNT; + x *= KRTC_Ratio; + x += RTC001.SHORTCOUNT; + TUint wasteTime = 1000000/KBMRapuNsPerTick; //NTimer's resolution is 1 ms = 1000000 ns + + DBMRapuChannel* mCh = (DBMRapuChannel*) ptr; + BM_ASSERT(mCh->iIsr || mCh->iInterruptLatencyIsr); + if (mCh->iIsr) + { + mCh->iIsr->Isr( x); + } + else + { + TUint y = (TUint)( x - mCh->iTmpLongCount - wasteTime); + //Kern::Printf(("DBMRapuChannel::Isr(), latency = %u"), y); + mCh->iInterruptLatencyIsr->InterruptLatencyIsr(y); + } + __e32_atomic_add_ord32(&mCh->iRunCount, 1); + } + +TInt DBMRapuChannel::BindInterrupt(MBMIsr* aIsr) + { + //Kern::Printf(("DBMRapuChannel::BindInterrupt(MBMIsr* aIsr)")); + BM_ASSERT(!iIsr); + BM_ASSERT(!iInterruptLatencyIsr); + iIsr = aIsr; + return KErrNone; + } + +TInt DBMRapuChannel::BindInterrupt(MBMInterruptLatencyIsr* aIsr) + { + //Kern::Printf(("DBMRapuChannel::BindInterrupt(MBMInterruptLatencyIsr* aIsr)")); + BM_ASSERT(!iIsr); + BM_ASSERT(!iInterruptLatencyIsr); + iInterruptLatencyIsr = aIsr; + return KErrNone; + } + + +void DBMRapuChannel::RequestInterrupt() + { + //Kern::Printf(("DBMRapuChannel::RequestInterrupt()")); + BM_ASSERT(iIsr || iInterruptLatencyIsr); + // Read RTC001 + RTC001.TRIGGER = 0; + iTmpLongCount = RTC001.LONGCOUNT; + iTmpLongCount *= KRTC_Ratio; + iTmpLongCount += RTC001.SHORTCOUNT; + if (iTimer.OneShot(1)==KErrNone) + __e32_atomic_add_ord32(&iStartCount, 1); + + } + +void DBMRapuChannel::CancelInterrupt() + { + iTmpStartCount = 0; + //Kern::Printf(("DBMRapuChannel::CancelInterrupt()")); + if (iTimer.Cancel()) + __e32_atomic_add_ord32(&iCancelCount, 1); + while (iStartCount != iCancelCount + iRunCount) + {} + } + + + \ No newline at end of file diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/buffer/t_char.cpp --- a/kerneltest/e32test/buffer/t_char.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/e32test/buffer/t_char.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -1,7 +1,7 @@ // Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). // All rights reserved. // This component and the accompanying materials are made available -// under the terms of "Eclipse Public License v1.0" +// 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". // @@ -370,9 +370,9 @@ } -// +////////////////////////////////////////////// // Test Fold, Fold(TChar::EFoldAccents), Collate, LowerCase, UpperCase -// +//////////////////////////////////////////// template GLDEF_C void TestTChar::Test4(TCharTypes CharType) { diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/buffer/t_tbma.cpp --- a/kerneltest/e32test/buffer/t_tbma.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/e32test/buffer/t_tbma.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -682,6 +682,62 @@ delete pA; } + +void TestSelectiveAlloc(TInt aSize) + { + test.Printf(_L("TestSelectiveAlloc %d\n"),aSize); + TBitMapAllocator* pA=TBitMapAllocator::New(aSize, ETrue); + test(pA!=NULL); + test(pA->Avail()==aSize); + // Allocate whole free bma + test_Equal(aSize, pA->SelectiveAlloc(0, aSize)); + test_Equal(0,pA->Avail()); + // Allocate whole full bma + test_Equal(0, pA->SelectiveAlloc(0, aSize)); + test_Equal(0,pA->Avail()); + TInt i; + TInt j; + TInt l; + for (i=2; i<8; ++i) + { + for (l=1; l<=aSize; ++l) + { + new (pA) TBitMapAllocator(aSize, ETrue); + for (j=0; jAlloc(j,1); + TInt orig=pA->Avail(); + test_Equal(aSize-(aSize+i-1)/i, orig); + TUint newAllocs = pA->SelectiveAlloc(0,l); + TInt allocated = orig - pA->Avail(); + test_Equal(allocated, newAllocs); + test_Equal(l - (l+i-1)/i, allocated); + Check(*pA); + } + } + for (i=0; i<=Min(32,aSize-1); ++i) + { + for (l=1; l<=aSize-i; ++l) + { + for (j=1; j<=aSize; ++j) + { + new (pA) TBitMapAllocator(aSize, ETrue); + pA->Alloc(i,l); + test_Equal(aSize-l, pA->Avail()); + TUint newAllocs = pA->SelectiveAlloc(0,j); + TUint allocated = j - Max(0,Min(i+l,j)-i); + test_Equal(allocated, newAllocs); + test_Equal(pA->Avail(), aSize-l-allocated); + test(!pA->NotAllocated(0,j)); + if (j>=i && jNotAllocated(0,j+1)); + Check(*pA); + } + } + } + delete pA; + } + + TBitMapAllocator* DoSetupBMA(TInt aSize, VA_LIST aList) { TBitMapAllocator* pA=TBitMapAllocator::New(aSize, EFalse); @@ -1246,6 +1302,11 @@ TestSelectiveFree(128); TestSelectiveFree(149); + TestSelectiveAlloc(3); + TestSelectiveAlloc(31); + TestSelectiveAlloc(128); + TestSelectiveAlloc(149); + TestAllocConsecutive(); TestChain(); diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/buffer/t_tbma.h --- a/kerneltest/e32test/buffer/t_tbma.h Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/e32test/buffer/t_tbma.h Fri Jun 11 15:02:23 2010 +0300 @@ -39,6 +39,7 @@ IMPORT_C void Free(TInt aPos); IMPORT_C void Alloc(TInt aStart, TInt aLength); IMPORT_C void Free(TInt aStart, TInt aLength); + IMPORT_C TUint SelectiveAlloc(TInt aStart, TInt aLength); IMPORT_C void SelectiveFree(TInt aStart, TInt aLength); IMPORT_C TBool NotFree(TInt aStart, TInt aLength) const; IMPORT_C TBool NotAllocated(TInt aStart, TInt aLength) const; diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/cppexceptions/second_excp.h --- a/kerneltest/e32test/cppexceptions/second_excp.h Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/e32test/cppexceptions/second_excp.h Fri Jun 11 15:02:23 2010 +0300 @@ -41,7 +41,11 @@ class MyFourthException : public VB1 , public VB2 { public: +#if defined(__ARMCC__) && __ARMCC_VERSION >= 400000 + EXPORT_C MyFourthException(int x) { iVal = x; iVal2=x+2;}; +#else MyFourthException(int x) { iVal = x; iVal2=x+2;}; +#endif int iVal2; }; diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/defrag/t_ramdefrag.cpp --- a/kerneltest/e32test/defrag/t_ramdefrag.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/e32test/defrag/t_ramdefrag.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -33,6 +33,7 @@ #include #include #include "testdefs.h" +#include "..\mmu\mmudetect.h" #include @@ -128,6 +129,7 @@ LOCAL_D TInt* gCandList1; // Array of zones that have the same preference and the same LOCAL_D TInt* gCandList2; // amount of free pages const TInt KInvalidCandIndex = -1; +LOCAL_D TUint gMemModel; // // GetDrive @@ -489,6 +491,8 @@ currentCacheSize >> gPageShift)); } + // Get the memory model of the kernel that this test is running on. + gMemModel = MemModelType(); return KErrNone; } @@ -1536,7 +1540,7 @@ } if (totalMorePrefInUse > requiredMovDis) - {// There enough allocatable pages in the RAM zones below the currently + {// There are enough allocatable pages in the RAM zones below the currently // least preferable RAM in use. test.Printf(_L("Memory is spread out totalMorePref 0x%x required 0x%x\n"), totalMorePrefInUse, requiredMovDis); if (verifySpread) @@ -9439,6 +9443,14 @@ test.Next(_L("Test5: Filling the FS Cache and allocating more than 16 contiguous fixed pages")); TestStart(); + + if (gMemModel >= EMemModelTypeFlexible) + {// The flexible memory model won't flush the whole paging cache for + // contiguous allocations >16 pages so skip the next test. + test.Printf(_L("This memory model won't flush the cache - Skipping...\n")); + goto SkipTest5; + } + // TestEnd() will have reduced any cache pages to minimum so just get current // count of discardable pages. GetAllPageInfo(); diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/demandpaging/t_datapaging.cpp --- a/kerneltest/e32test/demandpaging/t_datapaging.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/e32test/demandpaging/t_datapaging.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -38,7 +38,7 @@ #include #include #include - +#include #include "t_dpcmn.h" #include "../mmu/mmudetect.h" #include "../mmu/d_memorytest.h" @@ -236,7 +236,7 @@ CLOSE_AND_WAIT(thread); } CLOSE_AND_WAIT(gChunk); - User::After(1000000); + UserSvr::HalFunction(EHalGroupKernel, EKernelHalSupervisorBarrier, 0, 0); __KHEAP_MARKEND; } @@ -783,6 +783,9 @@ test_KErrNone(timeoutStatus.Int()); CLOSE_AND_WAIT(gChunk); + + UserSvr::HalFunction(EHalGroupKernel, EKernelHalSupervisorBarrier, 0, 0); + __KHEAP_MARKEND; } @@ -1199,6 +1202,17 @@ test.Title(); test_KErrNone(GetGlobalPolicies()); + _LIT(KFileName,"Z:\\Test\\not_data_paged.txt"); + RFs fs; + RFile file; + TInt error; + test(KErrNone == fs.Connect()); + error = file.Open(fs, KFileName, EFileRead); + TBool isFilePresent = (error == KErrNone); + file.Close(); + fs.Close(); + test(gDataPagingSupported == !isFilePresent); + test.Start(_L("Test HAL APIs")); TestHal(); diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/device/t_usbapi.cpp --- a/kerneltest/e32test/device/t_usbapi.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/e32test/device/t_usbapi.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -1849,6 +1849,29 @@ { test.Start(_L("Test Endpoint Stall Status")); +#ifdef BSW_USB_DRC + // The MACRO comes from ncp adaptation to indicate that otg is built in. + // Newly added code for defect ou1cimx1#267421. When otg is built in and the device is not + // in peripheral role, the ncp adaptation will return a dummy endpoint for the stall operation. + // The solution is to check if the device is in peripheral mode, if not, skip the stall + // operation. A problem is now we can't find a good solution to check the current role of the device. + // For the test environement, it's ok to use the USB state to confirm and from the test result, + // it works fine. Later when we find accurate method, we will change the confirmation logic. + TInt ret = KErrNone; + + TUsbcDeviceState devstate = EUsbcDeviceStateUndefined; + ret = gPort.DeviceStatus(devstate); + test(ret == KErrNone); + + if( EUsbcDeviceStateUndefined==devstate ) + { + test.Printf( _L("Device not connected, state EUsbcDeviceStateUndefined.\n") ); + test.Printf( _L("Skipping endpoint stall status tests.\n") ); + test.End(); + return; + } +#endif + if (!SupportsEndpointStall()) { test.Printf(_L("*** Not supported - skipping endpoint stall status tests\n")); diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/digitiser/digi.auto.bat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kerneltest/e32test/digitiser/digi.auto.bat Fri Jun 11 15:02:23 2010 +0300 @@ -0,0 +1,19 @@ +rem +rem Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). +rem All rights reserved. +rem This component and the accompanying materials are made available +rem under the terms of the License "Eclipse Public License v1.0" +rem which accompanies this distribution, and is available +rem at the URL "http://www.eclipse.org/legal/epl-v10.html". +rem +rem Initial Contributors: +rem Nokia Corporation - initial contribution. +rem +rem Contributors: +rem +rem Description: +rem + +t_userdigitisertest +t_userdigitisernocap +t_ldddigitisertest diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/digitiser/digitiser.inf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kerneltest/e32test/digitiser/digitiser.inf Fri Jun 11 15:02:23 2010 +0300 @@ -0,0 +1,44 @@ +// 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: +// Digitiser Driver Tests +// Convienence INF file to build just Digitiser tests "bldmake -f digitiser.inf bldfiles" +// Test MMPs also part of the offical ../group/bld.inf e32test component. +// + +/** +@file + +@SYMPurpose Kernel and User library test code +*/ + +PRJ_PLATFORMS + +BASEDEFAULT + +PRJ_TESTEXPORTS + +digitiser_tests.iby /epoc32/rom/include/digitiser_tests.iby +tshell_digitisertests.oby ../../../kernel/eka/rombuild/tshell_digitisertests.oby + +digi.auto.bat /epoc32/rom/include/digi.auto.bat + +PRJ_TESTMMPFILES + +..\group\d_ldddigitisertest support + +#ifndef SMP +..\group\t_userdigitisertest +..\group\t_userdigitisernocaps +..\group\t_ldddigitisertest +#endif diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/digitiser/digitiser_tests.iby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kerneltest/e32test/digitiser/digitiser_tests.iby Fri Jun 11 15:02:23 2010 +0300 @@ -0,0 +1,27 @@ +// 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: +// Digitiser Driver Test Application +// + +#ifndef __DIGITISER_TEST_IBY__ +#define __DIGITISER_TEST_IBY__ + +device[VARID]=\Epoc32\Release\##KMAIN##\##BUILD##\d_ldddigitisertest.ldd \sys\bin\d_ldddigitisertest.ldd +file=\Epoc32\Release\##MAIN##\##BUILD##\t_ldddigitisertest.exe \sys\bin\t_ldddigitisertest.exe +file=\Epoc32\Release\##MAIN##\##BUILD##\t_userdigitisertest.exe \sys\bin\t_userdigitisertest.exe +file=\Epoc32\Release\##MAIN##\##BUILD##\t_userdigitisernocaps.exe \sys\bin\t_userdigitisernocaps.exe + +data=\epoc32\rom\include\digi.auto.bat \digi.auot.bat + +#endif // __DIGITISER_TEST_IBY__ diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/digitiser/t_traweventdigitiser.cpp --- a/kerneltest/e32test/digitiser/t_traweventdigitiser.cpp Thu May 27 14:17:14 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,143 +0,0 @@ -// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). -// All rights reserved. -// This component and the accompanying materials are made available -// under the terms of the License "Eclipse Public License v1.0" -// which accompanies this distribution, and is available -// at the URL "http://www.eclipse.org/legal/epl-v10.html". -// -// Initial Contributors: -// Nokia Corporation - initial contribution. -// -// Contributors: -// -// Description: -// e32test\digitiser\t_traweventdigitiser.cpp -// Overview: -// Test the TRawEvent APIS and events associated with the Digitiser and also verify the BTRACEs (manually) -// API Information: -// UserSvr -// Details: -// - Test the following 6 Events types -// 1. EPointerMove -// 2. EPointer3DInRange, -// 3. EPointer3DOutOfRange, -// 4. EPointer3DTilt, -// 5. EPointer3DRotation, -// 6. EPointer3DTiltAndMove, -// Platforms/Drives/Compatibility: -// All. -// Assumptions/Requirement/Pre-requisites: -// Failures and causes: -// -// - -#include -#include -#include -#include - -LOCAL_D RTest test(_L("t_TRawEventDigitiser")); - -class TestTRawDigitiserEvent - { -public: - TestTRawDigitiserEvent(TRawEvent::TType aType,TInt aX,TInt aY,TInt aZ,TInt aScanCode,TInt aPhi,TInt aTheta,TInt aAlpha,TUint8 aPointerNumber,TUint8 iTip); - void TestEvents(); -private: - TRawEvent::TType iType; - TInt iX; - TInt iY; - TInt iZ; - TInt iScanCode; - TInt iPhi; - TInt iTheta; - TInt iAlpha; - TUint8 iPointerNumber; - TUint8 iTip; - TRawEvent iDigitiser3DEvent; - }; - - -TestTRawDigitiserEvent::TestTRawDigitiserEvent(TRawEvent::TType aType,TInt aX,TInt aY,TInt aZ,TInt aScanCode,TInt aPhi,TInt aTheta,TInt aAlpha,TUint8 aPointerNumber,TUint8 aTip):iType(aType),iX(aX),iY(aY),iZ(aZ),iScanCode(aScanCode),iPhi(aPhi),iTheta(aTheta),iAlpha(aAlpha),iPointerNumber(aPointerNumber),iTip(aTip) - {} - - -void TestTRawDigitiserEvent::TestEvents() - { - - test(iDigitiser3DEvent.Type()==0); - iDigitiser3DEvent.Set(iType); - test(iDigitiser3DEvent.Type()==iType); - iDigitiser3DEvent.SetPointerNumber(iPointerNumber); - test(iPointerNumber == iDigitiser3DEvent.PointerNumber()); - iDigitiser3DEvent.Set(iType,iScanCode); - //Set the Type temporarily to get through the assertion - iDigitiser3DEvent.Set(TRawEvent::EKeyDown); - test(iScanCode==iDigitiser3DEvent.ScanCode()); - iDigitiser3DEvent.Set(iType,iX,iY); - //Set the Type temporarily to get through the assertion - iDigitiser3DEvent.Set(TRawEvent::EPointerMove); - test(TPoint(iX,iY)==iDigitiser3DEvent.Pos()); - iDigitiser3DEvent.Set(iType,iX,iY,iZ); - //Set the Type temporarily to get through the assertion - iDigitiser3DEvent.Set(TRawEvent::EPointerMove); - test(TPoint3D(iX,iY,iZ)==iDigitiser3DEvent.Pos3D()); - iDigitiser3DEvent.SetTip(iTip); - test(TBool(iTip) == iDigitiser3DEvent.IsTip()); - iDigitiser3DEvent.SetTilt(iType,iPhi,iTheta); - //Set the Type temporarily to get through the assertion - iDigitiser3DEvent.Set(TRawEvent::EPointer3DTilt); - TAngle3D rawEventAnge3D=iDigitiser3DEvent.Tilt(); - test((rawEventAnge3D.iPhi==iPhi) && (rawEventAnge3D.iTheta==iTheta)) ; - - - iDigitiser3DEvent.SetRotation(iType,iAlpha); - //Set the Type temporarily to get through the assertion - iDigitiser3DEvent.Set(TRawEvent::EPointer3DRotation); - test(iAlpha == iDigitiser3DEvent.Rotation()); - iDigitiser3DEvent.Set(iType,iX+1,iY+1,iZ+1,iPhi+1,iTheta+1,iAlpha+1); - //Set the Type temporarily to get through the assertion - iDigitiser3DEvent.Set(TRawEvent::EPointer3DTiltAndMove); - test(TPoint3D(iX+1,iY+1,iZ+1)==iDigitiser3DEvent.Pos3D()); - rawEventAnge3D=iDigitiser3DEvent.Tilt(); - test((rawEventAnge3D.iPhi==iPhi+1) &&(rawEventAnge3D.iTheta==iTheta+1)); - test((iAlpha+1) == iDigitiser3DEvent.Rotation()); - iDigitiser3DEvent.Set(iType,iX+2,iY+2,iZ+2,static_cast(iPointerNumber+1)); - //Set the Type temporarily to get through the assertion - iDigitiser3DEvent.Set(TRawEvent::EPointer3DTiltAndMove); - test(TPoint3D(iX+2,iY+2,iZ+2)==iDigitiser3DEvent.Pos3D()); - test((iPointerNumber+1) == iDigitiser3DEvent.PointerNumber()); - - UserSvr::AddEvent(iDigitiser3DEvent); - } - - -GLDEF_C TInt E32Main() -// -// - { - - test.Title(); - test.Start(_L("Testing Digitiser Events")); - - TestTRawDigitiserEvent digitiserEvent1(TRawEvent::EPointerMove, -890,-123, -823,455,2563,156,62,3,1); - TestTRawDigitiserEvent digitiserEvent2(TRawEvent::EPointer3DInRange, 23,45,23,1,2,6,4,2,1); - TestTRawDigitiserEvent digitiserEvent3(TRawEvent::EPointer3DOutOfRange, 23,45,23,1,2,6,4,2,0); - TestTRawDigitiserEvent digitiserEvent4(TRawEvent::EPointer3DTilt, 23,45,23,1,2,6,4,2,1); - TestTRawDigitiserEvent digitiserEvent5(TRawEvent::EPointer3DRotation, 23,45,23,1,2,6,4,2,1); - TestTRawDigitiserEvent digitiserEvent6(TRawEvent::EPointer3DTiltAndMove, 23,45,23,1,2,6,4,2,0); - - digitiserEvent1.TestEvents(); - digitiserEvent2.TestEvents(); - digitiserEvent3.TestEvents(); - digitiserEvent4.TestEvents(); - digitiserEvent5.TestEvents(); - digitiserEvent6.TestEvents(); - test.Printf(_L("T_TRAWEVENTDIGITISER: TEST Successfully Completed\n")); - test.End(); - test.Close(); - - return KErrNone; - - } - diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/digitiser/t_userdigitisertest.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kerneltest/e32test/digitiser/t_userdigitisertest.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -0,0 +1,267 @@ +// 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: +// e32test\digitiser\t_userdigitisertest.cpp +// Overview: +// Test the TRawEvent APIS and events associated with the Digitiser and also verify the BTRACEs (manually) +// Test HAL digitiser orientation attribute +// API Information: +// UserSvr +// Details: +// - Test the following 6 Events types +// 1. EPointerMove +// 2. EPointer3DInRange, +// 3. EPointer3DOutOfRange, +// 4. EPointer3DTilt, +// 5. EPointer3DRotation, +// 6. EPointer3DTiltAndMove, +// Platforms/Drives/Compatibility: +// All. +// Assumptions/Requirement/Pre-requisites: +// Failures and causes: +// +// + +#define __E32TEST_EXTENSION__ +#include +#include +#include +#include +#include + +#ifndef E32TEST_NOCAPS +LOCAL_D RTest test(_L("T_UserDigitiserTest")); +#else +LOCAL_D RTest test(_L("T_UserDigitiserNoCaps")); +#endif + +class TestTRawDigitiserEvent + { +public: + TestTRawDigitiserEvent(TRawEvent::TType aType,TInt aX,TInt aY,TInt aZ,TInt aScanCode,TInt aPhi,TInt aTheta,TInt aAlpha,TUint8 aPointerNumber,TUint8 iTip); + void TestEvents(); +private: + TRawEvent::TType iType; + TInt iX; + TInt iY; + TInt iZ; + TInt iScanCode; + TInt iPhi; + TInt iTheta; + TInt iAlpha; + TUint8 iPointerNumber; + TUint8 iTip; + TRawEvent iDigitiser3DEvent; + }; + + +TestTRawDigitiserEvent::TestTRawDigitiserEvent(TRawEvent::TType aType,TInt aX,TInt aY,TInt aZ,TInt aScanCode,TInt aPhi,TInt aTheta,TInt aAlpha,TUint8 aPointerNumber,TUint8 aTip):iType(aType),iX(aX),iY(aY),iZ(aZ),iScanCode(aScanCode),iPhi(aPhi),iTheta(aTheta),iAlpha(aAlpha),iPointerNumber(aPointerNumber),iTip(aTip) + {} + + +void TestTRawDigitiserEvent::TestEvents() + { + static TInt count = 0; + count++; + test.Printf(_L("TestTRawDigitiserEvent test case %2d\n"), count); + + test(iDigitiser3DEvent.Type()==0); + iDigitiser3DEvent.Set(iType); + test(iDigitiser3DEvent.Type()==iType); + iDigitiser3DEvent.SetPointerNumber(iPointerNumber); + test(iPointerNumber == iDigitiser3DEvent.PointerNumber()); + iDigitiser3DEvent.Set(iType,iScanCode); + //Set the Type temporarily to get through the assertion + iDigitiser3DEvent.Set(TRawEvent::EKeyDown); + test(iScanCode==iDigitiser3DEvent.ScanCode()); + iDigitiser3DEvent.Set(iType,iX,iY); + //Set the Type temporarily to get through the assertion + iDigitiser3DEvent.Set(TRawEvent::EPointerMove); + test(TPoint(iX,iY)==iDigitiser3DEvent.Pos()); + iDigitiser3DEvent.Set(iType,iX,iY,iZ); + //Set the Type temporarily to get through the assertion + iDigitiser3DEvent.Set(TRawEvent::EPointerMove); + test(TPoint3D(iX,iY,iZ)==iDigitiser3DEvent.Pos3D()); + iDigitiser3DEvent.SetTip(iTip); + test(TBool(iTip) == iDigitiser3DEvent.IsTip()); + iDigitiser3DEvent.SetTilt(iType,iPhi,iTheta); + //Set the Type temporarily to get through the assertion + iDigitiser3DEvent.Set(TRawEvent::EPointer3DTilt); + TAngle3D rawEventAnge3D=iDigitiser3DEvent.Tilt(); + test((rawEventAnge3D.iPhi==iPhi) && (rawEventAnge3D.iTheta==iTheta)) ; + + + iDigitiser3DEvent.SetRotation(iType,iAlpha); + //Set the Type temporarily to get through the assertion + iDigitiser3DEvent.Set(TRawEvent::EPointer3DRotation); + test(iAlpha == iDigitiser3DEvent.Rotation()); + iDigitiser3DEvent.Set(iType,iX+1,iY+1,iZ+1,iPhi+1,iTheta+1,iAlpha+1); + //Set the Type temporarily to get through the assertion + iDigitiser3DEvent.Set(TRawEvent::EPointer3DTiltAndMove); + test(TPoint3D(iX+1,iY+1,iZ+1)==iDigitiser3DEvent.Pos3D()); + rawEventAnge3D=iDigitiser3DEvent.Tilt(); + test((rawEventAnge3D.iPhi==iPhi+1) &&(rawEventAnge3D.iTheta==iTheta+1)); + test((iAlpha+1) == iDigitiser3DEvent.Rotation()); + iDigitiser3DEvent.Set(iType,iX+2,iY+2,iZ+2,static_cast(iPointerNumber+1)); + //Set the Type temporarily to get through the assertion + iDigitiser3DEvent.Set(TRawEvent::EPointer3DTiltAndMove); + test(TPoint3D(iX+2,iY+2,iZ+2)==iDigitiser3DEvent.Pos3D()); + test((iPointerNumber+1) == iDigitiser3DEvent.PointerNumber()); + + UserSvr::AddEvent(iDigitiser3DEvent); + } + + +struct HalAttribute_TestCase + { + HALData::TAttribute iAttr; + TInt iValueIn; + TInt iSetRC; // Set to KMaxTInt to skip set test case + TInt iGetRC; // Set to KMaxTInt to skip get test case + + }; + +static HalAttribute_TestCase gHalAttributeTests[] = + { +#ifndef E32TEST_NOCAPS + // Normal all pass tests + { HALData::EDigitiserOrientation, HALData::EDigitiserOrientation_000, KErrNone, KErrNone}, + { HALData::EDigitiserOrientation, HALData::EDigitiserOrientation_090, KErrNone, KErrNone}, + { HALData::EDigitiserOrientation, HALData::EDigitiserOrientation_180, KErrNone, KErrNone}, + { HALData::EDigitiserOrientation, HALData::EDigitiserOrientation_270, KErrNone, KErrNone}, + { HALData::EDigitiserOrientation, HALData::EDigitiserOrientation_default, KErrNone, KErrNone}, + + // Negative tests + { HALData::EDigitiserOrientation, -1, KErrArgument, KMaxTInt}, + { HALData::EDigitiserOrientation, 100, KErrArgument, KMaxTInt}, + +#else + // Platsec tests for no capabilities executable. + { HALData::EDigitiserOrientation, HALData::EDigitiserOrientation_default, KMaxTInt, KErrNone}, // Get, No caps needed + { HALData::EDigitiserOrientation, HALData::EDigitiserOrientation_default, KErrPermissionDenied, KMaxTInt}, // Set WDD cap needed +#endif + }; + +static TInt gNumHalAttributeTests = sizeof(gHalAttributeTests)/sizeof(HalAttribute_TestCase); + +void DoTestDigitiserHalAttributes() + { + __UHEAP_MARK; +#ifndef E32TEST_NOCAPS + test.Start(_L("DoTestDigitiserHalAttributes tests")); +#else + test.Start(_L("DoTestDigitiserHalAttributes NO CAPS tests")); + + // Skip No Caps testing for WDD caps when enforcement is not enabled on the + // platform i.e. when a emulator epoc.ini is missing. + if (!PlatSec::IsCapabilityEnforced(ECapabilityWriteDeviceData)) + { + test.Printf(_L("Platform security enforcement off, skipping\n")); + test.End(); + __UHEAP_MARKEND; + return; + } +#endif + + TInt i = 0; + TInt origValue = -1; + TInt r = HAL::Get(HALData::EDigitiserOrientation, origValue); + if (r == KErrNotSupported) + { + test.Printf(_L("Platform doesn't support EDigitiserOrientation, skipping\n")); + test.End(); + __UHEAP_MARKEND; + return; + } + test_KErrNone(r); + + // Attribute supported on platform, proceed with test. + TInt value = -1; + for (i=0; i < gNumHalAttributeTests; i++) + { + test.Printf(_L("DoTestDigitiserHalAttributes - step/row %2d\n"), i+1); + + if (gHalAttributeTests[i].iSetRC != KMaxTInt) // Skip set test? + { + r = HAL::Set(gHalAttributeTests[i].iAttr, gHalAttributeTests[i].iValueIn); + test_Equal( gHalAttributeTests[i].iSetRC, r); + } + + if (gHalAttributeTests[i].iGetRC != KMaxTInt) // Skip get test? + { + r = HAL::Get(gHalAttributeTests[i].iAttr, value); + test_Equal(gHalAttributeTests[i].iGetRC, r); + test_Equal(gHalAttributeTests[i].iValueIn, value); + } + } + +#ifndef E32TEST_NOCAPS + // Return system state back to before the test + r = HAL::Set(HALData::EDigitiserOrientation, origValue); + test_KErrNone(r); +#endif + + test.Printf(_L("DoTestDigitiserHalAttributes - complete\n")); + test.End(); + __UHEAP_MARKEND; + } + +#ifndef E32TEST_NOCAPS +void DoTestRawDigitiserEvent() + { + __UHEAP_MARK; + test.Start(_L("DoTestRawDigitiserEvent tests")); + + TestTRawDigitiserEvent digitiserEvent1(TRawEvent::EPointerMove, -890,-123, -823,455,2563,156,62,3,1); + TestTRawDigitiserEvent digitiserEvent2(TRawEvent::EPointer3DInRange, 23,45,23,1,2,6,4,2,1); + TestTRawDigitiserEvent digitiserEvent3(TRawEvent::EPointer3DOutOfRange, 23,45,23,1,2,6,4,2,0); + TestTRawDigitiserEvent digitiserEvent4(TRawEvent::EPointer3DTilt, 23,45,23,1,2,6,4,2,1); + TestTRawDigitiserEvent digitiserEvent5(TRawEvent::EPointer3DRotation, 23,45,23,1,2,6,4,2,1); + TestTRawDigitiserEvent digitiserEvent6(TRawEvent::EPointer3DTiltAndMove, 23,45,23,1,2,6,4,2,0); + + digitiserEvent1.TestEvents(); + digitiserEvent2.TestEvents(); + digitiserEvent3.TestEvents(); + digitiserEvent4.TestEvents(); + digitiserEvent5.TestEvents(); + digitiserEvent6.TestEvents(); + + test.End(); + __UHEAP_MARKEND; + } +#endif + + +GLDEF_C TInt E32Main() +// +// + { + __UHEAP_MARK; + + test.Title(); + test.Start(_L("User-side Digitiser Testing Events/HAL")); + + DoTestDigitiserHalAttributes(); + +#ifndef E32TEST_NOCAPS + DoTestRawDigitiserEvent(); +#endif + + test.Printf(_L("\n")); + test.End(); + test.Close(); + + __UHEAP_MARKEND; + return KErrNone; + } + diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/digitiser/tshell_digitisertests.oby --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kerneltest/e32test/digitiser/tshell_digitisertests.oby Fri Jun 11 15:02:23 2010 +0300 @@ -0,0 +1,29 @@ +/* +* 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: +* +*/ + +#define BASE_ROM +#include + + +files= + +#include +#include "user.iby" +#include +#include + +#include diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/eabi/d_second_excp2_40u.def --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kerneltest/e32test/eabi/d_second_excp2_40u.def Fri Jun 11 15:02:23 2010 +0300 @@ -0,0 +1,12 @@ +EXPORTS + _Z8thrower2i @ 1 NONAME + _Z8thrower3i @ 2 NONAME + _Z8thrower4i @ 3 NONAME + _Z8thrower5i @ 4 NONAME + _ZN14UncaughtTesterC1ERi @ 5 NONAME + _ZN14UncaughtTesterC2ERi @ 6 NONAME + _ZN14UncaughtTesterD1Ev @ 7 NONAME + _ZN14UncaughtTesterD2Ev @ 8 NONAME + _ZN17MyFourthExceptionC1Ei @ 9 NONAME + _ZN17MyFourthExceptionC2Ei @ 10 NONAME + diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/eabi/d_second_excp_40u.def --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kerneltest/e32test/eabi/d_second_excp_40u.def Fri Jun 11 15:02:23 2010 +0300 @@ -0,0 +1,12 @@ +EXPORTS + _Z8thrower2i @ 1 NONAME + _Z8thrower3i @ 2 NONAME + _Z8thrower4i @ 3 NONAME + _Z8thrower5i @ 4 NONAME + _ZN14UncaughtTesterC1ERi @ 5 NONAME + _ZN14UncaughtTesterC2ERi @ 6 NONAME + _ZN14UncaughtTesterD1Ev @ 7 NONAME + _ZN14UncaughtTesterD2Ev @ 8 NONAME + _ZN17MyFourthExceptionC1Ei @ 9 NONAME + _ZN17MyFourthExceptionC2Ei @ 10 NONAME + diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/group/base_e32test.mrp --- a/kerneltest/e32test/group/base_e32test.mrp Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/e32test/group/base_e32test.mrp Fri Jun 11 15:02:23 2010 +0300 @@ -1,18 +1,3 @@ -# -# 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 "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: -# # component name "E32 Tests" component base_e32test diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/group/bld.inf --- a/kerneltest/e32test/group/bld.inf Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/e32test/group/bld.inf Fri Jun 11 15:02:23 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" @@ -387,7 +387,8 @@ t_newldd t_lddpowerseqtest t_ldddigitisertest -t_traweventdigitiser +t_userdigitisertest +t_userdigitisernocaps t_persistrestart manual halsettings support @@ -496,11 +497,13 @@ ../ethernet/pump/etherpump manual ../ethernet/macset/macset manual -// /e32test/heap tests +// /E32TEST/HEAP tests +t_fail + #ifdef EPOC32 -t_hcomp support +t_hcomp support #endif -t_fail + t_heap t_heap2 t_heapdb diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/group/bm_pdd.mmp --- a/kerneltest/e32test/group/bm_pdd.mmp Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/e32test/group/bm_pdd.mmp Fri Jun 11 15:02:23 2010 +0300 @@ -68,6 +68,10 @@ source bm_ne1_pdd.cpp #endif +#if defined(NCP_COMMON_RAPU_FAMILY) +SYMBIAN_BASE_SYSTEMINCLUDE(assp/rapu) +source bm_rapu_pdd.cpp +#endif start wins win32_library kernel32.lib end diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/group/d_cache.mmp --- a/kerneltest/e32test/group/d_cache.mmp Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/e32test/group/d_cache.mmp Fri Jun 11 15:02:23 2010 +0300 @@ -15,7 +15,9 @@ // // -#include <../variant.mmh> +#include + + #include "kernel/kern_ext.mmh" target VariantTarget(d_cache,ldd) diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/group/d_kerncorestats.mmp --- a/kerneltest/e32test/group/d_kerncorestats.mmp Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/e32test/group/d_kerncorestats.mmp Fri Jun 11 15:02:23 2010 +0300 @@ -1,7 +1,7 @@ // Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies). // All rights reserved. // This component and the accompanying materials are made available -// under the terms of "Eclipse Public License v1.0" +// 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". // diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/group/d_second_excp.mmp --- a/kerneltest/e32test/group/d_second_excp.mmp Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/e32test/group/d_second_excp.mmp Fri Jun 11 15:02:23 2010 +0300 @@ -40,5 +40,10 @@ capability all vendorid 0x70000001 +#if defined ARMCC_4_0 +deffile d_second_excp_40.def +#else +deffile d_second_excp.def +#endif SMPSAFE diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/group/d_second_excp2.mmp --- a/kerneltest/e32test/group/d_second_excp2.mmp Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/e32test/group/d_second_excp2.mmp Fri Jun 11 15:02:23 2010 +0300 @@ -28,6 +28,10 @@ capability all vendorid 0x70000001 - +#if defined ARMCC_4_0 +deffile d_second_excp2_40.def +#else +deffile d_second_excp2.def +#endif SMPSAFE diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/group/t_datapaging.mmp --- a/kerneltest/e32test/group/t_datapaging.mmp Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/e32test/group/t_datapaging.mmp Fri Jun 11 15:02:23 2010 +0300 @@ -20,7 +20,7 @@ sourcepath ../demandpaging source t_datapaging.cpp ../mmu/paging_info.cpp source t_dpcmn.cpp -library euser.lib hal.lib dptest.lib +library euser.lib hal.lib dptest.lib efsrv.lib OS_LAYER_SYSTEMINCLUDE_SYMBIAN capability all vendorid 0x70000001 diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/group/t_kerncorestats.mmp --- a/kerneltest/e32test/group/t_kerncorestats.mmp Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/e32test/group/t_kerncorestats.mmp Fri Jun 11 15:02:23 2010 +0300 @@ -1,7 +1,7 @@ // Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies). // All rights reserved. // This component and the accompanying materials are made available -// under the terms of "Eclipse Public License v1.0" +// 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". // diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/group/t_ramall.mmp --- a/kerneltest/e32test/group/t_ramall.mmp Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/e32test/group/t_ramall.mmp Fri Jun 11 15:02:23 2010 +0300 @@ -19,7 +19,7 @@ targettype exe sourcepath ../mmu source t_ramall.cpp -library euser.lib +library euser.lib dptest.lib OS_LAYER_SYSTEMINCLUDE_SYMBIAN diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/group/t_smpsoakspin.mmp --- a/kerneltest/e32test/group/t_smpsoakspin.mmp Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/e32test/group/t_smpsoakspin.mmp Fri Jun 11 15:02:23 2010 +0300 @@ -1,20 +1,7 @@ -/* -* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - +// e32test\group\t_smpsoakspin.mmp +// +// Copyright (c) 2005 Symbian Ltd. All rights reserved. +// target t_smpsoakspin.exe targettype exe diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/group/t_suser.mmp --- a/kerneltest/e32test/group/t_suser.mmp Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/e32test/group/t_suser.mmp Fri Jun 11 15:02:23 2010 +0300 @@ -19,7 +19,7 @@ targettype exe sourcepath ../secure source t_suser.cpp -library euser.lib +library euser.lib hal.lib OS_LAYER_SYSTEMINCLUDE_SYMBIAN ROMTARGET RAMTARGET \sys\bin\ // diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/group/t_traweventdigitiser.mmp --- a/kerneltest/e32test/group/t_traweventdigitiser.mmp Thu May 27 14:17:14 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,30 +0,0 @@ -/* -* 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: -* -*/ - -TARGET t_traweventdigitiser.exe -TARGETTYPE EXE -SOURCEPATH ../digitiser -SOURCE t_traweventdigitiser.cpp -LIBRARY euser.lib -OS_LAYER_SYSTEMINCLUDE_SYMBIAN - - -capability all - -VENDORID 0x70000001 - -SMPSAFE diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/group/t_userdigitisernocaps.mmp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kerneltest/e32test/group/t_userdigitisernocaps.mmp Fri Jun 11 15:02:23 2010 +0300 @@ -0,0 +1,36 @@ +/* +* 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: +* +*/ + +TARGET t_userdigitisernocaps.exe +TARGETTYPE EXE + +CAPABILITY None +MACRO E32TEST_NOCAPS + +VENDORID 0x70000001 +SMPSAFE + +OS_LAYER_SYSTEMINCLUDE_SYMBIAN + +SOURCEPATH ../digitiser +SOURCE t_userdigitisertest.cpp + +LIBRARY euser.lib +LIBRARY hal.lib + + + diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/group/t_userdigitisertest.mmp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kerneltest/e32test/group/t_userdigitisertest.mmp Fri Jun 11 15:02:23 2010 +0300 @@ -0,0 +1,34 @@ +/* +* Copyright (c) 2009-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: +* +*/ + +TARGET t_userdigitisertest.exe +TARGETTYPE EXE + +CAPABILITY SwEvent WriteDeviceData +VENDORID 0x70000001 +SMPSAFE + +OS_LAYER_SYSTEMINCLUDE_SYMBIAN + +SOURCEPATH ../digitiser +SOURCE t_userdigitisertest.cpp + +LIBRARY euser.lib +LIBRARY hal.lib + + + diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/hcr/d_hcrut_psl.cpp --- a/kerneltest/e32test/hcr/d_hcrut_psl.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/e32test/hcr/d_hcrut_psl.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -127,7 +127,7 @@ #if !defined(__WINS__) && !defined(__X86__) // Note to future implementor: - // #include + // #include // First check to see if SMRIB was created during boot time. // If SSuperPageBase::iSmrData == KSuperPageAddressFieldUndefined (i.e. -1) // it does not exist, return KErrNotSupported, SMR not support by base port diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/locl/t_lat1.cpp --- a/kerneltest/e32test/locl/t_lat1.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/e32test/locl/t_lat1.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -1,7 +1,7 @@ // Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies). // All rights reserved. // This component and the accompanying materials are made available -// under the terms of "Eclipse Public License v1.0" +// 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". // diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/mediaext/d_nfe.cpp --- a/kerneltest/e32test/mediaext/d_nfe.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/e32test/mediaext/d_nfe.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -21,7 +21,7 @@ #include "nfe.h" #if defined(_DEBUG) - #define TRACE_ENABLED +// #define TRACE_ENABLED #else #endif @@ -782,7 +782,6 @@ break; case DLocalDrive::EWrite: - WriteEncryptionStatusToBootSector(di, EFalse); // a write to the drive clears the finalised state r=HandleWrite(aReq); break; @@ -1471,8 +1470,7 @@ if (!aDi.IsUDADrive()) return KErrNone; - if (aDi.iDriveFinalised == aFinalised) - return KErrNone; + aDi.iDriveFinalised = aFinalised; TNfeDiskStatus status = aDi.Status(); diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/misc/d_testkerncorestats.cpp --- a/kerneltest/e32test/misc/d_testkerncorestats.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/e32test/misc/d_testkerncorestats.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -1,7 +1,7 @@ // Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies). // All rights reserved. // This component and the accompanying materials are made available -// under the terms of "Eclipse Public License v1.0" +// 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". // diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/misc/d_testkerncorestats.h --- a/kerneltest/e32test/misc/d_testkerncorestats.h Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/e32test/misc/d_testkerncorestats.h Fri Jun 11 15:02:23 2010 +0300 @@ -1,7 +1,7 @@ // Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies). // All rights reserved. // This component and the accompanying materials are made available -// under the terms of "Eclipse Public License v1.0" +// 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". // diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/misc/inflate.c --- a/kerneltest/e32test/misc/inflate.c Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/e32test/misc/inflate.c Fri Jun 11 15:02:23 2010 +0300 @@ -1,19 +1,3 @@ -/* -* 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 "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: -* -*/ /* inflate.c -- Not copyrighted 1992 by Mark Adler version c10p1, 10 January 1993 */ diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/misc/t_kerncorestats.cpp --- a/kerneltest/e32test/misc/t_kerncorestats.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/e32test/misc/t_kerncorestats.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -1,7 +1,7 @@ // Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies). // All rights reserved. // This component and the accompanying materials are made available -// under the terms of "Eclipse Public License v1.0" +// 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". // diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/mmu/t_cachechunk.cpp --- a/kerneltest/e32test/mmu/t_cachechunk.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/e32test/mmu/t_cachechunk.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -98,7 +98,7 @@ TInt PageSize; TInt NoFreeRam; RTimer Timer; - +TBool gFmm; void FillPage(TUint aOffset) @@ -308,18 +308,44 @@ test_KErrNone(r); test.Next(_L("Check Decommit on unlocked pages")); + // Get orignal page cache size + TUint minCache = 0; + TUint maxCache = 0; + TUint oldCache = 0; + TUint newCache = 0; + if (gFmm) + { + r = DPTest::CacheSize(minCache, maxCache, oldCache); + test_KErrNone(r); + } r = TestChunk.Unlock(aOffset,PageSize*4); test_KErrNone(r); + + TUint spareCache = maxCache - oldCache; + if (gFmm && spareCache) + {// Cache wasn't at maximum so should have grown when unlocked pages were added. + r = DPTest::CacheSize(minCache, maxCache, newCache); + test_KErrNone(r); + TUint extraCache = (spareCache > (TUint)PageSize*4)? PageSize*4 : spareCache; + test_Equal(oldCache + extraCache, newCache); + } test(FreeRam() >= NoFreeRam+PageSize*4); r=TestChunk.Decommit(aOffset, PageSize*4); test_KErrNone(r); freeRam = FreeRam(); test_Compare(freeRam, >=, NoFreeRam+PageSize*4); test_Equal(origChunkSize - PageSize*4, TestChunk.Size()); + + if (gFmm) + {// Cache should have shrunk after pages were decommited. + r = DPTest::CacheSize(minCache, maxCache, newCache); + test_KErrNone(r); + test_Equal(oldCache, newCache); + } // Restore chunk back to original state r = TestChunk.Commit(aOffset, PageSize*4); test_KErrNone(r); - test(FreeRam() == NoFreeRam); + test_Equal(NoFreeRam, FreeRam()); test.Next(_L("Check Decommit on unlocked and reclaimed pages")); r = TestChunk.Unlock(aOffset,PageSize*4); @@ -351,6 +377,44 @@ test(freeRam==NoFreeRam); test_Equal(origChunkSize, TestChunk.Size()); + test.Next(_L("Check Decommit on a mixture of locked and unlocked pages")); + // Get orignal page cache size + if (gFmm) + { + r = DPTest::CacheSize(minCache, maxCache, oldCache); + test_KErrNone(r); + } + r = TestChunk.Unlock(aOffset,PageSize); + test_KErrNone(r); + r = TestChunk.Unlock(aOffset + PageSize*2, PageSize); + test_KErrNone(r); + + spareCache = maxCache - oldCache; + if (gFmm && spareCache) + {// Cache wasn't at maximum so should have grown when unlocked pages were added. + r = DPTest::CacheSize(minCache, maxCache, newCache); + test_KErrNone(r); + TUint extraCache = (spareCache > (TUint)PageSize*2)? PageSize*2 : spareCache; + test_Equal(oldCache + extraCache, newCache); + } + test(FreeRam() >= NoFreeRam+PageSize*2); + r=TestChunk.Decommit(aOffset, PageSize*4); + test_KErrNone(r); + freeRam = FreeRam(); + test_Compare(freeRam, >=, NoFreeRam+PageSize*4); + test_Equal(origChunkSize - PageSize*4, TestChunk.Size()); + + if (gFmm) + {// Cache should have shrunk after pages were decommited. + r = DPTest::CacheSize(minCache, maxCache, newCache); + test_KErrNone(r); + test_Equal(oldCache, newCache); + } + // Restore chunk back to original state + r = TestChunk.Commit(aOffset, PageSize*4); + test_KErrNone(r); + test_Equal(NoFreeRam, FreeRam()); + test.End(); } @@ -450,6 +514,10 @@ test.Printf(_L("This test requires an MMU\n")); return KErrNone; } + // See if were running on the Flexible Memory Model or newer. + TUint32 memModelAttrib = (TUint32)UserSvr::HalFunction(EHalGroupKernel, EKernelHalMemModelInfo, NULL, NULL); + gFmm = (memModelAttrib & EMemModelTypeMask) >= EMemModelTypeFlexible; + test.Start(_L("Initialise test")); test.Next(_L("Load gobbler LDD")); TInt r = User::LoadLogicalDevice(KGobblerLddFileName); diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/mmu/t_ramall.cpp --- a/kerneltest/e32test/mmu/t_ramall.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/e32test/mmu/t_ramall.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -20,6 +20,7 @@ #include #include #include +#include #include "d_shadow.h" #include "mmudetect.h" #include "freeram.h" @@ -32,6 +33,18 @@ TInt PageShift; RShadow Shadow; TInt InitFreeRam; +RChunk Chunk; +TUint ChunkCommitEnd; +RThread TouchThread; +TRequestStatus TouchStatus; +TBool TouchDataStop; +RThread FragThread; +TRequestStatus FragStatus; +TBool FragThreadStop; +TBool ManualTest; +TBool CacheSizeAdjustable; +TUint OrigMinCacheSize; +TUint OrigMaxCacheSize; TInt AllocPhysicalRam(TUint32& aAddr, TInt aSize, TInt aAlign) { @@ -118,6 +131,334 @@ } + +struct SPhysAllocData + { + TUint iSize; + TUint iAlign; + TBool iCheckMaxAllocs; + TBool iCheckFreeRam; + }; + + +TInt FillPhysicalRam(TAny* aArgs) + { + SPhysAllocData& allocData = *((SPhysAllocData*)aArgs); + TUint maxAllocs = FreeRam() / allocData.iSize; + TUint32* physAddrs = new TUint32[maxAllocs + 1]; + if (!physAddrs) + return KErrNoMemory; + TUint32* pa = physAddrs; + TUint32 alignMask = (1 << allocData.iAlign) - 1; + TUint initialFreeRam = FreeRam(); + TInt r = KErrNone; + TUint allocations = 0; + for(; allocations <= maxAllocs; ++allocations) + { + TUint freeRam = FreeRam(); + r = AllocPhysicalRam(*pa, allocData.iSize, allocData.iAlign); + if (r != KErrNone) + break; + if (*pa++ & alignMask) + { + r = KErrGeneral; + RDebug::Printf("Error alignment phys addr 0x%08x", *(pa - 1)); + break; + } + if (allocData.iCheckFreeRam && freeRam - allocData.iSize != (TUint)FreeRam()) + { + r = KErrGeneral; + RDebug::Printf("Error in free ram 0x%08x orig 0x%08x", FreeRam(), freeRam); + break; + } + } + + TUint32* physEnd = pa; + TBool failFrees = EFalse; + for (pa = physAddrs; pa < physEnd; pa++) + { + if (FreePhysicalRam(*pa, allocData.iSize) != KErrNone) + failFrees = ETrue; + } + if (failFrees) + r = KErrNotFound; + if (allocData.iCheckMaxAllocs && allocations > maxAllocs) + { + r = KErrOverflow; + RDebug::Printf("Error able to allocate too many pages"); + } + if (allocData.iCheckFreeRam && initialFreeRam != (TUint)FreeRam()) + { + r = KErrGeneral; + RDebug::Printf("Error in free ram 0x%08x initial 0x%08x", FreeRam(), initialFreeRam); + } + delete[] physAddrs; + if (r != KErrNone && r != KErrNoMemory) + return r; + TUint possibleAllocs = initialFreeRam / allocData.iSize; + if (allocData.iCheckMaxAllocs && possibleAllocs != allocations) + { + RDebug::Printf("Error in number of allocations possibleAllocs %d allocations %d", possibleAllocs, allocations); + return KErrGeneral; + } + return allocations; + } + + +void TestMultipleContiguousAllocations(TUint aNumThreads, TUint aSize, TUint aAlign) + { + test.Printf(_L("TestMultiContig threads %d size 0x%x, align %d\n"), aNumThreads, aSize, aAlign); + SPhysAllocData allocData; + allocData.iSize = aSize; + allocData.iAlign = aAlign; + allocData.iCheckMaxAllocs = EFalse; + allocData.iCheckFreeRam = EFalse; + // Start several threads all contiguous allocating memory. + RThread* threads = new RThread[aNumThreads]; + TRequestStatus* status = new TRequestStatus[aNumThreads]; + TUint i = 0; + for (; i < aNumThreads; i++) + {// Need enough heap to store addr of every possible allocation + 1. + TUint requiredHeapMax = Max(PageSize, ((InitFreeRam / aSize) / sizeof(TUint32)) + sizeof(TUint32)); + TInt r = threads[i].Create(KNullDesC, FillPhysicalRam, KDefaultStackSize, PageSize, requiredHeapMax, (TAny*)&allocData); + test_KErrNone(r); + threads[i].Logon(status[i]); + } + for (i = 0; i < aNumThreads; i++) + { + threads[i].Resume(); + } + for (i = 0; i < aNumThreads; i++) + { + User::WaitForRequest(status[i]); + test_Equal(EExitKill, threads[i].ExitType()); + TInt exitReason = threads[i].ExitReason(); + test_Value(exitReason, exitReason >= 0 || exitReason == KErrNoMemory); + threads[i].Close(); + } + delete[] status; + delete[] threads; + } + +struct STouchData + { + TUint iSize; + TUint iFrequency; + }TouchData; + + +TInt TouchMemory(TAny*) + { + while (!TouchDataStop) + { + TUint8* p = Chunk.Base(); + TUint8* pEnd = p + ChunkCommitEnd; + TUint8* fragPEnd = p + TouchData.iFrequency; + for (TUint8* fragP = p + TouchData.iSize; fragPEnd < pEnd;) + { + TUint8* data = fragP; + for (; data < fragPEnd; data += PageSize) + { + *data = (TUint8)(data - fragP); + } + for (data = fragP; data < fragPEnd; data += PageSize) + { + if (*data != (TUint8)(data - fragP)) + { + RDebug::Printf("Error unexpected data 0x%x read from 0x%08x", *data, data); + return KErrGeneral; + } + } + fragP = fragPEnd + TouchData.iSize; + fragPEnd += TouchData.iFrequency; + } + } + return KErrNone; + } + +struct SFragData + { + TUint iSize; + TUint iFrequency; + TUint iDiscard; + TBool iFragThread; + }FragData; + +void FragmentMemoryFunc() + { + ChunkCommitEnd = 0; + TInt r; + while(KErrNone == (r = Chunk.Commit(ChunkCommitEnd,PageSize)) && !FragThreadStop) + { + ChunkCommitEnd += PageSize; + } + if (FragThreadStop) + return; + test_Equal(KErrNoMemory, r); + TUint freeBlocks = 0; + for ( TUint offset = 0; + (offset + FragData.iSize) < ChunkCommitEnd; + offset += FragData.iFrequency, freeBlocks++) + { + test_KErrNone(Chunk.Decommit(offset, FragData.iSize)); + } + if (!FragData.iFragThread) + test_Equal(FreeRam(), freeBlocks * FragData.iSize); + + if (FragData.iDiscard && CacheSizeAdjustable && !FragThreadStop) + { + TUint minCacheSize = FreeRam(); + TUint maxCacheSize = minCacheSize; + TUint currentCacheSize; + test_KErrNone(DPTest::CacheSize(OrigMinCacheSize, OrigMaxCacheSize, currentCacheSize)); + test_KErrNone(DPTest::SetCacheSize(minCacheSize, maxCacheSize)); + test_KErrNone(DPTest::SetCacheSize(OrigMinCacheSize, maxCacheSize)); + } + } + + +void UnfragmentMemoryFunc() + { + if (FragData.iDiscard && CacheSizeAdjustable) + test_KErrNone(DPTest::SetCacheSize(OrigMinCacheSize, OrigMaxCacheSize)); + Chunk.Decommit(0, Chunk.MaxSize()); + } + + +TInt FragmentMemoryThreadFunc(TAny*) + { + while (!FragThreadStop) + { + FragmentMemoryFunc(); + UnfragmentMemoryFunc(); + } + return KErrNone; + } + + +void FragmentMemory(TUint aSize, TUint aFrequency, TBool aDiscard, TBool aTouchMemory, TBool aFragThread) + { + test_Value(aTouchMemory, !aTouchMemory || !aFragThread); + test_Value(aSize, aSize < aFrequency); + FragData.iSize = aSize; + FragData.iFrequency = aFrequency; + FragData.iDiscard = aDiscard; + FragData.iFragThread = aFragThread; + + TChunkCreateInfo chunkInfo; + chunkInfo.SetDisconnected(0, 0, FreeRam()); + chunkInfo.SetPaging(TChunkCreateInfo::EUnpaged); + test_KErrNone(Chunk.Create(chunkInfo)); + + if (aFragThread) + { + TInt r = FragThread.Create(KNullDesC, FragmentMemoryThreadFunc, KDefaultStackSize, PageSize, PageSize, NULL); + test_KErrNone(r); + FragThread.Logon(FragStatus); + FragThreadStop = EFalse; + FragThread.Resume(); + } + else + { + FragmentMemoryFunc(); + } + if (aTouchMemory && !ManualTest) + { + TouchData.iSize = aSize; + TouchData.iFrequency = aFrequency; + TInt r = TouchThread.Create(KNullDesC, TouchMemory, KDefaultStackSize, PageSize, PageSize, NULL); + test_KErrNone(r); + TouchThread.Logon(TouchStatus); + TouchDataStop = EFalse; + TouchThread.Resume(); + } + } + + +void UnfragmentMemory(TBool aDiscard, TBool aTouchMemory, TBool aFragThread) + { + test_Value(aTouchMemory, !aTouchMemory || !aFragThread); + if (aTouchMemory && !ManualTest) + { + TouchDataStop = ETrue; + User::WaitForRequest(TouchStatus); + test_Equal(EExitKill, TouchThread.ExitType()); + test_KErrNone(TouchThread.ExitReason()); + CLOSE_AND_WAIT(TouchThread); + } + if (aFragThread) + { + FragThreadStop = ETrue; + User::WaitForRequest(FragStatus); + test_Equal(EExitKill, FragThread.ExitType()); + test_KErrNone(FragThread.ExitReason()); + CLOSE_AND_WAIT(FragThread); + } + else + UnfragmentMemoryFunc(); + CLOSE_AND_WAIT(Chunk); + } + + +void TestFillPhysicalRam(TUint aFragSize, TUint aFragFreq, TUint aAllocSize, TUint aAllocAlign, TBool aDiscard, TBool aTouchMemory) + { + test.Printf(_L("TestFillPhysicalRam aFragSize 0x%x aFragFreq 0x%x aAllocSize 0x%x aAllocAlign %d dis %d touch %d\n"), + aFragSize, aFragFreq, aAllocSize, aAllocAlign, aDiscard, aTouchMemory); + FragmentMemory(aFragSize, aFragFreq, aDiscard, aTouchMemory, EFalse); + SPhysAllocData allocData; + // Only check free all ram could be allocated in manual tests as fixed pages may be fragmented. + allocData.iCheckMaxAllocs = (ManualTest && !aTouchMemory && !aAllocAlign)? ETrue : EFalse; + allocData.iCheckFreeRam = ETrue; + allocData.iSize = aAllocSize; + allocData.iAlign = aAllocAlign; + FillPhysicalRam(&allocData); + UnfragmentMemory(aDiscard, aTouchMemory, EFalse); + } + + +void TestFragmentedAllocation() + { + // Test every other page free. + TestFillPhysicalRam(PageSize, PageSize * 2, PageSize, 0, EFalse, EFalse); + if (ManualTest) + { + TestFillPhysicalRam(PageSize, PageSize * 2, PageSize * 2, 0, EFalse, EFalse); + TestFillPhysicalRam(PageSize, PageSize * 2, PageSize, 0, EFalse, ETrue); + } + TestFillPhysicalRam(PageSize, PageSize * 2, PageSize * 2, 0, EFalse, ETrue); + // Test every 2 pages free. + TestFillPhysicalRam(PageSize * 2, PageSize * 4, PageSize * 8, 0, EFalse, EFalse); + if (ManualTest) + TestFillPhysicalRam(PageSize * 2, PageSize * 4, PageSize * 8, 0, EFalse, ETrue); + // Test 10 pages free then 20 pages allocated, allocate 256 pages (1MB in most cases). + if (ManualTest) + TestFillPhysicalRam(PageSize * 10, PageSize * 30, PageSize * 256, 0, EFalse, EFalse); + TestFillPhysicalRam(PageSize * 10, PageSize * 30, PageSize * 256, 0, EFalse, ETrue); + + if (CacheSizeAdjustable) + {// It is possible to adjust the cache size so test phyiscally contiguous + // allocations discard and move pages when required. + test.Next(_L("TestFragmentedAllocations with discardable data no true free memory")); + // Test every other page free. + TestFillPhysicalRam(PageSize, PageSize * 2, PageSize, 0, ETrue, EFalse); + if (ManualTest) + { + TestFillPhysicalRam(PageSize, PageSize * 2, PageSize, 0, ETrue, ETrue); + TestFillPhysicalRam(PageSize, PageSize * 2, PageSize * 2, 0, ETrue, EFalse); + } + TestFillPhysicalRam(PageSize, PageSize * 2, PageSize * 2, 0, ETrue, ETrue); + // Test every 2 pages free. + TestFillPhysicalRam(PageSize * 2, PageSize * 4, PageSize * 8, 0, ETrue, EFalse); + if (ManualTest) + TestFillPhysicalRam(PageSize * 2, PageSize * 4, PageSize * 8, 0, ETrue, ETrue); + // Test 10 pages free then 20 pages allocated, allocate 256 pages (1MB in most cases). + if (ManualTest) + TestFillPhysicalRam(PageSize * 10, PageSize * 30, PageSize * 256, 0, ETrue, EFalse); + TestFillPhysicalRam(PageSize * 10, PageSize * 30, PageSize * 256, 0, ETrue, ETrue); + } + } + + GLDEF_C TInt E32Main() // // Test RAM allocation @@ -135,6 +476,28 @@ PageShift=-1; for (; psz; psz>>=1, ++PageShift); + TUint currentCacheSize; + CacheSizeAdjustable = DPTest::CacheSize(OrigMinCacheSize, OrigMaxCacheSize, currentCacheSize) == KErrNone; + + TUint memodel = UserSvr::HalFunction(EHalGroupKernel, EKernelHalMemModelInfo, NULL, NULL) & EMemModelTypeMask; + + TInt cmdLineLen = User::CommandLineLength(); + if(cmdLineLen) + { + _LIT(KManual, "manual"); + RBuf cmdLine; + test_KErrNone(cmdLine.Create(cmdLineLen)); + User::CommandLine(cmdLine); + cmdLine.LowerCase(); + ManualTest = cmdLine.Find(KManual) != KErrNotFound; + } + + // Turn off lazy dll unloading so the free ram checking isn't affected. + RLoader l; + test(l.Connect()==KErrNone); + test(l.CancelLazyDllUnload()==KErrNone); + l.Close(); + InitFreeRam=FreeRam(); test.Printf(_L("Free RAM=%08x, Page size=%x, Page shift=%d\n"),InitFreeRam,PageSize,PageShift); @@ -148,8 +511,54 @@ test.Next(_L("TestClaimPhys")); TestClaimPhys(); + if (memodel >= EMemModelTypeFlexible) + { + test.Next(_L("TestFragmentedAllocation")); + TestFragmentedAllocation(); + + test.Next(_L("TestMultipleContiguousAllocations")); + TestMultipleContiguousAllocations(20, PageSize * 16, 0); + TestMultipleContiguousAllocations(20, PageSize * 16, PageShift + 1); + TestMultipleContiguousAllocations(20, PageSize * 128, PageShift + 2); + + FragmentMemory(PageSize, PageSize * 2, EFalse, EFalse, EFalse); + TestMultipleContiguousAllocations(20, PageSize * 128, PageShift + 2); + UnfragmentMemory(EFalse, EFalse, EFalse); + + test.Next(_L("TestMultipleContiguousAllocations while accessing memory")); + FragmentMemory(PageSize, PageSize * 2, EFalse, ETrue, EFalse); + TestMultipleContiguousAllocations(20, PageSize * 128, PageShift + 2); + UnfragmentMemory(EFalse, ETrue, EFalse); + FragmentMemory(PageSize, PageSize * 2, ETrue, ETrue, EFalse); + TestMultipleContiguousAllocations(50, PageSize * 256, PageShift + 5); + UnfragmentMemory(ETrue, ETrue, EFalse); + FragmentMemory(PageSize * 16, PageSize * 32, ETrue, ETrue, EFalse); + TestMultipleContiguousAllocations(10, PageSize * 512, PageShift + 8); + UnfragmentMemory(ETrue, ETrue, EFalse); + FragmentMemory(PageSize * 32, PageSize * 64, ETrue, ETrue, EFalse); + TestMultipleContiguousAllocations(10, PageSize * 1024, PageShift + 10); + UnfragmentMemory(ETrue, ETrue, EFalse); + + test.Next(_L("TestMultipleContiguousAllocations with repeated movable and discardable allocations")); + FragmentMemory(PageSize, PageSize * 2, EFalse, EFalse, ETrue); + TestMultipleContiguousAllocations(20, PageSize * 2, PageShift); + UnfragmentMemory(EFalse, EFalse, ETrue); + FragmentMemory(PageSize, PageSize * 2, EFalse, EFalse, ETrue); + TestMultipleContiguousAllocations(20, PageSize * 128, PageShift + 2); + UnfragmentMemory(EFalse, EFalse, ETrue); + FragmentMemory(PageSize, PageSize * 2, ETrue, EFalse, ETrue); + TestMultipleContiguousAllocations(50, PageSize * 256, PageShift + 5); + UnfragmentMemory(ETrue, EFalse, ETrue); + FragmentMemory(PageSize * 16, PageSize * 32, ETrue, EFalse, ETrue); + TestMultipleContiguousAllocations(20, PageSize * 512, PageShift + 8); + UnfragmentMemory(ETrue, EFalse, ETrue); + FragmentMemory(PageSize * 32, PageSize * 64, ETrue, EFalse, ETrue); + TestMultipleContiguousAllocations(20, PageSize * 1024, PageShift + 10); + UnfragmentMemory(ETrue, EFalse, ETrue); + } + Shadow.Close(); + test.Printf(_L("Free RAM=%08x at end of test\n"),FreeRam()); test.End(); return(KErrNone); } - diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/mmu/t_wsd_tst.h --- a/kerneltest/e32test/mmu/t_wsd_tst.h Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/e32test/mmu/t_wsd_tst.h Fri Jun 11 15:02:23 2010 +0300 @@ -47,7 +47,7 @@ // Exports of DLL1 #ifdef T_WSD_DL1 #else -IMPORT_D TInt32 ExportedData; +IMPORT_D extern TInt32 ExportedData; IMPORT_C TInt CheckExportedDataAddress(void *aDataAddr); #endif // T_WSD_DL1 @@ -65,10 +65,10 @@ #ifdef T_WSD_DL3 #else IMPORT_C void** GetAddressOfData(TInt& aSize, void*& aCodeAddr, void*& aDataAddr); -IMPORT_D TInt32 TestDataSize; -IMPORT_D void* WritableTestData[1 /* refer TestDataSize */]; -IMPORT_D const void* const* PointerToStaticData; -IMPORT_D void** PointerToWritableData; +IMPORT_D extern TInt32 TestDataSize; +IMPORT_D extern void* WritableTestData[1 /* refer TestDataSize */]; +IMPORT_D extern const void* const* PointerToStaticData; +IMPORT_D extern void** PointerToWritableData; #endif // T_WSD_DL3 #endif // __T_WSD_TST_H__ diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/multimedia/t_sound2.cpp --- a/kerneltest/e32test/multimedia/t_sound2.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/e32test/multimedia/t_sound2.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -2379,10 +2379,6 @@ Test.Title(); Test.Start(_L("Load")); - // --- TEMPORARILY DISABLING T_SOUND2 - Test.Printf(_L("T_SOUND2 DISABLED UNTIL DEF144934 IS FIXED\n")); - CHECK(0); - // --- TEMPORARILY DISABLING T_SOUND2 if (Load()==KErrNotFound) { Test.Printf(_L("Shared chunk sound driver not supported - test skipped\r\n")); diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/power/t_domain.cpp --- a/kerneltest/e32test/power/t_domain.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/e32test/power/t_domain.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -2050,7 +2050,6 @@ TInt r = manager.Connect(KDmHierarchyIdTest); test (r == KErrNone); manager.RequestDomainTransition(KDmIdRoot, EStartupCriticalStatic, ETraverseDefault, status); - test(status.Int() == KRequestPending); User::WaitForRequest(status); test(status.Int() == KErrNone); manager.Close(); diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/prime/t_semutx.cpp --- a/kerneltest/e32test/prime/t_semutx.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/e32test/prime/t_semutx.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -38,7 +38,10 @@ // // +#define __E32TEST_EXTENSION__ #include +#include +#include const TInt KMaxBufferSize=10; const TInt KMaxArraySize=10; @@ -221,7 +224,7 @@ void StartWaitSemThread(RThread& aT, SWaitSem& aW, TThreadPriority aP=EPriorityLess) { TInt r = aT.Create(KNullDesC, &WaitSemThread, 0x1000, 0x1000, 0x1000, &aW); - test(r==KErrNone); + test_KErrNone(r); aT.SetPriority(aP); aT.Resume(); } @@ -231,9 +234,9 @@ TRequestStatus s; aT.Logon(s); User::WaitForRequest(s); - test(aT.ExitType()==EExitKill); - test(aT.ExitReason()==aResult); - test(s.Int()==aResult); + test_Equal(EExitKill, aT.ExitType()); + test_Equal(aResult, aT.ExitReason()); + test_Equal(aResult, s.Int()); CLOSE_AND_WAIT(aT); } @@ -251,7 +254,7 @@ TTime final; TInt elapsed=0; TInt r = ws.iSem.CreateLocal(0); - test(r==KErrNone); + test_KErrNone(r); RThread().SetPriority(EPriorityAbsoluteVeryLow); TInt threadcount=0; @@ -259,7 +262,7 @@ while (elapsed<1000000) { r = t.Create(KNullDesC, &DummyThread, 0x1000, NULL, NULL); - test(r==KErrNone); + test_KErrNone(r); t.SetPriority(EPriorityMore); t.Resume(); t.Close(); @@ -307,7 +310,7 @@ User::After(200000); t.Resume(); WaitForWaitSemThread(t, KErrTimedOut); - test(ws.iSem.Wait(1)==KErrNone); + test_KErrNone(ws.iSem.Wait(1)); ws.iTimeout=100000; StartWaitSemThread(t, ws, EPriorityMore); @@ -316,7 +319,7 @@ User::After(50000); t.Resume(); WaitForWaitSemThread(t, KErrNone); - test(ws.iSem.Wait(1)==KErrTimedOut); + test_Equal(KErrTimedOut, ws.iSem.Wait(1)); RThread t2; ws.iTimeout=100000; @@ -324,12 +327,12 @@ StartWaitSemThread(t2, ws, EPriorityMore); t.Suspend(); ws.iSem.Signal(); - test(t2.ExitType()==EExitKill); - test(t.ExitType()==EExitPending); + test_Equal(EExitKill, t2.ExitType()); + test_Equal(EExitPending, t.ExitType()); t.Resume(); WaitForWaitSemThread(t, KErrTimedOut); WaitForWaitSemThread(t2, KErrNone); - test(ws.iSem.Wait(1)==KErrTimedOut); + test_Equal(KErrTimedOut, ws.iSem.Wait(1)); ws.iTimeout=1000000; initial.HomeTime(); @@ -376,11 +379,11 @@ initial.HomeTime(); StartWaitSemThread(t, ws, EPriorityMore); StartWaitSemThread(t2, ws, EPriorityMuchMore); - test(t.ExitType()==EExitPending); - test(t2.ExitType()==EExitPending); + test_Equal(EExitPending, t.ExitType()); + test_Equal(EExitPending, t2.ExitType()); ws.iSem.Close(); - test(t.ExitType()==EExitKill); - test(t2.ExitType()==EExitKill); + test_Equal(EExitKill, t.ExitType()); + test_Equal(EExitKill, t2.ExitType()); WaitForWaitSemThread(t2, KErrGeneral); WaitForWaitSemThread(t, KErrGeneral); final.HomeTime(); @@ -414,23 +417,23 @@ test.Next(_L("Producer/Consumer scenario")); // Test Rsemaphore with the producer/consumer scenario RThread thread1, thread2; TRequestStatus stat1, stat2; - test(mutex.CreateLocal()==KErrNone); - test(slotAvailable.CreateLocal(KMaxBufferSize)==KErrNone); - test(itemAvailable.CreateLocal(0)==KErrNone); - test(thread1.Create(_L("Thread1"),Producer,KDefaultStackSize,0x200,0x200,NULL)==KErrNone); - test(thread2.Create(_L("Thread2"),Consumer,KDefaultStackSize,0x200,0x200,NULL)==KErrNone); + test_KErrNone(mutex.CreateLocal()); + test_KErrNone(slotAvailable.CreateLocal(KMaxBufferSize)); + test_KErrNone(itemAvailable.CreateLocal(0)); + test_KErrNone(thread1.Create(_L("Thread1"),Producer,KDefaultStackSize,0x200,0x200,NULL)); + test_KErrNone(thread2.Create(_L("Thread2"),Consumer,KDefaultStackSize,0x200,0x200,NULL)); thread1.Logon(stat1); thread2.Logon(stat2); - test(stat1==KRequestPending); - test(stat2==KRequestPending); + test_Equal(KRequestPending, stat1.Int()); + test_Equal(KRequestPending, stat2.Int()); thread1.Resume(); thread2.Resume(); User::WaitForRequest(stat1); User::WaitForRequest(stat2); - test(stat1==KErrNone); - test(stat2==KErrNone); + test_KErrNone(stat1.Int()); + test_KErrNone(stat2.Int()); for(TInt jj=0;jj>1)); + test_Equal(thread1Count, thread1ActualCount); + test_Equal(thread2Count, thread2ActualCount); + test_Equal(thread2Count, thread1Count); + test_Equal((KMaxArraySize>>1), thread1Count); test.Next(_L("Close")); CLOSE_AND_WAIT(thread1); @@ -521,7 +524,7 @@ { test.Start(_L("Create")); - test(criticalSn.CreateLocal()==KErrNone); + test_KErrNone(criticalSn.CreateLocal()); /***************** TO DO *********************** @@ -551,19 +554,19 @@ // arrayIndex=0; RThread thread1,thread2; - test(thread1.Create(_L("Thread1"),CriticalSnThreadEntryPoint1,KDefaultStackSize,0x2000,0x2000,NULL)==KErrNone); - test(thread2.Create(_L("Thread2"),CriticalSnThreadEntryPoint2,KDefaultStackSize,0x2000,0x2000,NULL)==KErrNone); + test_KErrNone(thread1.Create(_L("Thread1"),CriticalSnThreadEntryPoint1,KDefaultStackSize,0x2000,0x2000,NULL)); + test_KErrNone(thread2.Create(_L("Thread2"),CriticalSnThreadEntryPoint2,KDefaultStackSize,0x2000,0x2000,NULL)); TRequestStatus stat1,stat2; thread1.Logon(stat1); thread2.Logon(stat2); - test(stat1==KRequestPending); - test(stat2==KRequestPending); + test_Equal(KRequestPending, stat1.Int()); + test_Equal(KRequestPending, stat2.Int()); thread1.Resume(); thread2.Resume(); User::WaitForRequest(stat1); User::WaitForRequest(stat2); - test(stat1==KErrNone); - test(stat2==KErrNone); + test_KErrNone(stat1.Int()); + test_KErrNone(stat2.Int()); TInt thread1ActualCount=0; TInt thread2ActualCount=0; TInt ii=0; @@ -575,10 +578,10 @@ thread2ActualCount++; ii++; } - test(thread1ActualCount==thread1Count); - test(thread2ActualCount==thread2Count); - test(thread1Count==thread2Count); - test(thread1Count==(KMaxArraySize>>1)); + test_Equal(thread1Count, thread1ActualCount); + test_Equal(thread2Count, thread2ActualCount); + test_Equal(thread2Count, thread1Count); + test_Equal((KMaxArraySize>>1), thread1Count); test.Next(_L("Close")); CLOSE_AND_WAIT(thread1); @@ -590,6 +593,16 @@ GLDEF_C TInt E32Main() { + TInt cpus = UserSvr::HalFunction(EHalGroupKernel, EKernelHalNumLogicalCpus, 0, 0); + if (cpus != 1) + { + test(cpus>1); + // This test will require compatibility mode (and probably other changes) + // to work on SMP - it depends on explicit scheduling order. + test.Printf(_L("T_SEMUTX skipped, does not work on SMP\n")); + return KErrNone; + } + test.Title(); __UHEAP_MARK; diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/prime/t_semutx2.cpp --- a/kerneltest/e32test/prime/t_semutx2.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/e32test/prime/t_semutx2.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -37,7 +37,10 @@ // // +#define __E32TEST_EXTENSION__ #include +#include +#include RMutex M1; RMutex M2; @@ -62,8 +65,8 @@ //#define MCOUNT(m,c) test((m).Count() ==(c)) // mutex count value is not visible for user any more #define MCOUNT(m,c) (void)(1) -#define IDCHECK(x) test(GetNextId()==(x)) -#define NUMCHECK(x) test(NumIdsPending()==(x)) +#define IDCHECK(x) test_Equal((x), GetNextId()) +#define NUMCHECK(x) test_Equal((x), NumIdsPending()) #define id0 id[0] #define id1 id[1] @@ -153,38 +156,38 @@ TInt count=0; TRequestStatus s; TInt r=t.Create(_L("Test0"),Test0Thread,0x1000,NULL,&count); - test(r==KErrNone); + test_KErrNone(r); t.Logon(s); - test(r==KErrNone); + test_KErrNone(r); User::After(10000); // make sure we have a full timeslice t.Resume(); - test(count==0); // t shouldn't have run yet + test_Equal(0, count); // t shouldn't have run yet RThread().SetPriority(EPriorityMuchMore); // shouldn't reschedule (priority unchanged) - test(count==0); + test_Equal(0, count); RThread().SetPriority(EPriorityMore); // shouldn't reschedule (priority decreasing, but not enough) - test(count==0); + test_Equal(0, count); RThread().SetPriority(EPriorityMuchMore); // shouldn't reschedule (priority increasing) - test(count==0); + test_Equal(0, count); RThread().SetPriority(EPriorityNormal); // should reschedule (we go behind t) - test(count==1); + test_Equal(1, count); RThread().SetPriority(EPriorityLess); // should reschedule (priority decreasing to below t) - test(count==2); + test_Equal(2, count); t.SetPriority(EPriorityMuchMore); // shouldn't reschedule (round-robin, timeslice not expired) - test(count==2); + test_Equal(2, count); t.SetPriority(EPriorityNormal); // shouldn't reschedule (t's priority decreasing) - test(count==2); + test_Equal(2, count); t.SetPriority(EPriorityNormal); // shouldn't reschedule (t's priority unchanged) - test(count==2); + test_Equal(2, count); BusyWait(100000); // use up our timeslice t.SetPriority(EPriorityMuchMore); // should reschedule (round-robin, timeslice expired) - test(count==3); - test(s==KRequestPending); - test(t.ExitType()==EExitPending); + test_Equal(3, count); + test_Equal(KRequestPending, s.Int()); + test_Equal(EExitPending, t.ExitType()); t.SetPriority(EPriorityRealTime); // should reschedule (t increases above current) - test(count==4); - test(s==KErrNone); // t should have exited - test(t.ExitType()==EExitKill); + test_Equal(4, count); + test_KErrNone(s.Int()); // t should have exited + test_Equal(EExitKill, t.ExitType()); User::WaitForRequest(s); RThread().SetPriority(EPriorityMuchMore); t.Close(); @@ -201,11 +204,11 @@ { test.Start(_L("Test signalling from wrong thread")); TInt r=M1.CreateLocal(); - test(r==KErrNone); + test_KErrNone(r); M1.Wait(); RThread t; r=t.Create(_L("Test1"),Test1Thread,0x1000,NULL,NULL); - test(r==KErrNone); + test_KErrNone(r); TRequestStatus s; t.Logon(s); t.Resume(); @@ -213,9 +216,9 @@ User::SetJustInTime(EFalse); User::WaitForRequest(s); User::SetJustInTime(jit); - test(s==EAccessDenied); - test(t.ExitType()==EExitPanic); - test(t.ExitReason()==EAccessDenied); + test_Equal(EAccessDenied, s.Int()); + test_Equal(EExitPanic, t.ExitType()); + test_Equal(EAccessDenied, t.ExitReason()); test(t.ExitCategory()==_L("KERN-EXEC")); t.Close(); M1.Close(); @@ -273,13 +276,13 @@ test.Next(_L("Create mutex")); TInt r=M1.CreateLocal(); - test(r==KErrNone); + test_KErrNone(r); test.Next(_L("Create low priority thread")); TInt lowcount=0; RThread low; r=low.Create(_L("low"),LowThread,0x1000,NULL,&lowcount); - test(r==KErrNone); + test_KErrNone(r); low.SetPriority(EPriorityMuchLess); test(Exists(_L("low"))); @@ -287,42 +290,42 @@ TInt medcount=0; RThread med; r=med.Create(_L("med"),MedThread,0x1000,NULL,&medcount); - test(r==KErrNone); + test_KErrNone(r); med.SetPriority(EPriorityNormal); test(Exists(_L("med"))); test.Next(_L("Start low priority thread")); low.Resume(); User::AfterHighRes(KTestDelay/10); - test(lowcount==1); + test_Equal(1, lowcount); // MCOUNT(M1,0); test.Next(_L("Start medium priority thread")); med.Resume(); User::AfterHighRes(KTestDelay/10); - test(medcount==1); + test_Equal(1, medcount); Kick(med); User::AfterHighRes(KTestDelay/10); - test(medcount==2); + test_Equal(2, medcount); Kick(med); M1.Wait(); - test(lowcount==1); - test(medcount==2); + test_Equal(1, lowcount); + test_Equal(2, medcount); test.Next(_L("Wait, check medium runs")); User::AfterHighRes(KTestDelay/10); - test(medcount==3); + test_Equal(3, medcount); M1.Signal(); test.Next(_L("Create mutex 2")); r=M2.CreateLocal(); - test(r==KErrNone); + test_KErrNone(r); test.Next(_L("Create high priority thread")); TInt highcount=0; RThread high; r=high.Create(_L("high"),HighThread,0x1000,NULL,&highcount); - test(r==KErrNone); + test_KErrNone(r); high.SetPriority(EPriorityMore); test(Exists(_L("high"))); @@ -336,15 +339,15 @@ User::AfterHighRes(KTestDelay/10); // MCOUNT(M2,0); // MCOUNT(M1,-1); - test(highcount==1); + test_Equal(1, highcount); M2.Wait(); - test(lowcount==2); - test(medcount==3); - test(highcount==2); + test_Equal(2, lowcount); + test_Equal(3, medcount); + test_Equal(2, highcount); test.Next(_L("Wait, check medium runs")); User::AfterHighRes(KTestDelay/10); - test(medcount==4); + test_Equal(4, medcount); M2.Signal(); test.Next(_L("Kill threads")); @@ -401,7 +404,7 @@ TBuf<4> b; b.Num(n); TInt r=t.Create(b,ThreadFunction,0x1000,NULL,aPtr); - test(r==KErrNone); + test_KErrNone(r); t.Resume(); TUint id=t.Id(); test.Printf(_L("id=%d\n"),id); @@ -516,7 +519,7 @@ Count=0; test.Next(_L("Create mutex")); TInt r=M1.CreateLocal(); - test(r==KErrNone); + test_KErrNone(r); MCOUNT(M1,1); MutexWait(); MCOUNT(M1,0); @@ -624,7 +627,7 @@ User::After(50000); // let threads claim mutex MutexWait(); MCOUNT(M1,0); // check no threads waiting - test(t[2].ExitType()==EExitKill); // check t2 has exited + test_Equal(EExitKill, t[2].ExitType()); // check t2 has exited t[2].Close(); test(!Exists(2)); IDCHECK(id2); // check they ran in order t2,t3,t4,t5,t1 @@ -942,12 +945,12 @@ { if (i==3 || i==6 || i==7) { - test(t[i].ExitType()==EExitPending); + test_Equal(EExitPending, t[i].ExitType()); } else { - test(t[i].ExitType()==EExitPanic); - test(t[i].ExitReason()==EBadHandle); + test_Equal(EExitPanic, t[i].ExitType()); + test_Equal(EBadHandle, t[i].ExitReason()); test(t[i].ExitCategory()==_L("KERN-EXEC")); t[i].Close(); test(!Exists(i)); @@ -963,8 +966,8 @@ { if (i==3 || i==6 || i==7) { - test(t[i].ExitType()==EExitPanic); - test(t[i].ExitReason()==EBadHandle); + test_Equal(EExitPanic, t[i].ExitType()); + test_Equal(EBadHandle, t[i].ExitReason()); test(t[i].ExitCategory()==_L("KERN-EXEC")); t[i].Close(); test(!Exists(i)); @@ -1008,11 +1011,11 @@ test.Start(_L("Test mutex speed")); TInt count=0; TInt r=M1.CreateLocal(); - test(r==KErrNone); + test_KErrNone(r); RThread t; r=t.Create(_L("Speed"),MutexSpeed,0x1000,NULL,&count); - test(r==KErrNone); + test_KErrNone(r); t.SetPriority(EPriorityRealTime); t.Resume(); User::AfterHighRes(1000000); @@ -1023,7 +1026,7 @@ TInt count2=0; r=t.Create(_L("Speed2"),MutexSpeed2,0x1000,NULL,&count2); - test(r==KErrNone); + test_KErrNone(r); t.SetPriority(EPriorityRealTime); t.Resume(); User::AfterHighRes(1000000); @@ -1074,7 +1077,7 @@ TBuf<4> b; b.Num(n); TInt r=t.Create(b,SemThreadFunction,0x1000,NULL,aPtr); - test(r==KErrNone); + test_KErrNone(r); t.Resume(); TUint id=t.Id(); return id; @@ -1147,7 +1150,7 @@ Count=0; test.Next(_L("Create semaphore")); TInt r=S.CreateLocal(2); - test(r==KErrNone); + test_KErrNone(r); MCOUNT(S,2); SemWait(); MCOUNT(S,1); @@ -1312,20 +1315,20 @@ { if (i==3 || i==7 || i==10) { - test(t[i].ExitType()==EExitPending); + test_Equal(EExitPending, t[i].ExitType()); } else if (i!=5) { - test(t[i].ExitType()==EExitPanic); - test(t[i].ExitReason()==EBadHandle); + test_Equal(EExitPanic, t[i].ExitType()); + test_Equal(EBadHandle, t[i].ExitReason()); test(t[i].ExitCategory()==_L("KERN-EXEC")); t[i].Close(); test(!Exists(i)); } else { - test(t[i].ExitType()==EExitKill); - test(t[i].ExitReason()==0); + test_Equal(EExitKill, t[i].ExitType()); + test_Equal(0, t[i].ExitReason()); t[i].Close(); test(!Exists(i)); } @@ -1340,8 +1343,8 @@ { if (i==3 || i==7 || i==10) { - test(t[i].ExitType()==EExitPanic); - test(t[i].ExitReason()==EBadHandle); + test_Equal(EExitPanic, t[i].ExitType()); + test_Equal(EBadHandle, t[i].ExitReason()); test(t[i].ExitCategory()==_L("KERN-EXEC")); t[i].Close(); test(!Exists(i)); @@ -1371,11 +1374,11 @@ test.Start(_L("Test semaphore speed")); TInt count=0; TInt r=S.CreateLocal(1); - test(r==KErrNone); + test_KErrNone(r); RThread t; r=t.Create(_L("SemSpeed"),SemSpeed,0x1000,NULL,&count); - test(r==KErrNone); + test_KErrNone(r); t.SetPriority(EPriorityRealTime); t.Resume(); User::AfterHighRes(1000000); @@ -1391,12 +1394,22 @@ GLDEF_C TInt E32Main() { + TInt cpus = UserSvr::HalFunction(EHalGroupKernel, EKernelHalNumLogicalCpus, 0, 0); + if (cpus != 1) + { + test(cpus>1); + // This test will require compatibility mode (and probably other changes) + // to work on SMP - it depends on explicit scheduling order. + test.Printf(_L("T_SEMUTX2 skipped, does not work on SMP\n")); + return KErrNone; + } + test.Title(); test.Start(_L("Test mutexes and semaphores")); RThread().SetPriority(EPriorityMuchMore); TInt r=Main.Duplicate(RThread()); - test(r==KErrNone); + test_KErrNone(r); Test0(); Test1(); diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/prime/t_timer.cpp --- a/kerneltest/e32test/prime/t_timer.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/e32test/prime/t_timer.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -606,7 +606,7 @@ #if !(defined(__EPOC32__) && defined(__X86__)) TInt muid = 0; HAL::Get(HAL::EMachineUid, muid); - if(muid!=HAL::EMachineUid_Lubbock && muid!=HAL::EMachineUid_NE1_TB && muid!=HAL::EMachineUid_STE8500) + if(muid==HAL::EMachineUid_OmapH2 || muid==HAL::EMachineUid_OmapH4 || muid==HAL::EMachineUid_OmapH6) { test.Next(_L("Test sequential locks fail over on/off")); RTimer tat; diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/realtime/d_latncy.cpp --- a/kerneltest/e32test/realtime/d_latncy.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/e32test/realtime/d_latncy.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -87,6 +87,9 @@ #elif defined(__NE1_TB__) const TInt KTickPeriodMs=1; const TInt KTicksPerMillisecond=66667; +#elif defined(__MRAP__) +const TInt KTickPeriodMs=1; +const TInt KTicksPerMillisecond=1000; #endif #ifdef _DEBUG diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/resourceman/t_rescontrolcli.cpp --- a/kerneltest/e32test/resourceman/t_rescontrolcli.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/e32test/resourceman/t_rescontrolcli.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -28,6 +28,9 @@ #include #include "d_rescontrolcli.h" +#include +#include + #define MAX_STATIC_RESOURCE_NUM 24 //Maximum number of static resources in simulated PSL #define MAX_STATIC_DEPENDENCY_RESOURCE_NUM 7 //Maximum number of static dependency resources in simulated PSL #define DEPENDENCY_RESOURCE_BIT_MASK 0x00010000 @@ -4237,10 +4240,87 @@ Clients.Close(); } +void TestClientSettings(TInt aClientToken, TUint aExpectedBase) + { + TUint clientBase = ElementId_ClientSettingBase(aClientToken); + test(clientBase == aExpectedBase); + + HCR::TElementId Id; + + Id = ElementId_ClientName(aClientToken); + test(Id == aExpectedBase); + + Id = ElementId_ClientPropertyFlag(aClientToken); + test(Id == (aExpectedBase + 1)); + + Id = ElementId_ClientPreallocation(aClientToken); + test(Id == (aExpectedBase + 2)); + + TInt firstResource = 0; + Id = ElementId_ClientStaticResource(aClientToken, firstResource); + test(Id == (aExpectedBase + 3)); + + TInt thirdResource = 2; + Id = ElementId_ClientStaticResource(aClientToken, thirdResource); + test(Id == (aExpectedBase + 5)); + } + +void TestDynamicResourceSettings(TInt aDynamicResource, TUint aExpectedBase) + { + TUint dynamicResourceBase = ElementId_DynamicResourceBase(aDynamicResource); + test(dynamicResourceBase == aExpectedBase); + + HCR::TElementId Id; + + Id = ElementId_DynamicResourceName(aDynamicResource); + test(Id == aExpectedBase); + + Id = ElementId_DynamicResourcePropertyFlag(aDynamicResource); + test(Id == (aExpectedBase + 1)); + + Id = ElementId_DynamicResourceMaxLevel(aDynamicResource); + test(Id == (aExpectedBase + 2)); + + Id = ElementId_DynamicResourceMinLevel(aDynamicResource); + test(Id == (aExpectedBase + 3)); + + Id = ElementId_DynamicResourceDefaultLevel(aDynamicResource); + test(Id == (aExpectedBase + 4)); + + Id = ElementId_DynamicResourceDependencyMask1(aDynamicResource); + test(Id == (aExpectedBase + 5)); + + Id = ElementId_DynamicResourceDependencyMask2(aDynamicResource); + test(Id == (aExpectedBase + 6)); + + Id = ElementId_DynamicResourceDependencyMask3(aDynamicResource); + test(Id == (aExpectedBase + 7)); + } + +void TestClientHCRSettingMacros() + { + TInt clientToken = 2; // Random token number + TUint expectedBase = 80; // refer resourcecontrol_clientsettings.h for calculations + TestClientSettings(clientToken, expectedBase); + + clientToken = 0; + expectedBase = 16; // refer resourcecontrol_clientsettings.h for calculations + TestClientSettings(clientToken, expectedBase); + + // Dynamic Resource settings + TUint dynamicResource = 3; // Random token number + expectedBase = 131168; // refer resourcecontrol_clientsettings.h for calculations + TestDynamicResourceSettings(dynamicResource, expectedBase); + + test.Printf(_L("Testing HCR client setting Macro's for Resource Manager successful \n")); + } + GLDEF_C TInt E32Main() { test.Title(); test.Start(_L("Testing Resource Manager...\n")); + test.Printf(_L("Testing HCR client setting Macro's for Resource Manager \n")); + TestClientHCRSettingMacros(); // test.Printf(_L("TEST SKIPPED UNTIL FIX FOR DEF145087 IS AVAILABLE TO PREVENT CRASHING\n")); test(0); diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/secure/t_suser.cpp --- a/kerneltest/e32test/secure/t_suser.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/e32test/secure/t_suser.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -42,6 +42,8 @@ #include #include #include +#include +#include LOCAL_D RTest test(_L("T_SUSER")); @@ -946,21 +948,26 @@ test(logonStatus==KErrPermissionDenied); CLOSE_AND_WAIT(process); - test.Next(_L("Calling UserSvr::AddEvent(ESwitchOff) with ECapabilityPowerMgmt & ECapabilitySwEvent")); - TRequestStatus absstatus; - RTimer abstimer; - TInt r = abstimer.CreateLocal(); - test (r == KErrNone); - SetAbsoluteTimeout(abstimer, 5000000, absstatus); // 5 sec - process.Create((1u< +#include #include #include #include diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/system/d_mstim.cpp --- a/kerneltest/e32test/system/d_mstim.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/e32test/system/d_mstim.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -41,6 +41,8 @@ #include #elif defined(__NE1_TB__) #include +#elif defined(__MRAP__) +#include #endif #include "d_mstim.h" #include "../misc/prbs.h" @@ -93,6 +95,11 @@ inline TCounter TIMER() { return NETimer::Timer(5).iTimerCount; } #endif +#ifdef __MRAP__ +inline TCounter TIMER() + { TRap::SetRegister32(1, KRapRegRTC001_TRIGGER); + return TRap::Register32(KRapRegRTC001_LONGCOUNT); } +#endif #if defined(__EPOC32__) && defined(__CPU_X86) TCounter TIMER(); void SetUpTimerChannel2(); @@ -137,6 +144,10 @@ inline TDelta TimeDelta(TCounter initial, TCounter final) { return final - initial; } #endif +#if defined(__MRAP__) +inline TDelta TimeDelta(TCounter initial, TCounter final) + { return final-initial; } // RAP RTC timer counts up +#endif #ifdef __WINS__ inline TDelta TimeDelta(TCounter initial, TCounter final) { return final-initial; } // counts up @@ -197,6 +208,15 @@ x /= TInt64(f); return (TInt)x; #endif +#if defined(__MRAP__) + // RTC runs with 32.768 kHz -> one tick is + const TUint KRTCClockHz = 32768; + Int64 ticks(aTicks); + ticks*=(1000000); + ticks+=KRTCClockHz/2; // 32.768 kHz tick + ticks/=KRTCClockHz; + return (TInt)ticks; +#endif #if defined(__EPOC32__) && defined(__CPU_X86) TInt x = aTicks; TInt y = x; diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/system/d_tick.cpp --- a/kerneltest/e32test/system/d_tick.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/e32test/system/d_tick.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -37,6 +37,8 @@ #include #elif defined(__NE1_TB__) #include +#elif defined(__MRAP__) +#include #endif #include #include "d_tick.h" @@ -78,6 +80,11 @@ inline TCounter TIMER() { return NETimer::Timer(2).iTimerCount; } #endif +#ifdef __MRAP__ +inline TCounter TIMER() + { TRap::SetRegister32(1, KRapRegRTC001_TRIGGER); + return TRap::Register32(KRapRegRTC001_LONGCOUNT); } +#endif #if defined(__EPOC32__) && defined(__CPU_X86) TCounter TIMER(); void SetUpTimerChannel2(); @@ -90,6 +97,12 @@ return c.QuadPart; } #endif +#if defined(__MRAP__) +inline TDelta TimeDelta(TCounter initial, TCounter final) + { return final-initial; } // RAP RTC timer counts up +inline TInt LongTimeDelta(TCounter initial, TCounter final, TUint, TUint) + { return final-initial; } // RAP RTC timer counts up +#endif #if defined(__MISA__) || defined(__MCOT__) inline TDelta TimeDelta(TCounter initial, TCounter final) @@ -211,6 +224,15 @@ x /= TUint64(f); return (TUint)x; #endif +#if defined(__MRAP__) + // RTC runs with 32.768 kHz -> one tick is + const TUint KRTCClockHz = 32768; + Int64 ticks(aTicks); + ticks*=(1000000); + ticks+=KRTCClockHz/2; // 32.768 kHz tick + ticks/=KRTCClockHz; + return (TInt)ticks; +#endif #if defined(__MAWD__) || defined(__MEIG__) return aTicks*500; // 2kHz tick #endif @@ -589,6 +611,9 @@ #if defined(__NE1_TB__) // nothing to do since we use fast counter #endif +#if defined(__MRAP__) + // nothing to do here RTC runs with 32.768 kHz +#endif #ifdef __MAWD__ // Set up timer 1 as free running 2kHz clock TWind::SetBuzzerControl(0); // disable buzzer diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/system/t_condvar.cpp --- a/kerneltest/e32test/system/t_condvar.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/e32test/system/t_condvar.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -56,6 +56,7 @@ #include #include #include +#include RTest test(_L("T_CONDVAR")); RMutex M1; @@ -527,6 +528,16 @@ TInt E32Main() { + TInt cpus = UserSvr::HalFunction(EHalGroupKernel, EKernelHalNumLogicalCpus, 0, 0); + if (cpus != 1) + { + test(cpus>1); + // This test will require compatibility mode (and probably other changes) + // to work on SMP - it depends on explicit scheduling order. + test.Printf(_L("T_CONDVAR skipped, does not work on SMP\n")); + return KErrNone; + } + __KHEAP_MARK; __UHEAP_MARK; diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/timestamp/d_timestamp.cpp --- a/kerneltest/e32test/timestamp/d_timestamp.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/e32test/timestamp/d_timestamp.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -1,21 +1,23 @@ /* * 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 "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* 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: +* Description: * */ - #include #include #include "d_timestamp.h" diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/timestamp/d_timestamp.h --- a/kerneltest/e32test/timestamp/d_timestamp.h Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/e32test/timestamp/d_timestamp.h Fri Jun 11 15:02:23 2010 +0300 @@ -1,22 +1,24 @@ /* * 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 "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* 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: +* Description: * */ - #ifndef __TIMESTAMPTEST_H__ #define __TIMESTAMPTEST_H__ diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/timestamp/d_timestamp_dev.h --- a/kerneltest/e32test/timestamp/d_timestamp_dev.h Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/e32test/timestamp/d_timestamp_dev.h Fri Jun 11 15:02:23 2010 +0300 @@ -1,21 +1,23 @@ /* * 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 "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* 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: +* Description: * */ - #ifndef __D_TIMERSTAMP_DEV_H__ #define __D_TIMERSTAMP_DEV_H__ diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/usb/t_usb_win/scripts/massstorage/bmwritelargefile.pl --- a/kerneltest/e32test/usb/t_usb_win/scripts/massstorage/bmwritelargefile.pl Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/e32test/usb/t_usb_win/scripts/massstorage/bmwritelargefile.pl Fri Jun 11 15:02:23 2010 +0300 @@ -2,7 +2,7 @@ # Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). # All rights reserved. # This component and the accompanying materials are made available -# under the terms of "Eclipse Public License v1.0" +# 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". # diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/usb/t_usb_win/scripts/massstorage/bmwritemanyfiles.pl --- a/kerneltest/e32test/usb/t_usb_win/scripts/massstorage/bmwritemanyfiles.pl Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/e32test/usb/t_usb_win/scripts/massstorage/bmwritemanyfiles.pl Fri Jun 11 15:02:23 2010 +0300 @@ -2,7 +2,7 @@ # Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). # All rights reserved. # This component and the accompanying materials are made available -# under the terms of "Eclipse Public License v1.0" +# 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". # diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/usb/t_usb_win/scripts/massstorage/createfilesanddirs.pl --- a/kerneltest/e32test/usb/t_usb_win/scripts/massstorage/createfilesanddirs.pl Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/e32test/usb/t_usb_win/scripts/massstorage/createfilesanddirs.pl Fri Jun 11 15:02:23 2010 +0300 @@ -2,7 +2,7 @@ # Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). # All rights reserved. # This component and the accompanying materials are made available -# under the terms of "Eclipse Public License v1.0" +# 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". # diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32test/usb/t_usb_win/scripts/massstorage/createlargefile.pl --- a/kerneltest/e32test/usb/t_usb_win/scripts/massstorage/createlargefile.pl Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/e32test/usb/t_usb_win/scripts/massstorage/createlargefile.pl Fri Jun 11 15:02:23 2010 +0300 @@ -2,7 +2,7 @@ # Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). # All rights reserved. # This component and the accompanying materials are made available -# under the terms of "Eclipse Public License v1.0" +# 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". # diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32utils/group/base_e32utils.mrp --- a/kerneltest/e32utils/group/base_e32utils.mrp Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/e32utils/group/base_e32utils.mrp Fri Jun 11 15:02:23 2010 +0300 @@ -1,18 +1,3 @@ -# -# 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 "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: -# # component name "E32 Utilities" component base_e32utils diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32utils/group/bld.inf --- a/kerneltest/e32utils/group/bld.inf Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/e32utils/group/bld.inf Fri Jun 11 15:02:23 2010 +0300 @@ -45,7 +45,6 @@ ../demandpaging/dptestcons.oby /epoc32/rom/include/dptestcons.oby PRJ_TESTEXPORTS -../trace/btracevw.pl /epoc32/tools/btracevw.pl PRJ_TESTMMPFILES #if defined(TOOLS2) diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32utils/hcrscripts/hcrdat.pm --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kerneltest/e32utils/hcrscripts/hcrdat.pm Fri Jun 11 15:02:23 2010 +0300 @@ -0,0 +1,378 @@ +#!perl -w +# +# 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: +# +use strict; + +#use Math::BigInt; + +# +# Perl module to create and maintain feature manager data files. +# You can either set up the information programmatically or else load up +# information from a pre-existing feature data file and then modify it. You +# can also save the information to a file (in feature manager dataset format). +# +# This class maintains header information plus two arrays, one containing +# feature flag information and the other containing default supported range +# information. Those are themselves objects and have their own accessor +# methods. +# + +package HCRdat; + +use HCRrec; + + +# +# n e w +# +# Create a new HCRdat object. For example 'my $hd = HCRdat->new("filea"); +# +sub new +{ + my $arg = shift; + my $fn = shift; + my $class = ref($arg) || $arg; + my $self = { + fingerprint => "HCRf", # 4 bytes wide. + fileversion => 1, # 2 bytes. + fileflags => 0x0001, # 2 bytes. + numrecords => 0, # 4 bytes. + lsdoffset => 0, # 4 bytes. + lsdsize => 0, # 4 bytes. + packprefix => "V", # Changed with endian-ness. + # Used to create binary strings. + + settingrecords => [], # Array of objects + lsd => [], # Array of bytes + }; + bless $self, $class; + return $self; +} + + +# Print to STDOUT the header information we have. +sub ShowHeader +{ + my $self = shift; + return undef unless(ref($self)); + + # Get header information.. + my $typefield = $self->TypeField(); + my $fileversion = $self->FileVersion(); + my $fileflags = $self->FileFlags(); + my $numrecords = $self->NumRecords(); + my $lsdoffset = $self->LsdOffset(); + my $lsdsize = $self->LsdSize(); + + # Display it in English. + print " FINGERPRINTF: '$typefield'\n"; + print " FILEVERSION: '$fileversion'\n"; + print " FILEFLAGS: '$fileflags'\n"; + print " NUMRECORDS: '$numrecords'\n"; + print " LSDOFFSET: '$lsdoffset'\n"; + print " LSDSIZE: '$lsdsize'\n"; + + return(0); +} + +# Get/Set the endian-ness we want. Changes the 'packprefix' member which is +# used in the creation of binary data. +sub Endian +{ + my $self = shift; + return undef unless(ref($self)); + my $arg = shift; + return $self->{endian} unless(defined($arg)); + if($arg =~ m/(LE|BE)/i) + { + my $endian = uc($1); + $self->{endian} = $endian; + # Used by 'pack' to generate binary strings. + $self->{packprefix} = "V" if($endian eq "LE"); + $self->{packprefix} = "N" if($endian eq "BE"); + } + return $self->{endian}; +} + +# This is the fingerprint. +sub TypeField +{ + my $self = shift; + return undef unless(ref($self)); + my $arg = shift; + $self->{fingerprint} = $arg if(defined($arg)); + return $self->{fingerprint}; +} + +sub FileVersion +{ + my $self = shift; + return undef unless(ref($self)); + my $arg = shift; + # Should we be testing for a numeric value? + $self->{fileversion} = $arg if(defined($arg)); + return $self->{fileversion}; +} + +sub FileFlags +{ + my $self = shift; + return undef unless(ref($self)); + my $arg = shift; + $self->{fileflags} = $arg if(defined($arg)); + return $self->{fileflags}; +} + +# How many feature flag objects have we got? +sub NumRecords +{ + my $self = shift; + return undef unless(ref($self)); + my $arg = shift; + $self->{numrecords} += $arg if(defined($arg)); + return $self->{numrecords}; +} + + +sub LsdOffset +{ + my $self = shift; + return undef unless(ref($self)); + my $arg = shift; + $self->{lsdoffset} = $arg if(defined($arg)); + return $self->{lsdoffset}; +} + +sub LsdSize +{ + my $self = shift; + return undef unless(ref($self)); + my $arg = shift; + $self->{lsdsize} = $arg if(defined($arg)); + return $self->{lsdsize}; +} + +# Create a binary string containing the header information for the +# feature manager data file based on the various fields in this object. +sub CreateBinaryHeader +{ + my $self = shift; + return undef unless(ref($self)); + my $hdrstring; + + # Get the letter for packing information with 'pack' into a binary form. + my $pack16 = lc($self->{packprefix}); + my $pack32 = uc($self->{packprefix}); + + # Get header information.. + my $typefield = $self->TypeField(); + my $fileversion = $self->FileVersion(); + my $fileflags = $self->FileFlags(); + my $numrecords = $self->NumRecords(); + my $lsdoffset = $self->LsdOffset(); + my $lsdsize = $self->LsdSize(); + + # Write the 'type' field out. This is 'feat'. Would this be different on + # big-endian systems? + $hdrstring = $typefield; + + # Now the file version number. A 16-bit value.. Will this cause trouble + # if the shifted value is signed? + $hdrstring .= pack($pack16 . "1", $fileversion); + + # Now the file flags. Another 16-bit value.. + $hdrstring .= pack($pack16 . "1", $fileflags); + + # Now the number of listed features - a 32-bit value. + $hdrstring .= pack($pack32 . "1", $numrecords); + + # Now the number of listed features - a 32-bit value. + $hdrstring .= pack($pack32 . "1", $lsdoffset); + + # Now the number of listed features - a 32-bit value. + $hdrstring .= pack($pack32 . "1", $lsdsize); + + # Now the 3 reserved words + $hdrstring .= pack($pack32 . "3", (0, 0, 0)); + + return $hdrstring; +} + +sub CreateImageHdr +{ + my $self = shift; + return undef unless(ref($self)); + #my $partid = shift; + #return -1 unless(defined($partid)); + + # Add fingerprint, 1st reserved word and format version + my $imghdr = pack "V4", (0x5F524348, 0x54524150, 0x00000000, 0x00000001); + # Add space for image size, timestamp, 2nd reserved word + $imghdr .= pack "V3", (0x00000000, time, 0x00000000); + # Add space for payload checksum, HCR Payload constants: UID and 0x0 flags + $imghdr .= pack "V3", (0x00000000, 0x10286AB8, 0x00000000); + #Reserved space + $imghdr .= pack "x216", (0x00000000); + + return $imghdr; +} + +sub WriteToImage +{ + my $self = shift; + return undef unless(ref($self)); + my $imgfile = shift; + return -1 unless(defined($imgfile)); + my $datfile = shift; + return -1 unless(defined($datfile)); + #my $partid = shift; + #return -1 unless(defined($partid)); + my $rc = 0; + + open IMGFILE, "> $imgfile" or die "Couldn't open file '$imgfile' for writing.\n"; + binmode IMGFILE; + + syswrite(IMGFILE, $self->CreateImageHdr(), 256); + + open DATFILE, "$datfile" or die "Couldn't open file '$datfile' for reading.\n"; + binmode DATFILE; + # print FILE $self->BinaryContent(); + + #my $wordsum = 0x1200000000; + #my $wordsum = Math::BigInt->new("0x0220100123"); + #printf("test: %x\n", $wordsum->external(); + + my $imgsize = 256; + my $word; + printf("-reading image:\n") if ($mhd::otrace); + while (sysread (DATFILE, $word, 4)) { + #printf ("%08x ",$word) if ($mhd::otrace); + my $iword = unpack("V" , $word); + printf ("%08x ",$iword) if ($mhd::otrace); + $rc = syswrite (IMGFILE, $word, 4); + die "error: ($rc) failed to write datfile word into imgfile.\n" if ($rc != 4); + #$wordsum->badd($iword); + $imgsize += 4; + print "\n" if (($mhd::otrace) && ($imgsize%16==0)); + } + print "\n" if ($mhd::otrace); + # ordsum: 0x". $wordsum ."\n" if ($mhd::otrace); + my $checksum = 0x12345678; + close DATFILE; + + printf("-image size: %d, checksum: 0x%08x", $imgsize, $checksum) if ($mhd::otrace); + + $rc = sysseek(IMGFILE, 16, 0); + die "error: ($rc) failed to seek in image to write header.\n" if ($rc != 16); + + # Write out the image size + my $imginfo1 = pack "V1", ($imgsize); + $rc = syswrite(IMGFILE, $imginfo1, 4); + die "error: ($rc) failed to write image size/checksum to image header.\n" if ($rc != 4); + + $rc = sysseek(IMGFILE, 28, 0); + die "error: ($rc) failed to seek in image to write header.\n" if ($rc != 28); + + # Write out the image checksum + my $imginfo2 = pack "V1", ($checksum); + $rc = syswrite(IMGFILE, $imginfo2, 4); + die "error: ($rc) failed to write image size/checksum to image header.\n" if ($rc != 4); + + close IMGFILE; + + return 0; +} + +# Writes the binary file specified as an argument with the content of this +# and contained feature flag and dsr objects. +sub WriteToFile +{ + my $self = shift; + return undef unless(ref($self)); + my $file = shift; + return undef unless(defined($file)); + open FILE, "> $file" or die "Couldn't open file '$file' for writing.\n"; + binmode FILE; + print FILE $self->BinaryContent(); + + close FILE; + return 0; +} + + +# Create the binary equivalent of the internal data and return it as a +# string. +sub BinaryContent +{ + my $self = shift; + return undef unless(ref($self)); + + # Get the feature flag entries.. This is an array reference. + # For each one append the binary representation of the information + # contained. + my $records = ""; + my $lsd = ""; + my $ffs_ref = $self->SettingRecords(); + my $ff; + + my $count = 0; + foreach $ff (@$ffs_ref) + { + $count++; + printf("-encoding record: %04d (0x%08x:%04d)\n", $count, $ff->CUID(), $ff->EID()); + $records .= $ff->GetRecHdrBinary(length ($lsd)); + my $stype = $ff->Type(); + if (($stype & 0xffff0000) && ($ff->Length() > 0)) { + $lsd .= $ff->GetRecLsdBinary(); + } + } + + $self->LsdOffset(32+length ($records)); # header size 32 + $self->LsdSize(length ($lsd)); + + my $header = $self->CreateBinaryHeader(); + + return $header . $records . $lsd; +} + +# Return a reference to the 'feature flags' array. +sub SettingRecords +{ + my $self = shift; + return undef unless(ref($self)); + return $self->{settingrecords}; +} + +# Add a Feature Flag object. Perhaps there should be code to check if we +# already know about this feature flag. (i.e check the uid against the ones +# we have). +sub AddSettingRecord +{ + my $self = shift; + return undef unless(ref($self)); + my $arg = shift; + die "panic: method 'AddSettingRecord' requires a 'HCRrec' object as argument.\n" + unless(ref($arg) eq "HCRrec"); + + push @{$self->SettingRecords()}, $arg; + $self->NumRecords(1); + + return 0; +} + + +1; + diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32utils/hcrscripts/hcrmd.bat --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kerneltest/e32utils/hcrscripts/hcrmd.bat Fri Jun 11 15:02:23 2010 +0300 @@ -0,0 +1,19 @@ +@rem +@rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +@rem All rights reserved. +@rem This component and the accompanying materials are made available +@rem under the terms of the License "Eclipse Public License v1.0" +@rem which accompanies this distribution, and is available +@rem at the URL "http://www.eclipse.org/legal/epl-v10.html". +@rem +@rem Initial Contributors: +@rem Nokia Corporation - initial contribution. +@rem +@rem Contributors: +@rem +@rem Description: +@rem + +@echo off + +@perl -S -I%EPOCROOT%epoc32/tools/hcr %EPOCROOT%epoc32/tools/hcr/makehcrdat.pl %* diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32utils/hcrscripts/hcrrec.pm --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kerneltest/e32utils/hcrscripts/hcrrec.pm Fri Jun 11 15:02:23 2010 +0300 @@ -0,0 +1,437 @@ +#!perl -w +# +# 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: +# +use strict; + +# +# A simple class to manage feature flags for a feature set data file. +# +package HCRrec; + +my %typemap = ( + Int32 => 0x00000001, + Int16 => 0x00000002, + Int8 => 0x00000004, + Bool => 0x00000008, + UInt32 => 0x00000010, + UInt16 => 0x00000020, + UInt8 => 0x00000040, + LinAddr => 0x00000100, + BinData => 0x00010000, + Text8 => 0x00020000, + ArrayInt32 => 0x00040000, + ArrayUInt32 => 0x00080000, + Int64 => 0x01000000, + UInt64 => 0x02000000, +); +my %maptype = reverse %typemap; +my %lsdtype2packmap = ( + 0x00010000 => "C", + 0x00020000 => "a", + 0x01000000 => "C", + 0x02000000 => "C", +); + +# Create a feature flag object. +sub new +{ + my $arg = shift; + my $class = ref($arg) || $arg; + + my $self = { + cuid => 0, # 4 bytes + eid => 0, # 4 bytes + type => 0, # 4 bytes + flagword => 0x0000, # 2 bytes + valueset => 0, + + intvalue => 0, # 4 bytes + strvalue => "", # array of chars + binvalue => [], # array of bytes + arrvalue => [], # array of 4 byte integers + + endian => "LE", + }; + + bless $self, $class; + return $self; +} + +sub Endian +{ + my $self = shift; + return undef unless(ref($self)); + my $arg = shift; + return $self->{endian} unless(defined($arg) and $arg =~ m/(^BE$|^LE$)/i); + $self->{endian} = lc($1); + return $self->{endian}; +} + +# Return a twelve byte string 'feature flag' information. +sub GetRecHdrBinary +{ + my $self = shift; + return undef unless(ref($self)); + + my $lsd_size = shift; + + my $stype = $self->Type(); + my @hdrarr = ( $self->CUID(), $self->EID(), $stype, $self->Flags(), + $self->SizeInBytes() ); + + # Decide whether we want big or little endian output. + # According to the documentation, 'V', 'N' are GUARANTEED to be 32-bit. + my $packstring; + if($self->Endian() eq "BE") { + $packstring = "N3n2N"; + } + else { + $packstring = "V3v2V"; # Little endian. + } + + # + # Could add range checks here for 8-bit and 16-bit types. + # However would stop negative test cases from being generated. + # Do it later. + # + + if ($stype & 0xffff) { + print "Writing integer\n" if ($mhd::otrace); + push @hdrarr, $self->IntValue(); + } + + if ($stype & 0xffff0000) { + if ($self->Length() > 0) { + print "Writing offset: " . $lsd_size . "\n" if ($mhd::otrace); + push @hdrarr, $lsd_size; + } + else { + print "Writing null offset: 0\n" if ($mhd::otrace); + push @hdrarr, 0; + } + } + + my $hdr_string = pack $packstring, @hdrarr; + + return $hdr_string; +} + +# Return a twelve byte string 'feature flag' information. +# Assumes Little Endian output! +sub GetRecLsdBinary +{ + my $self = shift; + return undef unless(ref($self)); + + my $value = ""; + my $valuelen = $self->Length(); + my $vallen = $valuelen; + #print "vallen before:" . $vallen . "\n"; + $vallen = ($valuelen+3)&0xfffc if ($valuelen%4) ; + #print "vallen after:" . $vallen . "\n"; + my $valtype = $self->{type}; + + # String + if ($valtype & 0x00020000) { + my $packstr = $lsdtype2packmap{$valtype} . $vallen; + printf ("packstr:%s\n", $packstr) if($mhd::otrace); + printf ("strvalue:%s\n", $self->{strvalue}) if($mhd::otrace); + $value = pack $packstr, $self->{strvalue} ; + } + # Binary Data + elsif ($valtype & 0x00010000) { + for (my $c=0; $c < $valuelen; $c++) { + my $byte = $self->{binvalue}[$c]; + $value .= pack $lsdtype2packmap{$valtype}, $byte; + $vallen--; + } + while ($vallen > 0) { + $value .= pack "C", ( 0x00 ); + $vallen--; + } + } + # 64bit quantity + elsif ($valtype & 0x03000000) { + die "error: 64 bit integer missing hex binvalues\n" if (! exists $self->{binvalue}[7]); + $value = pack $lsdtype2packmap{$valtype}, $self->{binvalue}[0]; + $value .= pack $lsdtype2packmap{$valtype}, $self->{binvalue}[1]; + $value .= pack $lsdtype2packmap{$valtype}, $self->{binvalue}[2]; + $value .= pack $lsdtype2packmap{$valtype}, $self->{binvalue}[3]; + $value .= pack $lsdtype2packmap{$valtype}, $self->{binvalue}[4]; + $value .= pack $lsdtype2packmap{$valtype}, $self->{binvalue}[5]; + $value .= pack $lsdtype2packmap{$valtype}, $self->{binvalue}[6]; + $value .= pack $lsdtype2packmap{$valtype}, $self->{binvalue}[7]; + } + # array of 32bit quantity + elsif ($valtype & 0x000C0000) { + for (my $c=0; $c < $valuelen; $c++) { + my $int = $self->{arrvalue}[$c]; + $value .= pack "V", $int; + $vallen--; + } + } + else { + die "panic: proramming error!!"; + } + + return $value; + } + +# A single 32-bit number. +sub CUID +{ + my $self = shift; + return undef unless(ref($self)); + my $uid = shift; + return $self->{cuid} unless(defined($uid)); + my $uidv = hex($uid); + $self->{cuid} = $uidv; + return $uidv; +} + +# A single 32-bit number. +sub EID +{ + my $self = shift; + return undef unless(ref($self)); + my $id = shift; + return $self->{eid} unless(defined($id)); + my $idv = int($id); + $self->{eid} = $idv; + return $idv; +} + +sub Type +{ + my $self = shift; + return undef unless(ref($self)); + my $type = shift; + return $self->{type} unless(defined($type)); + my $enum = $typemap{$type}; + #print "--->Defined\n" if (defined $enum); + #print "--->NOT Defined\n" if (! defined $enum); + die "error: unknown setting type found in input file\n" if (! defined $enum); + $self->{type} = $enum; + return $enum; +} + +sub TypeName +{ + my $self = shift; + return undef unless(ref($self)); + return "Undefined Type" if (! exists $maptype{$self->{type}}); + return $maptype{$self->{type}}; +} + +sub Flags +{ + my $self = shift; + return undef unless(ref($self)); + my $flags = shift; + return $self->{flagword} unless(defined($flags)); + my $vf = hex($flags); + $self->{flagword} = $vf; + return $vf; +} + +sub Length +{ + my $self = shift; + return undef unless(ref($self)); + my $len = shift; + die "panic: Length() does not take an argument!\n" if (defined($len)); + + my $length = 0; + if ($self->{type} & 0x00020000) { + $length = length ($self->{strvalue}); + } + elsif ($self->{type} & 0x03010000) { + my $array_ref = $self->{binvalue}; + my @array = @$array_ref; + $length = $#array+1; + } + elsif ($self->{type} & 0x000C0000) { + my $array_ref = $self->{arrvalue}; + my @array = @$array_ref; + $length = $#array+1; + #printf ("arrval length %d %d\n", length ($self->{arrval}), $length); + } + else { + $length = 0; + } + return $length; +} + +sub SizeInBytes +{ + my $self = shift; + return undef unless(ref($self)); + my $len = shift; + die "panic: Length() does not take an argument!\n" if (defined($len)); + + my $size = 0; + if ($self->{type} & 0x00020000) { + $size = length ($self->{strvalue}); + } + elsif ($self->{type} & 0x03010000) { + my $array_ref = $self->{binvalue}; + my @array = @$array_ref; + $size = $#array+1; + } + elsif ($self->{type} & 0x000C0000) { + my $array_ref = $self->{arrvalue}; + my @array = @$array_ref; + $size = ($#array+1)*4; + #printf ("arrval length %d %d\n", length ($self->{arrval}), $length); + } + else { + $size = 0; + } + return $size; +} + +sub IsValid +{ + my $self = shift; + return undef unless(ref($self)); + + if (($self->{cuid} == 0) || ($self->{eid} == 0) || + ($self->{type} == 0) || ($self->{flagword} != 0) || + ($self->IsValueSet() == 0)) { + return 0; + } + + #Record valid if we reach here + return 1; +} + +sub IsValueSet +{ + my $self = shift; + return undef unless(ref($self)); + return $self->{valueset}; +} + +sub MarkValueSet +{ + my $self = shift; + return undef unless(ref($self)); + $self->{valueset} = 1; +} + +sub IntValue +{ + my $self = shift; + return undef unless(ref($self)); + my $value = shift; + if (defined($value)) { + my $int = int($value); + $self->{intvalue} = $int; + $self->MarkValueSet(); + } + return $self->{intvalue}; +} + +sub HexValue +{ + my $self = shift; + return undef unless(ref($self)); + my $value = shift; + return $self->{intvalue} unless(defined($value)); + my $int = hex($value); + $self->{intvalue} = $int; + $self->MarkValueSet(); + return $int; +} + +sub StrValue +{ + my $self = shift; + return undef unless(ref($self)); + my $value = shift; + return $self->{strvalue} unless(defined($value)); + #printf ("strlen before %d\n", length ($self->{strvalue})); + $self->{strvalue} .= $value; + #printf ("strlen after %d\n", length ($self->{strvalue})); + $self->MarkValueSet(); + return $value; +} + +sub ArrValue +{ + my $self = shift; + return undef unless(ref($self)); + my $value = shift; + + return $self->{arrvalue} unless(defined($value)); + + my $int = int($value); + my $index = $self->Length(); + + $self->{arrvalue}[$index] = $int; # Increments the array size as well as appending item + $index*=4; + + printf ("warning: array value larger than HCR maximum (512 bytes): %d\n", $index) if ($index > 512); + $self->MarkValueSet(); + + return $self->{arrvalue}; +} + +sub BinValue +{ + my $self = shift; + return undef unless(ref($self)); + my $value = shift; + + return $self->{binvalue} unless(defined($value)); + + my @hwords = split(/\s/,$value); + shift @hwords if ($hwords[0] eq ""); + my $hwordslen = scalar(@hwords); + + #printf("(len:%d)(0:%04x 1:%04x last:%04x)\n", $hwordslen, hex($hwords[0]), hex($hwords[1]), hex($hwords[$hwordslen-1])) if ($mhd::trace); + + my $index = $self->Length(); + #printf ("binlen before %d\n", $index); + + #print "Index: " . $index . "\n"; + foreach my $word (@hwords) { + if (length ($word) == 2) { + $self->{binvalue}[$index] = hex($word); + } + else { + die "error: hexadecimal value '$word' too short/large for 8-bit integer\n"; + } + + + #$self->{binvalue}[$index] = $mint; + #printf("%d: %04x\n", $count, $self->{binvalue}[$count]); + $index++; + } + + + #printf ("binlen after %d\n", $index); + + printf ("warning: binary value larger than HCR maximum (512 bytes): %d\n", $index) if ($index > 512); + $self->MarkValueSet(); + return $self->{binvalue}; +} + + +# ########################################################################### + +1; + diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32utils/hcrscripts/hcrscripts.inf --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kerneltest/e32utils/hcrscripts/hcrscripts.inf Fri Jun 11 15:02:23 2010 +0300 @@ -0,0 +1,31 @@ +// Copyright (c) 2008-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: +// Hardware Configuration Respoitory Scripts and Utils +// Convienence inf file, to build: bldmake -f hcrscripts.inf bldfiles +// Scripts not part of the offical OS build, hence these are unsupported. +// Available for developer adhoc-testing only until offical HCR tools available. +// + +/** +@file +Hardware Configuration Repository Scripts +*/ + +PRJ_EXPORTS + +./hcrmd.bat /epoc32/tools/hcrmd.bat +./hcrdat.pm /epoc32/tools/hcr/hcrdat.pm +./hcrrec.pm /epoc32/tools/hcr/hcrrec.pm +./makehcrdat.pl /epoc32/tools/hcr/makehcrdat.pl + diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32utils/hcrscripts/makehcrdat.pl --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kerneltest/e32utils/hcrscripts/makehcrdat.pl Fri Jun 11 15:02:23 2010 +0300 @@ -0,0 +1,219 @@ +#!perl -w +# +# 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: +# This simple script makes a binary HCR data file from a text input file +# +use strict; + +use HCRdat; +use HCRrec; + +package mhd; + +# +# Find out what file the user is interested in.. +# Make sure it's specified and exists. +# +$mhd::trace = 0; +$mhd::otrace = 0; + +if (@ARGV < 2 || @ARGV > 4) { + die "\nUsage: hcrmd.bat [-i]\n"; + } + +my $textfile = shift @ARGV; +my $datfile = shift @ARGV; + +my $do_create_image = 0; +my $opt_i = shift @ARGV; +#my $partid = 0x10000005; +if (defined($opt_i)) { + $do_create_image = 1 if ($opt_i eq "-i"); + die "error: unknown command option\n" if ($opt_i ne "-i"); + #my $i_no = shift @ARGV; + #$partid = hex($i_no) if (defined($i_no)); + #printf("partitionid: 0x%x\n", $partid) + } + + +print "\n HCR Binary Data File Generator, version v0.1\n"; +print " Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). All rights reserved.\n\n"; +print "-input: $textfile\n" if($mhd::trace); +print "-output: $datfile\n" if($mhd::trace); + +die "error: Specifed source_textfile not found!" unless(-f $textfile); +#die "error: Specified dest_binfile '$datfile' already exists!" if(-e $datfile); + +printf "\nReading input file... $textfile\n"; + +printf "-opening text file\n" if($mhd::trace); +my $tfh; +open($tfh, "<$textfile"); + +printf "-started conversion...\n" if($mhd::trace); +my $datobj = HCRdat->new(); +my $inrec = 0; +my $ln = 0; +my $recobj; + +while (<$tfh>) + { + $ln++; + if ($_ =~ '^\s*#') { + printf "-comment\n" if($mhd::trace); + } + elsif ($_ =~ '^@') { + die "error: Syntax error line $ln: New record started before previous one is closed" if($inrec > 0); + printf "-start\n" if($mhd::trace); + $inrec = 1; + $recobj = HCRrec->new(); + } + elsif ($_ =~ '^\.') { + die "error: Syntax error line $ln: Record closed before a new record has been opened" if($inrec == 0); + printf "-end\n" if($mhd::trace); + if ($recobj->IsValid()) { + $datobj->AddSettingRecord($recobj); + } + else { + die "error: Record after record " . $datobj->NumRecords() . " completed but not valid, missing or has =0 fields?\n"; + } + $inrec = 0; + } + elsif ($_ =~ '^\s*$') { + printf "-blank\n" if($mhd::trace); + } + elsif ($_ =~ '^\s*cuid:\s') { + print "--cuid " if($mhd::trace); + my @hwords = split(/\s+/,$_); + die "error: 'cuid:' line incorrectly formed" if (scalar(@hwords) != 2); + + $recobj->CUID($hwords[1]); + printf("=0x%08x\n", $recobj->CUID()) if($mhd::trace); + } + elsif ($_ =~ '^\s*eid:\s') { + print "--eid " if($mhd::trace); + my @hwords = split(/\s+/,$_); + die "error: 'eid:' line incorrectly formed" if (scalar(@hwords) != 2); + + $recobj->EID($hwords[1]); + print "=".($recobj->EID())."\n" if($mhd::trace); + } + elsif ($_ =~ '^\s*type:\s') { + print "--type " if($mhd::trace); + my @hwords = split(/\s+/,$_); + die "error: 'type:' line incorrectly formed" if (scalar(@hwords) != 2); + + $recobj->Type($hwords[1]); + printf("=0x%08x (%s)\n", $recobj->Type(), $recobj->TypeName()) if($mhd::trace); + } + elsif ($_ =~ '^\s*flags:\s') { + print "--flags " if($mhd::trace); + my @hwords = split(/\s+/,$_); + die "error: 'flags:' line incorrectly formed" if (scalar(@hwords) != 2); + + $recobj->Flags($hwords[1]); + printf ("=0x%x\n", $recobj->Flags()) if($mhd::trace); + printf ("warning: flag length value greater than 2-bytes\n") if ($recobj->Flags() > 0xffff); + } + elsif ($_ =~ '^\s*intval:\s') { + print "--intval " if($mhd::trace); + my @hwords = split(/\s+/,$_); + die "error: 'intval:' line incorrectly formed" if (scalar(@hwords) != 2); + + $recobj->IntValue($hwords[1]); + printf("=%d (0x%x)\n", $recobj->IntValue(), $recobj->IntValue()) if($mhd::trace); + } + elsif ($_ =~ '^\s*hexval:\s') { + print "--hexval " if($mhd::trace); + my @hwords = split(/\s+/,$_); + die "error: 'hexval:' line incorrectly formed" if (scalar(@hwords) != 2); + + $recobj->HexValue($hwords[1]); + printf("=%d (0x%x)\n", $recobj->IntValue(), $recobj->IntValue()) if($mhd::trace); + } + elsif ($_ =~ '^\s*arrval:\s') { + print "--arrval " if($mhd::trace); + my @hwords = split(/\s+/,$_); + die "error: 'arrval:' line incorrectly formed" if (scalar(@hwords) != 2); + + print $hwords[1]."\n" if ($mhd::trace); + $recobj->ArrValue($hwords[1]); + } + elsif ($_ =~ '^\s*strval:\s') { + print "--strval " if($mhd::trace); + my @hwords = split(/\"/,$_); + die "error: 'strval:' line incorrectly formed" if (scalar(@hwords) != 3); + + my $strval_size = $recobj->Length(); + $recobj->StrValue($hwords[1]); + + printf("=\"%s\"\n", substr($recobj->StrValue(), $strval_size)) if($mhd::trace); + } + elsif ($_ =~ '^\s*binval:\s') { + print "--binval " if($mhd::trace); + my @hwords = split(/:/,$_); + die "error: 'binval:' line incorrectly formed" if (scalar(@hwords) < 2); + + my $binval_size = $recobj->Length(); + $recobj->BinValue($hwords[1]); + + my $binval_ref = $recobj->BinValue(); + my @binval = @$binval_ref; + + printf("(%d) =", $#binval+1) if($mhd::trace); + my $uint16 = $binval_size; + for (; $uint16 < @binval; $uint16++) { + printf("%02x ", $binval[$uint16]) if($mhd::trace); + } + + print "\n" if($mhd::trace); + } + elsif ($_ =~ '') { + } + else { + die "error: unknown line type '$_'" +# print $_ if($mhd::trace); + } + } + +close $tfh; + +printf "\nGenerating output file... $datfile\n"; + +printf "-creating binary data file\n" if($mhd::otrace); +if ($datobj->WriteToFile($datfile.".tmp") != 0) { + die "error: failed to write to dest_binfile"; + } + +printf "-renaming file to temp file to $datfile\n" if($mhd::otrace); +rename ($datfile.".tmp", $datfile); + +printf "-file header written:\n" if($mhd::otrace); +$datobj->ShowHeader() if($mhd::otrace); + +if ($do_create_image) { + my $imgfile = $datfile . ".img"; + print "\nGenerating partition image... ". $imgfile . "\n"; + + if ($datobj->WriteToImage($imgfile, $datfile) != 0) { + die "error: failed to write to image file $imgfile"; + } + } + +print "\nDone.\n"; +exit 0; + + + diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32utils/hcrscripts/test/array_hcrfile.dat Binary file kerneltest/e32utils/hcrscripts/test/array_hcrfile.dat has changed diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32utils/hcrscripts/test/array_hcrfile.dat.img Binary file kerneltest/e32utils/hcrscripts/test/array_hcrfile.dat.img has changed diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32utils/hcrscripts/test/array_test.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kerneltest/e32utils/hcrscripts/test/array_test.txt Fri Jun 11 15:02:23 2010 +0300 @@ -0,0 +1,54 @@ +#------------------------------------------------------------------------------ +# Large Array Settings Test file for use with the 'hcrmd' tool. +# + +#------------------------------------------------------------------------------ +# Signed Integer array 32-bit tests +# +@ +cuid: 0xee000001 +eid: 121 +type: ArrayInt32 +flags: 0x0000 +arrval: 2147483647 +arrval: 2147483647 +. +@ +cuid: 0xee000001 +eid: 122 +type: ArrayInt32 +flags: 0x0000 +arrval: 1 +. +@ +cuid: 0xee000001 +eid: 123 +type: ArrayInt32 +flags: 0x0000 +arrval: -2147483648 +arrval: -2147483648 +arrval: -2147483648 +. + + +#------------------------------------------------------------------------------ +# Unsigned Integer array 32-bit tests +# +@ +cuid: 0xee000004 +eid: 131 +type: ArrayUInt32 +flags: 0x0000 +arrval: 4294967295 +arrval: 4294967295 +arrval: 4294967295 +arrval: 4294967295 +. + +@ +cuid: 0xee000004 +eid: 132 +type: ArrayUInt32 +flags: 0x0000 +arrval: 0 +. diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32utils/hcrscripts/test/integer_hcrfile.dat Binary file kerneltest/e32utils/hcrscripts/test/integer_hcrfile.dat has changed diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32utils/hcrscripts/test/integer_hcrfile.dat.img Binary file kerneltest/e32utils/hcrscripts/test/integer_hcrfile.dat.img has changed diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32utils/hcrscripts/test/integer_test.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kerneltest/e32utils/hcrscripts/test/integer_test.txt Fri Jun 11 15:02:23 2010 +0300 @@ -0,0 +1,205 @@ +#------------------------------------------------------------------------------ +# Integer Setting Test file for use with the 'hcrmd' tool. +# + +#------------------------------------------------------------------------------ +# Signed Integer 32-bit tests +# +@ +cuid: 0xff000001 +eid: 1 +type: Int32 +flags: 0x0000 +intval: 2147483647 +. +@ +cuid: 0xff000001 +eid: 2 +type: Int32 +flags: 0x0000 +intval: 0 +. +@ +cuid: 0xff000001 +eid: 3 +type: Int32 +flags: 0x0000 +intval: -2147483648 +. + +#------------------------------------------------------------------------------ +# Signed Integer 16-bit tests +# +@ +cuid: 0xff000002 +eid: 11 +type: Int16 +flags: 0x0000 +intval: 32767 +. +@ +cuid: 0xff000002 +eid: 12 +type: Int16 +flags: 0x0000 +intval: 0 +. +@ +cuid: 0xff000002 +eid: 13 +type: Int16 +flags: 0x0000 +intval: -32768 +. + +#------------------------------------------------------------------------------ +# Signed Integer 8-bit tests +# +@ +cuid: 0xff000003 +eid: 21 +type: Int8 +flags: 0x0000 +intval: 127 +. + +@ +cuid: 0xff000003 +eid: 22 +type: Int8 +flags: 0x0000 +intval: 0 +. +@ +cuid: 0xff000003 +eid: 23 +type: Int8 +flags: 0x0000 +intval: -128 +. + +#------------------------------------------------------------------------------ +# Unsigned Integer tests +# +@ +cuid: 0xff000004 +eid: 31 +type: UInt32 +flags: 0x0000 +intval: 4294967295 +. +@ +cuid: 0xff000004 +eid: 32 +type: UInt16 +flags: 0x0000 +intval: 65535 +. +@ +cuid: 0xff000004 +eid: 33 +type: UInt8 +flags: 0x0000 +intval: 255 +. + +#------------------------------------------------------------------------------ +# Boolean tests +# +@ +cuid: 0xff000005 +eid: 41 +type: Bool +flags: 0x0000 +intval: 1 +. +@ +cuid: 0xff000005 +eid: 42 +type: Bool +flags: 0x0000 +intval: 0 +. + + +#------------------------------------------------------------------------------ +# Linear Addrress tests +# +@ +cuid: 0xff000006 +eid: 51 +type: LinAddr +flags: 0x0000 +hexval: 0x80000000 +. +@ +cuid: 0xff000006 +eid: 52 +type: LinAddr +flags: 0x0000 +hexval: 0x01008004 +. +@ +cuid: 0xff000006 +eid: 53 +type: LinAddr +flags: 0x0000 +hexval: 0x00000000 +. + + +#------------------------------------------------------------------------------ +# Synatx tests +# + +# Tool should cope with these +@ +cuid: 0xffff0001 +eid: 101 +type: Int32 +intval: 1889025 +. +@ +cuid: 0xffff0002 +eid: 102 +type: Int32 +intval: 5889025 +. + +# Missing fields - Tool should abort for these records +# +#@ +#cuid: 0xffff0003 +#eid: 103 +#type: Int32 +#. +#@ +#cuid: 0xffff0004 +#eid: 104 +#. +#@ +#cuid: 0xffff0005 +#. +#@ +#. + +# Incorrect Types - Tool should abort for these records +# +#@ +#cuid: 0xffff0006 +#eid: 106 +#type: int32 +#intval: 1889025 +#. +#@ +#cuid: 0xffff0007 +#eid: 107 +#type: Int +#intval: 1889025 +#. +#@ +#cuid: 0xffff0008 +#eid: 108 +#type: Int32ab +#intval: 1889025 +#. diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32utils/hcrscripts/test/large_hcrfile.dat Binary file kerneltest/e32utils/hcrscripts/test/large_hcrfile.dat has changed diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32utils/hcrscripts/test/large_hcrfile.dat.img Binary file kerneltest/e32utils/hcrscripts/test/large_hcrfile.dat.img has changed diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32utils/hcrscripts/test/large_test.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kerneltest/e32utils/hcrscripts/test/large_test.txt Fri Jun 11 15:02:23 2010 +0300 @@ -0,0 +1,378 @@ +#------------------------------------------------------------------------------ +# Large Settings Test file for use with the 'hcrmd' tool. +# + +#------------------------------------------------------------------------------ +# BinData tests +# + +@ +cuid: 0x000000ff +eid: 13 +type: BinData +flags: 000000 +binval: 0E +. +@ +cuid: 0x000000ff +eid: 23 +type: BinData +flags: 000000 +binval: 0E 1F +. +@ +cuid: 0x000000ff +eid: 33 +type: BinData +flags: 000000 +binval: 0E 1F BA +. +@ +cuid: 0x000000ff +eid: 43 +type: BinData +flags: 000000 +binval: 0E 1F BA 11 +. +@ +cuid: 0x000000ff +eid: 53 +type: BinData +flags: 000000 +binval: 0E 1F BA 11 1F +. +@ +cuid: 0x000000ff +eid: 63 +type: BinData +flags: 000000 +binval: FF FF BA 0E 00 B4 +. +@ +cuid: 0x000000ff +eid: 64 +type: BinData +flags: 000000 +binval: FF FF BA 0E 00 B4 2E +. +@ +cuid: 0x000000ff +eid: 73 +type: BinData +flags: 000000 +binval: FF FF BA 0E 00 B4 2E AA +. +@ +cuid: 0x000000ff +eid: 83 +type: BinData +flags: 000000 +binval: FF FF BA 0E 00 B4 2E AA DD +. +@ +cuid: 0x000000ff +eid: 93 +type: BinData +flags: 000000 +binval: FF FF BA 0E 00 B4 09 CD 21 B8 01 4C CD 21 54 68 +binval: 69 73 20 70 72 6F 67 72 61 6D 20 63 61 6E 6E 6F +binval: 74 20 62 65 20 72 75 6E 20 69 6E 20 44 4F 53 20 +binval: 6D 6F 64 65 2E 0D 0D 0A 24 00 00 00 00 00 00 0F +binval: 0E 1F BA 0E 00 B4 09 CD 21 B8 01 4C CD 21 54 68 +binval: 69 73 20 70 72 6F 67 72 61 6D 11 11 22 22 00 FF +. + +@ +cuid: 0x000000ff +eid: 103 +type: BinData +flags: 000000 +binval: FF FF BA 0E 00 B4 09 CD 21 B8 01 4C CD 21 54 68 +binval: 69 73 20 70 72 6F 67 72 61 6D 20 63 61 6E 6E 6F +binval: 74 20 62 65 20 72 75 6E 20 69 6E 20 44 4F 53 20 +binval: 6D 6F 64 65 2E 0D 0D 0A 24 00 00 00 00 00 00 0F +binval: 0E 1F BA 0E 00 B4 09 CD 21 B8 01 4C CD 21 54 68 +binval: 69 73 20 70 72 6F 67 72 61 6D 11 11 22 22 00 FF +binval: FF FF BA 0E 00 B4 09 CD 21 B8 01 4C CD 21 54 68 +binval: 69 73 20 70 72 6F 67 72 61 6D 20 63 61 6E 6E 6F +binval: 74 20 62 65 20 72 75 6E 20 69 6E 20 44 4F 53 20 +binval: 6D 6F 64 65 2E 0D 0D 0A 24 00 00 00 00 00 00 0F +binval: 0E 1F BA 0E 00 B4 09 CD 21 B8 01 4C CD 21 54 68 +binval: 69 73 20 70 72 6F 67 72 61 6D 11 11 22 22 00 FF +binval: FF FF BA 0E 00 B4 09 CD 21 B8 01 4C CD 21 54 68 +binval: 69 73 20 70 72 6F 67 72 61 6D 20 63 61 6E 6E 6F +binval: 74 20 62 65 20 72 75 6E 20 69 6E 20 44 4F 53 20 +binval: 6D 6F 64 65 2E 0D 0D 0A 24 00 00 00 00 00 00 0F +binval: 0E 1F BA 0E 00 B4 09 CD 21 B8 01 4C CD 21 54 68 +binval: 69 73 20 70 72 6F 67 72 61 6D 11 11 22 22 00 FF +binval: FF FF BA 0E 00 B4 09 CD 21 B8 01 4C CD 21 54 68 +binval: 69 73 20 70 72 6F 67 72 61 6D 20 63 61 6E 6E 6F +binval: 74 20 62 65 20 72 75 6E 20 69 6E 20 44 4F 53 20 +binval: 6D 6F 64 65 2E 0D 0D 0A 24 00 00 00 00 00 00 0F +binval: 0E 1F BA 0E 00 B4 09 CD 21 B8 01 4C CD 21 54 68 +binval: 69 73 20 70 72 6F 67 72 61 6D 11 11 22 22 00 FF +binval: FF FF BA 0E 00 B4 09 CD 21 B8 01 4C CD 21 54 68 +binval: 69 73 20 70 72 6F 67 72 61 6D 20 63 61 6E 6E 6F +binval: 74 20 62 65 20 72 75 6E 20 69 6E 20 44 4F 53 20 +binval: 6D 6F 64 65 2E 0D 0D 0A 24 00 00 00 00 00 00 0F +binval: 0E 1F BA 0E 00 B4 09 CD 21 B8 01 4C CD 21 54 68 +binval: 69 73 20 70 72 6F 67 72 61 6D 11 11 22 22 00 FF +binval: FF FF BA 0E 00 B4 09 CD 21 B8 01 4C CD 21 54 68 +binval: 69 73 20 70 72 6F 67 72 61 6D 20 63 61 6E 6E 6F +. + +@ +cuid: 0x000000ff +eid: 113 +type: BinData +flags: 000000 +binval: FF FF BA 0E 00 B4 09 CD 21 B8 01 4C CD 21 54 68 +binval: 69 73 20 70 72 6F 67 72 61 6D 20 63 61 6E 6E 6F +binval: 74 20 62 65 20 72 75 6E 20 69 6E 20 44 4F 53 20 +binval: 6D 6F 64 65 2E 0D 0D 0A 24 00 00 00 00 00 00 0F +binval: 0E 1F BA 0E 00 B4 09 CD 21 B8 01 4C CD 21 54 68 +binval: 69 73 20 70 72 6F 67 72 61 6D 11 11 22 22 00 FF +binval: FF FF BA 0E 00 B4 09 CD 21 B8 01 4C CD 21 54 68 +binval: 69 73 20 70 72 6F 67 72 61 6D 20 63 61 6E 6E 6F +binval: 74 20 62 65 20 72 75 6E 20 69 6E 20 44 4F 53 20 +binval: 6D 6F 64 65 2E 0D 0D 0A 24 00 00 00 00 00 00 0F +binval: 0E 1F BA 0E 00 B4 09 CD 21 B8 01 4C CD 21 54 68 +binval: 69 73 20 70 72 6F 67 72 61 6D 11 11 22 22 00 FF +binval: FF FF BA 0E 00 B4 09 CD 21 B8 01 4C CD 21 54 68 +binval: 69 73 20 70 72 6F 67 72 61 6D 20 63 61 6E 6E 6F +binval: 74 20 62 65 20 72 75 6E 20 69 6E 20 44 4F 53 20 +binval: 6D 6F 64 65 2E 0D 0D 0A 24 00 00 00 00 00 00 0F +binval: 0E 1F BA 0E 00 B4 09 CD 21 B8 01 4C CD 21 54 68 +binval: 69 73 20 70 72 6F 67 72 61 6D 11 11 22 22 00 FF +binval: FF FF BA 0E 00 B4 09 CD 21 B8 01 4C CD 21 54 68 +binval: 69 73 20 70 72 6F 67 72 61 6D 20 63 61 6E 6E 6F +binval: 74 20 62 65 20 72 75 6E 20 69 6E 20 44 4F 53 20 +binval: 6D 6F 64 65 2E 0D 0D 0A 24 00 00 00 00 00 00 0F +binval: 0E 1F BA 0E 00 B4 09 CD 21 B8 01 4C CD 21 54 68 +binval: 69 73 20 70 72 6F 67 72 61 6D 11 11 22 22 00 FF +binval: FF FF BA 0E 00 B4 09 CD 21 B8 01 4C CD 21 54 68 +binval: 69 73 20 70 72 6F 67 72 61 6D 20 63 61 6E 6E 6F +binval: 74 20 62 65 20 72 75 6E 20 69 6E 20 44 4F 53 20 +binval: 6D 6F 64 65 2E 0D 0D 0A 24 00 00 00 00 00 00 0F +binval: 0E 1F BA 0E 00 B4 09 CD 21 B8 01 4C CD 21 54 68 +binval: 69 73 20 70 72 6F 67 72 61 6D 11 11 22 22 00 FF +binval: FF FF BA 0E 00 B4 09 CD 21 B8 01 4C CD 21 54 68 +binval: 69 73 20 70 72 6F 67 72 61 6D 20 63 61 6E 6E 6F +binval: 0E 1F BA 0E 00 B4 09 CD 21 B8 01 4C CD 21 54 68 +binval: 69 73 20 70 72 6F 67 72 61 6D 11 11 22 22 00 FF +binval: FF FF BA 0E 00 B4 09 CD 21 B8 01 4C CD 21 54 68 +binval: 69 73 20 70 72 6F 67 72 61 6D 20 63 61 6E 6E 6F +. + +#------------------------------------------------------------------------------ +# Text8 tests +# + +# Length field tests +# +@ +cuid: 0x11223301 +eid: 1 +type: Text8 +flags: 0x0000 +strval: "Hello World!!" +. +@ +cuid: 0x11223302 +eid: 2 +type: Text8 +flags: 0x0000 +strval: "Hell" +. +@ +cuid: 0x11223303 +eid: 3 +type: Text8 +flags: 0x0000 +strval: "Hello World!! " +. + +# strval field tests +# +@ +cuid: 0x11223304 +eid: 1 +type: Text8 +flags: 0x0000 +strval: "" +. +@ +cuid: 0x11223305 +eid: 5 +type: Text8 +flags: 0x0000 +strval: "012345678901234567890123456789ab012345678901234567890123456789ab012345678901234567890123456789ab012345678901234567890123456789ab" +. + +@ +cuid: 0x11223306 +eid: 6 +type: Text8 +flags: 0x0000 +strval: "012345678901234567890123456789ab012345678901234567890123456789ab012345678901234567890123456789ab012345678901234567890123456789ab" +strval: "012345678901234567890123456789ab012345678901234567890123456789ab012345678901234567890123456789ab012345678901234567890123456789bc" +strval: "012345678901234567890123456789ab012345678901234567890123456789ab012345678901234567890123456789ab012345678901234567890123456789cd" +strval: "012345678901234567890123456789ab012345678901234567890123456789ab012345678901234567890123456789ab012345678901234567890123456789de" +. + + +# strval field and padding tests +# +@ +cuid: 0x11223311 +eid: 128 +type: Text8 +flags: 0x0000 +strval: "A" +. +@ +cuid: 0x11223312 +eid: 128 +type: Text8 +flags: 0x0000 +strval: "We" +. +@ +cuid: 0x11223313 +eid: 128 +type: Text8 +flags: 0x0000 +strval: "Car" +. +@ +cuid: 0x11223314 +eid: 128 +type: Text8 +flags: 0x0000 +strval: "Cake" +. +@ +cuid: 0x11223315 +eid: 128 +type: Text8 +flags: 0x0000 +strval: "1---A" +. +@ +cuid: 0x11223316 +eid: 128 +type: Text8 +flags: 0x0000 +strval: "1---We" +. +@ +cuid: 0x11223317 +eid: 128 +type: Text8 +flags: 0x0000 +strval: "1---Car" +. +@ +cuid: 0x11223318 +eid: 128 +type: Text8 +flags: 0x0000 +strval: "1---Cake" +. +@ +cuid: 0x11223319 +eid: 128 +type: Text8 +flags: 0x0000 +strval: "1---2---A" +. +@ +cuid: 0x1122331a +eid: 128 +type: Text8 +flags: 0x0000 +strval: "1---2---We" +. +@ +cuid: 0x1122331b +eid: 128 +type: Text8 +flags: 0x0000 +strval: "1---2---Car" +. +@ +cuid: 0x1122331c +eid: 128 +type: Text8 +flags: 0x0000 +strval: "1---2---Cake" +. +@ +cuid: 0x1122331d +eid: 128 +type: Text8 +flags: 0x0000 +strval: "1---2---3---A" +. +@ +cuid: 0x1122331e +eid: 128 +type: Text8 +flags: 0x0000 +strval: "1---2---3---We" +. +@ +cuid: 0x1122331f +eid: 128 +type: Text8 +flags: 0x0000 +strval: "1---2---3---Car" +. +@ +cuid: 0x11223320 +eid: 128 +type: Text8 +flags: 0x0000 +strval: "1---2---3---Cake" +. + + +#------------------------------------------------------------------------------ +# UInt64 & Int64 tests +# + +@ +cuid: 0x55667711 +eid: 91 +type: Int64 +flags: 0x0000 +binval: 00 00 00 00 00 00 00 80 +. +@ +cuid: 0x55667711 +eid: 92 +type: Int64 +flags: 0x0000 +binval: 00 00 00 00 00 00 00 00 +. +#@ +#cuid: 0x55667711 +#eid: 192 +#type: Int64 +#flags: 0x0000 +#binval: 00 +#. +@ +cuid: 0x55667711 +eid: 93 +type: Int64 +flags: 0x0000 +binval: ff ff ff ff ff ff ff 7f +. +@ +cuid: 0x55667711 +eid: 94 +type: UInt64 +flags: 0x0000 +binval: ff ff ff ff ff ff ff ff +. diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32utils/nistsecurerng/include/cephes.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kerneltest/e32utils/nistsecurerng/include/cephes.h Fri Jun 11 15:02:23 2010 +0300 @@ -0,0 +1,27 @@ +/* +* Description: +* The original NIST Statistical Test Suite code is placed in public domain. +* (http://csrc.nist.gov/groups/ST/toolkit/rng/documentation_software.html) +* +* This software was developed at the National Institute of Standards and Technology by +* employees of the Federal Government in the course of their official duties. Pursuant +* to title 17 Section 105 of the United States Code this software is not subject to +* copyright protection and is in the public domain. The NIST Statistical Test Suite is +* an experimental system. NIST assumes no responsibility whatsoever for its use by other +* parties, and makes no guarantees, expressed or implied, about its quality, reliability, +* or any other characteristic. We would appreciate acknowledgment if the software is used. +*/ + +#ifndef _CEPHES_H_ +#define _CEPHES_H_ + +double cephes_igamc(double a, double x); +double cephes_igam(double a, double x); +double cephes_lgam(double x); +double cephes_p1evl(double x, double *coef, int N); +double cephes_polevl(double x, double *coef, int N); +double cephes_erf(double x); +double cephes_erfc(double x); +double cephes_normal(double x); + +#endif /* _CEPHES_H_ */ diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32utils/nistsecurerng/include/config.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kerneltest/e32utils/nistsecurerng/include/config.h Fri Jun 11 15:02:23 2010 +0300 @@ -0,0 +1,65 @@ +/* +* Description: +* The original NIST Statistical Test Suite code is placed in public domain. +* (http://csrc.nist.gov/groups/ST/toolkit/rng/documentation_software.html) +* +* This software was developed at the National Institute of Standards and Technology by +* employees of the Federal Government in the course of their official duties. Pursuant +* to title 17 Section 105 of the United States Code this software is not subject to +* copyright protection and is in the public domain. The NIST Statistical Test Suite is +* an experimental system. NIST assumes no responsibility whatsoever for its use by other +* parties, and makes no guarantees, expressed or implied, about its quality, reliability, +* or any other characteristic. We would appreciate acknowledgment if the software is used. +*/ + +#if defined(__cplusplus) +extern "C" { +#endif + +#ifndef _CONFIG_H_ +#define _CONFIG_H_ + +//#define WINDOWS32 +//#define PROTOTYPES +//#define LITTLE_ENDIAN +//#define LOWHI + +/* + * AUTO DEFINES (DON'T TOUCH!) + */ + +#ifndef CSTRTD +typedef char *CSTRTD; +#endif +#ifndef BSTRTD +typedef unsigned char *BSTRTD; +#endif + +#ifndef BYTE +typedef unsigned char BYTE; +#endif +#ifndef UINT +typedef unsigned int UINT; +#endif +#ifndef USHORT +typedef unsigned short USHORT; +#endif +#ifndef ULONG +typedef unsigned long ULONG; +#endif +#ifndef DIGIT +typedef USHORT DIGIT; /* 16-bit word */ +#endif +#ifndef DBLWORD +typedef ULONG DBLWORD; /* 32-bit word */ +#endif + +#ifndef WORD64 +typedef ULONG WORD64[2]; /* 64-bit word */ +#endif + +#endif /* _CONFIG_H_ */ + +#if defined(__cplusplus) +} +#endif diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32utils/nistsecurerng/include/decls.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kerneltest/e32utils/nistsecurerng/include/decls.h Fri Jun 11 15:02:23 2010 +0300 @@ -0,0 +1,52 @@ +/* +* Portions 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 "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: +* The original NIST Statistical Test Suite code is placed in public domain. +* (http://csrc.nist.gov/groups/ST/toolkit/rng/documentation_software.html) +* +* This software was developed at the National Institute of Standards and Technology by +* employees of the Federal Government in the course of their official duties. Pursuant +* to title 17 Section 105 of the United States Code this software is not subject to +* copyright protection and is in the public domain. The NIST Statistical Test Suite is +* an experimental system. NIST assumes no responsibility whatsoever for its use by other +* parties, and makes no guarantees, expressed or implied, about its quality, reliability, +* or any other characteristic. We would appreciate acknowledgment if the software is used. +*/ + +#ifndef _DECLS_H_ +#define _DECLS_H_ + +#include "../include/defs.h" + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + G L O B A L D A T A S T R U C T U R E S + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +BitSequence *epsilon; // BIT STREAM +TP tp; // TEST PARAMETER STRUCTURE +FILE *stats[NUMOFTESTS+1]; // FILE OUTPUT STREAM +FILE *results[NUMOFTESTS+1]; // FILE OUTPUT STREAM +FILE *freqfp; // FILE OUTPUT STREAM +FILE *summary; // FILE OUTPUT STREAM +int testVector[NUMOFTESTS+1]; + +char generatorDir[NUMOFGENERATORS][20] = { "AlgorithmTesting", "LCG", "QCG1", "QCG2","CCG", "XOR", + "MODEXP", "BBS", "MS", "G-SHA1", "HASH_DRBG" }; + +char testNames[NUMOFTESTS+1][32] = { " ", "Frequency", "BlockFrequency", "CumulativeSums", "Runs", "LongestRun", "Rank", + "FFT", "NonOverlappingTemplate", "OverlappingTemplate", "Universal", "ApproximateEntropy", "RandomExcursions", + "RandomExcursionsVariant", "Serial", "LinearComplexity" }; + +#endif // _DECLS_H_ + diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32utils/nistsecurerng/include/defs.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kerneltest/e32utils/nistsecurerng/include/defs.h Fri Jun 11 15:02:23 2010 +0300 @@ -0,0 +1,92 @@ +/* +* Portions 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 "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: +* The original NIST Statistical Test Suite code is placed in public domain. +* (http://csrc.nist.gov/groups/ST/toolkit/rng/documentation_software.html) +* +* This software was developed at the National Institute of Standards and Technology by +* employees of the Federal Government in the course of their official duties. Pursuant +* to title 17 Section 105 of the United States Code this software is not subject to +* copyright protection and is in the public domain. The NIST Statistical Test Suite is +* an experimental system. NIST assumes no responsibility whatsoever for its use by other +* parties, and makes no guarantees, expressed or implied, about its quality, reliability, +* or any other characteristic. We would appreciate acknowledgment if the software is used. +*/ + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + D E B U G G I N G A I D E S + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +#ifndef _DEFS_H_ +#define _DEFS_H_ + +#include "config.h" + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + M A C R O S + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +#define MAX(x,y) ((x) < (y) ? (y) : (x)) +#define MIN(x,y) ((x) > (y) ? (y) : (x)) +#define isNonPositive(x) ((x) <= 0.e0 ? 1 : 0) +#define isPositive(x) ((x) > 0.e0 ? 1 : 0) +#define isNegative(x) ((x) < 0.e0 ? 1 : 0) +#define isGreaterThanOne(x) ((x) > 1.e0 ? 1 : 0) +#define isZero(x) ((x) == 0.e0 ? 1 : 0) +#define isOne(x) ((x) == 1.e0 ? 1 : 0) + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + G L O B A L C O N S T A N T S + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +#define ALPHA 0.01 /* SIGNIFICANCE LEVEL */ +#define MAXNUMOFTEMPLATES 148 /* APERIODIC TEMPLATES: 148=>temp_length=9 */ +#define NUMOFTESTS 15 /* MAX TESTS DEFINED */ +#define NUMOFGENERATORS 11 /* MAX PRNGs */ +#define MAXFILESPERMITTEDFORPARTITION 148 +#define TEST_FREQUENCY 1 +#define TEST_BLOCK_FREQUENCY 2 +#define TEST_CUSUM 3 +#define TEST_RUNS 4 +#define TEST_LONGEST_RUN 5 +#define TEST_RANK 6 +#define TEST_FFT 7 +#define TEST_NONPERIODIC 8 +#define TEST_OVERLAPPING 9 +#define TEST_UNIVERSAL 10 +#define TEST_APEN 11 +#define TEST_RND_EXCURSION 12 +#define TEST_RND_EXCURSION_VAR 13 +#define TEST_SERIAL 14 +#define TEST_LINEARCOMPLEXITY 15 + + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + G L O B A L D A T A S T R U C T U R E S + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +typedef unsigned char BitSequence; + +typedef struct _testParameters { + int n; + int blockFrequencyBlockLength; + int nonOverlappingTemplateBlockLength; + int overlappingTemplateBlockLength; + int serialBlockLength; + int linearComplexitySequenceLength; + int approximateEntropyBlockLength; + int numOfBitStreams; +} TP; + +#endif // _DEFS_H_ + diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32utils/nistsecurerng/include/externs.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kerneltest/e32utils/nistsecurerng/include/externs.h Fri Jun 11 15:02:23 2010 +0300 @@ -0,0 +1,48 @@ +/* +* Portions 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 "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: +* The original NIST Statistical Test Suite code is placed in public domain. +* (http://csrc.nist.gov/groups/ST/toolkit/rng/documentation_software.html) +* +* This software was developed at the National Institute of Standards and Technology by +* employees of the Federal Government in the course of their official duties. Pursuant +* to title 17 Section 105 of the United States Code this software is not subject to +* copyright protection and is in the public domain. The NIST Statistical Test Suite is +* an experimental system. NIST assumes no responsibility whatsoever for its use by other +* parties, and makes no guarantees, expressed or implied, about its quality, reliability, +* or any other characteristic. We would appreciate acknowledgment if the software is used. +*/ + +#ifndef _EXTERNS_H_ +#define _EXTERNS_H_ + +#include "../include/defs.h" + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + G L O B A L D A T A S T R U C T U R E S + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +extern BitSequence *epsilon; // BIT STREAM +extern TP tp; // TEST PARAMETER STRUCTURE +extern FILE *stats[NUMOFTESTS+1]; // FILE OUTPUT STREAM +extern FILE *results[NUMOFTESTS+1]; // FILE OUTPUT STREAM +extern FILE *freqfp; // FILE OUTPUT STREAM +extern FILE *summary; // FILE OUTPUT STREAM +extern int testVector[NUMOFTESTS+1]; + +extern char generatorDir[NUMOFGENERATORS][20]; +extern char testNames[NUMOFTESTS+1][32]; + +#endif // _EXTERNS_H_ + diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32utils/nistsecurerng/include/generators.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kerneltest/e32utils/nistsecurerng/include/generators.h Fri Jun 11 15:02:23 2010 +0300 @@ -0,0 +1,116 @@ +/* +* Portions 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 "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: +* The original NIST Statistical Test Suite code is placed in public domain. +* (http://csrc.nist.gov/groups/ST/toolkit/rng/documentation_software.html) +* +* This software was developed at the National Institute of Standards and Technology by +* employees of the Federal Government in the course of their official duties. Pursuant +* to title 17 Section 105 of the United States Code this software is not subject to +* copyright protection and is in the public domain. The NIST Statistical Test Suite is +* an experimental system. NIST assumes no responsibility whatsoever for its use by other +* parties, and makes no guarantees, expressed or implied, about its quality, reliability, +* or any other characteristic. We would appreciate acknowledgment if the software is used. +*/ + +#ifndef _GENERATORS_H_ +#define _GENERATORS_H_ +//#include "../include/sha.h" + +void lcg(); +double lcg_rand(int, double, double*, int); +void quadRes1(); +void quadRes2(); +void cubicRes(); +void exclusiveOR(); +void modExp(); +void bbs(); +void micali_schnorr(); +void SHA1(); +void HASH_DRBG(); + +/* The circular shifts. */ +#define CS1(x) ((((ULONG)x)<<1)|(((ULONG)x)>>31)) +#define CS5(x) ((((ULONG)x)<<5)|(((ULONG)x)>>27)) +#define CS30(x) ((((ULONG)x)<<30)|(((ULONG)x)>>2)) + +/* K constants */ + +#define K0 0x5a827999L +#define K1 0x6ed9eba1L +#define K2 0x8f1bbcdcL +#define K3 0xca62c1d6L + +#define f1(x,y,z) ( (x & (y ^ z)) ^ z ) + +#define f3(x,y,z) ( (x & ( y ^ z )) ^ (z & y) ) + +#define f2(x,y,z) ( x ^ y ^ z ) /* Rounds 20-39 */ + +#define expand(x) Wbuff[x%16] = CS1(Wbuff[(x - 3)%16 ] ^ Wbuff[(x - 8)%16 ] ^ Wbuff[(x - 14)%16] ^ Wbuff[x%16]) + +#define sub1Round1(count) { \ + temp = CS5(A) + f1(B, C, D) + E + Wbuff[count] + K0; \ + E = D; \ + D = C; \ + C = CS30( B ); \ + B = A; \ + A = temp; \ + } \ + +#define sub2Round1(count) \ + { \ + expand(count); \ + temp = CS5(A) + f1(B, C, D) + E + Wbuff[count%16] + K0; \ + E = D; \ + D = C; \ + C = CS30( B ); \ + B = A; \ + A = temp; \ + } \ + +#define Round2(count) \ + { \ + expand(count); \ + temp = CS5( A ) + f2( B, C, D ) + E + Wbuff[count%16] + K1; \ + E = D; \ + D = C; \ + C = CS30( B ); \ + B = A; \ + A = temp; \ + } \ + +#define Round3(count) \ + { \ + expand(count); \ + temp = CS5( A ) + f3( B, C, D ) + E + Wbuff[count%16] + K2; \ + E = D; \ + D = C; \ + C = CS30( B ); \ + B = A; \ + A = temp; \ + } + +#define Round4(count) \ + { \ + expand(count); \ + temp = CS5( A ) + f2( B, C, D ) + E + Wbuff[count%16] + K3; \ + E = D; \ + D = C; \ + C = CS30( B ); \ + B = A; \ + A = temp; \ + } + +#endif diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32utils/nistsecurerng/include/genutils.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kerneltest/e32utils/nistsecurerng/include/genutils.h Fri Jun 11 15:02:23 2010 +0300 @@ -0,0 +1,71 @@ +/* +* Portions 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 "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: +* The original NIST Statistical Test Suite code is placed in public domain. +* (http://csrc.nist.gov/groups/ST/toolkit/rng/documentation_software.html) +* +* This software was developed at the National Institute of Standards and Technology by +* employees of the Federal Government in the course of their official duties. Pursuant +* to title 17 Section 105 of the United States Code this software is not subject to +* copyright protection and is in the public domain. The NIST Statistical Test Suite is +* an experimental system. NIST assumes no responsibility whatsoever for its use by other +* parties, and makes no guarantees, expressed or implied, about its quality, reliability, +* or any other characteristic. We would appreciate acknowledgment if the software is used. +*/ + +#ifndef _GENUTILS_H_ +#define _GENUTILS_H_ + +#include "openc.h" +#include "config.h" + +typedef struct _MP_struct { + int size; /* in bytes */ + int bitlen; /* in bits, duh */ + BYTE *val; + } MP; + +#define FREE(A) if ( (A) ) { free((A)); (A) = NULL; } +#define ASCII2BIN(ch) ( (((ch) >= '0') && ((ch) <= '9')) ? ((ch) - '0') : (((ch) >= 'A') && ((ch) <= 'F')) ? ((ch) - 'A' + 10) : ((ch) - 'a' + 10) ) + +#ifndef EXPWD +#define EXPWD ((DBLWORD)1< gLogFilePath; + +extern TInt gTemplateIndex; + +const TInt KMaxBit = 32; + + + +// inline functions +inline void ResetTemplateIndex() + { + gTemplateIndex = 1; + } + + +#endif // _UTILITIES_H_ + diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32utils/nistsecurerng/include/utils/openc.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kerneltest/e32utils/nistsecurerng/include/utils/openc.h Fri Jun 11 15:02:23 2010 +0300 @@ -0,0 +1,86 @@ +/* +* 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 "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 _OPENC_H_ +#define _OPENC_H_ + +#include +#include +#include // Console +#include + +#include + +extern RFs gFileSession; + +// Math functions +double log(double); +double exp(double); +double fabs(double); +double floor(double); +double sqrt(double); +double erf(double); +double erfc(double); + +double pow(double, double); + +// Math trigonometric functions +double sin(double); +double cos(double); + + +// data types +typedef RFile FILE; +#define EOF (-1) +typedef TUint32 u_int32_t; +typedef TInt32 int32_t; + +#define SEEK_SET 0 /* set file offset to offset */ +#define SEEK_CUR 1 /* set file offset to current plus offset */ +#define SEEK_END 2 /* set file offset to EOF plus offset */ + + +// stdio functions +int printf(const char * __restrict, ...); +int scanf(const char * __restrict, ...); +int sprintf(char * __restrict, const char * __restrict, ...); +int puts ( const char * str ); +int putchar ( int character ); +char* strcpy(char* aDest, const char* aSrc); + +FILE *fopen(const char * __restrict, const char * __restrict); +int fclose(FILE *); +int fprintf(FILE * __restrict, const char * __restrict, ...); +int fscanf(FILE * __restrict, const char * __restrict, ...); +TUint32 fread(void * __restrict, TUint32, TUint32, FILE * __restrict); +int fseek(FILE *, long, int); + +int fflush(FILE *); + +// stdlib functions +void* calloc(TUint32, TUint32); +void free(void *); + +void qsort (void* base, TUint32 nmemb, TUint32 size, int (*compar)(const void*, const void*)); + +void exit (int status); + +// Other utility functions +void ReadStringFromConsole(TDes& aString); +TInt ReadIntL(TInt& aValue); + +#endif /* _OPENC_H_ */ diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32utils/nistsecurerng/src/approximateEntropy.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kerneltest/e32utils/nistsecurerng/src/approximateEntropy.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -0,0 +1,111 @@ +/* +* Portions 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 "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: +* The original NIST Statistical Test Suite code is placed in public domain. +* (http://csrc.nist.gov/groups/ST/toolkit/rng/documentation_software.html) +* +* This software was developed at the National Institute of Standards and Technology by +* employees of the Federal Government in the course of their official duties. Pursuant +* to title 17 Section 105 of the United States Code this software is not subject to +* copyright protection and is in the public domain. The NIST Statistical Test Suite is +* an experimental system. NIST assumes no responsibility whatsoever for its use by other +* parties, and makes no guarantees, expressed or implied, about its quality, reliability, +* or any other characteristic. We would appreciate acknowledgment if the software is used. +*/ + +#include "openc.h" +#include "../include/externs.h" +#include "../include/utilities.h" +#include "../include/cephes.h" + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + A P P R O X I M A T E E N T R O P Y T E S T + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +void +ApproximateEntropy(int m, int n) +{ + int i, j, k, r, blockSize, seqLength, powLen, index; + double sum, numOfBlocks, ApEn[2], apen, chi_squared, p_value; + unsigned int *P; + + fprintf(stats[TEST_APEN], "\t\t\tAPPROXIMATE ENTROPY TEST\n"); + fprintf(stats[TEST_APEN], "\t\t--------------------------------------------\n"); + fprintf(stats[TEST_APEN], "\t\tCOMPUTATIONAL INFORMATION:\n"); + fprintf(stats[TEST_APEN], "\t\t--------------------------------------------\n"); + fprintf(stats[TEST_APEN], "\t\t(a) m (block length) = %d\n", m); + + seqLength = n; + r = 0; + + for ( blockSize=m; blockSize<=m+1; blockSize++ ) { + if ( blockSize == 0 ) { + ApEn[0] = 0.00; + r++; + } + else { + numOfBlocks = (double)seqLength; + powLen = (int)pow(2, blockSize+1)-1; + if ( (P = (unsigned int*)calloc(powLen,sizeof(unsigned int)))== NULL ) { + fprintf(stats[TEST_APEN], "ApEn: Insufficient memory available.\n"); + return; + } + for ( i=1; i 0 ) + sum += P[index]*log(P[index]/numOfBlocks); + index++; + } + sum /= numOfBlocks; + ApEn[r] = sum; + r++; + free(P); + } + } + apen = ApEn[0] - ApEn[1]; + + chi_squared = 2.0*seqLength*(log(2) - apen); + p_value = cephes_igamc(pow(2, m-1), chi_squared/2.0); + + fprintf(stats[TEST_APEN], "\t\t(b) n (sequence length) = %d\n", seqLength); + fprintf(stats[TEST_APEN], "\t\t(c) Chi^2 = %f\n", chi_squared); + fprintf(stats[TEST_APEN], "\t\t(d) Phi(m) = %f\n", ApEn[0]); + fprintf(stats[TEST_APEN], "\t\t(e) Phi(m+1) = %f\n", ApEn[1]); + fprintf(stats[TEST_APEN], "\t\t(f) ApEn = %f\n", apen); + fprintf(stats[TEST_APEN], "\t\t(g) Log(2) = %f\n", log(2.0)); + fprintf(stats[TEST_APEN], "\t\t--------------------------------------------\n"); + + if ( m > (int)(log(seqLength)/log(2)-5) ) { + fprintf(stats[TEST_APEN], "\t\tNote: The blockSize = %d exceeds recommended value of %d\n", m, + MAX(1, (int)(log(seqLength)/log(2)-5))); + fprintf(stats[TEST_APEN], "\t\tResults are inaccurate!\n"); + fprintf(stats[TEST_APEN], "\t\t--------------------------------------------\n"); + } + + fprintf(stats[TEST_APEN], "%s\t\tp_value = %f\n\n", p_value < ALPHA ? "FAILURE" : "SUCCESS", p_value); + fprintf(results[TEST_APEN], "%f\n", p_value); +} diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32utils/nistsecurerng/src/assess.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kerneltest/e32utils/nistsecurerng/src/assess.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -0,0 +1,419 @@ +/* +* Portions 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 "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: +*/ + + +/* -------------------------------------------------------------------------- + Title : The NIST Statistical Test Suite + + Date : December 1999 + + Programmer : Juan Soto + + Summary : For use in the evaluation of the randomness of bitstreams + produced by cryptographic random number generators. + + Package : Version 1.0 + + Copyright : (c) 1999 by the National Institute Of Standards & Technology + + History : Version 1.0 by J. Soto, October 1999 + Revised by J. Soto, November 1999 + Revised by Larry Bassham, March 2008 + + Keywords : Pseudorandom Number Generator (PRNG), Randomness, Statistical + Tests, Complementary Error functions, Incomplete Gamma + Function, Random Walks, Rank, Fast Fourier Transform, + Template, Cryptographically Secure PRNG (CSPRNG), + Approximate Entropy (ApEn), Secure Hash Algorithm (SHA-1), + Blum-Blum-Shub (BBS) CSPRNG, Micali-Schnorr (MS) CSPRNG, + + Source : David Banks, Elaine Barker, James Dray, Allen Heckert, + Stefan Leigh, Mark Levenson, James Nechvatal, Andrew Rukhin, + Miles Smid, Juan Soto, Mark Vangel, and San Vo. + + Technical + Assistance : Larry Bassham, Ron Boisvert, James Filliben, Daniel Lozier, + and Bert Rust. + + Warning : Portability Issues. + + Limitation : Amount of memory allocated for workspace. + + Restrictions: Permission to use, copy, and modify this software without + fee is hereby granted, provided that this entire notice is + included in all copies of any software which is or includes + a copy or modification of this software and in all copies + of the supporting documentation for such software. + -------------------------------------------------------------------------- */ +//system include +#include +#include +#include + +// user include +#include "openc.h" +#include "../include/decls.h" +#include "../include/cephes.h" +#include "../include/utilities.h" +#include "../include/generators.h" + +typedef int (*CompareFnType)(const void*, const void*); + +void partitionResultFile(int numOfFiles, int numOfSequences, int option, int testNameID); +void postProcessResults(int option); +int cmp(const double *a, const double *b); +int computeMetrics(char *s, int test); + +int +StartNISTTest() +{ + int i; + int option = 10; /* TEMPLATE LENGTH/STREAM LENGTH/GENERATOR*/ + char *streamFile = NULL; /* STREAM FILENAME */ + + + tp.n = 1000000; // length of the individual bit stream(s) to be processed + tp.blockFrequencyBlockLength = 128; + tp.nonOverlappingTemplateBlockLength = 9; + tp.overlappingTemplateBlockLength = 9; + tp.approximateEntropyBlockLength = 10; + tp.serialBlockLength = 16; + tp.linearComplexitySequenceLength = 500; + tp.numOfBitStreams = 100; + chooseTests(); + fixParameters(); + openOutputStreams(option); + invokeTestSuite(option, streamFile); + fclose(freqfp); + for( i=1; i<=NUMOFTESTS; i++ ) { + if ( stats[i] != NULL ) + fclose(stats[i]); + if ( results[i] != NULL ) + fclose(results[i]); + } + if ( (testVector[0] == 1) || (testVector[TEST_CUSUM] == 1) ) + partitionResultFile(2, tp.numOfBitStreams, option, TEST_CUSUM); + if ( (testVector[0] == 1) || (testVector[TEST_NONPERIODIC] == 1) ) + partitionResultFile(MAXNUMOFTEMPLATES, tp.numOfBitStreams, option, TEST_NONPERIODIC); + if ( (testVector[0] == 1) || (testVector[TEST_RND_EXCURSION] == 1) ) + partitionResultFile(8, tp.numOfBitStreams, option, TEST_RND_EXCURSION); + if ( (testVector[0] == 1) || (testVector[TEST_RND_EXCURSION_VAR] == 1) ) + partitionResultFile(18, tp.numOfBitStreams, option, TEST_RND_EXCURSION_VAR); + if ( (testVector[0] == 1) || (testVector[TEST_SERIAL] == 1) ) + partitionResultFile(2, tp.numOfBitStreams, option, TEST_SERIAL); + fprintf(summary, "------------------------------------------------------------------------------\n"); + fprintf(summary, "RESULTS FOR THE UNIFORMITY OF P-VALUES AND THE PROPORTION OF PASSING SEQUENCES\n"); + fprintf(summary, "------------------------------------------------------------------------------\n"); + fprintf(summary, " C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 P-VALUE PROPORTION STATISTICAL TEST\n"); + fprintf(summary, "------------------------------------------------------------------------------\n"); + postProcessResults(option); + fclose(summary); + + return 1; + } + +void +partitionResultFile(int numOfFiles, int numOfSequences, int option, int testNameID) +{ + int i, k, m, j, start, end, num, numread; + float c; + FILE **fp = (FILE **)calloc(numOfFiles+1, sizeof(FILE *)); + int *results = (int *)calloc(numOfFiles, sizeof(int *)); + char *s[MAXFILESPERMITTEDFORPARTITION]; + char resultsDir[200]; + + for ( i=0; i 0.000000 ) + T[count++] = c; + } + + if ( (A = (double *)calloc(count, sizeof(double))) == NULL ) { + printf("Final Analysis Report aborted due to insufficient workspace\n"); + // Perform cleanup before returning + fclose(fp); + free(T); + return 0; + } + + for ( j=0; j big ) { + pkm2 *= biginv; + pkm1 *= biginv; + qkm2 *= biginv; + qkm1 *= biginv; + } + } while ( t > MACHEP ); + + return ans*ax; +} + +double +cephes_igam(double a, double x) +{ + double ans, ax, c, r; + + if ( (x <= 0) || ( a <= 0) ) + return 0.0; + + if ( (x > 1.0) && (x > a ) ) + return 1.e0 - cephes_igamc(a,x); + + /* Compute x**a * exp(-x) / gamma(a) */ + ax = a * log(x) - x - cephes_lgam(a); + if ( ax < -MAXLOG ) { + printf("igam: UNDERFLOW\n"); + return 0.0; + } + ax = exp(ax); + + /* power series */ + r = a; + c = 1.0; + ans = 1.0; + + do { + r += 1.0; + c *= x/r; + ans += c; + } while ( c/ans > MACHEP ); + + return ans * ax/a; +} + + +/* A[]: Stirling's formula expansion of log gamma + * B[], C[]: log gamma function between 2 and 3 + */ +static unsigned short A[] = { + 0x6661,0x2733,0x9850,0x3f4a, + 0xe943,0xb580,0x7fbd,0xbf43, + 0x5ebb,0x20dc,0x019f,0x3f4a, + 0xa5a1,0x16b0,0xc16c,0xbf66, + 0x554b,0x5555,0x5555,0x3fb5 +}; +static unsigned short B[] = { + 0x6761,0x8ff3,0x8901,0xc095, + 0xb93e,0x355b,0xf234,0xc0e2, + 0x89e5,0xf890,0x3d73,0xc114, + 0xdb51,0xf994,0xbc82,0xc131, + 0xf20b,0x0219,0x4589,0xc13a, + 0x055e,0x5418,0x0c67,0xc12a +}; +static unsigned short C[] = { + /*0x0000,0x0000,0x0000,0x3ff0,*/ + 0x12b2,0x1cf3,0xfd0d,0xc075, + 0xd757,0x7b89,0xaa0d,0xc0d0, + 0x4c9b,0xb974,0xeb84,0xc10a, + 0x0043,0x7195,0x6286,0xc131, + 0xf34c,0x892f,0x5255,0xc143, + 0xe14a,0x6a11,0xce4b,0xc13e +}; + +#define MAXLGM 2.556348e305 + + +/* Logarithm of gamma function */ +double +cephes_lgam(double x) +{ + double p, q, u, w, z; + int i; + + sgngam = 1; + + if ( x < -34.0 ) { + q = -x; + w = cephes_lgam(q); /* note this modifies sgngam! */ + p = floor(q); + if ( p == q ) { +lgsing: + goto loverf; + } + i = (int)p; + if ( (i & 1) == 0 ) + sgngam = -1; + else + sgngam = 1; + z = q - p; + if ( z > 0.5 ) { + p += 1.0; + z = p - q; + } + z = q * sin( PI * z ); + if ( z == 0.0 ) + goto lgsing; + /* z = log(PI) - log( z ) - w;*/ + z = log(PI) - log( z ) - w; + return z; + } + + if ( x < 13.0 ) { + z = 1.0; + p = 0.0; + u = x; + while ( u >= 3.0 ) { + p -= 1.0; + u = x + p; + z *= u; + } + while ( u < 2.0 ) { + if ( u == 0.0 ) + goto lgsing; + z /= u; + p += 1.0; + u = x + p; + } + if ( z < 0.0 ) { + sgngam = -1; + z = -z; + } + else + sgngam = 1; + if ( u == 2.0 ) + return( log(z) ); + p -= 2.0; + x = x + p; + p = x * cephes_polevl( x, (double *)B, 5 ) / cephes_p1evl( x, (double *)C, 6); + + return log(z) + p; + } + + if ( x > MAXLGM ) { +loverf: + printf("lgam: OVERFLOW\n"); + + return sgngam * MAXNUM; + } + + q = ( x - 0.5 ) * log(x) - x + log( sqrt( 2*PI ) ); + if ( x > 1.0e8 ) + return q; + + p = 1.0/(x*x); + if ( x >= 1000.0 ) + q += (( 7.9365079365079365079365e-4 * p + - 2.7777777777777777777778e-3) *p + + 0.0833333333333333333333) / x; + else + q += cephes_polevl( p, (double *)A, 4 ) / x; + + return q; +} + +double +cephes_polevl(double x, double *coef, int N) +{ + double ans; + int i; + double *p; + + p = coef; + ans = *p++; + i = N; + + do + ans = ans * x + *p++; + while ( --i ); + + return ans; +} + +double +cephes_p1evl(double x, double *coef, int N) +{ + double ans; + double *p; + int i; + + p = coef; + ans = x + *p++; + i = N-1; + + do + ans = ans * x + *p++; + while ( --i ); + + return ans; +} + +double +cephes_erf(double x) +{ + static const double two_sqrtpi = 1.128379167095512574; + double sum = x, term = x, xsqr = x * x; + int j = 1; + + if ( fabs(x) > 2.2 ) + return 1.0 - cephes_erfc(x); + + do { + term *= xsqr/j; + sum -= term/(2*j+1); + j++; + term *= xsqr/j; + sum += term/(2*j+1); + j++; + } while ( fabs(term)/sum > rel_error ); + + return two_sqrtpi*sum; +} + +double +cephes_erfc(double x) +{ + static const double one_sqrtpi = 0.564189583547756287; + double a = 1, b = x, c = x, d = x*x + 0.5; + double q1, q2 = b/d, n = 1.0, t; + + if ( fabs(x) < 2.2 ) + return 1.0 - cephes_erf(x); + if ( x < 0 ) + return 2.0 - cephes_erfc(-x); + + do { + t = a*n + b*x; + a = b; + b = t; + t = c*n + d*x; + c = d; + d = t; + n += 0.5; + q1 = q2; + q2 = b/d; + } while ( fabs(q1-q2)/q2 > rel_error ); + + return one_sqrtpi*exp(-x*x)*q2; +} + + +double +cephes_normal(double x) +{ + double arg, result, sqrt2=1.414213562373095048801688724209698078569672; + + if (x > 0) { + arg = x/sqrt2; + result = 0.5 * ( 1 + erf(arg) ); + } + else { + arg = -x/sqrt2; + result = 0.5 * ( 1 - erf(arg) ); + } + + return( result); +} diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32utils/nistsecurerng/src/cusum.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kerneltest/e32utils/nistsecurerng/src/cusum.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -0,0 +1,109 @@ +/* +* Portions 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 "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: +* The original NIST Statistical Test Suite code is placed in public domain. +* (http://csrc.nist.gov/groups/ST/toolkit/rng/documentation_software.html) +* +* This software was developed at the National Institute of Standards and Technology by +* employees of the Federal Government in the course of their official duties. Pursuant +* to title 17 Section 105 of the United States Code this software is not subject to +* copyright protection and is in the public domain. The NIST Statistical Test Suite is +* an experimental system. NIST assumes no responsibility whatsoever for its use by other +* parties, and makes no guarantees, expressed or implied, about its quality, reliability, +* or any other characteristic. We would appreciate acknowledgment if the software is used. +*/ + +#include "openc.h" +#include "../include/externs.h" +#include "../include/cephes.h" + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + C U M U L A T I V E S U M S T E S T + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +void +CumulativeSums(int n) +{ + int S, sup, inf; + int z = 0; + int zrev = 0; + int k; + double sum1, sum2, p_value; + + S = 0; + sup = 0; + inf = 0; + for ( k=0; k sup ) + sup++; + if ( S < inf ) + inf--; + z = (sup > -inf) ? sup : -inf; + zrev = (sup-S > S-inf) ? sup-S : S-inf; + } + + // forward + sum1 = 0.0; + for ( k=(-n/z+1)/4; k<=(n/z-1)/4; k++ ) { + sum1 += cephes_normal(((4*k+1)*z)/sqrt(n)); + sum1 -= cephes_normal(((4*k-1)*z)/sqrt(n)); + } + sum2 = 0.0; + for ( k=(-n/z-3)/4; k<=(n/z-1)/4; k++ ) { + sum2 += cephes_normal(((4*k+3)*z)/sqrt(n)); + sum2 -= cephes_normal(((4*k+1)*z)/sqrt(n)); + } + + p_value = 1.0 - sum1 + sum2; + + fprintf(stats[TEST_CUSUM], "\t\t CUMULATIVE SUMS (FORWARD) TEST\n"); + fprintf(stats[TEST_CUSUM], "\t\t-------------------------------------------\n"); + fprintf(stats[TEST_CUSUM], "\t\tCOMPUTATIONAL INFORMATION:\n"); + fprintf(stats[TEST_CUSUM], "\t\t-------------------------------------------\n"); + fprintf(stats[TEST_CUSUM], "\t\t(a) The maximum partial sum = %d\n", z); + fprintf(stats[TEST_CUSUM], "\t\t-------------------------------------------\n"); + + if ( isNegative(p_value) || isGreaterThanOne(p_value) ) + fprintf(stats[TEST_CUSUM], "\t\tWARNING: P_VALUE IS OUT OF RANGE\n"); + + fprintf(stats[TEST_CUSUM], "%s\t\tp_value = %f\n\n", p_value < ALPHA ? "FAILURE" : "SUCCESS", p_value); + fprintf(results[TEST_CUSUM], "%f\n", p_value); + + // backwards + sum1 = 0.0; + for ( k=(-n/zrev+1)/4; k<=(n/zrev-1)/4; k++ ) { + sum1 += cephes_normal(((4*k+1)*zrev)/sqrt(n)); + sum1 -= cephes_normal(((4*k-1)*zrev)/sqrt(n)); + } + sum2 = 0.0; + for ( k=(-n/zrev-3)/4; k<=(n/zrev-1)/4; k++ ) { + sum2 += cephes_normal(((4*k+3)*zrev)/sqrt(n)); + sum2 -= cephes_normal(((4*k+1)*zrev)/sqrt(n)); + } + p_value = 1.0 - sum1 + sum2; + + fprintf(stats[TEST_CUSUM], "\t\t CUMULATIVE SUMS (REVERSE) TEST\n"); + fprintf(stats[TEST_CUSUM], "\t\t-------------------------------------------\n"); + fprintf(stats[TEST_CUSUM], "\t\tCOMPUTATIONAL INFORMATION:\n"); + fprintf(stats[TEST_CUSUM], "\t\t-------------------------------------------\n"); + fprintf(stats[TEST_CUSUM], "\t\t(a) The maximum partial sum = %d\n", zrev); + fprintf(stats[TEST_CUSUM], "\t\t-------------------------------------------\n"); + + if ( isNegative(p_value) || isGreaterThanOne(p_value) ) + fprintf(stats[TEST_CUSUM], "\t\tWARNING: P_VALUE IS OUT OF RANGE\n"); + + fprintf(stats[TEST_CUSUM], "%s\t\tp_value = %f\n\n", p_value < ALPHA ? "FAILURE" : "SUCCESS", p_value); + fprintf(results[TEST_CUSUM], "%f\n", p_value); +} diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32utils/nistsecurerng/src/dfft.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kerneltest/e32utils/nistsecurerng/src/dfft.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -0,0 +1,1399 @@ +/* +* Portions 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 "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: +* The original of this file was released into the public domain, see below for details +*/ + + +/* Notes from RFB: + + Looks like the user-level routines are: + + Real FFT + + void __ogg_fdrffti(int n, double *wsave, int *ifac) + void __ogg_fdrfftf(int n,double *r,double *wsave,int *ifac) + void __ogg_fdrfftb(int n, double *r, double *wsave, int *ifac) + + __ogg_fdrffti == initialization + __ogg_fdrfftf == forward transform + __ogg_fdrfftb == backward transform + + Parameters are + n == length of sequence + r == sequence to be transformed (input) + == transformed sequence (output) + wsave == work array of length 2n (allocated by caller) + ifac == work array of length 15 (allocated by caller) + + Cosine quarter-wave FFT + + void __ogg_fdcosqi(int n, double *wsave, int *ifac) + void __ogg_fdcosqf(int n,double *x,double *wsave,int *ifac) + void __ogg_fdcosqb(int n,double *x,double *wsave,int *ifac) +*/ + +/******************************************************************** + * * + * THIS FILE IS PART OF THE OggSQUISH SOFTWARE CODEC SOURCE CODE. * + * * + ******************************************************************** + + file: fft.c + function: Fast discrete Fourier and cosine transforms and inverses + author: Monty + modifications by: Monty + last modification date: Jul 1 1996 + + ********************************************************************/ + +/* These Fourier routines were originally based on the Fourier + routines of the same names from the NETLIB bihar and fftpack + fortran libraries developed by Paul N. Swarztrauber at the National + Center for Atmospheric Research in Boulder, CO USA. They have been + reimplemented in C and optimized in a few ways for OggSquish. */ + +/* As the original fortran libraries are public domain, the C Fourier + routines in this file are hereby released to the public domain as + well. The C routines here produce output exactly equivalent to the + original fortran routines. Of particular interest are the facts + that (like the original fortran), these routines can work on + arbitrary length vectors that need not be powers of two in + length. */ + +#include "openc.h" +#define STIN static + +static void drfti1(int n, double *wa, int *ifac){ + static int ntryh[4] = { 4,2,3,5 }; + static double tpi = 6.28318530717958647692528676655900577; + double arg,argh,argld,fi; + int ntry=0,i,j=-1; + int k1, l1, l2, ib; + int ld, ii, ip, is, nq, nr; + int ido, ipm, nfm1; + int nl=n; + int nf=0; + + L101: + j++; + if (j < 4) + ntry=ntryh[j]; + else + ntry+=2; + + L104: + nq=nl/ntry; + nr=nl-ntry*nq; + if (nr!=0) goto L101; + + nf++; + ifac[nf+1]=ntry; + nl=nq; + if(ntry!=2)goto L107; + if(nf==1)goto L107; + + for (i=1;i>1; + ipp2=ip; + idp2=ido; + nbd=(ido-1)>>1; + t0=l1*ido; + t10=ip*ido; + + if(ido==1)goto L119; + for(ik=0;ikl1){ + for(j=1;j>1; + np2=n; + + kc=np2; + for(k=1;k>1; + ipp2=ip; + ipph=(ip+1)>>1; + if(idol1)goto L139; + + is= -ido-1; + t1=0; + for(j=1;j>1; + np2=n; + + for(i=2;i NDIM ) + N = NDIM; + for ( i=1; i<=N; i++ ) { + DZ = floor(DZ); + DZ1 = DZ*DA1; + DZ2 = DZ*DA2; + DOVER1 = floor(DZ1/DTWO31); + DOVER2 = floor(DZ2/DTWO31); + DZ1 = DZ1-DOVER1*DTWO31; + DZ2 = DZ2-DOVER2*DTWO31; + DZ = DZ1+DZ2+DOVER1+DOVER2; + DOVER = floor(DZ/DMDLS); + DZ = DZ-DOVER*DMDLS; + DUNIF[i-1] = DZ/DMDLS; + SEED = DZ; + } + + return SEED; +} + +void +lcg() +{ + double* DUNIF = NULL; + double SEED; + int i; + unsigned bit; + int num_0s, num_1s, v, bitsRead; + + SEED = 23482349.0; + if ( ((epsilon = (BitSequence *) calloc(tp.n, sizeof(BitSequence))) == NULL) || + ((DUNIF = (double*)calloc(tp.n, sizeof(double))) == NULL) ) { + printf("Insufficient memory available.\n"); + exit(1); + } + + for ( v=0; v randBuffer(KRandomByteCount); + + for (int i = 0; i < tp.numOfBitStreams; ++i) + { + gConsole->Printf(_L("Starting test %d\n"), i+1); + num_0s = 0; + num_1s = 0; + bitsRead = 0; + done = 0; + do + { + Math::Random(randBuffer); + done = convertToBits(randBuffer.Ptr() , KRandomByteCount*8, tp.n, &num_0s, &num_1s, &bitsRead); + } while ( !done ); + fprintf(freqfp, "\t\tBITSREAD = %d 0s = %d 1s = %d\n", bitsRead, num_0s, num_1s); + + nist_test_suite(); + } + free(epsilon); + } + diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32utils/nistsecurerng/src/genutils.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kerneltest/e32utils/nistsecurerng/src/genutils.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -0,0 +1,693 @@ +/* +* Portions 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 "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: +* The original NIST Statistical Test Suite code is placed in public domain. +* (http://csrc.nist.gov/groups/ST/toolkit/rng/documentation_software.html) +* +* This software was developed at the National Institute of Standards and Technology by +* employees of the Federal Government in the course of their official duties. Pursuant +* to title 17 Section 105 of the United States Code this software is not subject to +* copyright protection and is in the public domain. The NIST Statistical Test Suite is +* an experimental system. NIST assumes no responsibility whatsoever for its use by other +* parties, and makes no guarantees, expressed or implied, about its quality, reliability, +* or any other characteristic. We would appreciate acknowledgment if the software is used. +*/ + +/* + * file: mp.c + * + * DESCRIPTION + * + * These functions comprise a multi-precision integer arithmetic + * and discrete function package. + */ + +#include "../include/genutils.h" + +#define MAXPLEN 384 + + +/***************************************** +** greater - Test if x > y * +** * +** Returns TRUE (1) if x greater than y, * +** otherwise FALSE (0). * +** * +** Parameters: * +** * +** x Address of array x * +** y Address of array y * +** l Length both x and y in bytes * +** * +******************************************/ +int greater(BYTE *x, BYTE *y, int l) +{ + int i; + + for ( i=0; i y[i] ) + return 1; + + return 0; +} + + +/***************************************** +** less - Test if x < y * +** * +** Returns TRUE (1) if x less than y, * +** otherwise FALSE (0). * +** * +** Parameters: * +** * +** x Address of array x * +** y Address of array y * +** l Length both x and y in bytes * +** * +******************************************/ +int less(BYTE *x, BYTE *y, int l) +{ + int i; + + for ( i=0; i>= 1; /* shift the word right once (ms bit = 0) */ + if ( c1 ) + *p |= 0x80; + c1 = c2; + c2 = 0; + p++; + } + + *p >>= 1; /* shift the word right once (ms bit = 0) */ + if ( c1 ) + *p |= 0x80; +} + + +/***************************************** +** Mult - Multiply two integers * +** * +** A = B * C * +** * +** Parameters: * +** * +** A Address of the result * +** B Address of the multiplier * +** C Address of the multiplicand * +** LB Length of B in bytes * +** LC Length of C in bytes * +** * +** NOTE: A MUST be LB+LC in length * +** * +******************************************/ +int Mult(BYTE *A, BYTE *B, int LB, BYTE *C, int LC) +{ + int i, j; + int k = 0; + DIGIT result; + + + for ( i=LB-1; i>=0; i-- ) { + result = 0; + for ( j=LC-1; j>=0; j-- ) { + k = i+j+1; + result = (DIGIT)((DIGIT)A[k] + ((DIGIT)(B[i] * C[j])) + (result >> 8)); + A[k] = (BYTE)result; + } + A[--k] = (BYTE)(result >> 8); + } + + return 0; +} + + +void ModSqr(BYTE *A, BYTE *B, int LB, BYTE *M, int LM) +{ + + Square(A, B, LB); + Mod(A, 2*LB, M, LM); +} + +void ModMult(BYTE *A, BYTE *B, int LB, BYTE *C, int LC, BYTE *M, int LM) +{ + Mult(A, B, LB, C, LC); + Mod(A, (LB+LC), M, LM); +} + + +/***************************************** +** smult - Multiply array by a scalar. * +** * +** A = b * C * +** * +** Parameters: * +** * +** A Address of the result * +** b Scalar (1 BYTE) * +** C Address of the multiplicand * +** L Length of C in bytes * +** * +** NOTE: A MUST be L+1 in length * +** * +******************************************/ +void smult(BYTE *A, BYTE b, BYTE *C, int L) +{ + int i; + DIGIT result; + + result = 0; + for ( i=L-1; i>0; i-- ) { + result = (DIGIT)(A[i] + ((DIGIT)b * C[i]) + (result >> 8)); + A[i] = (BYTE)(result & 0xff); + A[i-1] = (BYTE)(result >> 8); + } +} + +/***************************************** +** Square() - Square an integer * +** * +** A = B^2 * +** * +** Parameters: * +** * +** A Address of the result * +** B Address of the operand * +** L Length of B in bytes * +** * +** NOTE: A MUST be 2*L in length * +** * +******************************************/ +void Square(BYTE *A, BYTE *B, int L) +{ + Mult(A, B, L, B, L); +} + +/***************************************** +** ModExp - Modular Exponentiation * +** * +** A = B ** C (MOD M) * +** * +** Parameters: * +** * +** A Address of result * +** B Address of mantissa * +** C Address of exponent * +** M Address of modulus * +** LB Length of B in bytes * +** LC Length of C in bytes * +** LM Length of M in bytes * +** * +** NOTE: The integer B must be less * +** than the modulus M. * +** NOTE: A must be at least 3*LM * +** bytes long. However, the * +** result stored in A will be * +** only LM bytes long. * +******************************************/ +void ModExp(BYTE *A, BYTE *B, int LB, BYTE *C, int LC, BYTE *M, int LM) +{ + BYTE wmask; + int bits; + + bits = LC*8; + wmask = 0x80; + + A[LM-1] = 1; + + while ( !sniff_bit(C,wmask) ) { + wmask >>= 1; + bits--; + if ( !wmask ) { + wmask = 0x80; + C++; + } + } + + while ( bits-- ) { + memset(A+LM, 0x00, LM*2); + + /* temp = A*A (MOD M) */ + ModSqr(A+LM, A,LM, M,LM); + + /* A = lower L bytes of temp */ + memcpy(A, A+LM*2, LM); + memset(A+LM, 0x00, 2*LM); + + if ( sniff_bit(C,wmask) ) { + memset(A+LM, 0x00, (LM+LB)); + ModMult(A+LM, B,LB, A,LM, M,LM); /* temp = B * A (MOD M) */ + memcpy(A, A+LM+(LM+LB)-LM, LM); /* A = lower LM bytes of temp */ + memset(A+LM, 0x00, 2*LM); + } + + wmask >>= 1; + if ( !wmask ) { + wmask = 0x80; + C++; + } + } +} + + +/* DivMod: + * + * computes: + * quot = x / n + * rem = x % n + * returns: + * length of "quot" + * + * len of rem is lenx+1 + */ +int DivMod(BYTE *x, int lenx, BYTE *n, int lenn, BYTE *quot, BYTE *rem) +{ + BYTE *tx, *tn, *ttx, *ts, bmult[1]; + int i, shift, lgth_x, lgth_n, t_len, lenq; + DIGIT tMSn, mult; + ULONG tMSx; + int underflow; + + tx = x; + tn = n; + + /* point to the MSD of n */ + for ( i=0, lgth_n=lenn; i n, WATCH OUT if lgth_x == lgth_n */ + while ( (lgth_x > lgth_n) || ((lgth_x == lgth_n) && !less(tx, tn, lgth_n)) ) { + shift = 1; + if ( lgth_n == 1 ) { + if ( *tx < *tn ) { + tMSx = (DIGIT) (((*tx) << 8) | *(tx+1)); + tMSn = *tn; + shift = 0; + } + else { + tMSx = *tx; + tMSn = *tn; + } + } + else if ( lgth_n > 1 ) { + tMSx = (DIGIT) (((*tx) << 8) | *(tx+1)); + tMSn = (DIGIT) (((*tn) << 8) | *(tn+1)); + if ( (tMSx < tMSn) || ((tMSx == tMSn) && less(tx, tn, lgth_n)) ) { + tMSx = (tMSx << 8) | *(tx+2); + shift = 0; + } + } + else { + tMSx = (DIGIT) (((*tx) << 8) | *(tx+1)); + tMSn = *tn; + shift = 0; + } + + mult = (DIGIT) (tMSx / tMSn); + if ( mult > 0xff ) + mult = 0xff; + bmult[0] = (BYTE)(mult & 0xff); + + ts = rem; + do { + memset(ts, 0x00, lgth_x+1); + Mult(ts, tn, lgth_n, bmult, 1); + + underflow = 0; + if ( shift ) { + if ( ts[0] != 0 ) + underflow = 1; + else { + for ( i=0; i= 0) ) { + accum = (DIGIT)(accum + A[tL]); + A[tL--] = (BYTE)(accum & 0xff); + accum = (DIGIT)(accum >> 8); + } + + return accum; +} + + +/* + * add() + * + * A = A + B + * + * LB must be <= LA + * + */ +BYTE add(BYTE *A, int LA, BYTE *B, int LB) +{ + int i, indexA, indexB; + DIGIT accum; + + indexA = LA - 1; /* LSD of result */ + indexB = LB - 1; /* LSD of B */ + + accum = 0; + for ( i = 0; i < LB; i++ ) { + accum = (DIGIT)(accum + A[indexA]); + accum = (DIGIT)(accum + B[indexB--]); + A[indexA--] = (BYTE)(accum & 0xff); + accum = (DIGIT)(accum >> 8); + } + + if ( LA > LB ) + while ( accum && (indexA >= 0) ) { + accum = (DIGIT)(accum + A[indexA]); + A[indexA--] = (BYTE)(accum & 0xff); + accum = (DIGIT)(accum >> 8); + } + + return (BYTE)accum; +} + + +void prettyprintBstr(char *S, BYTE *A, int L) +{ + int i, extra, ctrb, ctrl; + + if ( L == 0 ) + printf("%s ", S); + else + printf("%s\n\t", S); + extra = L % 24; + if ( extra ) { + ctrb = 0; + for ( i=0; i<24-extra; i++ ) { + printf(" "); + if ( ++ctrb == 4) { + printf(" "); + ctrb = 0; + } + } + + for ( i=0; i> 16 ); + buffer[ count ] = ( ( value & 0xFF00FF00L ) >> 8 ) | ( ( value & 0x00FF00FFL ) << 8 ); + } +} + +void +ahtopb (char *ascii_hex, BYTE *p_binary, int bin_len) +{ + BYTE nibble; + int i; + + for ( i=0; i 'F' ) + nibble -= 0x20; + if ( nibble > '9' ) + nibble -= 7; + nibble -= '0'; + p_binary[i] = (BYTE)(nibble << 4); + + nibble = ascii_hex[i * 2 + 1]; + if ( nibble > 'F' ) + nibble -= 0x20; + if ( nibble > '9' ) + nibble -= 7; + nibble -= '0'; + p_binary[i] = (BYTE)(p_binary[i] + nibble); + } +} diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32utils/nistsecurerng/src/linearComplexity.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kerneltest/e32utils/nistsecurerng/src/linearComplexity.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -0,0 +1,153 @@ +/* +* Portions 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 "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: +* The original NIST Statistical Test Suite code is placed in public domain. +* (http://csrc.nist.gov/groups/ST/toolkit/rng/documentation_software.html) +* +* This software was developed at the National Institute of Standards and Technology by +* employees of the Federal Government in the course of their official duties. Pursuant +* to title 17 Section 105 of the United States Code this software is not subject to +* copyright protection and is in the public domain. The NIST Statistical Test Suite is +* an experimental system. NIST assumes no responsibility whatsoever for its use by other +* parties, and makes no guarantees, expressed or implied, about its quality, reliability, +* or any other characteristic. We would appreciate acknowledgment if the software is used. +*/ + +#include "openc.h" +#include "../include/externs.h" +#include "../include/cephes.h" + +void +LinearComplexity(int M, int n) +{ + int i, ii, j, d, N, L, m, N_, sign, K = 6; + double p_value, T_, mean, nu[7], chi2; + double pi[7] = { 0.01047, 0.03125, 0.12500, 0.50000, 0.25000, 0.06250, 0.020833 }; + BitSequence* T = NULL; + BitSequence* P = NULL; + BitSequence* B_ = NULL; + BitSequence* C = NULL; + + N = (int)floor(n/M); + if ( ((B_ = (BitSequence *) calloc(M, sizeof(BitSequence))) == NULL) || + ((C = (BitSequence *) calloc(M, sizeof(BitSequence))) == NULL) || + ((P = (BitSequence *) calloc(M, sizeof(BitSequence))) == NULL) || + ((T = (BitSequence *) calloc(M, sizeof(BitSequence))) == NULL) ) { + printf("Insufficient Memory for Work Space:: Linear Complexity Test\n"); + if ( B_!= NULL ) + free(B_); + if ( C != NULL ) + free(C); + if ( P != NULL ) + free(P); + if ( T != NULL ) + free(T); + return; + } + + + fprintf(stats[TEST_LINEARCOMPLEXITY], "-----------------------------------------------------\n"); + fprintf(stats[TEST_LINEARCOMPLEXITY], "\tL I N E A R C O M P L E X I T Y\n"); + fprintf(stats[TEST_LINEARCOMPLEXITY], "-----------------------------------------------------\n"); + fprintf(stats[TEST_LINEARCOMPLEXITY], "\tM (substring length) = %d\n", M); + fprintf(stats[TEST_LINEARCOMPLEXITY], "\tN (number of substrings) = %d\n", N); + fprintf(stats[TEST_LINEARCOMPLEXITY], "-----------------------------------------------------\n"); + fprintf(stats[TEST_LINEARCOMPLEXITY], " F R E Q U E N C Y \n"); + fprintf(stats[TEST_LINEARCOMPLEXITY], "-----------------------------------------------------\n"); + fprintf(stats[TEST_LINEARCOMPLEXITY], " C0 C1 C2 C3 C4 C5 C6 CHI2 P-value\n"); + fprintf(stats[TEST_LINEARCOMPLEXITY], "-----------------------------------------------------\n"); + fprintf(stats[TEST_LINEARCOMPLEXITY], "\tNote: %d bits were discarded!\n", n%M); + + for ( i=0; i -2.5 && T_ <= -1.5 ) + nu[1]++; + else if ( T_ > -1.5 && T_ <= -0.5 ) + nu[2]++; + else if ( T_ > -0.5 && T_ <= 0.5 ) + nu[3]++; + else if ( T_ > 0.5 && T_ <= 1.5 ) + nu[4]++; + else if ( T_ > 1.5 && T_ <= 2.5 ) + nu[5]++; + else + nu[6]++; + } + chi2 = 0.00; + for ( i=0; i v_n_obs ) + v_n_obs = run; + } + else + run = 0; + } + if ( v_n_obs < V[0] ) + nu[0]++; + for ( j=0; j<=K; j++ ) { + if ( v_n_obs == V[j] ) + nu[j]++; + } + if ( v_n_obs > V[K] ) + nu[K]++; + } + + chi2 = 0.0; + for ( i=0; i<=K; i++ ) + chi2 += ((nu[i] - N * pi[i]) * (nu[i] - N * pi[i])) / (N * pi[i]); + + pval = cephes_igamc((double)(K/2.0), chi2 / 2.0); + + fprintf(stats[TEST_LONGEST_RUN], "\t\t\t LONGEST RUNS OF ONES TEST\n"); + fprintf(stats[TEST_LONGEST_RUN], "\t\t---------------------------------------------\n"); + fprintf(stats[TEST_LONGEST_RUN], "\t\tCOMPUTATIONAL INFORMATION:\n"); + fprintf(stats[TEST_LONGEST_RUN], "\t\t---------------------------------------------\n"); + fprintf(stats[TEST_LONGEST_RUN], "\t\t(a) N (# of substrings) = %d\n", N); + fprintf(stats[TEST_LONGEST_RUN], "\t\t(b) M (Substring Length) = %d\n", M); + fprintf(stats[TEST_LONGEST_RUN], "\t\t(c) Chi^2 = %f\n", chi2); + fprintf(stats[TEST_LONGEST_RUN], "\t\t---------------------------------------------\n"); + fprintf(stats[TEST_LONGEST_RUN], "\t\t F R E Q U E N C Y\n"); + fprintf(stats[TEST_LONGEST_RUN], "\t\t---------------------------------------------\n"); + + if ( K == 3 ) { + fprintf(stats[TEST_LONGEST_RUN], "\t\t <=1 2 3 >=4 P-value Assignment"); + fprintf(stats[TEST_LONGEST_RUN], "\n\t\t %3d %3d %3d %3d ", nu[0], nu[1], nu[2], nu[3]); + } + else if ( K == 5 ) { + fprintf(stats[TEST_LONGEST_RUN], "\t\t<=4 5 6 7 8 >=9 P-value Assignment"); + fprintf(stats[TEST_LONGEST_RUN], "\n\t\t %3d %3d %3d %3d %3d %3d ", nu[0], nu[1], nu[2], + nu[3], nu[4], nu[5]); + } + else { + fprintf(stats[TEST_LONGEST_RUN],"\t\t<=10 11 12 13 14 15 >=16 P-value Assignment"); + fprintf(stats[TEST_LONGEST_RUN],"\n\t\t %3d %3d %3d %3d %3d %3d %3d ", nu[0], nu[1], nu[2], + nu[3], nu[4], nu[5], nu[6]); + } + if ( isNegative(pval) || isGreaterThanOne(pval) ) + fprintf(stats[TEST_LONGEST_RUN], "WARNING: P_VALUE IS OUT OF RANGE.\n"); + + fprintf(stats[TEST_LONGEST_RUN], "%s\t\tp_value = %f\n\n", pval < ALPHA ? "FAILURE" : "SUCCESS", pval); + fprintf(results[TEST_LONGEST_RUN], "%f\n", pval); +} diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32utils/nistsecurerng/src/math/erf.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kerneltest/e32utils/nistsecurerng/src/math/erf.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -0,0 +1,355 @@ +/* +* Portions Copyright (c) 2006, 2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +*/ + +/* @(#)s_erf.c 5.1 93/09/24 */ +/* + * ==================================================== + * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. + * + * Developed at SunPro, a Sun Microsystems, Inc. business. + * Permission to use, copy, modify, and distribute this + * software is freely granted, provided that this notice + * is preserved. + * ==================================================== + */ +#ifndef __SYMBIAN32__ +#ifndef lint +static char rcsid[] = "$FreeBSD: src/lib/msun/src/s_erf.c,v 1.7 2002/05/28 18:15:04 alfred Exp $"; +#endif +#endif //__SYMBIAN32__ + +#include + +#include "openc.h" + +/* double erf(double x) + * double erfc(double x) + * x + * 2 |\ + * erf(x) = --------- | exp(-t*t)dt + * sqrt(pi) \| + * 0 + * + * erfc(x) = 1-erf(x) + * Note that + * erf(-x) = -erf(x) + * erfc(-x) = 2 - erfc(x) + * + * Method: + * 1. For |x| in [0, 0.84375] + * erf(x) = x + x*R(x^2) + * erfc(x) = 1 - erf(x) if x in [-.84375,0.25] + * = 0.5 + ((0.5-x)-x*R) if x in [0.25,0.84375] + * where R = P/Q where P is an odd poly of degree 8 and + * Q is an odd poly of degree 10. + * -57.90 + * | R - (erf(x)-x)/x | <= 2 + * + * + * Remark. The formula is derived by noting + * erf(x) = (2/sqrt(pi))*(x - x^3/3 + x^5/10 - x^7/42 + ....) + * and that + * 2/sqrt(pi) = 1.128379167095512573896158903121545171688 + * is close to one. The interval is chosen because the fix + * point of erf(x) is near 0.6174 (i.e., erf(x)=x when x is + * near 0.6174), and by some experiment, 0.84375 is chosen to + * guarantee the error is less than one ulp for erf. + * + * 2. For |x| in [0.84375,1.25], let s = |x| - 1, and + * c = 0.84506291151 rounded to single (24 bits) + * erf(x) = sign(x) * (c + P1(s)/Q1(s)) + * erfc(x) = (1-c) - P1(s)/Q1(s) if x > 0 + * 1+(c+P1(s)/Q1(s)) if x < 0 + * |P1/Q1 - (erf(|x|)-c)| <= 2**-59.06 + * Remark: here we use the taylor series expansion at x=1. + * erf(1+s) = erf(1) + s*Poly(s) + * = 0.845.. + P1(s)/Q1(s) + * That is, we use rational approximation to approximate + * erf(1+s) - (c = (single)0.84506291151) + * Note that |P1/Q1|< 0.078 for x in [0.84375,1.25] + * where + * P1(s) = degree 6 poly in s + * Q1(s) = degree 6 poly in s + * + * 3. For x in [1.25,1/0.35(~2.857143)], + * erfc(x) = (1/x)*exp(-x*x-0.5625+R1/S1) + * erf(x) = 1 - erfc(x) + * where + * R1(z) = degree 7 poly in z, (z=1/x^2) + * S1(z) = degree 8 poly in z + * + * 4. For x in [1/0.35,28] + * erfc(x) = (1/x)*exp(-x*x-0.5625+R2/S2) if x > 0 + * = 2.0 - (1/x)*exp(-x*x-0.5625+R2/S2) if -6 x >= 28 + * erf(x) = sign(x) *(1 - tiny) (raise inexact) + * erfc(x) = tiny*tiny (raise underflow) if x > 0 + * = 2 - tiny if x<0 + * + * 7. Special case: + * erf(0) = 0, erf(inf) = 1, erf(-inf) = -1, + * erfc(0) = 1, erfc(inf) = 0, erfc(-inf) = 2, + * erfc/erf(NaN) is NaN + */ + + + + + +////-------------------------------------------------- + +#define __ieee754_exp exp +typedef TUint32 u_int32_t; +typedef TInt32 int32_t; + +typedef union + { + double value; + struct + { + u_int32_t lsw; + u_int32_t msw; + } parts; + } ieee_double_shape_type; + + +inline void GET_HIGH_WORD(int32_t& aHighWord, double aValue) + { + ieee_double_shape_type gh_u; + gh_u.value = aValue; + aHighWord = gh_u.parts.msw; + } + +inline void SET_LOW_WORD(double& aValue, int32_t aLowWord) + { + ieee_double_shape_type sl_u; + sl_u.value = aValue; + sl_u.parts.lsw = aLowWord; + aValue = sl_u.value; + } + +//----------------------------------------------------------------math_private.h + +static const double tiny = 1e-300; +static const double tinySquare = 0.00; // tiny * tiny +static const double half = 5.00000000000000000000e-01; /* 0x3FE00000, 0x00000000 */ +static const double one = 1.00000000000000000000e+00; /* 0x3FF00000, 0x00000000 */ +static const double two = 2.00000000000000000000e+00; /* 0x40000000, 0x00000000 */ + /* c = (float)0.84506291151 */ +static const double erx = 8.45062911510467529297e-01; /* 0x3FEB0AC1, 0x60000000 */ +/* + * Coefficients for approximation to erf on [0,0.84375] + */ +static const double efx = 1.28379167095512586316e-01; /* 0x3FC06EBA, 0x8214DB69 */ +static const double efx8 = 1.02703333676410069053e+00; /* 0x3FF06EBA, 0x8214DB69 */ +static const double pp0 = 1.28379167095512558561e-01; /* 0x3FC06EBA, 0x8214DB68 */ +static const double pp1 = -3.25042107247001499370e-01; /* 0xBFD4CD7D, 0x691CB913 */ +static const double pp2 = -2.84817495755985104766e-02; /* 0xBF9D2A51, 0xDBD7194F */ +static const double pp3 = -5.77027029648944159157e-03; /* 0xBF77A291, 0x236668E4 */ +static const double pp4 = -2.37630166566501626084e-05; /* 0xBEF8EAD6, 0x120016AC */ +static const double qq1 = 3.97917223959155352819e-01; /* 0x3FD97779, 0xCDDADC09 */ +static const double qq2 = 6.50222499887672944485e-02; /* 0x3FB0A54C, 0x5536CEBA */ +static const double qq3 = 5.08130628187576562776e-03; /* 0x3F74D022, 0xC4D36B0F */ +static const double qq4 = 1.32494738004321644526e-04; /* 0x3F215DC9, 0x221C1A10 */ +static const double qq5 = -3.96022827877536812320e-06; /* 0xBED09C43, 0x42A26120 */ +/* + * Coefficients for approximation to erf in [0.84375,1.25] + */ +static const double pa0 = -2.36211856075265944077e-03; /* 0xBF6359B8, 0xBEF77538 */ +static const double pa1 = 4.14856118683748331666e-01; /* 0x3FDA8D00, 0xAD92B34D */ +static const double pa2 = -3.72207876035701323847e-01; /* 0xBFD7D240, 0xFBB8C3F1 */ +static const double pa3 = 3.18346619901161753674e-01; /* 0x3FD45FCA, 0x805120E4 */ +static const double pa4 = -1.10894694282396677476e-01; /* 0xBFBC6398, 0x3D3E28EC */ +static const double pa5 = 3.54783043256182359371e-02; /* 0x3FA22A36, 0x599795EB */ +static const double pa6 = -2.16637559486879084300e-03; /* 0xBF61BF38, 0x0A96073F */ +static const double qa1 = 1.06420880400844228286e-01; /* 0x3FBB3E66, 0x18EEE323 */ +static const double qa2 = 5.40397917702171048937e-01; /* 0x3FE14AF0, 0x92EB6F33 */ +static const double qa3 = 7.18286544141962662868e-02; /* 0x3FB2635C, 0xD99FE9A7 */ +static const double qa4 = 1.26171219808761642112e-01; /* 0x3FC02660, 0xE763351F */ +static const double qa5 = 1.36370839120290507362e-02; /* 0x3F8BEDC2, 0x6B51DD1C */ +static const double qa6 = 1.19844998467991074170e-02; /* 0x3F888B54, 0x5735151D */ +/* + * Coefficients for approximation to erfc in [1.25,1/0.35] + */ +static const double ra0 = -9.86494403484714822705e-03; /* 0xBF843412, 0x600D6435 */ +static const double ra1 = -6.93858572707181764372e-01; /* 0xBFE63416, 0xE4BA7360 */ +static const double ra2 = -1.05586262253232909814e+01; /* 0xC0251E04, 0x41B0E726 */ +static const double ra3 = -6.23753324503260060396e+01; /* 0xC04F300A, 0xE4CBA38D */ +static const double ra4 = -1.62396669462573470355e+02; /* 0xC0644CB1, 0x84282266 */ +static const double ra5 = -1.84605092906711035994e+02; /* 0xC067135C, 0xEBCCABB2 */ +static const double ra6 = -8.12874355063065934246e+01; /* 0xC0545265, 0x57E4D2F2 */ +static const double ra7 = -9.81432934416914548592e+00; /* 0xC023A0EF, 0xC69AC25C */ +static const double sa1 = 1.96512716674392571292e+01; /* 0x4033A6B9, 0xBD707687 */ +static const double sa2 = 1.37657754143519042600e+02; /* 0x4061350C, 0x526AE721 */ +static const double sa3 = 4.34565877475229228821e+02; /* 0x407B290D, 0xD58A1A71 */ +static const double sa4 = 6.45387271733267880336e+02; /* 0x40842B19, 0x21EC2868 */ +static const double sa5 = 4.29008140027567833386e+02; /* 0x407AD021, 0x57700314 */ +static const double sa6 = 1.08635005541779435134e+02; /* 0x405B28A3, 0xEE48AE2C */ +static const double sa7 = 6.57024977031928170135e+00; /* 0x401A47EF, 0x8E484A93 */ +static const double sa8 = -6.04244152148580987438e-02; /* 0xBFAEEFF2, 0xEE749A62 */ +/* + * Coefficients for approximation to erfc in [1/.35,28] + */ +static const double rb0 = -9.86494292470009928597e-03; /* 0xBF843412, 0x39E86F4A */ +static const double rb1 = -7.99283237680523006574e-01; /* 0xBFE993BA, 0x70C285DE */ +static const double rb2 = -1.77579549177547519889e+01; /* 0xC031C209, 0x555F995A */ +static const double rb3 = -1.60636384855821916062e+02; /* 0xC064145D, 0x43C5ED98 */ +static const double rb4 = -6.37566443368389627722e+02; /* 0xC083EC88, 0x1375F228 */ +static const double rb5 = -1.02509513161107724954e+03; /* 0xC0900461, 0x6A2E5992 */ +static const double rb6 = -4.83519191608651397019e+02; /* 0xC07E384E, 0x9BDC383F */ +static const double sb1 = 3.03380607434824582924e+01; /* 0x403E568B, 0x261D5190 */ +static const double sb2 = 3.25792512996573918826e+02; /* 0x40745CAE, 0x221B9F0A */ +static const double sb3 = 1.53672958608443695994e+03; /* 0x409802EB, 0x189D5118 */ +static const double sb4 = 3.19985821950859553908e+03; /* 0x40A8FFB7, 0x688C246A */ +static const double sb5 = 2.55305040643316442583e+03; /* 0x40A3F219, 0xCEDF3BE6 */ +static const double sb6 = 4.74528541206955367215e+02; /* 0x407DA874, 0xE79FE763 */ +static const double sb7 = -2.24409524465858183362e+01; /* 0xC03670E2, 0x42712D62 */ + +double erf(double x) +{ + TInt32 hx,ix,i; + double R,S,P,Q,s,y,z,r; + GET_HIGH_WORD(hx,x); + ix = hx&0x7fffffff; + if(ix>=0x7ff00000) { /* erf(nan)=nan */ + i = ((TUint32)hx>>31)<<1; + return (double)(1-i)+one/x; /* erf(+-inf)=+-1 */ + } + + if(ix < 0x3feb0000) { /* |x|<0.84375 */ + if(ix < 0x3e300000) { /* |x|<2**-28 */ + if (ix < 0x00800000) + return 0.125*(8.0*x+efx8*x); /*avoid underflow */ + return x + efx*x; + } + z = x*x; + r = pp0+z*(pp1+z*(pp2+z*(pp3+z*pp4))); + s = one+z*(qq1+z*(qq2+z*(qq3+z*(qq4+z*qq5)))); + y = r/s; + return x + x*y; + } + if(ix < 0x3ff40000) { /* 0.84375 <= |x| < 1.25 */ + s = fabs(x)-one; + P = pa0+s*(pa1+s*(pa2+s*(pa3+s*(pa4+s*(pa5+s*pa6))))); + Q = one+s*(qa1+s*(qa2+s*(qa3+s*(qa4+s*(qa5+s*qa6))))); + if(hx>=0) return erx + P/Q; else return -erx - P/Q; + } + if (ix >= 0x40180000) { /* inf>|x|>=6 */ + if(hx>=0) return one-tiny; else return tiny-one; + } + x = fabs(x); + s = one/(x*x); + if(ix< 0x4006DB6E) { /* |x| < 1/0.35 */ + R=ra0+s*(ra1+s*(ra2+s*(ra3+s*(ra4+s*( + ra5+s*(ra6+s*ra7)))))); + S=one+s*(sa1+s*(sa2+s*(sa3+s*(sa4+s*( + sa5+s*(sa6+s*(sa7+s*sa8))))))); + } else { /* |x| >= 1/0.35 */ + R=rb0+s*(rb1+s*(rb2+s*(rb3+s*(rb4+s*( + rb5+s*rb6))))); + S=one+s*(sb1+s*(sb2+s*(sb3+s*(sb4+s*( + sb5+s*(sb6+s*sb7)))))); + } + z = x; + SET_LOW_WORD(z,0); + r = __ieee754_exp(-z*z-0.5625)*__ieee754_exp((z-x)*(z+x)+R/S); + if(hx>=0) return one-r/x; else return r/x-one; +} + +double erfc(double x) +{ + int32_t hx,ix; + double R,S,P,Q,s,y,z,r; + GET_HIGH_WORD(hx,x); + ix = hx&0x7fffffff; + if(ix>=0x7ff00000) { /* erfc(nan)=nan */ + /* erfc(+-inf)=0,2 */ + return (double)(((u_int32_t)hx>>31)<<1)+one/x; + } + + if(ix < 0x3feb0000) { /* |x|<0.84375 */ + if(ix < 0x3c700000) /* |x|<2**-56 */ + return one-x; + z = x*x; + r = pp0+z*(pp1+z*(pp2+z*(pp3+z*pp4))); + s = one+z*(qq1+z*(qq2+z*(qq3+z*(qq4+z*qq5)))); + y = r/s; + if(hx < 0x3fd00000) { /* x<1/4 */ + return one-(x+x*y); + } else { + r = x*y; + r += (x-half); + return half - r ; + } + } + if(ix < 0x3ff40000) { /* 0.84375 <= |x| < 1.25 */ + s = fabs(x)-one; + P = pa0+s*(pa1+s*(pa2+s*(pa3+s*(pa4+s*(pa5+s*pa6))))); + Q = one+s*(qa1+s*(qa2+s*(qa3+s*(qa4+s*(qa5+s*qa6))))); + if(hx>=0) { + z = one-erx; return z - P/Q; + } else { + z = erx+P/Q; return one+z; + } + } + if (ix < 0x403c0000) { /* |x|<28 */ + x = fabs(x); + s = one/(x*x); + if(ix< 0x4006DB6D) { /* |x| < 1/.35 ~ 2.857143*/ + R=ra0+s*(ra1+s*(ra2+s*(ra3+s*(ra4+s*( + ra5+s*(ra6+s*ra7)))))); + S=one+s*(sa1+s*(sa2+s*(sa3+s*(sa4+s*( + sa5+s*(sa6+s*(sa7+s*sa8))))))); + } else { /* |x| >= 1/.35 ~ 2.857143 */ + if(hx<0&&ix>=0x40180000) return two-tiny;/* x < -6 */ + R=rb0+s*(rb1+s*(rb2+s*(rb3+s*(rb4+s*( + rb5+s*rb6))))); + S=one+s*(sb1+s*(sb2+s*(sb3+s*(sb4+s*( + sb5+s*(sb6+s*sb7)))))); + } + z = x; + SET_LOW_WORD(z,0); + r = __ieee754_exp(-z*z-0.5625)* + __ieee754_exp((z-x)*(z+x)+R/S); + if(hx>0) return r/x; else return two-r/x; + } else { + if(hx>0) return tinySquare; else return two-tiny; + } +} diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32utils/nistsecurerng/src/matrix.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kerneltest/e32utils/nistsecurerng/src/matrix.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -0,0 +1,189 @@ +/* +* Portions 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 "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: +* The original NIST Statistical Test Suite code is placed in public domain. +* (http://csrc.nist.gov/groups/ST/toolkit/rng/documentation_software.html) +* +* This software was developed at the National Institute of Standards and Technology by +* employees of the Federal Government in the course of their official duties. Pursuant +* to title 17 Section 105 of the United States Code this software is not subject to +* copyright protection and is in the public domain. The NIST Statistical Test Suite is +* an experimental system. NIST assumes no responsibility whatsoever for its use by other +* parties, and makes no guarantees, expressed or implied, about its quality, reliability, +* or any other characteristic. We would appreciate acknowledgment if the software is used. +*/ + +#include "openc.h" +#include "../include/externs.h" +#include "../include/matrix.h" + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * +R A N K A L G O R I T H M R O U T I N E S +* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +#define MATRIX_FORWARD_ELIMINATION 0 +#define MATRIX_BACKWARD_ELIMINATION 1 + +int +computeRank(int M, int Q, BitSequence **matrix) +{ + int i, rank, m=MIN(M,Q); + + /* FORWARD APPLICATION OF ELEMENTARY ROW OPERATIONS */ + for ( i=0; i0; i-- ) { + if ( matrix[i][i] == 1 ) + perform_elementary_row_operations(MATRIX_BACKWARD_ELIMINATION, i, M, Q, matrix); + else { /* matrix[i][i] = 0 */ + if ( find_unit_element_and_swap(MATRIX_BACKWARD_ELIMINATION, i, M, Q, matrix) == 1 ) + perform_elementary_row_operations(MATRIX_BACKWARD_ELIMINATION, i, M, Q, matrix); + } + } + + rank = determine_rank(m, M, Q, matrix); + + return rank; +} + +void +perform_elementary_row_operations(int flag, int i, int M, int Q, BitSequence **A) +{ + int j, k; + + if ( flag == MATRIX_FORWARD_ELIMINATION ) { + for ( j=i+1; j=0; j-- ) + if ( A[j][i] == 1 ) + for ( k=0; k= 0) && (A[index][i] == 0) ) + index--; + if ( index >= 0 ) + row_op = swap_rows(i, index, Q, A); + } + + return row_op; +} + +int +swap_rows(int i, int index, int Q, BitSequence **A) +{ + int p; + BitSequence temp; + + for ( p=0; p 1 ) + { + for(int index = 0; index < (SKIP-1)*2*m; ++index) + { + GetNextTemplateItem(templateSequence); + } + } + fprintf(results[TEST_NONPERIODIC], "%f\n", p_value); + } + } + + fprintf(stats[TEST_NONPERIODIC], "\n"); + free(Wj); +} diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32utils/nistsecurerng/src/overlappingTemplateMatchings.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kerneltest/e32utils/nistsecurerng/src/overlappingTemplateMatchings.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -0,0 +1,132 @@ +/* +* Portions 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 "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: +* The original NIST Statistical Test Suite code is placed in public domain. +* (http://csrc.nist.gov/groups/ST/toolkit/rng/documentation_software.html) +* +* This software was developed at the National Institute of Standards and Technology by +* employees of the Federal Government in the course of their official duties. Pursuant +* to title 17 Section 105 of the United States Code this software is not subject to +* copyright protection and is in the public domain. The NIST Statistical Test Suite is +* an experimental system. NIST assumes no responsibility whatsoever for its use by other +* parties, and makes no guarantees, expressed or implied, about its quality, reliability, +* or any other characteristic. We would appreciate acknowledgment if the software is used. +*/ + +#include "openc.h" +#include "../include/externs.h" +#include "../include/utilities.h" +#include "../include/cephes.h" + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + O V E R L A P P I N G T E M P L A T E T E S T + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ +double Pr(int u, double eta); + +void +OverlappingTemplateMatchings(int m, int n) +{ + int i, k, match; + double W_obs, eta, sum, chi2, p_value, lambda; + int M, N, j, K = 5; + unsigned int nu[6] = { 0, 0, 0, 0, 0, 0 }; + double pi[6] = { 0.143783, 0.139430, 0.137319, 0.124314, 0.106209, 0.348945 }; + BitSequence *sequence; + + M = 1032; + N = n/M; + + if ( (sequence = (BitSequence *) calloc(m, sizeof(BitSequence))) == NULL ) { + fprintf(stats[TEST_OVERLAPPING], "\t\t OVERLAPPING TEMPLATE OF ALL ONES TEST\n"); + fprintf(stats[TEST_OVERLAPPING], "\t\t---------------------------------------------\n"); + fprintf(stats[TEST_OVERLAPPING], "\t\tTEMPLATE DEFINITION: Insufficient memory, Overlapping Template Matchings test aborted!\n"); + } + else + for ( i=0; i=5 Chi^2 P-value Assignment\n"); + fprintf(stats[TEST_OVERLAPPING], "\t\t-----------------------------------------------\n"); + fprintf(stats[TEST_OVERLAPPING], "\t\t%3d %3d %3d %3d %3d %3d %f ", + nu[0], nu[1], nu[2], nu[3], nu[4], nu[5], chi2); + + if ( isNegative(p_value) || isGreaterThanOne(p_value) ) + fprintf(stats[TEST_OVERLAPPING], "WARNING: P_VALUE IS OUT OF RANGE.\n"); + + free(sequence); + fprintf(stats[TEST_OVERLAPPING], "%f %s\n\n", p_value, p_value < ALPHA ? "FAILURE" : "SUCCESS"); + fprintf(results[TEST_OVERLAPPING], "%f\n", p_value); +} + +double +Pr(int u, double eta) +{ + int l; + double sum, p; + + if ( u == 0 ) + p = exp(-eta); + else { + sum = 0.0; + for ( l=1; l<=u; l++ ) + sum += exp(-eta-u*log(2)+l*log(eta)-cephes_lgam(l+1)+cephes_lgam(u)-cephes_lgam(l)-cephes_lgam(u-l+1)); + p = sum; + } + return p; +} diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32utils/nistsecurerng/src/randomExcursions.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kerneltest/e32utils/nistsecurerng/src/randomExcursions.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -0,0 +1,145 @@ +/* +* Portions 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 "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: +* The original NIST Statistical Test Suite code is placed in public domain. +* (http://csrc.nist.gov/groups/ST/toolkit/rng/documentation_software.html) +* +* This software was developed at the National Institute of Standards and Technology by +* employees of the Federal Government in the course of their official duties. Pursuant +* to title 17 Section 105 of the United States Code this software is not subject to +* copyright protection and is in the public domain. The NIST Statistical Test Suite is +* an experimental system. NIST assumes no responsibility whatsoever for its use by other +* parties, and makes no guarantees, expressed or implied, about its quality, reliability, +* or any other characteristic. We would appreciate acknowledgment if the software is used. +*/ + +#include "openc.h" +#include "../include/externs.h" +#include "../include/cephes.h" + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + R A N D O M E X C U R S I O N S T E S T + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +void +RandomExcursions(int n) +{ + int b, i, j, k, J, x; + int cycleStart, cycleStop, *cycle = NULL, *S_k = NULL; + int stateX[8] = { -4, -3, -2, -1, 1, 2, 3, 4 }; + int counter[8] = { 0, 0, 0, 0, 0, 0, 0, 0 }; + double p_value, sum, constraint, nu[6][8]; + double pi[5][6] = { {0.0000000000, 0.00000000000, 0.00000000000, 0.00000000000, 0.00000000000, 0.0000000000}, + {0.5000000000, 0.25000000000, 0.12500000000, 0.06250000000, 0.03125000000, 0.0312500000}, + {0.7500000000, 0.06250000000, 0.04687500000, 0.03515625000, 0.02636718750, 0.0791015625}, + {0.8333333333, 0.02777777778, 0.02314814815, 0.01929012346, 0.01607510288, 0.0803755143}, + {0.8750000000, 0.01562500000, 0.01367187500, 0.01196289063, 0.01046752930, 0.0732727051} }; + + if ( ((S_k = (int *)calloc(n, sizeof(int))) == NULL) || + ((cycle = (int *)calloc(MAX(1000, n/100), sizeof(int))) == NULL) ) { + printf("Random Excursions Test: Insufficent Work Space Allocated.\n"); + if ( S_k != NULL ) + free(S_k); + if ( cycle != NULL ) + free(cycle); + return; + } + + J = 0; /* DETERMINE CYCLES */ + S_k[0] = 2*(int)epsilon[0] - 1; + for( i=1; i MAX(1000, n/100) ) { + printf("ERROR IN FUNCTION randomExcursions: EXCEEDING THE MAX NUMBER OF CYCLES EXPECTED\n."); + free(S_k); + free(cycle); + return; + } + cycle[J] = i; + } + } + if ( S_k[n-1] != 0 ) + J++; + cycle[J] = n; + + fprintf(stats[TEST_RND_EXCURSION], "\t\t\t RANDOM EXCURSIONS TEST\n"); + fprintf(stats[TEST_RND_EXCURSION], "\t\t--------------------------------------------\n"); + fprintf(stats[TEST_RND_EXCURSION], "\t\tCOMPUTATIONAL INFORMATION:\n"); + fprintf(stats[TEST_RND_EXCURSION], "\t\t--------------------------------------------\n"); + fprintf(stats[TEST_RND_EXCURSION], "\t\t(a) Number Of Cycles (J) = %04d\n", J); + fprintf(stats[TEST_RND_EXCURSION], "\t\t(b) Sequence Length (n) = %d\n", n); + + constraint = MAX(0.005*pow(n, 0.5), 500); + if (J < constraint) { + fprintf(stats[TEST_RND_EXCURSION], "\t\t---------------------------------------------\n"); + fprintf(stats[TEST_RND_EXCURSION], "\t\tWARNING: TEST NOT APPLICABLE. THERE ARE AN\n"); + fprintf(stats[TEST_RND_EXCURSION], "\t\t\t INSUFFICIENT NUMBER OF CYCLES.\n"); + fprintf(stats[TEST_RND_EXCURSION], "\t\t---------------------------------------------\n"); + for(i = 0; i < 8; i++) + fprintf(results[TEST_RND_EXCURSION], "%f\n", 0.0); + } + else { + fprintf(stats[TEST_RND_EXCURSION], "\t\t(c) Rejection Constraint = %f\n", constraint); + fprintf(stats[TEST_RND_EXCURSION], "\t\t-------------------------------------------\n"); + + cycleStart = 0; + cycleStop = cycle[1]; + for ( k=0; k<6; k++ ) + for ( i=0; i<8; i++ ) + nu[k][i] = 0.; + for ( j=1; j<=J; j++ ) { /* FOR EACH CYCLE */ + for ( i=0; i<8; i++ ) + counter[i] = 0; + for ( i=cycleStart; i= 1 && S_k[i] <= 4) || (S_k[i] >= -4 && S_k[i] <= -1) ) { + if ( S_k[i] < 0 ) + b = 4; + else + b = 3; + counter[S_k[i]+b]++; + } + } + cycleStart = cycle[j]+1; + if ( j < J ) + cycleStop = cycle[j+1]; + + for ( i=0; i<8; i++ ) { + if ( (counter[i] >= 0) && (counter[i] <= 4) ) + nu[counter[i]][i]++; + else if ( counter[i] >= 5 ) + nu[5][i]++; + } + } + + for ( i=0; i<8; i++ ) { + x = stateX[i]; + sum = 0.; + for ( k=0; k<6; k++ ) + sum += pow(nu[k][i] - J*pi[(int)fabs(x)][k], 2) / (J*pi[(int)fabs(x)][k]); + p_value = cephes_igamc(2.5, sum/2.0); + + if ( isNegative(p_value) || isGreaterThanOne(p_value) ) + fprintf(stats[TEST_RND_EXCURSION], "WARNING: P_VALUE IS OUT OF RANGE.\n"); + + fprintf(stats[TEST_RND_EXCURSION], "%s\t\tx = %2d chi^2 = %9.6f p_value = %f\n", + p_value < ALPHA ? "FAILURE" : "SUCCESS", x, sum, p_value); + fprintf(results[TEST_RND_EXCURSION], "%f\n", p_value); + } + } + fprintf(stats[TEST_RND_EXCURSION], "\n"); + free(S_k); + free(cycle); +} diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32utils/nistsecurerng/src/randomExcursionsVariant.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kerneltest/e32utils/nistsecurerng/src/randomExcursionsVariant.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -0,0 +1,90 @@ +/* +* Portions 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 "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: +* The original NIST Statistical Test Suite code is placed in public domain. +* (http://csrc.nist.gov/groups/ST/toolkit/rng/documentation_software.html) +* +* This software was developed at the National Institute of Standards and Technology by +* employees of the Federal Government in the course of their official duties. Pursuant +* to title 17 Section 105 of the United States Code this software is not subject to +* copyright protection and is in the public domain. The NIST Statistical Test Suite is +* an experimental system. NIST assumes no responsibility whatsoever for its use by other +* parties, and makes no guarantees, expressed or implied, about its quality, reliability, +* or any other characteristic. We would appreciate acknowledgment if the software is used. +*/ + +#include "openc.h" +#include "../include/externs.h" +#include "../include/cephes.h" + +/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * + R A N D O M E X C U R S I O N S V A R I A N T T E S T + * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + +void +RandomExcursionsVariant(int n) +{ + int i, p, J, x, constraint, count, *S_k; + int stateX[18] = { -9, -8, -7, -6, -5, -4, -3, -2, -1, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; + double p_value; + + if ( (S_k = (int *)calloc(n, sizeof(int))) == NULL ) { + fprintf(stats[TEST_RND_EXCURSION_VAR], "\t\tRANDOM EXCURSIONS VARIANT: Insufficent memory allocated.\n"); + return; + } + J = 0; + S_k[0] = 2*(int)epsilon[0] - 1; + for ( i=1; i (2.0 / sqrt(n)) ) { + fprintf(stats[TEST_RUNS], "\t\t\t\tRUNS TEST\n"); + fprintf(stats[TEST_RUNS], "\t\t------------------------------------------\n"); + fprintf(stats[TEST_RUNS], "\t\tPI ESTIMATOR CRITERIA NOT MET! PI = %f\n", pi); + p_value = 0.0; + } + else { + + V = 1; + for ( k=1; k= 1010*2^L*L * + * NOT BE MET, FOR THE BLOCK LENGTH L. * + * * * * * * * * * * ** * * * * * * * * * * * * * * * * * * * * * * * * * * * */ + L = 5; + if ( n >= 387840 ) L = 6; + if ( n >= 904960 ) L = 7; + if ( n >= 2068480 ) L = 8; + if ( n >= 4654080 ) L = 9; + if ( n >= 10342400 ) L = 10; + if ( n >= 22753280 ) L = 11; + if ( n >= 49643520 ) L = 12; + if ( n >= 107560960 ) L = 13; + if ( n >= 231669760 ) L = 14; + if ( n >= 496435200 ) L = 15; + if ( n >= 1059061760 ) L = 16; + + Q = 10*(int)pow(2, L); + K = (int) (floor(n/L) - (double)Q); /* BLOCKS TO TEST */ + + p = (int)pow(2, L); + if ( (L < 6) || (L > 16) || ((double)Q < 10*pow(2, L)) || + ((T = (long *)calloc(p, sizeof(long))) == NULL) ) { + fprintf(stats[TEST_UNIVERSAL], "\t\tUNIVERSAL STATISTICAL TEST\n"); + fprintf(stats[TEST_UNIVERSAL], "\t\t---------------------------------------------\n"); + fprintf(stats[TEST_UNIVERSAL], "\t\tERROR: L IS OUT OF RANGE.\n"); + fprintf(stats[TEST_UNIVERSAL], "\t\t-OR- : Q IS LESS THAN %f.\n", 10*pow(2, L)); + fprintf(stats[TEST_UNIVERSAL], "\t\t-OR- : Unable to allocate T.\n"); + return; + } + + /* COMPUTE THE EXPECTED: Formula 16, in Marsaglia's Paper */ + c = 0.7 - 0.8/(double)L + (4 + 32/(double)L)*pow(K, -3/(double)L)/15; + sigma = c * sqrt(variance[L]/(double)K); + sqrt2 = sqrt(2); + sum = 0.0; + for ( i=0; i gLogFilePath; +TInt gTemplateIndex = 1; + +bool ConvertToAperiodicBits(BitSequence aSequence[32], long value); + + +int +displayGeneratorOptions() +{ + int option = 0; + + printf(" G E N E R A T O R S E L E C T I O N \n"); + printf(" ______________________________________\n\n"); + printf(" [0] Input File [1] Linear Congruential\n"); + printf(" [2] Quadratic Congruential I [3] Quadratic Congruential II\n"); + printf(" [4] Cubic Congruential [5] XOR\n"); + printf(" [6] Modular Exponentiation [7] Blum-Blum-Shub\n"); + printf(" [8] Micali-Schnorr [9] G Using SHA-1\n\n"); + printf(" Enter Choice: "); + scanf("%d", &option); + printf("\n\n"); + + return option; +} + + +int +generatorOptions(char** streamFile) +{ + char file[200]; + int option = NUMOFGENERATORS+1; + + while ( (option < 0) || (option > NUMOFGENERATORS) ) { + option = displayGeneratorOptions(); + switch( option ) { + case 0: + printf("\t\tUser Prescribed Input File: "); + scanf("%s", file); + *streamFile = (char*)calloc(200, sizeof(char)); + sprintf(*streamFile, "%s", file); + printf("\n"); + break; + case 1: + *streamFile = "Linear-Congruential"; + break; + case 2: + *streamFile = "Quadratic-Congruential-1"; + break; + case 3: + *streamFile = "Quadratic-Congruential-2"; + break; + case 4: + *streamFile = "Cubic-Congruential"; + break; + case 5: + *streamFile = "XOR"; + break; + case 6: + *streamFile = "Modular-Exponentiation"; + break; + case 7: + *streamFile = "Blum-Blum-Shub"; + break; + case 8: + *streamFile = "Micali-Schnorr"; + break; + case 9: + *streamFile = "G using SHA-1"; + break; + + /* INTRODUCE NEW PRNG NAMES HERE */ + /* + case 10: *streamFile = "myNewPRNG"; + break; + */ + default: + printf("Error: Out of range - Try again!\n"); + break; + } + } + return option; +} + + +void +chooseTests() +{ + int i; + + printf(" S T A T I S T I C A L T E S T S\n"); + printf(" _________________________________\n\n"); + printf(" [01] Frequency [02] Block Frequency\n"); + printf(" [03] Cumulative Sums [04] Runs\n"); + printf(" [05] Longest Run of Ones [06] Rank\n"); + printf(" [07] Discrete Fourier Transform [08] Nonperiodic Template Matchings\n"); + printf(" [09] Overlapping Template Matchings [10] Universal Statistical\n"); + printf(" [11] Approximate Entropy [12] Random Excursions\n"); + printf(" [13] Random Excursions Variant [14] Serial\n"); + printf(" [15] Linear Complexity\n\n"); + printf(" INSTRUCTIONS\n"); + printf(" Enter 0 if you DO NOT want to apply all of the\n"); + printf(" statistical tests to each sequence and 1 if you DO.\n\n"); + printf(" Enter Choice: "); + scanf("%d", &testVector[0]); + printf("\n"); + if ( testVector[0] == 1 ) + { + for( i=1; i<=NUMOFTESTS; i++ ) + testVector[i] = 1; + + // Disable Fast Fourier Transform Test. + // NIST has discovered a problem with the Fast Fourier Transform test. + // At this time NIST advises disregarding the results of this test until + // a further update is posted. + // Link: http://csrc.nist.gov/groups/ST/toolkit/rng/documentation_software.html + // + // When the FFT test is fixed remove the following 5 lines. + printf(" Please Note: \n"); + printf(" NIST has discovered a problem with the DFT test and hence the DFT results are invalid currently.\n"); + printf(" DFT test will be disabled at the momemt in the NIST test suite run \n \n"); + testVector[TEST_FFT] = 0; + testVector[0] = 0; + } + else { + printf(" INSTRUCTIONS\n"); + printf(" Enter a 0 or 1 to indicate whether or not the numbered statistical\n"); + printf(" test should be applied to each sequence.\n\n"); + printf(" 123456789111111\n"); + printf(" 012345\n"); + printf(" "); + for ( i=1; i<=NUMOFTESTS; i++ ) + scanf("%1d", &testVector[i]); + printf("\n\n"); + } +} + + +void +fixParameters() +{ + int counter, testid; + + // Check to see if any parameterized tests are selected + if ( (testVector[TEST_BLOCK_FREQUENCY] != 1) && (testVector[TEST_NONPERIODIC] != 1) && + (testVector[TEST_OVERLAPPING] != 1) && (testVector[TEST_APEN] != 1) && + (testVector[TEST_SERIAL] != 1) && (testVector[TEST_LINEARCOMPLEXITY] != 1) ) + return; + + do { + counter = 1; + printf(" P a r a m e t e r A d j u s t m e n t s\n"); + printf(" -----------------------------------------\n"); + if ( testVector[TEST_BLOCK_FREQUENCY] == 1 ) + printf(" [%d] Block Frequency Test - block length(M): %d\n", counter++, tp.blockFrequencyBlockLength); + if ( testVector[TEST_NONPERIODIC] == 1 ) + printf(" [%d] NonOverlapping Template Test - block length(m): %d\n", counter++, tp.nonOverlappingTemplateBlockLength); + if ( testVector[TEST_OVERLAPPING] == 1 ) + printf(" [%d] Overlapping Template Test - block length(m): %d\n", counter++, tp.overlappingTemplateBlockLength); + if ( testVector[TEST_APEN] == 1 ) + printf(" [%d] Approximate Entropy Test - block length(m): %d\n", counter++, tp.approximateEntropyBlockLength); + if ( testVector[TEST_SERIAL] == 1 ) + printf(" [%d] Serial Test - block length(m): %d\n", counter++, tp.serialBlockLength); + if ( testVector[TEST_LINEARCOMPLEXITY] == 1 ) + printf(" [%d] Linear Complexity Test - block length(M): %d\n", counter++, tp.linearComplexitySequenceLength); + printf("\n"); + printf(" Select Test (0 to continue): "); + scanf("%1d", &testid); + printf("\n"); + + counter = 0; + if ( testVector[TEST_BLOCK_FREQUENCY] == 1 ) { + counter++; + if ( counter == testid ) { + printf(" Enter Block Frequency Test block length: "); + scanf("%d", &tp.blockFrequencyBlockLength); + printf("\n"); + continue; + } + } + if ( testVector[TEST_NONPERIODIC] == 1 ) { + counter++; + if ( counter == testid ) { + printf(" Enter NonOverlapping Template Test block Length: "); + scanf("%d", &tp.nonOverlappingTemplateBlockLength); + printf("\n"); + continue; + } + } + if ( testVector[TEST_OVERLAPPING] == 1 ) { + counter++; + if ( counter == testid ) { + printf(" Enter Overlapping Template Test block Length: "); + scanf("%d", &tp.overlappingTemplateBlockLength); + printf("\n"); + continue; + } + } + if ( testVector[TEST_APEN] == 1 ) { + counter++; + if ( counter == testid ) { + printf(" Enter Approximate Entropy Test block Length: "); + scanf("%d", &tp.approximateEntropyBlockLength); + printf("\n"); + continue; + } + } + if ( testVector[TEST_SERIAL] == 1 ) { + counter++; + if ( counter == testid ) { + printf(" Enter Serial Test block Length: "); + scanf("%d", &tp.serialBlockLength); + printf("\n"); + continue; + } + } + if ( testVector[TEST_LINEARCOMPLEXITY] == 1 ) { + counter++; + if ( counter == testid ) { + printf(" Enter Linear Complexity Test block Length: "); + scanf("%d", &tp.linearComplexitySequenceLength); + printf("\n"); + continue; + } + } + } while ( testid != 0 ); +} + + +void +fileBasedBitStreams(char *streamFile) +{ + FILE *fp; + int mode; + + printf(" Input File Format:\n"); + printf(" [0] ASCII - A sequence of ASCII 0's and 1's\n"); + printf(" [1] Binary - Each byte in data file contains 8 bits of data\n\n"); + printf(" Select input mode: "); + scanf("%1d", &mode); + printf("\n"); + if ( mode == 0 ) { + if ( (fp = fopen(streamFile, "r")) == NULL ) { + printf("ERROR IN FUNCTION fileBasedBitStreams: file %s could not be opened.\n", streamFile); + exit(-1); + } + readBinaryDigitsInASCIIFormat(fp, streamFile); + fclose(fp); + } + else if ( mode == 1 ) { + if ( (fp = fopen(streamFile, "rb")) == NULL ) { + printf("ERROR IN FUNCTION fileBasedBitStreams: file %s could not be opened.\n", streamFile); + exit(-1); + } + readHexDigitsInBinaryFormat(fp); + fclose(fp); + } +} + + +void +readBinaryDigitsInASCIIFormat(FILE *fp, char *streamFile) +{ + int i, j, num_0s, num_1s, bitsRead, bit; + + if ( (epsilon = (BitSequence *) calloc(tp.n, sizeof(BitSequence))) == NULL ) { + printf("BITSTREAM DEFINITION: Insufficient memory available.\n"); + printf("Statistical Testing Aborted!\n"); + return; + } + printf(" Statistical Testing In Progress.........\n\n"); + for ( i=0; i>= 1; + epsilon[*bitsRead] = (BitSequence)bit; + (*bitsRead)++; + if ( *bitsRead == bitsNeeded ) + return 1; + if ( ++count == xBitLength ) + return 0; + } + } + + return 0; +} + + +void +openOutputStreams(int option) +{ + int i, numOfBitStreams, numOfOpenFiles = 0; + char freqfn[200], statsDir[200], resultsDir[200]; + TBuf16<200> logFilePath; + logFilePath.Copy(_L("c:\\nist")); + + printf(" Directory for logs : "); + gConsole->Printf(logFilePath); + ReadStringFromConsole(logFilePath); + gConsole->Printf(_L("\r\n")); + gLogFilePath.Copy(logFilePath); + + TBuf8<100> tempName; + TBuf<100> directoryName; + + for(i = 1; i <= NUMOFTESTS; ++i) + { + tempName.Format(_L8("%s\\experiments\\%s\\%s\\"), gLogFilePath.PtrZ(), generatorDir[option], testNames[i]); + directoryName.Copy(tempName); + gFileSession.MkDirAll(directoryName); + } + + sprintf(freqfn, "%s\\experiments\\%s\\freq", gLogFilePath.PtrZ(), generatorDir[option]); + if ( (freqfp = fopen(freqfn, "w")) == NULL ) { + printf("\t\tMAIN: Could not open freq file: experiments/%s/freq", generatorDir[option]); + exit(-1); + } + + TBuf8<512> finalAnalysisReport; + finalAnalysisReport.Format(_L8("%s\\finalAnalysisReport"), gLogFilePath.PtrZ()); + + if ( (summary = fopen((const char *)finalAnalysisReport.PtrZ(), "w")) == NULL ) { + printf("\t\tMAIN: Could not open stats file: %s\\experiments\\%s\\finalAnalysisReport",gLogFilePath.PtrZ(), generatorDir[option]); + exit(-1); + } + + for( i=1; i<=NUMOFTESTS; i++ ) { + if ( testVector[i] == 1 ) { + sprintf(statsDir, "%s\\experiments\\%s\\%s\\stats", gLogFilePath.PtrZ(), generatorDir[option], testNames[i]); + sprintf(resultsDir, "%s\\experiments\\%s\\%s\\results", gLogFilePath.PtrZ(), generatorDir[option], testNames[i]); + if ( (stats[i] = fopen(statsDir, "w")) == NULL ) { /* STATISTICS LOG */ + printf("ERROR: LOG FILES COULD NOT BE OPENED.\n"); + printf(" MAX # OF OPENED FILES HAS BEEN REACHED = %d\n", numOfOpenFiles); + printf("-OR- THE OUTPUT DIRECTORY DOES NOT EXIST.\n"); + exit(-1); + } + else + numOfOpenFiles++; + if ( (results[i] = fopen(resultsDir, "w")) == NULL ) { /* P_VALUES LOG */ + printf("ERROR: LOG FILES COULD NOT BE OPENED.\n"); + printf(" MAX # OF OPENED FILES HAS BEEN REACHED = %d\n", numOfOpenFiles); + printf("-OR- THE OUTPUT DIRECTORY DOES NOT EXIST.\n"); + exit(-1); + } + else + numOfOpenFiles++; + } + } + printf(" How many bitstreams? "); + scanf("%d", &numOfBitStreams); + tp.numOfBitStreams = numOfBitStreams; + printf("\n"); +} + + +void +invokeTestSuite(int option, char *streamFile) +{ + fprintf(freqfp, "________________________________________________________________________________\n\n"); + fprintf(freqfp, "\t\tALPHA = %6.4f\n", ALPHA); + fprintf(freqfp, "________________________________________________________________________________\n\n"); + if ( option != 0 ) + printf(" Statistical Testing In Progress.........\n\n"); + switch( option ) { + case 0: + fileBasedBitStreams(streamFile); + break; + case 1: + lcg(); + break; + case 2: + quadRes1(); + break; + case 3: + quadRes2(); + break; + case 4: + cubicRes(); + break; + case 5: + exclusiveOR(); + break; + case 6: + modExp(); + break; + case 7: + bbs(); + break; + case 8: + micali_schnorr(); + break; + case 9: + SHA1(); + break; + case 10: + HASH_DRBG(); + break; + + /* INTRODUCE NEW PSEUDO RANDOM NUMBER GENERATORS HERE */ + + default: + printf("Error in invokeTestSuite!\n"); + break; + } + printf(" Statistical Testing Complete!!!!!!!!!!!!\n\n"); +} + + +void +nist_test_suite() +{ + if ( (testVector[0] == 1) || (testVector[TEST_FREQUENCY] == 1) ) + Frequency(tp.n); + + if ( (testVector[0] == 1) || (testVector[TEST_BLOCK_FREQUENCY] == 1) ) + BlockFrequency(tp.blockFrequencyBlockLength, tp.n); + + if ( (testVector[0] == 1) || (testVector[TEST_CUSUM] == 1) ) + CumulativeSums(tp.n); + + if ( (testVector[0] == 1) || (testVector[TEST_RUNS] == 1) ) + Runs(tp.n); + + if ( (testVector[0] == 1) || (testVector[TEST_LONGEST_RUN] == 1) ) + LongestRunOfOnes(tp.n); + + if ( (testVector[0] == 1) || (testVector[TEST_RANK] == 1) ) + Rank(tp.n); + + if ( (testVector[0] == 1) || (testVector[TEST_FFT] == 1) ) + { + // Disable Fast Fourier Transform Test. + // NIST has discovered a problem with the Fast Fourier Transform test. + // At this time NIST advises disregarding the results of this test until + // a further update is posted. + // Link: http://csrc.nist.gov/groups/ST/toolkit/rng/documentation_software.html + // + // When the FFT test is fixed remove the following 3 printf lines and uncomment the 4th line. + printf(" Please Note: NIST has discovered a problem with the DFT test and hence\n"); + printf(" the DFT results are invalid currently.\n"); + printf(" So all tests except DFT will run until futher notification from NIST \n \n"); + //DiscreteFourierTransform(tp.n); + } + + if ( (testVector[0] == 1) || (testVector[TEST_NONPERIODIC] == 1) ) + NonOverlappingTemplateMatchings(tp.nonOverlappingTemplateBlockLength, tp.n); + + if ( (testVector[0] == 1) || (testVector[TEST_OVERLAPPING] == 1) ) + OverlappingTemplateMatchings(tp.overlappingTemplateBlockLength, tp.n); + + if ( (testVector[0] == 1) || (testVector[TEST_UNIVERSAL] == 1) ) + Universal(tp.n); + + if ( (testVector[0] == 1) || (testVector[TEST_APEN] == 1) ) + ApproximateEntropy(tp.approximateEntropyBlockLength, tp.n); + + if ( (testVector[0] == 1) || (testVector[TEST_RND_EXCURSION] == 1) ) + RandomExcursions(tp.n); + + if ( (testVector[0] == 1) || (testVector[TEST_RND_EXCURSION_VAR] == 1) ) + RandomExcursionsVariant(tp.n); + + if ( (testVector[0] == 1) || (testVector[TEST_SERIAL] == 1) ) + Serial(tp.serialBlockLength,tp.n); + + if ( (testVector[0] == 1) || (testVector[TEST_LINEARCOMPLEXITY] == 1) ) + LinearComplexity(tp.linearComplexitySequenceLength, tp.n); +} + +void GetNextTemplateItem(BitSequence aBitSequence[]) + { + int count = (TInt)pow(2, tp.overlappingTemplateBlockLength); + + for(bool isSuccess = false; (!isSuccess) && (gTemplateIndex < count); ++gTemplateIndex) + { + isSuccess = ConvertToAperiodicBits(aBitSequence, gTemplateIndex); + } + } + + +bool ConvertToAperiodicBits(BitSequence aSequence[32], long value) + { + int bitMask = int(1U << (KMaxBit-1)); + + long count = tp.overlappingTemplateBlockLength; + + for(int c = 0; c < KMaxBit; c++) + { + if (value & bitMask) + aSequence[c] = 1; + else + aSequence[c] = 0; + value <<= 1; + } + + bool match = false; + + for(int i = 1; i < count; i++) + { + match = false; + if ((aSequence[KMaxBit-count]!= aSequence[KMaxBit-1]) && ((aSequence[KMaxBit-count]!= aSequence[KMaxBit-2])||(aSequence[KMaxBit-count+1] != aSequence[KMaxBit-1]))) + { + for(int c = KMaxBit-count; c <= (KMaxBit-1)-i; c++) + { + if (aSequence[c] != aSequence[c+i]) + { + match = true; + break; + } + } + } + + if (!match) + { + break; + } + } + + return match; + } + diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32utils/nistsecurerng/src/utils/openc.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kerneltest/e32utils/nistsecurerng/src/utils/openc.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -0,0 +1,616 @@ +/* +* 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 "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: +*/ + + +//------------------------------------ System Header Files ------------------------------------------------ +#include // ConsoleBase +//------------------------------------ Local Header Files ------------------------------------------------- +#include "openc.h" + +//-------------------------------- Constants, global variables and Macro Definitions ---------------------------------------- +_LIT(KConsoleName, "NIST Test Console"); +CConsoleBase* gConsole = NULL; + + +int PrintToScreen(const char* aString); + +const TInt KIntStringLen = 10; +RFs gFileSession; + +enum TDataType + { + EInteger, + EFloat, + EUnknownType = 0x10000 + }; + +const TInt KMaxReadSize = 50; +const TInt KMaxScreenBufferSize = 100; + +TBuf gScreenBuffer; + +class GlobalInitilizer + { +public: + GlobalInitilizer() + { + TInt err = gFileSession.Connect(); + + if(err != KErrNone) + { + User::Exit(err); + } + + TRAP(err, gConsole = Console::NewL(KConsoleName, TSize(KConsFullScreen,KConsFullScreen))); + if(err != KErrNone) + { + User::Exit(err); + } + } + ~GlobalInitilizer() + { + gFileSession.Close(); + delete gConsole; + } + }; + +GlobalInitilizer globalObj; + +//------------------------------------ Function Definitions ----------------------------------------------- + +double log(double aSource) + { + double result = 0.0; + Math::Ln(result, aSource); + return result; + } + +double exp(double aSource) + { + double result = 0.0; + Math::Exp(result, aSource); + return result; + } + +double fabs(double aSource) + { + return (aSource >= 0.0)? aSource: -aSource; + } + + +double floor(double aSource) + { + if(aSource >= 0.0 || aSource == (TInt64)aSource) + { + return (double)(TInt64)aSource; + } + + return (double)((TInt64)aSource - 1); + } + +double sqrt(double aSource) + { + double result = 0.0; + Math::Sqrt(result, aSource); + return result; + } + +double pow(double aSource, double aPower) + { + double result = 0.0; + Math::Pow(result, aSource, aPower); + return result; + } + +// Math trigonometric functions +double sin(double aSource) + { + double result = 0.0; + Math::Sin(result, aSource); + return result; + } + +double cos(double aSource) + { + double result = 0.0; + Math::Cos(result, aSource); + return result; + } + +// Stdio functions +int printf(const char* aFormatString, ...) + { + TUint length = User::StringLength((TUint8*)aFormatString) + 100; + HBufC8* buffer = HBufC8::New(length); + if(NULL == buffer) + { + return KErrNoMemory; + } + + TPtr8 targetPtr = buffer->Des(); + TPtrC8 formatPtr((TUint8*)aFormatString); + + VA_LIST list; + VA_START(list, aFormatString); + + targetPtr.FormatList(formatPtr, list); + + PrintToScreen((const char*)targetPtr.PtrZ()); + + delete buffer; + + return targetPtr.Length(); + } + +int puts(const char* aString) + { + int ret = PrintToScreen(aString); + gConsole->Printf(_L("\n")); + + return ret; + } + +int putchar(int aChar) + { + gConsole->Printf(_L("%c"), aChar); + return aChar; + } + +char* strcpy(char* aDst, const char* aSrc) + { + char* cp = aDst; + + while((*cp++ = *aSrc++) != 0) + ; // Copy src over dst + + return(aDst); + } + +int scanf(const char* aFormatString, ...) + { + TDataType type = EUnknownType; + TBool byteRead = EFalse; + + if(Mem::Compare((const unsigned char*)aFormatString, 2, (const unsigned char*)"%d", 2) == 0) + { + type = EInteger; + } + else if(Mem::Compare((const unsigned char*)aFormatString, 2, (const unsigned char*)"%f", 2) == 0) + { + type = EFloat; + } + else if(Mem::Compare((const unsigned char*)aFormatString, 3, (const unsigned char*)"%1d", 3) == 0) + { + type = EInteger; + byteRead = ETrue; + } + else + { + User::Panic(_L("NIST TestSuit Error"), KErrArgument); + } + + if(!byteRead || (gScreenBuffer.Length() == 0)) + { + ReadStringFromConsole(gScreenBuffer); + } + + TLex parser(gScreenBuffer); + parser.SkipSpace(); + + VA_LIST list; + VA_START(list, aFormatString); + + switch(type) + { + case EInteger: + { + TInt* ptr = VA_ARG(list, TInt*); + if(byteRead) + { + TChar ch(gScreenBuffer[0]); + gScreenBuffer.Delete(0, 1); + *ptr = ch.GetNumericValue(); + } + else + { + parser.Val(*ptr); + gScreenBuffer.Zero(); + } + break; + } + case EFloat: + { + float* ptr = VA_ARG(list, float*); + parser.Val(*ptr); + gScreenBuffer.Zero(); + break; + } + case EUnknownType: + { + User::Panic(_L("NIST TestSuit Error"), KErrArgument); + } + } + + return 1; + } + +int sprintf(char *aBuffer, const char* aFormatString, ...) + { + TUint length = User::StringLength((TUint8*)aFormatString) + 100; + TPtr8 aTargetPtr((TUint8*)aBuffer, length); + TPtrC8 formatPtr((TUint8*)aFormatString); + + VA_LIST list; + VA_START(list, aFormatString); + + aTargetPtr.FormatList(formatPtr, list); + aTargetPtr.ZeroTerminate(); + + return User::StringLength((TUint8*)aBuffer);; + } + +int GetFileMode(const char* aModeStr, TFileMode& aFileMode, TBool& aIsAppend) + { + aIsAppend = EFalse; + switch (*aModeStr) + { + case 'r': + aFileMode = EFileRead; + break; + + case 'w': + aFileMode = EFileWrite; + break; + + case 'a': + aFileMode = EFileWrite; + aIsAppend = ETrue; + break; + + default: + return KErrArgument; + } + + return KErrNone; + } + +FILE *fopen(const char *aFileName, const char *aMode) + { + TPtrC8 fileNamePtr(reinterpret_cast(aFileName)); + TFileName fileName; + fileName.Copy(fileNamePtr); + RFile* file = new RFile; + if(NULL == file) + { + return NULL; + } + + TFileMode mode = EFileRead; + TBool isAppend = EFalse; + GetFileMode(aMode, mode, isAppend); + int err = KErrArgument; + switch(mode) + { + case EFileRead: + { + err = file->Open(gFileSession, fileName, mode); + break; + } + case EFileWrite: + { + if(isAppend) + { + err = file->Open(gFileSession, fileName, mode); + if(err == KErrNone) + { + TInt offset = 0; + err = file->Seek(ESeekEnd, offset); + break; + } + } + + err = file->Replace(gFileSession, fileName, mode); + break; + } + default: + err = KErrArgument; + } + + if(KErrNone != err) + { + file->Close(); + delete file; + file = NULL; + } + return file; + } + + + +int fclose(FILE *aFp) + { + if(NULL != aFp) + { + aFp->Close(); + delete aFp; + } + return KErrNone; + } + +int fprintf(FILE* aFile, const char* aFormatString, ...) + { + TUint length = User::StringLength((TUint8*)aFormatString) + 100; + HBufC8* buffer = HBufC8::New(length); + if(NULL == buffer) + { + return KErrNoMemory; + } + + TPtr8 targetPtr = buffer->Des(); + TPtrC8 formatPtr((TUint8*)aFormatString); + + VA_LIST list; + VA_START(list, aFormatString); + + targetPtr.FormatList(formatPtr, list); + targetPtr.ZeroTerminate(); + + aFile->Write(targetPtr); + + delete buffer; + + return targetPtr.Length(); + } + +int fscanf(FILE* aFp, const char * aFormatString, ...) + { + TDataType type = EUnknownType; + TBool byteRead = EFalse; + + if(Mem::Compare((const unsigned char*)aFormatString, 2, (const unsigned char*)"%d", 2) == 0) + { + type = EInteger; + } + else if(Mem::Compare((const unsigned char*)aFormatString, 2, (const unsigned char*)"%f", 2) == 0) + { + type = EFloat; + } + else if(Mem::Compare((const unsigned char*)aFormatString, 3, (const unsigned char*)"%1d", 3) == 0) + { + type = EInteger; + byteRead = ETrue; + } + else + { + User::Panic(_L("NIST TestSuit Error"), KErrArgument); + } + + TInt initialOffset = 0; + aFp->Seek(ESeekCurrent, initialOffset); + TBuf8 readBuffer; + aFp->Read(readBuffer, KMaxReadSize); + readBuffer.ZeroTerminate(); + TLex8 parser(readBuffer); + parser.SkipSpace(); + + VA_LIST list; + VA_START(list, aFormatString); + + switch(type) + { + case EInteger: + { + TInt* ptr = VA_ARG(list, TInt*); + TChar ch = parser.Peek(); + + if(!ch.IsDigit()) + { + break; + } + + if(byteRead) + { + ch = parser.Get(); + *ptr = ch.GetNumericValue(); + } + else + { + parser.Val(*ptr); + } + + break; + } + case EFloat: + { + float* ptr = VA_ARG(list, float*); + parser.Val(*ptr); + break; + } + case EUnknownType: + { + User::Panic(_L("NIST TestSuit Error"), KErrArgument); + } + } + + TInt len = initialOffset + parser.Offset(); + aFp->Seek(ESeekStart, len); + + return 1; + } + +TUint32 fread(void* aPtr, TUint32 aSize, TUint32 aCount, FILE* aFile) + { + TUint32 size = aSize * aCount; + TPtr8 dataPtr((TUint8*)aPtr, size); + TInt err = aFile->Read(dataPtr); + if(KErrNone != err) + { + size = (TUint32)dataPtr.Length(); + } + return size; + } + +int fseek(FILE* aFile, long aOffset, int aWhence) + { + int ret = KErrNone; + int fileOffset = aOffset; + switch(aWhence) + { + case SEEK_SET: + { + ret = aFile->Seek(ESeekStart, fileOffset); + break; + } + case SEEK_CUR: + { + ret = aFile->Seek(ESeekCurrent, fileOffset); + break; + } + case SEEK_END: + { + ret = aFile->Seek(ESeekEnd, fileOffset); + break; + } + default: + User::Panic(_L("NIST TestSuit Error"), KErrArgument); + } + + return ret; + } + + + +int fflush(FILE *aFile) + { + TInt err = aFile->Flush(); + if(err != KErrNone) + { + err = EOF; + } + return err; + } + + +// Conio functions +void* calloc(TUint32 aElementCount, TUint32 aSize) + { + aSize *= aElementCount; + return User::AllocZ(aSize); + } + +void free(void *aMemory) + { + User::Free(aMemory); + } + +TBool IsCharacterKey(TKeyCode aKey) + { + if(aKey > EKeyEscape && aKey < EKeyDelete) + { + return ETrue; + } + + return EFalse; + } + +_LIT(KLineBreaker, "\r\n"); + +void ReadStringFromConsole(TDes& aString) + { + // This infinte loop terminates when user hits an "enter" key + FOREVER + { + // Get a key(character) from the console + TKeyCode ch = gConsole->Getch(); + + switch(ch) + { + case EKeyEnter: + { + if(aString.Length() == 0) + { + break;// At least one character should be read. + } + gConsole->Printf(KLineBreaker); + return; + } + case EKeyBackspace: + { + if(0 != aString.Length()) + { + // Back-space only takes the cursor one position back + // So to delete a character blank-space is inserted at + // that position and later cursor is again adjusted. + gConsole->Printf(_L("%c%c%c"), EKeyBackspace, + EKeySpace, + EKeyBackspace); + // Delete the character from the target string also. + aString.Delete(aString.Length() - 1, 1); + } + break; + } + default: + { + TInt maxBufferLength = aString.MaxLength(); + // IsCharacterKey will return true if ch is a displayable + // character else it will return false. + if(IsCharacterKey(ch) && aString.Length() != maxBufferLength) + { + gConsole->Printf(_L("%c"), ch); + aString.Append(ch); + } + } + } + } + } + +TInt ReadIntL(TInt& aValue) + { + TBuf string; + ReadStringFromConsole(string); + TLex lexObj(string); + return lexObj.Val(aValue); + } + +int PrintToScreen(const char* aString) + { + TUint length = User::StringLength((TUint8*)aString); + HBufC* buffer = HBufC::New(length); + if(NULL == buffer) + { + return EOF; + } + + TPtr targetPtr = buffer->Des(); + + TPtrC8 stringPtr((TUint8*)aString); + + targetPtr.Copy(stringPtr); + gConsole->Printf(targetPtr); + + delete buffer; + + return KErrNone; + } + +void exit ( int status ) + { + User::Exit(status); + for(;;){} // So that GCC compiler don't complain about noreturn function returns. + } + +//------------------------------------------ E O F ----------------------------------------------------- + diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32utils/nistsecurerng/src/utils/qsort.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/kerneltest/e32utils/nistsecurerng/src/utils/qsort.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -0,0 +1,203 @@ +/* +* Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* which accompanies this distribution, and is available +* at the URL "http://www.eclipse.org/legal/epl-v10.html". +* +* Initial Contributors: +* Nokia Corporation - initial contribution. +* +* Contributors: +* +* Description: +* Map ANSI bsearch and qsort onto EPOC32 functions +*/ + +#include +#include "openc.h" + +NONSHARABLE_CLASS(TAnsiKey) : public TKey + { +public: + TAnsiKey(const TAny* key, const TAny* base, TInt length, TInt (*compar)(const TAny*, const TAny*)) + : iSearchKey(key), iCmp(compar) + { SetPtr(base); iKeyLength=length; } + + virtual TInt Compare(TInt aLeft,TInt aRight) const; + virtual TAny *At(TInt anIndex) const; +private: + const TAny* iSearchKey; + TInt (*iCmp)(const TAny*, const TAny*); + }; + +TInt TAnsiKey::Compare (TInt aLeft,TInt aRight) const + { + if (aRight==KIndexPtr) + return (*iCmp)(At(aLeft),iSearchKey); + else + return (*iCmp)(At(aLeft),At(aRight)); + } + +TAny* TAnsiKey::At (TInt aPos) const + { + return (TUint8*)iPtr+(aPos*iKeyLength); + } + +NONSHARABLE_CLASS(TAnsiSwap) : public TSwap + { +public: + TAnsiSwap(const TAny* base, TInt length) : iPtr(base), iLength(length) {} + + virtual void Swap(TInt aLeft,TInt aRight) const; +private: + TUint8* At(TInt aPos) const {return (TUint8*)iPtr+(aPos*iLength);} + + const TAny* iPtr; + TInt iLength; + }; + +void TAnsiSwap::Swap(TInt aLeft,TInt aRight) const + { + TUint8* left=At(aLeft); + TUint8* right=At(aRight); + TUint8 tmp; + + for (TInt i=iLength; i>0; i--) + { + tmp=*left; + *left++=*right; + *right++=tmp; + } + } + +/* +FUNCTION +<>---binary search + +INDEX + bsearch + +ANSI_SYNOPSIS + #include + void *bsearch(const void *<[key]>, const void *<[base]>, + size_t <[nmemb]>, size_t <[size]>, + int (*<[compar]>)(const void *, const void *)); + +TRAD_SYNOPSIS + #include + char *bsearch(<[key]>, <[base]>, <[nmemb]>, <[size]>, <[compar]>) + char *<[key]>; + char *<[base]>; + size_t <[nmemb]>, <[size]>; + int (*<[compar]>)(); + +DESCRIPTION +<> searches an array beginning at <[base]> for any element +that matches <[key]>, using binary search. <[nmemb]> is the element +count of the array; <[size]> is the size of each element. + +The array must be sorted in ascending order with respect to the +comparison function <[compar]> (which you supply as the last argument of +<>). + +You must define the comparison function <<(*<[compar]>)>> to have two +arguments; its result must be negative if the first argument is +less than the second, zero if the two arguments match, and +positive if the first argument is greater than the second (where +``less than'' and ``greater than'' refer to whatever arbitrary +ordering is appropriate). + +RETURNS +Returns a pointer to an element of <[array]> that matches <[key]>. If +more than one matching element is available, the result may point to +any of them. Returns NULL if no matching element is found. + +PORTABILITY +<> is ANSI. + +No supporting OS subroutines are required. +*/ + +/** +searches an array beginning at <[base]> for any element +that matches <[key]>, using binary search +@return a pointer to an element of <[array]> that matches <[key]>. If +more than one matching element is available, the result may point to +any of them. Returns NULL if no matching element is found. +@param key +@param base +@param nmemb +@param size +*/ +void* bsearch (const void* key, const void* base, TUint32 nmemb, TUint32 size, + int (*compar)(const void*, const void*)) + { + TAnsiKey searchMe(key, base, size, compar); + TInt result=KIndexPtr; + TInt r=User::BinarySearch(nmemb, searchMe, result); + if (r==0) + return searchMe.At(result); + else + return NULL; + } + +/* +FUNCTION +<>---sort an array + +INDEX + qsort + +ANSI_SYNOPSIS + #include + void qsort(void *<[base]>, size_t <[nmemb]>, size_t <[size]>, + int (*<[compar]>)(const void *, const void *) ); + +TRAD_SYNOPSIS + #include + qsort(<[base]>, <[nmemb]>, <[size]>, <[compar]> ) + char *<[base]>; + size_t <[nmemb]>; + size_t <[size]>; + int (*<[compar]>)(); + +DESCRIPTION +<> sorts an array (beginning at <[base]>) of <[nmemb]> objects. +<[size]> describes the size of each element of the array. + +You must supply a pointer to a comparison function, using the argument +shown as <[compar]>. (This permits sorting objects of unknown +properties.) Define the comparison function to accept two arguments, +each a pointer to an element of the array starting at <[base]>. The +result of <<(*<[compar]>)>> must be negative if the first argument is +less than the second, zero if the two arguments match, and positive if +the first argument is greater than the second (where ``less than'' and +``greater than'' refer to whatever arbitrary ordering is appropriate). + +The array is sorted in place; that is, when <> returns, the +array elements beginning at <[base]> have been reordered. + +RETURNS +<> does not return a result. + +PORTABILITY +<> is required by ANSI (without specifying the sorting algorithm). +*/ + +/** +Sort an array. +@param base +@param nmemb +@param size describes the size of each element of the array +*/ +void qsort (void* base, TUint32 nmemb, TUint32 size, + int (*compar)(const void*, const void*)) + { + TAnsiKey searchMe(NULL, base, size, compar); + TAnsiSwap swapUs(base,size); + User::QuickSort(nmemb, searchMe, swapUs); + return; + } + diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32utils/nistsecurerng/testdata/testdata.zip Binary file kerneltest/e32utils/nistsecurerng/testdata/testdata.zip has changed diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/e32utils/trace/btracevw.pl --- a/kerneltest/e32utils/trace/btracevw.pl Thu May 27 14:17:14 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1952 +0,0 @@ -# -# 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: -# - -#!/usr/bin/perl - -use File::Find; -use File::Spec::Functions; - - - my $TraceFileName; - - my $PrintFlagFilePos = 0; - my $PrintFlagHdrLen = 0; - my $PrintFlagHdrFlags = 0; - my $PrintFlagFormatString = 0; - my $VerboseMode = 0; - my $RawMode = 0; - my $FormatIdIsSubCategory = 0; - my $OutputSawDictionaryMode = 0; - - # for the category range 0-191, the format string is indexed by the category & subcategory - %FormatTables = - ( - 0 => # ERDebugPrintf - { - 0 => "ThreadId %h, %s", - }, - - 1 => # ERKernPrintf - { - 0 => "ThreadId %h, %s", - }, - - 3 => # EThreadIdentification - { - 0 => "ENanoThreadCreate, NThread %x", - 1 => "ENanoThreadDestroy, NThread %x", - 2 => "EThreadCreate, NThread %x, DProcess %x, name %s", - 3 => "EThreadDestroy, NThread %x, DProcess %x, Id %x", - 4 => "EThreadName, NThread %x, DProcess %x, name %s", - 5 => "EProcessName, NThread %x, DProcess %x, name %s", - 6 => "EThreadId, NThread %x, DProcess %x, Id %x", - 7 => "EProcessCreate, DProcess %x", - 8 => "EProcessDestroy, DProcess %x", - }, - ); - - my @typedefs; - my @members; - my %values = ( -# UTF::KInitialClientFormat => {type=>"TFormatId", size=>2, value=>512} - KMaxTUint8 => {type=>"TUint8", size=>1, value=>255}, - KMaxTUint16 => {type=>"TUint16", size=>2, value=>65535} - ); - my %macros; - my @classes; - my @enums; - my %formatStrings; # each enum may have it's own format string - my %formatCategories; # each enum may have it's own format category - - my %filescope; - $filescope{file}=1; - undef $filescope{name}; - - $filescope{typedefs}=\@typedefs; - $filescope{members}=\@members; - $filescope{values}=\%values; - $filescope{macros} = \%macros; - $filescope{FormatTables} = \%FormatTables; - - $filescope{classes} = \@classes; - $filescope{enums} = \@enums; - - $filescope{formatStrings} =\%formatStrings; - $filescope{formatCategories} = \%formatCategories; - - - - if (@ARGV == 0) - { - print "BTraceVw.pl \n"; - print "An unsupported utility which extracts UTrace-style format-strings\n"; - print "from header files & uses these to decode a BTrace output file\n"; - print "Syntax : BTraceVw.pl [-v] [-r] [-sd] [-i ] []\n"; - print "where : -v = verbose mode\n"; - print " : -r = raw output mode\n"; - print " : -sd = produce SAW trace viewer dictionary file\n"; - print " : this file then needs to be merged into the 'com.symbian.analysis.trace.ui.prefs' file\n"; - print " : located under the carbide workspace directory\n"; - print "\n"; - - print "e.g. (this decodes a trace file & produces a comma-separated output file) : \n"; - print "btracevw.pl -i /os/kernelhwsrv/userlibandfileserver/fileserver/inc/f32tracedef.h -i /os/kernelhwsrv/userlibandfileserver/fileserver/inc/utraceefsrv.h -i /os/kernelhwsrv/userlibandfileserver/fileserver/inc/utraceefile.h trace.utf >trace.csv\n"; - print "\n"; - print "e.g. (this overwrites the SAW dictioany file) : \n"; - print "btracevw.pl -sd -i /os/kernelhwsrv/userlibandfileserver/fileserver/inc/f32tracedef.h -i /os/kernelhwsrv/userlibandfileserver/fileserver/inc/utraceefsrv.h -i /os/kernelhwsrv/userlibandfileserver/fileserver/inc/utraceefile.h >com.symbian.analysis.trace.ui.prefs\n"; - - exit; - } - - while (@ARGV > 0) - { - - if ($ARGV[0] eq "-i") - { - shift @ARGV; - ($FilePath) = @ARGV; - shift @ARGV; - - undef @incFiles; - @incFiles; - - find sub { push @incFiles, $File::Find::name if m/\.h$/i;}, $FilePath ; - foreach $incFile (@incFiles) - { - H2Trace($incFile, \%filescope); - } - } - elsif ($ARGV[0] eq "-r") - { - $RawMode = 1; - shift @ARGV; - } - elsif ($ARGV[0] eq "-sd") - { - $OutputSawDictionaryMode = 1; - shift @ARGV; - } - elsif ($ARGV[0] eq "-v") - { - $VerboseMode = 1; - shift @ARGV; - } - else - { - $TraceFileName = "$ARGV[0]"; - shift @ARGV; - } - } - - if ($VerboseMode) - { - dump_scope(\%filescope); - PrintFormatTables(\%FormatTables); - } - if ($OutputSawDictionaryMode) - { - OutputSawDictionary(\%FormatTables); - } - - if (defined ($TraceFileName)) - { - ReadTraceFile($RawMode); - } - - - - -sub ReadTraceFile($) - { - (my $RawMode) = @_; -# print "Trace file is $TraceFileName, RawMode $RawMode, VerboseMode $VerboseMode\n\n"; - - open (LOGFILE, "<$TraceFileName") or die "Can't open $TraceFileName: $!\n"; - binmode (LOGFILE); - - my $val = 0; - - - # enum TFlags from e32btrace.h - $EHeader2Present = 1<<0; - $ETimestampPresent = 1<<1; - $ETimestamp2Present = 1<<2; - $EContextIdPresent = 1<<3; - $EPcPresent = 1<<4; - $EExtraPresent = 1<<5; - $ERecordTruncated = 1<<6; - $EMissingRecord = 1<<7; - - # enum TFlags2 from e32btrace.h - $EMultipartFlagMask = 3<<0; - $ECpuIdMask = 0xfff<<20; - - # enum TMultiPart from e32btrace.h - $EMultipartFirst = 1; - $EMultipartMiddle = 2; - $EMultipartLast = 3; - - $EMaxBTraceDataArray = 80; - - # enum TCategory from e32btrace.h - $EThreadIdentification = 3; - - # enum TThreadIdentification from e32btrace.h - $EThreadCreate = 2; - $EThreadName = 4; - $EProcessName = 5; - $EThreadId = 6; - - # Context Id bits from e32btrace.h - $EContextIdMask = 0x00000003; - $EContextIdThread = 0; - $EContextIdFIQ = 0x1; - $EContextIdIRQ = 0x2; - $EContextIdIDFC = 0x3; - - # enum TClassificationRange from e32btraceu.h - $EAllRangeFirst = 192; - $EAllRangeLast = 222; - - %TCategoryIdToString = - ( - 0 => "ERDebugPrintf", - 1 => "EKernPrintf", - 2 => "EPlatsecPrintf", - 3 => "EThreadIdentification", - 4 => "ECpuUsage", - 5 => "EKernPerfLog", - 6 => "EClientServer", - 7 => "ERequests", - 8 => "EChunks", - 9 => "ECodeSegs", - 10 => "EPaging", - 11 => "EThreadPriority", - 12 => "EPagingMedia", - 13 => "EKernelMemory", - 14 => "EHeap", - 15 => "EMetaTrace", - 16 => "ERamAllocator", - 17 => "EFastMutex", - 18 => "EProfiling", - 19 => "EResourceManager", - 20 => "EResourceManagerUs", - 21 => "ERawEvent ", - 128 => "EPlatformSpecificFirst", - 191 => "EPlatformSpecificLast", - 192 => "ESymbianExtentionsFirst", - - # UTrace "ALL" range - 192 => "EPanic", - 193 => "EError", - 194 => "EWarning", - 195 => "EBorder", - 196 => "EState", - 197 => "EInternals", - 198 => "EDump", - 199 => "EFlow", - 200 => "ESystemCharacteristicMetrics", - 201 => "EAdhoc", - - 253 => "ESymbianExtentionsLast", - 254 => "ETest1", - 255 => "ETest2", - ); - - - %ProcessNames; - %ThreadNames; - %ThreadIds; - - - # print column titles - if ($PrintFlagFilePos) {printf "FilePos, ";} # col #0 - if ($PrintFlagHdrLen) { printf "Len, ";} # col #1 - if ($PrintFlagHdrFlags) {printf "Flags, "; } # col #2 - printf "Category, "; # col #3 - printf "TimeStamp, "; # col #4 - printf "Delta, "; # col #5 - printf "context Id, "; # col #6 - printf "PC, "; # col #7 - printf "UID, "; # col #8 - if ($PrintFlagFormatString){printf "Format string, ";} # col #9 - printf "Formatted text, "; # col #10 - print "\n\n"; - - - while (1) - { - my $pos = tell (LOGFILE); - - # print file pos (col #0) - if ($PrintFlagFilePos){ printf ("0x%08X, ", $pos);} - - my $category; - my $subCategory; - my $multipartFlags = 0; - my $recordData = ""; - my $recordLen; - my $recordPos = 0; - - $recordLen = ReadRecord(LOGFILE, \$pos, \$recordData, \$category, \$subCategory, \$multipartFlags, $RawMode); - if ($recordLen == -1) - {last;} - - - if (!$RawMode && ($multipartFlags == $EMultipartMiddle || $multipartFlags == $EMultipartLast)) - {next;} - -# print record contents -# my $buf; -# for (my $i=0; $i < $recordLen; $i+=4) -# { -# $buf.= sprintf ("%08X ", unpack("V", substr($recordData, $recordPos+$i, 4))); -# } -# printf "\n[$buf\n]"; - - - # for UTrace "ALL" range, read UID - if ($category >= $EAllRangeFirst && $category <= $EAllRangeLast && - (!$RawMode) && $multipartFlags != $EMultipartMiddle && $multipartFlags != $EMultipartLast) - { - $uid = unpack("V", substr($recordData, $recordPos, 4)); - $recordPos+= 4; - - # then read formatID - $FormatIdIsSubCategory = ($subCategory != 0) ? 1 : 0; - if ($FormatIdIsSubCategory) - { - $formatId = $subCategory - } - else - { - $formatId = unpack("V", substr($recordData, $recordPos, 4)); - $recordPos+= 4; - } - } - - - # print UID (col #8) - printf "0x%08X, ", $uid; - - - my $formatTable; - my $formatString; - if ($category >= $EAllRangeFirst && $category <= $EAllRangeLast) - { - $formatString = $FormatTables{$uid}{$formatId}; - } - else - { - $formatString = $FormatTables{$category}{$subCategory}; - } - - - # Get thread names - if ($category == $EThreadIdentification) - { - if ($subCategory == $EProcessName) - { - my $process = unpack("V", substr($recordData, 4, 4)); - my $processName = substr($recordData, 8, $recordLen - 8); -# printf ("\nprocess [%08X] processName [$processName]\n", $process); - $ProcessNames{$process} = $processName; - } - elsif ($subCategory == $EThreadCreate || $subCategory == $EThreadName) - { - my $thread = unpack("V", substr($recordData, 0, 4)); - my $process = unpack("V", substr($recordData, 4, 4)); - my $threadName = substr($recordData, 8, $recordLen - 8); -# printf ("\nprocess [%08X] thread [%08X] threadName [$threadName]\n", $process, $thread, $threadName); - $ThreadNames{$thread} = $ProcessNames{$process} . "::" . $threadName; - } - elsif ($subCategory == $EThreadId) - { - my $thread = unpack("V", substr($recordData, 0, 4)); - my $process = unpack("V", substr($recordData, 4, 4)); - my $threadId = unpack("V", substr($recordData, 8, 4)); -# printf ("\nprocess [%08X] thread [%08X] threadId [%08X]\n", $process, $thread, $threadId); - $ThreadIds{$thread} = $threadId; - } - } - - - # print Format string (col #9) - if ($PrintFlagFormatString) - { - my $formatStringWithoutCommas = $formatString; - $formatStringWithoutCommas=~ s/,/ /g; - printf "%s, ", $formatStringWithoutCommas; - } - - my $formattedText; - - my $lenFormatString = length($formatString); - if ($lenFormatString && !$RawMode && $multipartFlags != $EMultipartMiddle && $multipartFlags != $EMultipartLast) - { - for (my $i=0; $i<$lenFormatString; $i++) - { - my $c = (substr ($formatString, $i, 1)); -# printf "$c\n"; - if ($c eq "%") - { - undef my $fieldLen; - $i++; - $c = (substr ($formatString, $i, 1)); - if ($c eq "%") - { - $formattedText.= substr ($formatString, $i, 1); - next; - } - if ($c eq "*") ## take length from buffer - { - $fieldLen = unpack("V", substr($recordData, $recordPos, 4)); - if ($fieldLen > $recordLen-$recordPos) - { - $formattedText.= "*** Invalid field length ***"; - last; - } - $recordPos+= 4; - $i++; - $c = (substr ($formatString, $i, 1)); - } - if (lc $c eq "x" || $c eq "h") - { - if (defined $fieldLen) - { - if (($fieldLen & 3) == 0) - { - for (my $i=0; $i< $fieldLen; $i+= 4) - { - $formattedText.= sprintf ("%08X ", unpack("V", substr($recordData, $recordPos, 4))); - $recordPos+= 4; - } - } - else - { - for (my $i=0; $i< $fieldLen; $i++) - { - $formattedText.= sprintf ("%02X ", unpack("C", substr($recordData, $recordPos, 1))); - $recordPos++; - } - } - } - else - { - $formattedText.= sprintf ("0x%08X", unpack("V", substr($recordData, $recordPos, 4))); - $recordPos+= 4; - } - $recordPos = ($recordPos + 3) & ~3; - next; - } - # display "%ld" as hex for now as don't know how to get perl to use or display a 64 decimal value - elsif (lc $c eq "l" && substr ($formatString, $i+1, 1) eq "d") - { - $i++; - my $loWord = unpack("V", substr($recordData, $recordPos, 4)); - $recordPos+= 4; - my $hiWord = unpack("V", substr($recordData, $recordPos, 4)); - $recordPos+= 4; - $formattedText.= sprintf ("0x%X:%08X", $hiWord, $loWord); - } - elsif (lc $c eq "l" && substr ($formatString, $i+1, 1) eq "x") - { - $i++; - my $loWord = unpack("V", substr($recordData, $recordPos, 4)); - $recordPos+= 4; - my $hiWord = unpack("V", substr($recordData, $recordPos, 4)); - $recordPos+= 4; - $formattedText.= sprintf ("0x%X:%08X", $hiWord, $loWord); - } - elsif (lc $c eq "d") - { - $formattedText.= sprintf ("%d", unpack("V", substr($recordData, $recordPos, 4))); - $recordPos+= 4; - $recordPos = ($recordPos + 3) & ~3; - next; - } - elsif ($c eq "s") - { - if (!defined $fieldLen) - {$fieldLen = $recordLen - $recordPos;} - $formattedText.= substr($recordData, $recordPos, $fieldLen); - $recordPos+= $fieldLen; - $recordPos = ($recordPos + 3) & ~3; - next; - } - elsif ($c eq "S") - { - if (!defined $fieldLen) - {$fieldLen = $recordLen-$recordPos;} - for (my $j=0; $j < $fieldLen; $j+=2) - { - my $byte = unpack("c", substr ($recordData, $recordPos+$j, 1)); - $formattedText.= sprintf ("%c", $byte); - } - $recordPos+= $fieldLen; - $recordPos = ($recordPos + 3) & ~3; - next; - } - elsif ($c eq "c") - { - my $byte = unpack("c", substr ($recordData, $recordPos, 1)); - $formattedText.= sprintf ("%c", $byte); - } - } - else - { - $formattedText.= $c; - } - } - } - else # no format string : print as hex - { - for (my $i=0; $i < $recordLen; $i+=4) - { - $formattedText.= sprintf ("%08X ", unpack("V", substr($recordData, $i, 4))); - } - $recordPos+= $recordLen; $recordLen = 0; - - } - - - # print Formatted text (col #10) - $formattedText=~ s/,/;/g; - $formattedText=~ s/\r//g; - $formattedText=~ s/\n/,/g; - printf "%s", $formattedText; - - printf("\n"); - - if ($len < 0 || $recordLen < 0) {die "truncated file";} - - - $pos+= ($len +3) & ~3; - seek (LOGFILE, $pos, SEEK_SET) or die "truncated file"; - $i++; - } - - close (LOGFILE); - - if ($VerboseMode) - { - print "*** Processes ***\n"; - for $id ( keys %ProcessNames ) - { - printf ("process %08X ProcessName %s\n", $id, $ProcessNames{$id}); - } - print "*** Thread ***\n"; - for $id ( keys %ThreadNames ) - { - printf ("thread %08X ThreadName %s::%X\n", $id, $ThreadNames{$id}, $ThreadIds{$id}); - } - } - - } - - -sub ReadSingleRecord - { - ($fh, $data, $dataLen, $recordLen, $category, $subCategory, $multipartFlags, $extraN, $totalLen, $offset, $RawMode) = @_; - - my $hdr; - my $flags; - my $header2; - my $timestamp; - my $timestamp2; - my $contextId; - my $programConter; - - my $recordOffset = 0; - - $timestampLast; - my $timestampDelta = 0; - - my $bytesRead = read($fh, $hdr, 4); - - - if ($bytesRead < 4) - {return -1;} - - ($$recordLen,$flags,$$category,$$subCategory) = unpack("CCCC", $hdr); - $$dataLen = $$recordLen-4; - - if ($flags & $EHeader2Present) - {$$multipartFlags = (ReadDword($fh) & $EMultipartFlagMask); $$dataLen-= 4} - else - {$$multipartFlags = 0;} - if ($flags & $ETimestampPresent) - {$timestamp = ReadDword($fh); $$dataLen-= 4;} - if ($flags & $ETimestamp2Present) - {$timestamp2 = ReadDword($fh); $$dataLen-= 4;} - if ($flags & $EContextIdPresent) - {$contextId = ReadDword($fh); $$dataLen-= 4;} - if ($flags & $EPcPresent) - {$programConter = ReadDword($fh); $$dataLen-= 4;} - if ($flags & $EExtraPresent) - {$$extraN = ReadDword($fh); $$dataLen-= 4;} - if ($$multipartFlags != 0) - { - $$totalLen = ReadDword($fh); $$dataLen-= 4; - if ($$multipartFlags == $EMultipartMiddle || $$multipartFlags == $EMultipartLast) - {$$offset = ReadDword($fh); $$totalLen-= 4; $$dataLen-= 4;} - } - - $timestampDelta = $timestamp - $timestampLast; - $timestampLast = $timestamp; - - read($fh, $$data, ($$dataLen + 3) & ~3); - - - if ($RawMode || $$multipartFlags == $EMultipartFirst || $$multipartFlags == 0) - { - # print header len (col #1) - if ($PrintFlagHdrLen){printf ("0x%02X, ", $$recordLen);} - - # print header flags (col #2) - if ($PrintFlagHdrFlags) - { - printf ("%02X ", $flags); - if ($flags & $EHeader2Present) {printf "EHeader2Present ";} - if ($flags & $ETimestampPresent) {printf "ETimestampPresent ";} - if ($flags & $ETimestamp2Present) {printf "ETimestamp2Present ";} - if ($flags & $EContextIdPresent) {printf "EContextIdPresent ";} - if ($flags & $EPcPresent) {printf "EPcPresent ";} - if ($$multipartFlags != 0) - { - printf "EExtraPresent "; - if ($$multipartFlags == $EMultipartFirst) {print "EMultipartFirst ";} - elsif ($$multipartFlags == $EMultipartMiddle) {print "EMultipartMiddle ";} - elsif ($$multipartFlags == $EMultipartLast) {print "EMultipartLast ";} - printf ("ExtraN(0x%08X) ", $$extraN); - } - if ($flags & $ERecordTruncated) {printf "ERecordTruncated ";} - if ($flags & $EMissingRecord) {printf "EMissingRecord ";} - print ","; - } - - # print category (col #3) - printf "(%d;%d) $categoryString , ", $$category, $$subCategory; - - # print timestamp(s) (col #4) - printf "0x"; - if (defined $timestamp2) {printf "%08X : ", $timestamp2;} - printf "%08X", $timestamp; - printf ", ";; - - # print timestamp delta (col #5) - printf "0x%08X, ", $timestampDelta; - - # print context Id (col #6) - if (!$RawMode && defined $ThreadNames{$contextId}) - { - printf ("%s::%X, ", $ThreadNames{$contextId}, $ThreadIds{$contextId}); - } - else - { - if ((($contextId & $EContextIdMask) == $EContextIdThread) || $RawMode) - {printf "0x%08X, ", $contextId;} - elsif (($contextId & $EContextIdMask) == $EContextIdFIQ) - {printf "FIQ, ";} - elsif (($contextId & $EContextIdMask) == $EContextIdIRQ) - {printf "IRQ, ";} - elsif (($contextId & $EContextIdMask) == $EContextIdIDFC) - {printf "IDFC, ";} - } - - # print Program Counter (col #7) - printf "0x%08X, ", $programConter; - } - - - - -######################################################### -# my $hex; -# for (my $i=0; $i < $$dataLen; $i+=4) -# { -# $hex.= sprintf ("%08X ", unpack("V", substr($$data, $i, 4))); -# } -# printf "\nadding [$hex]\n"; -######################################################### - return $bytesRead - } - - -sub ReadRecord - { - ($fh, $recordPos, $recordData, $category, $subCategory, $multipartFlags, $RawMode) = @_; -# printf "CurrentPos %08X\n", $pos; - - - - seek ($fh, $$recordPos, SEEK_SET) or die "truncated file"; - my $recordLen; - my $extraN; - my $totalLen; - my $offset; - my $dataLen; - my $data; - my $bytesRead; - - - $bytesRead = ReadSingleRecord($fh, \$data, \$dataLen, \$recordLen, \$$category, \$$subCategory, \$$multipartFlags, \$extraN, \$totalLen, \$offset, $RawMode); - - if ($bytesRead == -1) # eof ? - {return -1; } - $$recordPos+= ($recordLen +3) & ~3; - - $$recordData = $data; - $offset = $dataLen; - - $offset-= 4; # subtract 4 bytes for UID ????????? - - if ($RawMode || $$multipartFlags != $EMultipartFirst) - {return $dataLen;} - - $pos = $$recordPos; - - while (1) - { - - # find next record, i.e. look for a record which matches $extraN - - seek ($fh, $pos, SEEK_SET) or die "truncated file"; - - my $recordLen; - - my $category; - my $subCategory; - my $multipartFlags; - my $currentExtraN; - my $currentOffset; - - my $totalLen; - my $currentDataLen; - my $data; - $bytesRead = ReadSingleRecord($fh, \$data, \$currentDataLen, \$recordLen, \$category, \$subCategory, \$multipartFlags, \$currentExtraN, \$totalLen, \$currentOffset, $RawMode); - if ($bytesRead == -1) # eof ? - {return -1; } - $pos+= ($recordLen +3) & ~3; - -# printf "\npos %08X, Seaching for (extra %08X, offset %08X), found (extra %08X, offset %08X)\n", -# $pos, $extraN, $offset, $currentExtraN, $currentOffset; - - if ($currentExtraN == $extraN && $currentOffset == $offset) - { - $$recordData.= $data; - $offset+= $currentDataLen; - $dataLen+= $currentDataLen; - } - - if ($multipartFlags == $EMultipartLast) - {last;} - } - - return $dataLen; - } - -sub ReadDword { - (my $fh) = @_; - my $buffer; - - $bytesRead = read($fh, $buffer, 4); - if ($bytesRead < 4) {die "truncated file";} - - my $dword = unpack("V", $buffer); - - return $dword - }; - -sub ReadByte { - (my $fh) = @_; - my $buffer; - - $bytesRead = read($fh, $buffer, 1); - if ($bytesRead < 1) {die "truncated file";} - - my $byte = unpack("C", $buffer); - - return $byte - }; - - - -sub PrintFormatTables($) - { - my ($formatTables) = @_; - - for $tableIndex ( sort keys %$formatTables ) - { - printf ("SYMTraceFormatCategory %08X:\n", $tableIndex); - for $formatId (sort keys %{ $$formatTables{$tableIndex} } ) - { - printf ("%08X => %s\n", $formatId, $$formatTables{$tableIndex}{$formatId}); - } - print "\n"; - } - } - - - -sub OutputSawDictionary($) - { - my ($formatTables) = @_; - - - # SAW enums - $EFieldTypeHexDump = 0; - $EFieldTypeHex = 1; - $EFieldTypeDecimal = 2; - $EFieldTypeStringToEnd = 3; - $EFieldTypeNullTerminatedString = 4; - $EFieldTypeHexDumpToEnd = 5; - $EFieldTypeUnicodeToEnd = 6; - $EFieldTypeNullTerminatedUnicode = 7; - $EFieldTypeCountedUnicode = 8; - $EFieldTypeCountedHexDump = 9; - $EFieldTypeCountedString = 10; - - my $moduleIds; # string containg all UIDs separared by semi-colons - - for $tableIndex ( sort keys %$formatTables ) - { - if ($tableIndex < 256) - { - next; - } - $moduleIds.= sprintf ("%08X;", $tableIndex); - - printf ("MODULEID_%08X_DESC=\n", $tableIndex); - printf ("MODULEID_%08X_NAME=%08X\n", $tableIndex, $tableIndex); - - my $formatIds; - $formatIds = sprintf ("MODULEID_%08X_FORMATIDS=", $tableIndex); - - for $formatId (sort keys %{ $$formatTables{$tableIndex} } ) - { - $formatIds.= sprintf ("%d;", $formatId); - } - printf ("$formatIds\n"); - - - for $formatId (sort keys %{ $$formatTables{$tableIndex} } ) - { - my $fieldCount = 0; - my $formatString = $$formatTables{$tableIndex}{$formatId}; - -#printf ("formatString = (%s)\n", $formatString); - - # format name is the first format string up until the first space or '%' character or end-of line ... - $formatString=~ m/^[^%\s]*/; - my $formatName = $&; - - # thow the format name away - $formatString = $'; - - # strip the leading space - $formatString=~ s/\s*//; - - printf ("MODULEID_%08X_FORMATID_%d_NAME=%s\n", $tableIndex, $formatId, $formatName); -#printf ("MODULEID_%08X_FORMATID_%d_DESC=\n", $tableIndex, $formatId); - - my $lenFormatString = length($formatString); - - my $formattedText; - my $fieldType = $EFieldTypeHex; - my $fieldLen = 0; - while (length($formatString)) - { - my $c = (substr ($formatString, 0, 1)); -#print ("[$formatString][$c]\n"); - $formatString=~ s/.//; # strip the leading space - if ($c eq "%") - { -#print "found %\n"; - my $fieldLenSpecified = 0; - $c = (substr ($formatString, 0, 1)); - $formatString=~ s/.//; # discard char -#print "c2=$c\n"; - if ($c eq "%") - { - $formattedText.= substr ($formatString, 0, 1); - next; - } - if ($c eq "*") ## take length from buffer - { - $fieldLenSpecified = 1; - $c = (substr ($formatString, 0, 1)); - $formatString=~ s/.//; # discard char - } - if (lc $c eq "x" || $c eq "h") - { - ## deal wilth $fieldLenSpecified - if ($fieldLenSpecified) - { - $fieldType = $EFieldTypeCountedHexDump; - $fieldLen = 0; - } - else - { - $fieldType = $EFieldTypeHex; - $fieldLen = 4; - } - } - elsif (lc $c eq "l" && substr ($formatString, 0, 1) eq "d") - { - $formatString=~ s/.//; # discard char - $fieldType = $EFieldTypeDecimal; - $fieldLen = 8; - } - elsif (lc $c eq "l" && substr ($formatString, 0, 1) eq "x") - { - $formatString=~ s/.//; # discard char - $fieldType = $EFieldTypeHex; - $fieldLen = 8; - } - elsif (lc $c eq "d") - { - $fieldType = $EFieldTypeDecimal; - $fieldLen = 4; - } - elsif ($c eq "s") - { - ## deal wilth $fieldLenSpecified - if ($fieldLenSpecified) - { - $fieldType = $EFieldTypeCountedString; - $fieldLen = 0; - } - else - { - $fieldType = $EFieldTypeStringToEnd; - $fieldLen = 0; - } - } - elsif ($c eq "S") - { - ## deal wilth $fieldLenSpecified - if ($fieldLenSpecified) - { - $fieldType = $EFieldTypeCountedUnicode; - $fieldLen = 0; - } - else - { - $fieldType = EFieldTypeUnicodeToEnd; - $fieldLen = 0; - } - } - elsif ($c eq "c") - { - $fieldType = $EFieldTypeHex; - $fieldLen = 1; - } - printf ("MODULEID_%08X_FORMATID_%d_FIELD_%d_NAME=%s\n", $tableIndex, $formatId, $fieldCount, $formattedText); - printf ("MODULEID_%08X_FORMATID_%d_FIELD_%d_TYPE=%s\n", $tableIndex, $formatId, $fieldCount, $fieldType); - if ($fieldLen > 0) - {printf ("MODULEID_%08X_FORMATID_%d_FIELD_%d_LENGTH=%s\n", $tableIndex, $formatId, $fieldCount, $fieldLen);} - $fieldCount++; - $formattedText=""; - - $formatString=~ s/\s//; # strip the leading space - } - else - { -# if ($c eq ":") {$formattedText.= '\\'; } - $formattedText.= $c; - } - } - printf ("MODULEID_%08X_FORMATID_%d_FIELDS=%d\n", $tableIndex, $formatId, $fieldCount); - - } - print "MODULEIDS=$moduleIds\n"; - } - } - - - - - - - - -sub H2Trace($$) -{ - %basictypes = ( - TInt8 => 1, - TUint8 => 1, - TInt16 => 2, - TUint16 => 2, - TInt32 => 4, - TUint32 => 4, - TInt => 4, - TUint => 4, - TBool => 4, - TInt64 => 8, - TUint64 => 8, - TLinAddr => 4, - TVersion => 4, - TPde => 4, - TPte => 4, - TProcessPriority => 4, - TFormatId => 2, - ); - - if (scalar(@_)!= 2) { - die "perl h2trace.pl \n"; - } - my ($infile, $filescope) = @_; - - if ($VerboseMode) - {print "\nOpening $infile\n";} - - open IN, $infile or die "Can't open $infile for input\n"; - my $in; - while () { - $in.=$_; - } - close IN; - - # First remove any backslash-newline combinations - $in =~ s/\\\n//gms; - - # Remove any character constants - $in =~ s/\'(.?(${0})*?)\'//gms; - - # Strip comments beginning with // - $in =~ s/\/\/(.*?)\n/\n/gms; #//(.*?)\n - - # Strip comments (/* */) but leave doxygen comments (/** */) - $in =~ s/\/\*[^*](.*?)\*\//\n/gms; #/*(.*?)*/ - - - # Collapse whitespace into a single space or newline - $in =~ s/\t/\ /gms; - $in =~ s/\r/\ /gms; - - # Tokenize on non-identifier characters - my @tokens0 = split(/(\W)/,$in); - my @tokens; - my $inString = 0; - my $inComment = 0; - my $string; - foreach $t (@tokens0) { - next if ($t eq ""); - next if (!$inString && ($t eq " " or $t eq "")); - if ($inComment == 0) - { - if ($t eq "/") - {$inComment = 1;} - } - elsif ($inComment == 1) - { - if ($t eq "*") - {$inComment = 2;} - else - {$inComment = 0;} - } - elsif ($inComment == 2) - { - if ($t eq "*") - {$inComment = 3;} - } - elsif ($inComment == 3) - { - if ($t eq "/") - { - $inComment = 0; - # if we were in a string, need to push previous '*' - if ($inString) - { - push @tokens, "*"; - } - $inString = 0; # end of comment aborts a string - $string = ""; - } - else - {$inComment = 2;} - } - - if ($t eq "\"") - { - if (!$inString) - { - $inString=1; - next; - } - else - { - $inString=0; - $t = $string; - $string = ""; -# if ($VerboseMode) {print "string : [$t]\n"; } - } - } - - if ($inString) - { - $string.= $t; - next; - } - push @tokens, $t; - } - - my $CurrentTraceFormatString; - my $CurrentTraceFormatCategory; - # format Key as specified by the @TraceFormatCategory tag is either the current category - # or the current UID - my $CurrentFormatTableKey; - - - my $line=1; - parse_scope($filescope, \@tokens, \$line); - - #print $in; - #print join (" ", @tokens); -} # end of H2Trace - - - - sub parse_scope($$$) { - my ($scope, $tokens, $line) = @_; - my $state = 1; - - my @classes; - my $curr_offset=0; - my $overall_align=0; -# print ">parse_scope $scope->{name}\n"; - - while (scalar(@$tokens)) - { - my $t = shift @$tokens; -# printf "t: [$t] [$$line]\n"; - if (!defined ($t)) { - printf "undefined !"; - next; - } - if ($state>=-1 and $t eq "\n") { - ++$$line; - $state=1; - next; - } elsif ($state==-1 and $t ne "\n") { - next; - } elsif ($state==-2 and $t ne ';') { - next; - } - - if ($state>0 and $t eq '#') { - $t = shift @$tokens; - if ($t eq 'define') { - my $ident = shift @$tokens; - my $defn = shift @$tokens; - if ($defn ne '(') { # don't do macros with parameters -# print "MACRO: $ident :== $defn\n"; - $macros{$ident} = $defn; - } - } - $state=-1; # skip to next line - next; - } - - - if (parse_doxygen($scope,$tokens, $line, $t) == 1) - {next;} - - if ($t eq "namespace" ) { - $state=0; - my %cl; - $cl{specifier}=$t; - $cl{scope}=$scope; - $cl{values}=$scope->{values}; - $cl{members}=\$scope->{members}; - $cl{typedefs}=\$scope->{typedefs}; - $cl{FormatTables}=$scope->{FormatTables}; - $cl{formatStrings} =$scope->{formatStrings}; - $cl{formatCategories} =$scope->{formatCategories}; - - my $new_namespace = \%cl; - my $n = get_token($scope,$tokens,$line); - if ($n !~ /\w+/) { - warn "Unnamed $t not supported at line $$line\n"; - return; - } - $new_namespace->{name}=$n; - my @class_match = grep {$_->{name} eq $n} @classes; - my $exists = scalar(@class_match); - my $b = get_token($scope,$tokens,$line); - if ($b eq ':') { - die "Inheritance not supported at line $$line\n"; - } elsif ($b eq ';') { - # forward declaration - push @classes, $new_namespace unless ($exists); - next; - } elsif ($b ne '{') { - warn "Syntax error#1 at line $$line\n"; - return; - } - if ($exists) { - $new_namespace = $class_match[0]; - if ($new_namespace->{complete}) { - warn "Duplicate definition of $cl{specifier} $n\n"; - } - } - push @classes, $new_namespace unless ($exists); - parse_scope($new_namespace, $tokens, $line); - next; - } - - if ($t eq "struct" or $t eq "class" or $t eq "NONSHARABLE_CLASS") { - next if ($state==0); - $state=0; - my %cl; - $cl{specifier}=$t; - $cl{scope}=$scope; - my @members; - my @typedefs; - $cl{members}=\@members; - $cl{typedefs}=\@typedefs; - $cl{FormatTables}=$scope->{FormatTables}; - my $new_class = \%cl; - my $n; - - if ($t eq "NONSHARABLE_CLASS") - { - my $b = get_token($scope,$tokens,$line); - if ($b !~ /\(/) {die "Syntax error at line $$line\n";} - $n = get_token($scope,$tokens,$line); - $b = get_token($scope,$tokens,$line); - if ($b !~ /\)/) {die "Syntax error at line $$line\n";} - } - else - { - $n = get_token($scope,$tokens,$line); - } - - - if ($n !~ /\w+/) { - warn "Unnamed $t not supported at line $$line\n"; - return; - } - $new_class->{name}=$n; - my @class_match = grep {$_->{name} eq $n} @classes; - my $exists = scalar(@class_match); - my $b = get_token($scope,$tokens,$line); - #skip inheritance etc until we get to a '{' or \ ';' - while ($b ne '{' && $b ne ';') - { - $b = get_token($scope,$tokens,$line); - die "Syntax error#2 at line $$line\n" if (!defined $b); - } - if ($b eq ';') { - # forward declaration - push @classes, $new_class unless ($exists); - next; - } - if ($exists) { - $new_class = $class_match[0]; - if ($new_class->{complete}) { - warn "Duplicate definition of $cl{specifier} $n\n"; - } - } - push @classes, $new_class unless ($exists); - parse_scope($new_class, $tokens, $line); - next; - } elsif ($t eq "enum") { - $state=0; - my $n = get_token($scope,$tokens,$line); - my $name=""; - if ($n =~ /\w+/) { - $name = $n; - $n = get_token($scope,$tokens,$line); - } - push @enums, $name; - if ($n ne '{') { - die "Syntax error#4 at line $$line\n"; - } - parse_enum($scope, $tokens, $line, $name); - next; - } elsif ($t eq '}') { - $state=0; - if ($scope->{scope}) { - if ($scope->{specifier} eq "namespace") - { - $scope->{complete}=1; -# print "Scope completed\n"; - last; - } - $t = get_token($scope,$tokens,$line); - # skip to next ';' - while (defined ($t) and $t ne ';') - {$t = get_token($scope,$tokens,$line);} - die "Syntax error#5 at line $$line\n" if ($t ne ';'); - $scope->{complete}=1; -# print "Scope completed\n"; - last; - } - warn "Syntax error#5 at line $$line\n"; - return; - } - $state=0; - if ($scope->{scope}) { - if ($t eq "public" or $t eq "private" or $t eq "protected") { - if (shift (@$tokens) eq ':') { - next; # ignore access specifiers - } - die "Syntax error#6 at line $$line\n"; - } - } - unshift @$tokens, $t; - - my @currdecl = parse_decl_def($scope, $tokens, $line); -# print scalar (@currdecl), "\n"; - if ($t eq 'static') { - next; # skip static members - } - my $typedef; - if ($t eq 'typedef') { -# print "TYPEDEF\n"; - $typedef = 1; - $t = shift @currdecl; - $t = $currdecl[0]; - } else { -# print "NOT TYPEDEF\n"; - $typedef = 0; - } -# print "$currdecl[0]\n"; - next if (scalar(@currdecl)==0); - - if ($t eq "const") { - # check for constant declaration -# print "CONST $currdecl[1] $currdecl[2] $currdecl[3]\n"; - my $ctype = lookup_type($scope, $currdecl[1]); -# print "$ctype->{basic} $ctype->{size}\n"; - if ($ctype->{basic} and $currdecl[2]=~/^\w+$/ and $currdecl[3] eq '=') { - if ($typedef!=0) { - die "Syntax error#7 at line $$line\n"; - } - shift @currdecl; - shift @currdecl; - my $type = $ctype->{name}; - my $name; #### = shift @currdecl; - - if ($scope->{name}) - { - $name = $scope->{name} . "::" . shift @currdecl; - } - else - { - $name = shift @currdecl; - } -# printf "[$name,$scope->{name}]"; - my $size = $ctype->{size}; - shift @currdecl; - my $value = get_constant_expr($scope,\@currdecl,$line); - $values{$name} = {type=>$type, size=>$size, value=>$value}; - next; - } - } - - - - } - } - - sub get_token($$$) { - my ($scope,$tokenlist,$line) = @_; - while (scalar(@$tokenlist)) { - my $t = shift @$tokenlist; - return $t if (!defined($t)); - if (parse_doxygen($scope,$tokenlist, $line, $t) == 1) - {next;} - if ($t !~ /^[\s]*$/) - { - if ($$tokenlist[0] eq ":" and $$tokenlist[1] eq ":") - { - $t.= shift @$tokenlist; - $t.= shift @$tokenlist; - $t.= shift @$tokenlist; -# print "Colon-separated token"; - } - return $t - } - ++$$line; - } - return undef; - } - - sub skip_qualifiers($) { - my ($tokens) = @_; - my $f=0; - my %quals = ( - EXPORT_C => 1, - IMPORT_C => 1, - inline => 1, - virtual => 0, - const => 0, - volatile => 0, - static => 0, - extern => 0, - LOCAL_C => 0, - LOCAL_D => 0, - GLDEF_C => 0, - GLREF_C => 0, - GLDEF_D => 0, - GLREF_D => 0 - ); - for (;;) { - my $t = $$tokens[0]; - my $q = $quals{$t}; - last unless (defined ($q)); - $f |= $q; - shift @$tokens; - } - return $f; - } - - sub parse_indirection($) { - my ($tokens) = @_; - my $level = 0; - for (;;) { - my $t = $$tokens[0]; - if ($t eq '*') { - ++$level; - shift @$tokens; - next; - } - last if ($t ne "const" and $t ne "volatile"); - shift @$tokens; - } - return $level; - } - - sub get_operand($$$) { - my ($scope,$tokens,$line) = @_; - my $t = get_token($scope,$tokens,$line); - if ($t eq '-') { - my $x = get_operand($scope,$tokens,$line); - return -$x; - } elsif ($t eq '+') { - my $x = get_operand($scope,$tokens,$line); - return $x; - } elsif ($t eq '~') { - my $x = get_operand($scope,$tokens,$line); - return ~$x; - } elsif ($t eq '!') { - my $x = get_operand($scope,$tokens,$line); - return $x ? 0 : 1; - } elsif ($t eq '(') { - my $x = get_constant_expr($scope,$tokens,$line); - my $t = get_token($scope,$tokens,$line); - if ($t ne ')') { - warn "Missing ) at line $$line\n"; - return undefined; - } - return $x; - } elsif ($t eq "sizeof") { - my $ident = get_token($scope,$tokens,$line); - if ($ident eq '(') { - $ident = get_token($scope,$tokens,$line); - my $cb = get_token($scope,$tokens,$line); - if ($cb ne ')') { - warn "Bad sizeof() syntax at line $$line\n"; - return undefined; - } - } - $ident = look_through_macros($ident); - if ($ident !~ /^\w+$/) { - warn "Bad sizeof() syntax at line $$line\n"; - return undefined; - } - my $type = lookup_type($scope, $ident); - if (!defined $type) { - warn "Unrecognised type $ident at line $$line\n"; - return undefined; - } - if ($type->{basic}) { - return $type->{size}; - } elsif ($type->{enum}) { - return 4; - } elsif ($type->{ptr}) { - return 4; - } elsif ($type->{fptr}) { - return 4; - } - my $al = $type->{class}->{align}; - my $sz = $type->{class}->{size}; - return ($sz+$al-1)&~($al-1); - } - $t = look_through_macros($t); - if ($t =~ /^0x/i) { - return oct($t); - } elsif ($t =~ /^\d/) { - return $t; - } elsif ($t =~ /^\w+$/) { - my $x = lookup_value($scope,$t); -# die "Unrecognised identifier '$t' at line $$line\n" unless defined($x); - if (!defined($x)) { - print "Unrecognised identifier '$t' at line $$line\n" ; - } - return $x; - } elsif ($t =~ /^\w+::\w+$/) { - my $x = lookup_value($scope,$t); -# die "Unrecognised identifier '$t' at line $$line\n" unless defined($x); - if (!defined($x)) { - print "Unrecognised identifier '$t' at line $$line\n" ; - } - return $x; - } else { - warn "Syntax error#10 at line $$line\n"; - return undefined; - } - } - - sub look_through_macros($) { - my ($ident) = @_; - while ($ident and $macros{$ident}) { - $ident = $macros{$ident}; - } - return $ident; - } - - sub lookup_value($$) { - my ($scope,$ident) = @_; - while ($scope) { - my $vl = $scope->{values}; - if (defined($vl->{$ident})) { - return $vl->{$ident}->{value}; - } - $scope = $scope->{scope}; - } - return undef(); - } - - sub lookup_type($$) { - my ($scope,$ident) = @_; - if ($basictypes{$ident}) { - return {scope=>$scope, basic=>1, name=>$ident, size=>$basictypes{$ident} }; - } - while ($scope) { - if ($basictypes{$ident}) { - return {scope=>$scope, basic=>1, name=>$ident, size=>$basictypes{$ident} }; - } - my $el = $scope->{enums}; - my $cl = $scope->{classes}; - my $td = $scope->{typedefs}; - if (grep {$_ eq $ident} @$el) { - return {scope=>$scope, enum=>1, name=>$ident, size=>4 }; - } - my @match_class = (grep {$_->{name} eq $ident} @$cl); - if (scalar(@match_class)) { - return {scope=>$scope, class=>$match_class[0]}; - } - my @match_td = (grep {$_->{name} eq $ident} @$td); - if (scalar(@match_td)) { - my $tdr = $match_td[0]; - my $cat = $tdr->{category}; - if ($cat eq 'basic' or $cat eq 'enum' or $cat eq 'class') { - $ident = $tdr->{alias}; - next; - } else { - return { scope=>$scope, $cat=>1, $size=>$tdr->{size} }; - } - } - $scope = $scope->{scope}; - } - return undef(); - } - - sub get_mult_expr($$$) { - my ($scope,$tokens,$line) = @_; - my $x = get_operand($scope,$tokens,$line); - my $t; - for (;;) { - $t = get_token($scope,$tokens,$line); - if ($t eq '*') { - my $y = get_operand($scope,$tokens,$line); - $x = $x * $y; - } elsif ($t eq '/') { - my $y = get_operand($scope,$tokens,$line); - if ($y != 0) - {$x = int($x / $y);} - } elsif ($t eq '%') { - my $y = get_operand($scope,$tokens,$line); - if ($y != 0) - {$x = int($x % $y);} - } else { - last; - } - } - unshift @$tokens, $t; - return $x; - } - - sub get_add_expr($$$) { - my ($scope,$tokens,$line) = @_; - my $x = get_mult_expr($scope,$tokens,$line); - my $t; - for (;;) { - $t = get_token($scope,$tokens,$line); - if ($t eq '+') { - my $y = get_mult_expr($scope,$tokens,$line); - $x = $x + $y; - } elsif ($t eq '-') { - my $y = get_mult_expr($scope,$tokens,$line); - $x = $x - $y; - } else { - last; - } - } - unshift @$tokens, $t; - return $x; - } - - sub get_shift_expr($$$) { - my ($scope,$tokens,$line) = @_; - my $x = get_add_expr($scope,$tokens,$line); - my $t, $t2; - for (;;) { - $t = get_token($scope,$tokens,$line); - if ($t eq '<' or $t eq '>') { - $t2 = get_token($scope,$tokens,$line); - if ($t2 ne $t) { - unshift @$tokens, $t2; - last; - } - } - if ($t eq '<') { - my $y = get_add_expr($scope,$tokens,$line); - $x = $x << $y; - } elsif ($t eq '>') { - my $y = get_add_expr($scope,$tokens,$line); - $x = $x >> $y; - } else { - last; - } - } - unshift @$tokens, $t; - return $x; - } - - sub get_and_expr($$$) { - my ($scope,$tokens,$line) = @_; - my $x = get_shift_expr($scope,$tokens,$line); - my $t; - for (;;) { - $t = get_token($scope,$tokens,$line); - if ($t eq '&') { - my $y = get_shift_expr($scope,$tokens,$line); - $x = $x & $y; - } else { - last; - } - } - unshift @$tokens, $t; - return $x; - } - - sub get_xor_expr($$$) { - my ($scope,$tokens,$line) = @_; - my $x = get_and_expr($scope,$tokens,$line); - my $t; - for (;;) { - $t = get_token($scope,$tokens,$line); - if ($t eq '^') { - my $y = get_and_expr($scope,$tokens,$line); - $x = $x ^ $y; - } else { - last; - } - } - unshift @$tokens, $t; - return $x; - } - - sub get_ior_expr($$$) { - my ($scope,$tokens,$line) = @_; - my $x = get_xor_expr($scope,$tokens,$line); - my $t; - for (;;) { - $t = get_token($scope,$tokens,$line); - if ($t eq '|') { - my $y = get_xor_expr($scope,$tokens,$line); - $x = $x | $y; - } else { - last; - } - } - unshift @$tokens, $t; - return $x; - } - - sub get_constant_expr($$$) { - my ($scope,$tokens,$line) = @_; - my $x = get_ior_expr($scope,$tokens,$line); - return $x; - } - - sub parse_enum($$$$) { - my ($scope,$tokens,$line,$enum_name) = @_; - my $vl = $scope->{values}; - my $fstr = $scope->{formatStrings}; - my $fcat = $scope->{formatCategories}; - my $fmtTable = $scope->{FormatTables}; - - my $x = 0; - for (;;) { - my $t = get_token($scope,$tokens,$line); - last if ($t eq '}'); - if (!defined($t)) { - die "Unexpected end of file #2 at line $$line\n"; - } - - if ($t eq '#') { - next; - } - - if ($t !~ /^\w+$/) { - warn "Syntax error#11 at line $$line\n"; - next; - } - - if ($scope->{name}) - { - $t = $scope->{name} . "::" . $t; - } - - if (defined($vl->{$t})) { - warn "Duplicate identifier [$t] at line $$line\n"; - } - my $t2 = get_token($scope,$tokens,$line); - if ($t2 eq ',') { - $vl->{$t} = {type=>$enum_name, size=>4, value=>$x, enum=>1}; - $fstr->{$t} = $CurrentTraceFormatString; - $fcat->{$t} = $CurrentTraceFormatCategory; - if (defined $CurrentTraceFormatCategory && defined $CurrentTraceFormatString) - { $fmtTable->{$CurrentTraceFormatCategory}{$x} = $CurrentTraceFormatString; } - undef $CurrentTraceFormatString; - ++$x; - } elsif ($t2 eq '}') { - $vl->{$t} = {type=>$enum_name, size=>4, value=>$x, enum=>1}; - $fstr->{$t} = $CurrentTraceFormatString; - $fcat->{$t} = $CurrentTraceFormatCategory; - if (defined $CurrentTraceFormatCategory && defined $CurrentTraceFormatString) - { $fmtTable->{$CurrentTraceFormatCategory}{$x} = $CurrentTraceFormatString; } - undef $CurrentTraceFormatString; - ++$x; - last; - } elsif ($t2 eq '=') { - $x = get_constant_expr($scope, $tokens, $line); - $vl->{$t} = {type=>$enum_name, size=>4, value=>$x, enum=>1}; - $fstr->{$t} = $CurrentTraceFormatString; - $fcat->{$t} = $CurrentTraceFormatCategory; - if (defined $CurrentTraceFormatCategory && defined $CurrentTraceFormatString) - { $fmtTable->{$CurrentTraceFormatCategory}{$x} = $CurrentTraceFormatString; } - undef $CurrentTraceFormatString; - ++$x; - $t2 = get_token($scope,$tokens,$line); - last if ($t2 eq '}'); - next if ($t2 eq ','); - warn "Syntax error#12 at line $$line\n"; - } else { - unshift @$tokens, $t2; - } - } - my $t = get_token($scope,$tokens,$line); - if ($t ne ';') { - warn "Missing ; at line $$line\n"; - } - } - - - sub parse_decl_def($$$) { - my ($scope,$tokens,$line) = @_; - my $level=0; - my @decl; - while ( scalar(@$tokens) ) { - my $t = get_token($scope,$tokens, $line); - if ( (!defined ($t) || $t eq ';') and ($level==0)) { - return @decl; - } - - if ($t eq "static") - { - next; - } - - push @decl, $t; - if ($t eq '{') { - ++$level; - } - if ($t eq '}') { - if ($level==0) { - warn "Syntax error#13 at line $$line\n"; - unshift @$tokens, $t; - return @decl; - - } - if (--$level==0) { - return (); # end of function definition reached - } - } - } - die "Unexpected end of file #3 at line $$line\n"; - } - - sub dump_scope($) { - my ($scope) = @_; - my $el = $scope->{enums}; - my $cl = $scope->{classes}; - my $vl = $scope->{values}; - my $fstr = $scope->{formatStrings}; - my $fcat = $scope->{formatCategories}; - print "SCOPE: $scope->{name}\n"; - if (scalar(@$el)) { - print "\tenums:\n"; - foreach (@$el) { - print "\t\t$_\n"; - } - } - if (scalar(keys(%$vl))) { - print "\tvalues:\n"; - foreach $vname (keys(%$vl)) { - my $v = $vl->{$vname}; - my $x = $v->{value}; - my $t = $v->{type}; - my $sz = $v->{size}; - my $fstring = $fstr->{$vname}; - my $fcategory = $fcat->{$vname}; - if ($v->{enum}) { - printf ("\t\t$vname\=$x (enum $t) size=$sz fcat=[0x%x] fstr=[%s]\n", $fcategory,$fstring); - } else { - printf ("\t\t$vname\=$x (type $t) size=$sz fcat=[0x%x] fstr=[%s]\n", $fcategory, $fstring); - } - } - } - if ($scope->{scope}) { - my $members = $scope->{members}; - foreach (@$members) { - my $n = $_->{name}; - my $sz = $_->{size}; - my $off = $_->{offset}; - my $spc = $_->{spacing}; - if (defined $spc) { - print "\t$n\[\]\: spacing $spc size $sz offset $off\n"; - } else { - print "\t$n\: size $sz offset $off\n"; - } - } - print "\tOverall size : $scope->{size}\n"; - print "\tOverall align: $scope->{align}\n"; - } - foreach $s (@$cl) { - dump_scope($s); - } - } - - - - - sub parse_doxygen($$$$) { - my ($scope,$tokens,$line,$t) = @_; - - if ($t ne "/") - { - return 0; # not a doxygen comment - } - if ($t eq "/") { - $state=0; - my $t2 = shift @$tokens; - my $t3 = shift @$tokens; - - if ($t2 ne "*" || $t3 ne "*") - { - unshift @$tokens, $t3; - unshift @$tokens, $t2; - return 0; # not a doxygen comment - } - } -# printf "doxygen start on line %d\n", $$line; - for (;;) { - my $t = shift @$tokens; - if (!defined($t)) - { - warn "Unexpected end of file #4 at line $$line\n"; - return - } - - if ($t eq "\n"){++$$line }; - - if ($t eq '*') - { - my $t2 = shift @$tokens; - last if ($t2 eq '/'); - unshift @$tokens, $t2; - } - - if ($t eq '@') - { - my $t2 = shift @$tokens; - if ($t2 eq 'SYMTraceFormatString') - { - my $t3 = shift @$tokens; -# if ($VerboseMode){print "SYMTraceFormatString = [$t3]\n";} - $CurrentTraceFormatString = $t3; - } - if ($t2 eq 'SYMTraceFormatCategory') - { - $CurrentTraceFormatCategory = get_operand($scope,$tokens,$line); -# if ($VerboseMode){printf ("SYMTraceFormatCategory = 0x%x\n", $CurrentTraceFormatCategory);} - } - else - { - unshift @$tokens, $t2; - } - } - - } -# printf ("doxygen end on line %d\n", $$line); - return 1; # is a doxygen comment - } - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/f32test/demandpaging/t_nandpaging.cpp --- a/kerneltest/f32test/demandpaging/t_nandpaging.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/f32test/demandpaging/t_nandpaging.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -277,7 +277,6 @@ Drive.ControlIO(KNandGetDeferStats,statsBuf,0); test.Printf(_L("PG %d PO %d(%d%%) NG %d NO %d\n"),stats.iPageGarbage, stats.iPageOther, (TInt) ((stats.iPageOther*100)/cCount), stats.iNormalGarbage, stats.iNormalOther); - test(stats.iPageOther>0); pageGarbageCount+=stats.iPageGarbage; pageOtherCount+=stats.iPageOther; normalGarbageCount+=stats.iNormalGarbage; @@ -301,6 +300,7 @@ { test.Printf(_L("\nTotals: Avg %2d %d%% CC=%4d \n"), fullTot/fullcCount, (TInt)(totChangeCount*100)/fullcCount, totChangeCount); test.Printf(_L("PG %d PO %d(%d%%) NG %d NO %d\n"),pageGarbageCount, pageOtherCount,(TInt) (pageOtherCount*100/fullcCount), normalGarbageCount, normalOtherCount ); + test(pageOtherCount > 0); // Ensure at least one paging conflict occurred during the test. } // If totChangeCount does not change, nand maybe busy waiting. @@ -511,15 +511,14 @@ TUint8* start = (TUint8*)romHeader+romHeader->iPageableRomStart; TUint size = romHeader->iPageableRomSize; TUint8* addr=NULL; - TBool flush; while (Testing) { PageSemaphore.Wait(); // wait for main thread to want paging. - flush = (PagesBeingPaged==0); addr=start+((TInt64(Random())*TInt64(size))>>32); - PageDoneSemaphore.Signal(); // Acknolage request. + PageDoneSemaphore.Signal(); // Acknowledge request. PageMutex.Wait(); + TBool flush = (PagesBeingPaged==0); // Ensure only one thread is flushing the cache at a time. PagesBeingPaged++; PageMutex.Signal(); diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/f32test/group/base_f32test.mrp --- a/kerneltest/f32test/group/base_f32test.mrp Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/f32test/group/base_f32test.mrp Fri Jun 11 15:02:23 2010 +0300 @@ -1,18 +1,3 @@ -# -# 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 "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: -# # component name "File Server Tests" component base_f32test diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/f32test/group/bld.inf --- a/kerneltest/f32test/group/bld.inf Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/f32test/group/bld.inf Fri Jun 11 15:02:23 2010 +0300 @@ -268,8 +268,6 @@ #include "../plugins/version_2/file64bit/group/file64bit_plugin.inf" #endif -t_ftrace - t_surrogatepair // this test loads a actual codepage dll (cp932.dll), should be the last test. diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/f32test/group/t_ftrace.mmp --- a/kerneltest/f32test/group/t_ftrace.mmp Thu May 27 14:17:14 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -// Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies). -// All rights reserved. -// This component and the accompanying materials are made available -// under the terms of 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: -// f32test/group/t_ftrace.mmp -// -// - -TARGET t_ftrace.exe -TARGETTYPE EXE -SOURCEPATH ../server -SOURCE t_ftrace.cpp -SOURCE t_main.cpp -SOURCEPATH ../fileutils/src -SOURCE t_chlffs.cpp - -LIBRARY euser.lib efsrv.lib hal.lib btracec.lib -OS_LAYER_SYSTEMINCLUDE_SYMBIAN -USERINCLUDE ../server -USERINCLUDE ../fileutils/inc - -CAPABILITY TCB DISKADMIN ALLFILES -VENDORID 0x70000001 - -SMPSAFE diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/f32test/loader/base_loader.mrp --- a/kerneltest/f32test/loader/base_loader.mrp Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/f32test/loader/base_loader.mrp Fri Jun 11 15:02:23 2010 +0300 @@ -1,16 +1,1 @@ -# -# 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 "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: -# # dummy MRP so that the tools put the build output directory in a place consistant with other components diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/f32test/locl/localeutils/elocl32_japan/src/t_tlocl32_lat1.cpp --- a/kerneltest/f32test/locl/localeutils/elocl32_japan/src/t_tlocl32_lat1.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/f32test/locl/localeutils/elocl32_japan/src/t_tlocl32_lat1.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -2,7 +2,7 @@ * Copyright (c) 1995-1999 Nokia Corporation and/or its subsidiary(-ies). * All rights reserved. * This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" +* 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". * diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/f32test/server/t_dlocl.cpp --- a/kerneltest/f32test/server/t_dlocl.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/f32test/server/t_dlocl.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -669,6 +669,7 @@ eloclus.Append(TPtrC(KDLLExtension)); r = locale.GetLocaleDllName(ELocaleLanguageSettings, dllName); test_KErrNone(r); + dllName.UpperCase(); test.Printf(_L("dllName looking for %s (%s)\n"), dllName.Ptr(), eloclus.Ptr()); test(dllName.Find(eloclus) != KErrNotFound); @@ -676,18 +677,21 @@ r = locale.GetLocaleDllName(ELocaleCollateSetting, dllName); test_KErrNone(r); + dllName.UpperCase(); test(dllName.Find(eloclus) != KErrNotFound); dllName.FillZ(); r = locale.GetLocaleDllName(ELocaleLocaleSettings, dllName); test_KErrNone(r); + dllName.UpperCase(); test(dllName.Find(eloclus) != KErrNotFound); dllName.FillZ(); r = locale.GetLocaleDllName(ELocaleTimeDateSettings, dllName); test_KErrNone(r); + dllName.UpperCase(); test(dllName.Find(eloclus) != KErrNotFound); dllName.FillZ(); @@ -720,24 +724,28 @@ eloclge.Append(KDLLExtension); r = locale.GetLocaleDllName(ELocaleLanguageSettings, dllName); test_KErrNone(r); + dllName.UpperCase(); test(dllName.Find(eloclus) != KErrNotFound); dllName.FillZ(); r = locale.GetLocaleDllName(ELocaleCollateSetting, dllName); test_KErrNone(r); + dllName.UpperCase(); test(dllName.Find(eloclus) != KErrNotFound); dllName.FillZ(); r = locale.GetLocaleDllName(ELocaleLocaleSettings, dllName); test_KErrNone(r); + dllName.UpperCase(); test(dllName.Find(eloclge) != KErrNotFound); dllName.FillZ(); r = locale.GetLocaleDllName(ELocaleTimeDateSettings, dllName); test_KErrNone(r); + dllName.UpperCase(); test(dllName.Find(eloclge) != KErrNotFound); dllName.FillZ(); diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/f32test/server/t_falsespace.cpp --- a/kerneltest/f32test/server/t_falsespace.cpp Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/f32test/server/t_falsespace.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -1049,7 +1049,7 @@ test_KErrNone(nRes); for(i=0; i #include -#include //*test* +#include //---------------------------------------------------------------------------------------------- @@ -251,7 +251,6 @@ } } -//*test************************************************************************** TInt FreeRam() { // wait for any async cleanup in the supervisor to finish first... @@ -261,7 +260,85 @@ UserHal::MemoryInfo(meminfo); return meminfo().iFreeRamInBytes; } -//*test************************************************************************** + +void LowMemoryTest() + { + TInt fileSize = 0; + + const TInt KWriteLen = 128*1024; + test.Next(_L("Test appending to a file with low memory")); + gBufPtr.SetLength(KBufSize); + + RFile f; + TFileName testFile = _L("TEST.BIN"); + + TInt r = f.Replace(TheFs, testFile, EFileWrite | EFileWriteBuffered); + test_KErrNone(r); + + TInt pos = 0; + + TPtrC8 writePtr; + writePtr.Set(gBufPtr.MidTPtr(pos, KWriteLen)); + + r = f.Write(pos, writePtr); + test_KErrNone(r); + pos+= writePtr.Length(); + + r = f.Size(fileSize); + test_KErrNone(r); + test_Equal(fileSize,pos); + + + + TUint freeRam = FreeRam(); + const TInt KPageSize=4096; + freeRam = (freeRam + KPageSize -1) & ~(KPageSize-1); + test.Printf(_L("FreeRam = %d"), freeRam); + + RChunk chunk; + TChunkCreateInfo chunkInfo; + chunkInfo.SetDisconnected(0, 0, freeRam); + chunkInfo.SetPaging(TChunkCreateInfo::EUnpaged); + test_KErrNone(chunk.Create(chunkInfo)); + + test.Printf(_L("Gobbling all of memory...")); + + TUint commitEnd; + for (commitEnd = 0; commitEnd < freeRam; commitEnd += KPageSize) + { + r = chunk.Commit(commitEnd,KPageSize); + if (r != KErrNone) + break; + + } + test.Printf(_L("commitEnd %d, r %d"), commitEnd, r); + test_Value(r, r == KErrNoMemory || r == KErrNone); + + test.Printf(_L("FreeRam = %d"), FreeRam()); + + pos-= KSegmentSize; + writePtr.Set(gBufPtr.MidTPtr(pos, KWriteLen)); + + test.Printf(_L("Writing to file...")); + + r = f.Write(pos, writePtr); + test_KErrNone(r); + pos+= writePtr.Length(); + + test.Printf(_L("Setting size of file ...")); + r = f.Size(fileSize); + test_KErrNone(r); + test_Equal(fileSize,pos); + + test.Printf(_L("Closing file ...")); + f.Close(); + + test.Printf(_L("Closing chunk ...")); + chunk.Close(); + + test.Printf(_L("FreeRam = %d"), FreeRam()); + } + LOCAL_C void UnitTests() @@ -312,67 +389,7 @@ TInt uncachedPacketsRead; #endif -//*test************************************************************************** - { - TInt fileSize = 0; - - const TInt KWriteLen = 128*1024; - test.Next(_L("Test appending to a file with low memory")); - gBufPtr.SetLength(KBufSize); - - r = f.Replace(TheFs, testFile, EFileWrite | EFileWriteBuffered); - test_KErrNone(r); - - pos = 0; - - writePtr.Set(gBufPtr.MidTPtr(pos, KWriteLen)); - - r = f.Write(pos, writePtr); - test_KErrNone(r); - pos+= writePtr.Length(); - - r = f.Size(fileSize); - test_KErrNone(r); - test_Equal(fileSize,pos); - - - - TInt freeRam = FreeRam(); - test.Printf(_L("FreeRam = %d"), freeRam); - const TInt KPageSize=4096; - - RChunk chunk; - TChunkCreateInfo chunkInfo; - chunkInfo.SetDisconnected(0, 0, freeRam); - chunkInfo.SetPaging(TChunkCreateInfo::EUnpaged); - test_KErrNone(chunk.Create(chunkInfo)); - - TUint commitEnd = 0; - TInt r; - while(KErrNone == (r = chunk.Commit(commitEnd,KPageSize))) - { - commitEnd += KPageSize; - } - test_Equal(KErrNoMemory, r); - - - - pos-= KSegmentSize; - writePtr.Set(gBufPtr.MidTPtr(pos, KWriteLen)); - - r = f.Write(pos, writePtr); - test_KErrNone(r); - pos+= writePtr.Length(); - - r = f.Size(fileSize); - test_KErrNone(r); - test_Equal(fileSize,pos); - - f.Close(); - - chunk.Close(); - } -//*test************************************************************************** + LowMemoryTest(); // create an empty file, so that any writes overlapping segemt boundaries // need a read first diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/f32test/server/t_ftrace.cpp --- a/kerneltest/f32test/server/t_ftrace.cpp Thu May 27 14:17:14 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,424 +0,0 @@ -// 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: -// f32test\server\t_ftrace.cpp -// -// - -#define __E32TEST_EXTENSION__ -#include -#include -#include -#include "t_server.h" - -#include "../../../kernel/eka/include/d32btrace.h" -#include "../../../kernel/eka/include/e32btrace.h" -#include - -RTest test(_L("T_FTRACE")); - -RBTrace Trace; - -void SetBTraceFilter(const TUint32* aNew,TUint32* aOld) - { - TUint category = 0; - do - { - TUint32 newBits = *aNew++; - TUint32 oldBits = 0; - do - { - oldBits >>= 1; - if(Trace.SetFilter(category,newBits&1)) - oldBits |= 0x80000000u; - newBits >>= 1; - ++category; - } - while(category&31); - if(aOld) - *aOld++ = oldBits; - } - while(category<256); - } - - - -//--------------------------------------------------------------------------------------------------------------------- -//! @SYMTestCaseID KBASE-T_FTRACE-0001 -//! @SYMTestCaseDesc Test File Server Tracing of RFile::Replace() -//! @SYMTestType UT -//! @SYMPREQ PREQ1617 -//! @SYMTestPriority Medium -//! @SYMTestActions -//! 1. Call RFile::Replace() to create a file -//! 2. Get trace data from BTrace and verify that the expected trace data is present -//! -//! @SYMTestExpectedResults -//! 1. Trace data payload should be as expected, i.e. it should contain the file name, mode etc. -//--------------------------------------------------------------------------------------------------------------------- -void TestRFileReplace() - { - test.Start(_L("Test trace output from creating a file")); - RFile file; - TFileName testFileName = _L("File.txt"); - - TheFs.Delete(testFileName); - - Trace.Empty(); - - TInt r = file.Replace(TheFs,testFileName,EFileStreamText); - test_KErrNone(r); - - - TBool funcInFound = EFalse; - TBool funcOutFound = EFalse; - - TBuf8<1024> buf; - for(;;) - { - TUint8* record; - TInt dataSize = Trace.GetData(record); - if(!dataSize) - break; - TUint8* end = record+dataSize; - - while(record0) ? *(TUint32*)(data) : 0; - TUint32 data1 = (size>4) ? *(TUint32*)(data+4) : 0; - TPtrC8 des(0,0); - if(size>=8) - des.Set(data+8,size-8); - - buf.AppendFormat(_L8("size:%d flags:%02x cat:%d,%d data: "),size,flags,category,subCategory); - for(TUint i=0; i= (buf.Length()*2)); - RDebug::RawPrint(buf.Expand()); - - - if (category == UTF::EBorder && subCategory == 0 && data0 == EF32TraceUidEfsrv) - { - if (data1 == UTraceModuleEfsrv::EFileReplace) - { - TInt sessionHandle = (size>8) ? *(TUint32*)(data+8) : 0; - TUint32 fileMode = (size>12) ? *(TUint32*)(data+12) : 0; - TInt fileNameLen = (size>16) ? *(TUint32*)(data+16) : 0; - fileNameLen/= 2; // convert to unicode length - TText16* fileName = (TText16*) ((size>20) ? (data+20) : NULL); - - test(sessionHandle == TheFs.Handle()); - test(fileMode == EFileStreamText); - test(fileNameLen == testFileName.Length()); - TPtrC16 fileNamePtr (fileName, fileNameLen); - test(fileName != NULL); - test(testFileName.Compare(fileNamePtr) == 0); - funcInFound = ETrue; - } - else if (data1 == UTraceModuleEfsrv::EFileReplaceReturn) - { - TInt retCode = (size>8) ? *(TUint32*)(data+8) : 0; - TInt subsessionHandle = (size>12) ? *(TUint32*)(data+12) : 0; - - test(retCode == KErrNone); - test(subsessionHandle == file.SubSessionHandle()); - funcOutFound = ETrue; - } - } - - record = BTrace::NextRecord(record); - } - Trace.DataUsed(); - } - - file.Close(); - TheFs.Delete(testFileName); - - test (funcInFound); - test (funcOutFound); - } - -//--------------------------------------------------------------------------------------------------------------------- -//! @SYMTestCaseID KBASE-T_FTRACE-0002 -//! @SYMTestCaseDesc Test File Server Tracing of RFs::Rename() -//! @SYMTestType UT -//! @SYMPREQ PREQ1617 -//! @SYMTestPriority Medium -//! @SYMTestActions -//! 1. Call RFile::Replace() to create a file -//! 2. Close the file -//! 3. Call RFs::Rename to rename the file -//! 4. Get trace data from BTrace and verify that the expected trace data is present -//! -//! @SYMTestExpectedResults -//! 1. Trace data payload should be as expected, i.e. it should contain both file names, etc. -//--------------------------------------------------------------------------------------------------------------------- -void TestRFsRename() - { - test.Start(_L("Test trace output from renaming a file")); - RFile file; - TFileName testFileName1 = _L("File1.txt"); - TFileName testFileName2 = _L("File2.txt"); - - TheFs.Delete(testFileName1); - TheFs.Delete(testFileName2); - - TInt r = file.Replace(TheFs,testFileName1,EFileStreamText); - test_Value(r, r == KErrNone || r == KErrAlreadyExists); - file.Close(); - - Trace.Empty(); - - r = TheFs.Rename(testFileName1, testFileName2); - test_KErrNone(r); - - - TBool funcInFound = EFalse; - TBool funcOutFound = EFalse; - - TBuf8<1024> buf; - for(;;) - { - TUint8* record; - TInt dataSize = Trace.GetData(record); - if(!dataSize) - break; - TUint8* end = record+dataSize; - - while(record0) ? *(TUint32*)(data) : 0; - TUint32 data1 = (size>4) ? *(TUint32*)(data+4) : 0; - TPtrC8 des(0,0); - if(size>=8) - des.Set(data+8,size-8); - - buf.AppendFormat(_L8("size:%d flags:%02x cat:%d,%d data: "),size,flags,category,subCategory); - for(TUint i=0; i= (buf.Length()*2)); - RDebug::RawPrint(buf.Expand()); - - - if (category == UTF::EBorder && subCategory == 0 && data0 == EF32TraceUidEfsrv) - { - TUint8* recData = data+8; - if (data1 == UTraceModuleEfsrv::EFsRename) - { - TInt sessionHandle = *(TUint32*) recData; recData+= 4; - - TInt fileNameLen1 = *(TUint32*) recData; recData+= 4; - TText16* fileName1 = (TText16*) recData; recData+= ((fileNameLen1 +4) & ~3); - - TInt fileNameLen2 = *(TUint32*) recData; recData+= 4; - TText16* fileName2 = (TText16*) recData; recData+= fileNameLen2; - - fileNameLen1/= 2; // convert to unicode length - fileNameLen2/= 2; // convert to unicode length - - - test(sessionHandle == TheFs.Handle()); - - test(fileNameLen1 == testFileName1.Length()); - TPtrC16 fileNamePtr1 (fileName1, fileNameLen1); - test(fileName1 != NULL); - test(testFileName1.Compare(fileNamePtr1) == 0); - - test(fileNameLen2 == testFileName2.Length()); - TPtrC16 fileNamePtr2 (fileName2, fileNameLen2); - test(fileName2 != NULL); - test(testFileName2.Compare(fileNamePtr2) == 0); - - funcInFound = ETrue; - } - else if (data1 == UTraceModuleEfsrv::EFsRenameReturn) - { - TInt retCode = (size>8) ? *(TUint32*)(data+8) : 0; - - test(retCode == KErrNone); - - funcOutFound = ETrue; - } - } - - record = BTrace::NextRecord(record); - } - Trace.DataUsed(); - } - - - test (funcInFound); - test (funcOutFound); - - TheFs.Delete(testFileName1); - TheFs.Delete(testFileName2); - } - -void CallTestsL() - { - -// By default, file server trace-points are only compiled in in debug mode -#if defined(_DEBUG) - test.Title(); - TInt r; - - test.Start(_L("Open LDD")); - r = Trace.Open(); - test_KErrNone(r); - - - TUint32 OldTraceFilter[8] = {0}; - - TUint savedMode = Trace.Mode(); - SetBTraceFilter(OldTraceFilter,OldTraceFilter); - - Trace.ResizeBuffer(0x100000); - Trace.Empty(); - - Trace.SetMode(RBTrace::EEnable | RBTrace::EFreeRunning); - - TBool b; -// b = Trace.SetFilter(BTrace::EThreadIdentification, ETrue); -// test(b >= 0); - b = Trace.SetFilter(UTF::EPanic, ETrue); - test(b >= 0); - b = Trace.SetFilter(UTF::EError, ETrue); - test(b >= 0); - b = Trace.SetFilter(UTF::EBorder, ETrue); - test(b >= 0); - - b = Trace.SetFilter2(EF32TraceUidEfsrv, ETrue); - test(b >= 0); - - TestRFileReplace(); - TestRFsRename(); - - // restore trace settings... - Trace.SetMode(0); - SetBTraceFilter(OldTraceFilter,OldTraceFilter); - Trace.SetMode(savedMode); - - - test.Next(_L("Close LDD")); - Trace.Close(); - - test.End(); -#endif - } - diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/f32test/smassstorage/scripts/usbinterop1.pl --- a/kerneltest/f32test/smassstorage/scripts/usbinterop1.pl Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/f32test/smassstorage/scripts/usbinterop1.pl Fri Jun 11 15:02:23 2010 +0300 @@ -2,7 +2,7 @@ # Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). # All rights reserved. # This component and the accompanying materials are made available -# under the terms of "Eclipse Public License v1.0" +# 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". # diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/f32test/smassstorage/scripts/usbinterop2.pl --- a/kerneltest/f32test/smassstorage/scripts/usbinterop2.pl Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/f32test/smassstorage/scripts/usbinterop2.pl Fri Jun 11 15:02:23 2010 +0300 @@ -2,7 +2,7 @@ # Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). # All rights reserved. # This component and the accompanying materials are made available -# under the terms of "Eclipse Public License v1.0" +# 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". # diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/f32test/smassstorage/scripts/usbperformance.pl --- a/kerneltest/f32test/smassstorage/scripts/usbperformance.pl Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/f32test/smassstorage/scripts/usbperformance.pl Fri Jun 11 15:02:23 2010 +0300 @@ -2,7 +2,7 @@ # Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). # All rights reserved. # This component and the accompanying materials are made available -# under the terms of "Eclipse Public License v1.0" +# 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". # diff -r 95f71bcdcdb7 -r 657f875b013e kerneltest/f32test/smassstorage/scripts/usbperformance_multifile.pl --- a/kerneltest/f32test/smassstorage/scripts/usbperformance_multifile.pl Thu May 27 14:17:14 2010 +0300 +++ b/kerneltest/f32test/smassstorage/scripts/usbperformance_multifile.pl Fri Jun 11 15:02:23 2010 +0300 @@ -2,7 +2,7 @@ # Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies). # All rights reserved. # This component and the accompanying materials are made available -# under the terms of "Eclipse Public License v1.0" +# 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". # diff -r 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/domainmgr/group/base_domain.mrp --- a/userlibandfileserver/domainmgr/group/base_domain.mrp Thu May 27 14:17:14 2010 +0300 +++ b/userlibandfileserver/domainmgr/group/base_domain.mrp Fri Jun 11 15:02:23 2010 +0300 @@ -1,18 +1,3 @@ -# -# 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 "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: -# # component name "Domain Manager" component base_domain diff -r 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/fileserver/automounter/base_f32_automounter.mrp --- a/userlibandfileserver/fileserver/automounter/base_f32_automounter.mrp Thu May 27 14:17:14 2010 +0300 +++ b/userlibandfileserver/fileserver/automounter/base_f32_automounter.mrp Fri Jun 11 15:02:23 2010 +0300 @@ -1,19 +1,4 @@ -# -# 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 "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: -# -# component name "exFAT File System" +# component name "Automounter File System" component base_f32_automounter diff -r 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/fileserver/estart/base_f32_estart.mrp --- a/userlibandfileserver/fileserver/estart/base_f32_estart.mrp Thu May 27 14:17:14 2010 +0300 +++ b/userlibandfileserver/fileserver/estart/base_f32_estart.mrp Fri Jun 11 15:02:23 2010 +0300 @@ -1,18 +1,3 @@ -# -# 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 "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: -# # component name "EStart" component base_f32_estart diff -r 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/fileserver/etshell/base_f32_eshell.mrp --- a/userlibandfileserver/fileserver/etshell/base_f32_eshell.mrp Thu May 27 14:17:14 2010 +0300 +++ b/userlibandfileserver/fileserver/etshell/base_f32_eshell.mrp Fri Jun 11 15:02:23 2010 +0300 @@ -1,18 +1,3 @@ -# -# 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 "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: -# # component name "Text Shell" component base_f32_eshell diff -r 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/fileserver/etshell/ts_com.cpp --- a/userlibandfileserver/fileserver/etshell/ts_com.cpp Thu May 27 14:17:14 2010 +0300 +++ b/userlibandfileserver/fileserver/etshell/ts_com.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -256,7 +256,7 @@ aPath.Insert(0,TheShell->currentPath.Left(2)); } - RFile file; + RFile64 file; r=file.Open(CShell::TheFs,aPath,EFileStream); if (r!=KErrNone) // File could not be opened { @@ -1199,11 +1199,23 @@ //-- print out cluster size that FS reported TVolumeIOParamInfo volIoInfo; nRes = aFs.VolumeIOParam(aDrvNum, volIoInfo); - if(nRes == KErrNone && volIoInfo.iClusterSize >= 512) + if(nRes == KErrNone) { - Buf.AppendFormat(_L(", Cluster Sz:%d"), volIoInfo.iClusterSize); + if(volIoInfo.iBlockSize >= 0) + { + Buf.AppendFormat(_L(", BlkSz:%d"), volIoInfo.iBlockSize); + } + + if(volIoInfo.iClusterSize >= 0) + { + Buf.AppendFormat(_L(", ClSz:%d"), volIoInfo.iClusterSize); + } + + Buf.AppendFormat(_L(", CacheFlags:0x%x"), volInfo.iFileCacheFlags); + } + if(Buf.Length()) { Buf.Append(_L("\n")); @@ -1972,7 +1984,7 @@ ShellFunction::StripQuotes(aPath); ParsePath(aPath); - RFile file; + RFile64 file; TInt r=file.Open(TheShell->TheFs,aPath,EFileStream); if (r!=KErrNone) return(r); @@ -3108,7 +3120,7 @@ TInt ShellFunction::Type(TDes& aPath,TUint aSwitches) { ParsePath(aPath); - RFile file; + RFile64 file; TInt r=file.Open(TheShell->TheFs,aPath,EFileStreamText|EFileShareReadersOnly); if (r!=KErrNone) return r; diff -r 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/fileserver/ftrace/d_ftrace.cpp --- a/userlibandfileserver/fileserver/ftrace/d_ftrace.cpp Thu May 27 14:17:14 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,215 +0,0 @@ -/* -* 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: -* -*/ -// D_FTRACE.CPP -// -// -// -#include "plat_priv.h" -#include - -#include "f32trace.h" - -DMutex* TheTraceMutex = NULL; -_LIT(KLitTraceMutexName, "FTRACE_MUTEX"); - -const TInt KMajorVersionNumber=1; -const TInt KMinorVersionNumber=0; -const TInt KBuildVersionNumber=0; - - -class DLddFactoryFTrace : public DLogicalDevice - { -public: - DLddFactoryFTrace(); - virtual ~DLddFactoryFTrace(); - virtual TInt Install(); - virtual void GetCaps(TDes8 &aDes) const; - virtual TInt Create(DLogicalChannelBase*& aChannel); //overriding pure virtual - }; - -class DLddFTrace : public DLogicalChannelBase - { -public: - DLddFTrace(); - ~DLddFTrace(); -protected: - virtual TInt DoCreate(TInt aUnit, const TDesC8* anInfo, const TVersion& aVer); - - virtual TInt Request(TInt aReqNo, TAny* a1, TAny* a2); - -private: - void DoCancel(TInt aReqNo); - TInt DoRequest(TInt aReqNo, TRequestStatus* aStatus, TAny* a1, TAny* a2); - TInt DoControl(TInt aFunction, TAny* a1, TAny* a2); - -private: - }; - -DECLARE_STANDARD_LDD() - { - TInt r = Kern::MutexCreate(TheTraceMutex, KLitTraceMutexName, KMutexOrdNone); - if (r != KErrNone) - return NULL; - - return new DLddFactoryFTrace; - } - -DLddFactoryFTrace::DLddFactoryFTrace() - { - - iParseMask=KDeviceAllowUnit; // Pass stack number as unit - iUnitsMask=0xffffffff; - iVersion=TVersion(KMajorVersionNumber,KMinorVersionNumber,KBuildVersionNumber); - } - -TInt DLddFactoryFTrace::Create(DLogicalChannelBase*& aChannel) - { - aChannel=new DLddFTrace; - return aChannel ? KErrNone : KErrNoMemory; - } - -TInt DLddFactoryFTrace::Install() - { - TPtrC name=_L("FTrace"); - return(SetName(&name)); - } - -void DLddFactoryFTrace::GetCaps(TDes8& /*aDes*/) const - { - } - -DLddFactoryFTrace::~DLddFactoryFTrace() - { - } - -DLddFTrace::DLddFTrace() - { - } - -DLddFTrace::~DLddFTrace() - { - } - -TInt DLddFTrace::DoCreate(TInt /*aUnit*/, const TDesC8* /*aInfo*/, const TVersion& aVer) - { - - if (!Kern::QueryVersionSupported(TVersion(KMajorVersionNumber,KMinorVersionNumber,KBuildVersionNumber),aVer)) - return(KErrNotSupported); - - return(KErrNone); - } - -void DLddFTrace::DoCancel(TInt /*aReqNo*/) - { - } - -TInt DLddFTrace::Request(TInt aReqNo, TAny* a1, TAny* a2) - { - NKern::ThreadEnterCS(); - Kern::MutexWait(*TheTraceMutex); - TInt r = DoControl(aReqNo, a1, a2); - Kern::MutexSignal(*TheTraceMutex); - NKern::ThreadLeaveCS(); - - return r; - } - - -const TUint KTraceBufferSize = 4096; -TUint8 gTraceBuffer[KTraceBufferSize]; - - -#define MIN(a,b) ((a) < (b) ? (a) : (b)) - -TInt DLddFTrace::DoControl(TInt aFunction, TAny* a1, TAny* a2) -// -// Mostly requests (but some kernel server async ones) -// - { - TInt r=KErrNotSupported; - switch (aFunction) - { - case RFTrace::ETraceMultiple: - { - typedef struct { - TClassification iCategory; - TUint8 iPadding1[sizeof(TUint) - sizeof(TClassification)]; - - TFormatId iFormatId; - TUint8 iPadding2[sizeof(TUint) - sizeof(TFormatId)]; - - TUint32 iUid; - TInt iDescriptorCount; - } TraceArgs; - - TraceArgs args={0}; - - XTRAP(r, XT_DEFAULT, kumemget32(&args, a1, sizeof(args))); - if (r != KErrNone) - return r; - - // current descriptor - MUST be either a TPtr8 or a TBuf8<4> - TUint32 desc[2] = {0, 0}; - TUint32& desLength = desc[0]; - - TUint offset = 0; - - *((TUint*) (gTraceBuffer+offset)) = args.iFormatId; - offset+= sizeof(TUint); - - TDesC8* des = (TDesC8*) ((TUint8*) a2); - const TInt desSize = sizeof(TPtrC8); - for (TInt n=0; n< args.iDescriptorCount; n++, des = (TDesC8*) (((TUint8*) des) + desSize) ) - { - - XTRAP(r, XT_DEFAULT, kumemget32(desc, des, sizeof(desc))); - TUint32 desType = desLength >> KShiftDesType; - desLength &= (TUint) (KMaskDesLength); - if (desType == EPtrC) - { - *((TUint*) (gTraceBuffer+offset)) = desLength; - desLength = (desLength+3)&~3; - offset+= sizeof(TUint); - } - else if (desType == EBufC) - { - *((TUint*) (gTraceBuffer+offset)) = desc[1]; - offset+= sizeof(TUint); - if (desLength > 4) - return KErrArgument; - desLength = 0; - continue; - } - else - return KErrArgument; - - TUint len = MIN(KTraceBufferSize - offset, desLength); - XTRAP(r, XT_DEFAULT, kumemget(gTraceBuffer+offset, (const TUint8*) desc[1], len)); - offset+= len; - - } - - BTrace::OutFilteredBig - (BTRACE_HEADER_C(8,args.iCategory, 0), args.iUid, gTraceBuffer, offset); - - r=KErrNone; - break; - } - } - return(r); - } - diff -r 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/fileserver/ftrace/f32trace.h --- a/userlibandfileserver/fileserver/ftrace/f32trace.h Thu May 27 14:17:14 2010 +0300 +++ b/userlibandfileserver/fileserver/ftrace/f32trace.h Fri Jun 11 15:02:23 2010 +0300 @@ -22,20 +22,6 @@ #if !defined(__FTRACE_H__) #define __FTRACE_H__ -#include -#include - - -#ifndef __KERNEL_MODE__ - #include -#endif - -#include "f32tracedef.h" - -#if defined(__EABI__) -#pragma diag_suppress 1446 // non-POD class type passed through ellipsis -#endif - /** @internalComponent @prototype @@ -43,218 +29,41 @@ #if ((defined (_DEBUG) && defined (SYMBIAN_FTRACE_ENABLE_UDEB)) || \ (!defined(_DEBUG) && defined (SYMBIAN_FTRACE_ENABLE_UREL))) - #define SYMBIAN_FTRACE_ENABLE + #include "OstTraceDefinitions.h" // may or may not define OST_TRACE_COMPILER_IN_USE +#else + #undef OST_TRACE_COMPILER_IN_USE + #undef OST_TRACE_CATEGORY + #define OST_TRACE_CATEGORY OST_TRACE_CATEGORY_NONE + + #undef OstTrace0 + #undef OstTrace1 + #undef OstTraceData + #undef OstTraceExt1 + #undef OstTraceExt2 + #undef OstTraceExt3 + #undef OstTraceExt4 + #undef OstTraceExt5 + + #define OstTrace0( aGroupName, aTraceName, aTraceText ) + #define OstTrace1( aGroupName, aTraceName, aTraceText, aParam ) + #define OstTraceData( aGroupName, aTraceName, aTraceText, aPtr, aLength ) + #define OstTraceExt1( aGroupName, aTraceName, aTraceText, aParam ) + #define OstTraceExt2( aGroupName, aTraceName, aTraceText, aParam1, aParam2 ) + #define OstTraceExt3( aGroupName, aTraceName, aTraceText, aParam1, aParam2, aParam3 ) + #define OstTraceExt4( aGroupName, aTraceName, aTraceText, aParam1, aParam2, aParam3, aParam4 ) + #define OstTraceExt5( aGroupName, aTraceName, aTraceText, aParam1, aParam2, aParam3, aParam4, aParam5 ) #endif - -inline TBool Trace1(TClassification aClassification, TFormatId aFormatId, TModuleUid aUid, TUint a1) - { - return BTraceFilteredContext12( - aClassification, // Category - 0, // Sub-category - aUid, // UID - aFormatId, - a1); - } - -inline TBool TraceN(TClassification aClassification, TFormatId aFormatId, TModuleUid aUid, TInt aArgCount, TUint a1, ...) - { - const TInt KMaxArgs = 8; - if (aArgCount > KMaxArgs) - return EFalse; - TUint args[KMaxArgs]; - TInt argLen = aArgCount << 2; - memcpy(args, &a1, argLen); - - return BTraceFilteredContextN( - aClassification, // Category - 0, // Sub-category - aUid, // UID - aFormatId, - args, - argLen); - } - - -inline TBool TraceStr(TClassification aClassification, TFormatId aFormatId, TModuleUid aUid, const TAny* aData, TInt aDataSize) - { - // NB This will truncate the data (!!!) - - // we can't use BTraceFilteredContextBig for this as it doesn't have room for the format Id - return BTraceFilteredContextN( - aClassification, // Category - 0, // Sub-category - aUid, // UID - aFormatId, - aData, - aDataSize); - } - - - - - - - -class RFTrace : public RBusLogicalChannel - { -public: - enum {EMajorVersionNumber=1,EMinorVersionNumber=0,EBuildVersionNumber=1}; - enum TControl - { - ETraceMultiple, - }; - -#ifndef __KERNEL_MODE__ - -public: - inline TInt Open(TOwnerType aType) - {return DoCreate(_L("FTrace"),TVersion(),0,NULL,NULL,aType);} - - inline TBool TraceMultiple(TClassification aClassification, TFormatId aFormatId, TUint32 aUid, TInt aDescriptorCount, TUint64 aParam1, ...) +#if defined (OST_TRACE_COMPILER_IN_USE) + // This class is used to reconstruct an RMessage2 object from a message handle so that we can + // call RMessagePtr2::Client() and then RThread::Id() to retrieve the client's thread Id. + // This is useful for matching client requests to calls to the proxydrive + class RDummyMessage : public RMessage2 { - if (Handle() == NULL) - return EFalse; - // ARM passes first 4 parameters in registers, so.... - // parcel-up the first four parameters in an array and pass a pointer to the array to the LDD; - // the next parameter(s) should be on the stack, so we can just pass a pointer to the first element - TUint args[4] = {aClassification, aFormatId, aUid, aDescriptorCount}; - TUint64* pArg1 = &aParam1; - TInt r = DoControl(ETraceMultiple, (TAny*) args, pArg1); - if (r |= KErrNone) - User::Panic(_L("FSCLIENT Trace panic"), 0); - return ETrue; - } - - static inline TUint64 PkgData(const TDesC16& aDes) {return MAKE_TUINT64( ((TUint) aDes.Ptr()), (aDes.Length()<<1) | (EPtrC< - -/** -This defines trace attributes to be used by file-system tracing - -*/ -namespace UTraceModuleFileSys - { - - /** - @SYMTraceFormatCategory EF32TraceUidFileSys - @SYMTraceFormatId - */ - enum TFormatId - { - EReserved = UTF::KInitialClientFormat-1, - - /** @SYMTraceFormatString "+CFileSystem::CFileSystem()" */ - ECFileSystemConstructor, - /** @SYMTraceFormatString "-CFileSystem::CFileSystem()" */ - ECFileSystemConstructorReturn, - - /** @SYMTraceFormatString "+~CFileSystem::CFileSystem()" */ - ECFileSystemDestructor, - /** @SYMTraceFormatString "-~CFileSystem::CFileSystem()" */ - ECFileSystemDestructorReturn, - - /** @SYMTraceFormatString "+CFileSystem::New() handle %x" */ - ECFileSystemNew, - /** @SYMTraceFormatString "-CFileSystem::New() fileSystem %x" */ - ECFileSystemNewRet, - - /** @SYMTraceFormatString "+CFileSystem::Remove() this %x" */ - ECFileSystemRemove, - /** @SYMTraceFormatString "-CFileSystem::Remove()" */ - ECFileSystemRemoveRet, - - /** @SYMTraceFormatString "CFileSystem::IsExtensionSupported() this %x r %d" */ - ECFileSystemIsExtensionSupported, - - /** @SYMTraceFormatString "+CFileSystem::Install() this %x" */ - ECFileSystemInstall, - /** @SYMTraceFormatString "-CFileSystem::Install() r %d Name %*S" */ - ECFileSystemInstallRet, - - /** @SYMTraceFormatString "+CFileSystem::NewMountL() this %x drive %d" */ - ECFileSystemNewMountL, - /** @SYMTraceFormatString "-CFileSystem::NewMountL() r %d CMountCB %x" */ - ECFileSystemNewMountLRet, - - /** @SYMTraceFormatString "+CFileSystem::NewFileL() this %x drive %d" */ - ECFileSystemNewFileL, - /** @SYMTraceFormatString "-CFileSystem::NewFileL() r %d CFileCB %x" */ - ECFileSystemNewFileLRet, - - /** @SYMTraceFormatString "+CFileSystem::NewDirL() this %x drive %d" */ - ECFileSystemNewDirL, - /** @SYMTraceFormatString "-CFileSystem::NewDirL() r %d CDirCB %x" */ - ECFileSystemNewDirLRet, - - /** @SYMTraceFormatString "+CFileSystem::NewFormatL() this %x drive %d" */ - ECFileSystemNewFormatL, - /** @SYMTraceFormatString "-CFileSystem::NewFormatL() r %d CFormatCB %x" */ - ECFileSystemNewFormatLRet, - - /** @SYMTraceFormatString "+CFileSystem::DriveInfo() this %x aDriveNumber %d" */ - ECFileSystemDriveInfo, - /** @SYMTraceFormatString "-CFileSystem::DriveInfo() type %d driveAtt %x mediaAtt %x" */ - ECFileSystemDriveInfoRet, - - - - /** @SYMTraceFormatString "+CMountCB::ReMount() drive %d" */ - ECMountCBReMount, - /** @SYMTraceFormatString "-CMountCB::ReMount() success %d" */ - ECMountCBReMountRet, - - /** @SYMTraceFormatString "+CMountCB::Dismounted() drive %d" */ - ECMountCBDismounted, - /** @SYMTraceFormatString "-CMountCB::Dismounted()" */ - ECMountCBDismountedRet, - - - /** @SYMTraceFormatString "+CMountCB::VolumeL() drive %d" */ - ECMountCBVolumeL, - /** @SYMTraceFormatString "-CMountCB::VolumeL() r %d iUniqueID %x iSize %ld iFree %ld iFileCacheFlags %x" */ - ECMountCBVolumeLRet, - - /** @SYMTraceFormatString "+CMountCB::SetVolumeL() drive %d aName %*S" */ - ECMountCBSetVolumeL, - /** @SYMTraceFormatString "-CMountCB::SetVolumeL() r %d" */ - ECMountCBSetVolumeLRet, - - /** @SYMTraceFormatString "+CMountCB::MkDirL() drive %d aName %*S" */ - ECMountCBMkDirL, - /** @SYMTraceFormatString "-CMountCB::MkDirL() r %d" */ - ECMountCBMkDirLRet, - - /** @SYMTraceFormatString "+CMountCB::RmDirL() drive %d aName %*S" */ - ECMountCBRmDirL, - /** @SYMTraceFormatString "-CMountCB::RmDirL() r %d" */ - ECMountCBRmDirLRet, - - /** @SYMTraceFormatString "+CMountCB::DeleteL() drive %d aName %*S" */ - ECMountCBDeleteL, - /** @SYMTraceFormatString "-CMountCB::DeleteL() r %d" */ - ECMountCBDeleteLRet, - - /** @SYMTraceFormatString "+CMountCB::RenameL() drive %d anOldName %*S anNewName *S" */ - ECMountCBRenameL, - /** @SYMTraceFormatString "-CMountCB::RenameL() r %d" */ - ECMountCBRenameLRet, - - /** @SYMTraceFormatString "+CMountCB::ReplaceL() drive %d anOldName %*S anNewName *S" */ - ECMountCBReplaceL, - /** @SYMTraceFormatString "-CMountCB::ReplaceL() r %d" */ - ECMountCBReplaceLRet, - - /** @SYMTraceFormatString "+CMountCB::EntryL() drive %d aName %*S" */ - ECMountCBEntryL, - /** @SYMTraceFormatString "-CMountCB::EntryL() r %d att %x modified %lx size %d" */ - ECMountCBEntryLRet, - - /** @SYMTraceFormatString "+CMountCB::SetEntryL() drive %d aName %*S aTime %lx aSetAttMask %x aClearAttMask %x" */ - ECMountCBSetEntryL, - /** @SYMTraceFormatString "-CMountCB::SetEntryL() r %d" */ - ECMountCBSetEntryLRet, - - /** @SYMTraceFormatString "+CMountCB::FileOpenL() drive %d aName %*S aMode %x anOpen %d aFile %x" */ - ECMountCBFileOpenL, - /** @SYMTraceFormatString "-CMountCB::FileOpenL() r %d" */ - ECMountCBFileOpenLRet, - - /** @SYMTraceFormatString "+CMountCB::DirOpenL() drive %d aName %*S aDir %x" */ - ECMountCBDirOpenL, - /** @SYMTraceFormatString "-CMountCB::DirOpenL() r %d" */ - ECMountCBDirOpenLRet, - - /** @SYMTraceFormatString "+CMountCB::RawReadL() drive %d aPos %ld aLength %d aTrg %x anOffset %x threadId %x" */ - ECMountCBRawReadL, - /** @SYMTraceFormatString "-CMountCB::RawReadL() r %d" */ - ECMountCBRawReadLRet, - - /** @SYMTraceFormatString "+CMountCB::RawWriteL() drive %d aPos %ld aLength %d aTrg %x anOffset %x threadId %x" */ - ECMountCBRawWriteL, - /** @SYMTraceFormatString "-CMountCB::RawWriteL() r %d" */ - ECMountCBRawWriteLRet, - - /** @SYMTraceFormatString "+CMountCB::GetShortNameL() drive %d aLongName %*S" */ - ECMountCBGetShortNameL, - /** @SYMTraceFormatString "-CMountCB::GetShortNameL() r %d aShortName %*S" */ - ECMountCBGetShortNameLRet, - - /** @SYMTraceFormatString "+CMountCB::GetLongNameL() drive %d aShortName %*S" */ - ECMountCBGetLongNameL, - /** @SYMTraceFormatString "-CMountCB::GetLongNameL() r %d aLongName %*S" */ - ECMountCBGetLongNameLRet, - - /** @SYMTraceFormatString "+CMountCB::ReadFileSectionL() drive %d aName %*S aPos %ld aTrg %x aLength %d threadId %x" */ - ECMountCBReadFileSectionL, - /** @SYMTraceFormatString "-CMountCB::ReadFileSectionL() r %d" */ - ECMountCBReadFileSectionLRet, - - /** @SYMTraceFormatString "+CMountCB::CheckDisk1() drive %d" */ - ECMountCBCheckDisk1, - /** @SYMTraceFormatString "-CMountCB::CheckDisk1() r %d" */ - ECMountCBCheckDisk1Ret, - - /** @SYMTraceFormatString "+CMountCB::CheckDisk2() drive %d aOperation %d aParam1 %x aParam2 %x" */ - ECMountCBCheckDisk2, - /** @SYMTraceFormatString "-CMountCB::CheckDisk2() r %d" */ - ECMountCBCheckDisk2Ret, - - /** @SYMTraceFormatString "+CMountCB::ScanDrive1() drive %d" */ - ECMountCBScanDrive1, - /** @SYMTraceFormatString "-CMountCB::ScanDrive1() r %d" */ - ECMountCBScanDrive1Ret, - - /** @SYMTraceFormatString "+CMountCB::ScanDrive2() drive %d aOperation %d aParam1 %x aParam2 %x" */ - ECMountCBScanDrive2, - /** @SYMTraceFormatString "-CMountCB::ScanDrive2() r %d" */ - ECMountCBScanDrive2Ret, - - /** @SYMTraceFormatString "+CMountCB::ControlIO() drive %d aCommand %d aParam1 %x aParam2 %x threadId %x" */ - ECMountCBControlIO, - /** @SYMTraceFormatString "-CMountCB::ControlIO() r %d" */ - ECMountCBControlIORet, - - /** @SYMTraceFormatString "+CMountCB::Lock() drive %d aStore %d" */ - ECMountCBLock, - /** @SYMTraceFormatString "-CMountCB::Lock() r %d" */ - ECMountCBLockRet, - - /** @SYMTraceFormatString "+CMountCB::Unlock() drive %d aStore %d" */ - ECMountCBUnlock, - /** @SYMTraceFormatString "-CMountCB::Unlock() r %d" */ - ECMountCBUnlockRet, - - /** @SYMTraceFormatString "+CMountCB::ClearPassword() drive %d" */ - ECMountCBClearPassword, - /** @SYMTraceFormatString "-CMountCB::ClearPassword() r %d" */ - ECMountCBClearPasswordRet, - - /** @SYMTraceFormatString "+CMountCB::ForceRemountDrive() drive %d aMountInfo %x aMountInfoMessageHandle %x aFlags %x" */ - ECMountCBForceRemountDrive, - /** @SYMTraceFormatString "-CMountCB::ForceRemountDrive() r %d" */ - ECMountCBForceRemountDriveRet, - - /** @SYMTraceFormatString "+CMountCB::FinaliseMount1() drive %d" */ - ECMountCBFinaliseMount1, - /** @SYMTraceFormatString "-CMountCB::FinaliseMount1() r %d" */ - ECMountCBFinaliseMount1Ret, - - /** @SYMTraceFormatString "+CMountCB::FinaliseMount2() drive %d" */ - ECMountCBFinaliseMount2, - /** @SYMTraceFormatString "-CMountCB::FinaliseMount2() r %d" */ - ECMountCBFinaliseMount2Ret, - - /** @SYMTraceFormatString "+CMountCB::MountControl() drive %d aLevel %d aOption %x aParam %x" */ - ECMountCBMountControl, - /** @SYMTraceFormatString "-CMountCB::MountControl() r %d" */ - ECMountCBMountControlRet, - - /** @SYMTraceFormatString "+CMountCB::ESQ_RequestFreeSpace() drive %d" */ - ECMountCBFreeSpace, - /** @SYMTraceFormatString "-CMountCB::ESQ_RequestFreeSpace() r %d FreeSpace %ld" */ - ECMountCBFreeSpaceRet, - - /** @SYMTraceFormatString "+CMountCB::ESQ_GetCurrentFreeSpace() drive %d" */ - ECMountCBCurrentFreeSpace, - /** @SYMTraceFormatString "-CMountCB::ESQ_GetCurrentFreeSpace() r %d FreeSpace %ld" */ - ECMountCBCurrentFreeSpaceRet, - - /** @SYMTraceFormatString "+CMountCB::ESQ_MountedVolumeSize() drive %d" */ - ECMountCBVolumeSize, - /** @SYMTraceFormatString "-CMountCB::ESQ_MountedVolumeSize() r %d size %ld" */ - ECMountCBVolumeSizeRet, - - /** @SYMTraceFormatString "+CMountCB::ErasePassword() drive %d" */ - ECMountCBErasePassword, - /** @SYMTraceFormatString "-CMountCB::ErasePassword() r %d" */ - ECMountCBErasePasswordRet, - - /** @SYMTraceFormatString "+CMountCB::GetInterface() drive %d aInterfaceId %d aInput %x" */ - ECMountCBGetInterface, - /** @SYMTraceFormatString "-CMountCB::GetInterface() r %d aInterface %x" */ - ECMountCBGetInterfaceRet, - - /** @SYMTraceFormatString "+CFileCB::RenameL() this %x aNewName %*S" */ - ECFileCBRenameL, - /** @SYMTraceFormatString "-CFileCB::RenameL() r %d" */ - ECFileCBRenameLRet, - - /** @SYMTraceFormatString "+CFileCB::ReadL() this %x aPos %ld aLength %d aDes %x threadId %x aOffset %x" */ - ECFileCBReadL, - /** @SYMTraceFormatString "-CFileCB::ReadL() r %d" */ - ECFileCBReadLRet, - - /** @SYMTraceFormatString "+CFileCB::WriteL() this %x aPos %ld aLength %d aDes %x threadId %x aOffset %x" */ - ECFileCBWriteL, - /** @SYMTraceFormatString "-CFileCB::WriteL() r %d" */ - ECFileCBWriteLRet, - - /** @SYMTraceFormatString "+CFileCB::SetSizeL() this %x aSize %ld" */ - ECFileCBSetSizeL, - /** @SYMTraceFormatString "-CFileCB::SetSizeL() r %d" */ - ECFileCBSetSizeLRet, - - /** @SYMTraceFormatString "+CFileCB::SetEntryL() this %x aTime %lx aSetAttMask %x aClearAttMask %x" */ - ECFileCBSetEntryL, - /** @SYMTraceFormatString "-CFileCB::SetEntryL() r %d" */ - ECFileCBSetEntryLRet, - - /** @SYMTraceFormatString "+CFileCB::FlushDataL() this %x" */ - ECFileCBFlushDataL, - /** @SYMTraceFormatString "-CFileCB::FlushDataL() r %d" */ - ECFileCBFlushDataLRet, - - /** @SYMTraceFormatString "+CFileCB::GetInterface() aInterfaceId %d aInput %x" */ - ECFileCBGetInterface, - /** @SYMTraceFormatString "-CFileCB::GetInterface() r %d aInterface %x" */ - ECFileCBGetInterfaceRet, - - - /** @SYMTraceFormatString "+CDirCB::ReadL() this %x" */ - ECDirCBReadL, - /** @SYMTraceFormatString "-CDirCB::ReadL() r %d att %x modified %lx size %d" */ - ECDirCBReadLRet, - - /** @SYMTraceFormatString "+CDirCB::StoreLongEntryNameL() this %x" */ - ECDirCBStoreLongEntryNameL, - /** @SYMTraceFormatString "-CDirCB::StoreLongEntryNameL() r %d" */ - ECDirCBStoreLongEntryNameLRet, - - - /** @SYMTraceFormatString "+CFormatCB::DoFormatStepL() this %x" */ - ECFormatCBDoFormatStepL, - /** @SYMTraceFormatString "-CFormatCB::DoFormatStepL() r %d iCurrentStep %d" */ - ECFormatCBDoFormatStepLRet, - - - - - - /** - Provided to allow the following compile time assert. - */ - EFormatIdHighWaterMark, - }; - __ASSERT_COMPILE(EFormatIdHighWaterMark <= (UTF::KMaxFormatId + 1)); - } - -namespace UTraceModuleProxyDrive - { - /** - @SYMTraceFormatCategory EF32TraceUidProxyDrive - @SYMTraceFormatId - */ - enum TFormatId - { - EReserved = UTF::KInitialClientFormat-1, - - /** @SYMTraceFormatString "+CLocalProxyDrive::New() aMount %x drive %d" */ - ECLocalProxyDriveNew, - /** @SYMTraceFormatString "-CLocalProxyDrive::New() proxyDrive %x" */ - ECLocalProxyDriveNewRet, - - - /** @SYMTraceFormatString "+CBaseExtProxyDrive::Initialise() this %x" */ - ECBaseExtProxyDriveInitialise, - /** @SYMTraceFormatString "-CBaseExtProxyDrive::Initialise() r %d" */ - ECBaseExtProxyDriveInitialiseRet, - - /** @SYMTraceFormatString "+CLocalProxyDrive::Initialise() this %x" */ - ECLocalProxyDriveInitialise, - /** @SYMTraceFormatString "-CLocalProxyDrive::Initialise() r %d" */ - ECLocalProxyDriveInitialiseRet, - - /** @SYMTraceFormatString "+CBaseExtProxyDrive::ControlIO() this %x" */ - ECBaseExtProxyDriveControlIO, - /** @SYMTraceFormatString "-CBaseExtProxyDrive::ControlIO() r %d" */ - ECBaseExtProxyDriveControlIORet, - - /** @SYMTraceFormatString "+CLocalProxyDrive::ControlIO() this %x" */ - ECLocalProxyDriveControlIO, - /** @SYMTraceFormatString "-CLocalProxyDrive::ControlIO() r %d" */ - ECLocalProxyDriveControlIORet, - - /** @SYMTraceFormatString "+CBaseExtProxyDrive::Read1() this %x aPos %ld aLength %d aTrg %x threadId %x aOffset %x aFlags %x" */ - ECBaseExtProxyDriveRead1, - /** @SYMTraceFormatString "-CBaseExtProxyDrive::Read1() r %d" */ - ECBaseExtProxyDriveRead1Ret, - - /** @SYMTraceFormatString "+CLocalProxyDrive::Read1() this %x aPos %ld aLength %d aTrg %x threadId %x aOffset %x aFlags %x" */ - ECLocalProxyDriveRead1, - /** @SYMTraceFormatString "-CLocalProxyDrive::Read1() r %d" */ - ECLocalProxyDriveRead1Ret, - - /** @SYMTraceFormatString "+CBaseExtProxyDrive::Read2() this %x aPos %ld aLength %d aTrg %x threadId %x aOffset %x" */ - ECBaseExtProxyDriveRead2, - /** @SYMTraceFormatString "-CBaseExtProxyDrive::Read2() r %d" */ - ECBaseExtProxyDriveRead2Ret, - - /** @SYMTraceFormatString "+CLocalProxyDrive::Read2() this %x aPos %ld aLength %d aTrg %x threadId %x aOffset %x" */ - ECLocalProxyDriveRead2, - /** @SYMTraceFormatString "-CLocalProxyDrive::Read2() r %d" */ - ECLocalProxyDriveRead2Ret, - - /** @SYMTraceFormatString "+CBaseExtProxyDrive::Read3() this %x aPos %ld aLength %d aTrg %x" */ - ECBaseExtProxyDriveRead3, - /** @SYMTraceFormatString "-CBaseExtProxyDrive::Read3() r %d" */ - ECBaseExtProxyDriveRead3Ret, - - /** @SYMTraceFormatString "+CLocalProxyDrive::Read3() this %x aPos %ld aLength %d aTrg %x" */ - ECLocalProxyDriveRead3, - /** @SYMTraceFormatString "-CLocalProxyDrive::Read3() r %d" */ - ECLocalProxyDriveRead3Ret, - - - /** @SYMTraceFormatString "+CBaseExtProxyDrive::Write1() this %x aPos %ld aLength %d aSrc %x threadId %x aOffset %x aFlags %x" */ - ECBaseExtProxyDriveWrite1, - /** @SYMTraceFormatString "-CBaseExtProxyDrive::Write1() r %d" */ - ECBaseExtProxyDriveWrite1Ret, - - /** @SYMTraceFormatString "+CLocalProxyDrive::Write1() this %x aPos %ld aLength %d aSrc %x threadId %x aOffset %x aFlags %x" */ - ECLocalProxyDriveWrite1, - /** @SYMTraceFormatString "-CLocalProxyDrive::Write1() r %d" */ - ECLocalProxyDriveWrite1Ret, - - /** @SYMTraceFormatString "+CBaseExtProxyDrive::Write2() this %x aPos %ld aLength %d aSrc %x threadId %x aOffset %x" */ - ECBaseExtProxyDriveWrite2, - /** @SYMTraceFormatString "-CBaseExtProxyDrive::Write2() r %d" */ - ECBaseExtProxyDriveWrite2Ret, - - /** @SYMTraceFormatString "+CLocalProxyDrive::Write2() this %x aPos %ld aLength %d aSrc %x threadId %x aOffset %x" */ - ECLocalProxyDriveWrite2, - /** @SYMTraceFormatString "-CLocalProxyDrive::Write2() r %d" */ - ECLocalProxyDriveWrite2Ret, - - /** @SYMTraceFormatString "+CBaseExtProxyDrive::Write3() this %x aPos %ld aLength %d aSrc %x" */ - ECBaseExtProxyDriveWrite3, - /** @SYMTraceFormatString "-CBaseExtProxyDrive::Write3() r %d" */ - ECBaseExtProxyDriveWrite3Ret, - - /** @SYMTraceFormatString "+CLocalProxyDrive::Write3() this %x aPos %ld aLength %d aSrc %x" */ - ECLocalProxyDriveWrite3, - /** @SYMTraceFormatString "-CLocalProxyDrive::Write3() r %d" */ - ECLocalProxyDriveWrite3Ret, - - /** @SYMTraceFormatString "+CBaseExtProxyDrive::Dismounted() this %x" */ - ECBaseExtProxyDriveDismounted, - /** @SYMTraceFormatString "-CBaseExtProxyDrive::Dismounted() r %d" */ - ECBaseExtProxyDriveDismountedRet, - - /** @SYMTraceFormatString "+CLocalProxyDrive::Dismounted() this %x" */ - ECLocalProxyDriveDismounted, - /** @SYMTraceFormatString "-CLocalProxyDrive::Dismounted() r %d" */ - ECLocalProxyDriveDismountedRet, - - /** @SYMTraceFormatString "+CBaseExtProxyDrive::Enlarge() this %x aLength %d" */ - ECBaseExtProxyDriveEnlarge, - /** @SYMTraceFormatString "-CBaseExtProxyDrive::Enlarge() r %d" */ - ECBaseExtProxyDriveEnlargeRet, - - /** @SYMTraceFormatString "+CLocalProxyDrive::Enlarge() this %x aLength %d" */ - ECLocalProxyDriveEnlarge, - /** @SYMTraceFormatString "-CLocalProxyDrive::Enlarge() r %d" */ - ECLocalProxyDriveEnlargeRet, - - /** @SYMTraceFormatString "+CBaseExtProxyDrive::ReduceSize() this %x aPos %d aLength %d" */ - ECBaseExtProxyDriveReduceSize, - /** @SYMTraceFormatString "-CBaseExtProxyDrive::ReduceSize() r %d" */ - ECBaseExtProxyDriveReduceSizeRet, - - /** @SYMTraceFormatString "+CLocalProxyDrive::ReduceSize() this %x aPos %d aLength %d" */ - ECLocalProxyDriveReduceSize, - /** @SYMTraceFormatString "-CLocalProxyDrive::ReduceSize() r %d" */ - ECLocalProxyDriveReduceSizeRet, - - /** @SYMTraceFormatString "+CBaseExtProxyDrive::Caps() this %x" */ - ECBaseExtProxyDriveCaps, - /** @SYMTraceFormatString "-CBaseExtProxyDrive::Caps() r %d" */ - ECBaseExtProxyDriveCapsRet, - - /** @SYMTraceFormatString "+CLocalProxyDrive::Caps() this %x" */ - ECLocalProxyDriveCaps, - /** @SYMTraceFormatString "-CLocalProxyDrive::Caps() r %d" */ - ECLocalProxyDriveCapsRet, - - /** @SYMTraceFormatString "+CBaseExtProxyDrive::Format1() this %x" */ - ECBaseExtProxyDriveFormat1, - /** @SYMTraceFormatString "-CBaseExtProxyDrive::Format1() r %d iFormatIsCurrent %d i512ByteSectorsFormatted %d iMaxBytesPerFormat %d" */ - ECBaseExtProxyDriveFormat1Ret, - - /** @SYMTraceFormatString "+CLocalProxyDrive::Format1() this %x" */ - ECLocalProxyDriveFormat1, - /** @SYMTraceFormatString "-CLocalProxyDrive::Format1() r %d iFormatIsCurrent %d i512ByteSectorsFormatted %d iMaxBytesPerFormat %d" */ - ECLocalProxyDriveFormat1Ret, - - /** @SYMTraceFormatString "+CBaseExtProxyDrive::Format2() this %x aPos %ld aLength %d" */ - ECBaseExtProxyDriveFormat2, - /** @SYMTraceFormatString "-CBaseExtProxyDrive::Format2() r %d" */ - ECBaseExtProxyDriveFormat2Ret, - - /** @SYMTraceFormatString "+CLocalProxyDrive::Format2() this %x aPos %ld aLength %d" */ - ECLocalProxyDriveFormat2, - /** @SYMTraceFormatString "-CLocalProxyDrive::Format2() r %d" */ - ECLocalProxyDriveFormat2Ret, - - /** @SYMTraceFormatString "+CBaseExtProxyDrive::SetMountInfo() this %x" */ - ECBaseExtProxyDriveSetMountInfo, - /** @SYMTraceFormatString "-CBaseExtProxyDrive::SetMountInfo() r %d" */ - ECBaseExtProxyDriveSetMountInfoRet, - - /** @SYMTraceFormatString "+CLocalProxyDrive::SetMountInfo() this %x" */ - ECLocalProxyDriveSetMountInfo, - /** @SYMTraceFormatString "-CLocalProxyDrive::SetMountInfo() r %d" */ - ECLocalProxyDriveSetMountInfoRet, - - /** @SYMTraceFormatString "+CBaseExtProxyDrive::ForceRemount() this %x" */ - ECBaseExtProxyDriveForceRemount, - /** @SYMTraceFormatString "-CBaseExtProxyDrive::ForceRemount() r %d" */ - ECBaseExtProxyDriveForceRemountRet, - - /** @SYMTraceFormatString "+CLocalProxyDrive::ForceRemount() this %x" */ - ECLocalProxyDriveForceRemount, - /** @SYMTraceFormatString "-CLocalProxyDrive::ForceRemount() r %d" */ - ECLocalProxyDriveForceRemountRet, - - /** @SYMTraceFormatString "+CBaseExtProxyDrive::Unlock() this %x aPassword %d" */ - ECBaseExtProxyDriveUnlock, - /** @SYMTraceFormatString "-CBaseExtProxyDrive::Unlock() r %d" */ - ECBaseExtProxyDriveUnlockRet, - - /** @SYMTraceFormatString "+CLocalProxyDrive::Unlock() this %x aPassword %d" */ - ECLocalProxyDriveUnlock, - /** @SYMTraceFormatString "-CLocalProxyDrive::Unlock() r %d" */ - ECLocalProxyDriveUnlockRet, - - /** @SYMTraceFormatString "+CBaseExtProxyDrive::Lock() this %x aPassword %d" */ - ECBaseExtProxyDriveLock, - /** @SYMTraceFormatString "-CBaseExtProxyDrive::Lock() r %d" */ - ECBaseExtProxyDriveLockRet, - - /** @SYMTraceFormatString "+CLocalProxyDrive::Lock() this %x aPassword %d" */ - ECLocalProxyDriveLock, - /** @SYMTraceFormatString "-CLocalProxyDrive::Lock() r %d" */ - ECLocalProxyDriveLockRet, - - /** @SYMTraceFormatString "+CBaseExtProxyDrive::Clear() this %x" */ - ECBaseExtProxyDriveClear, - /** @SYMTraceFormatString "-CBaseExtProxyDrive::Clear() r %d" */ - ECBaseExtProxyDriveClearRet, - - /** @SYMTraceFormatString "+CLocalProxyDrive::Clear() this %x" */ - ECLocalProxyDriveClear, - /** @SYMTraceFormatString "-CLocalProxyDrive::Clear() r %d" */ - ECLocalProxyDriveClearRet, - - /** @SYMTraceFormatString "+CBaseExtProxyDrive::ErasePassword() this %x" */ - ECBaseExtProxyDriveErasePassword, - /** @SYMTraceFormatString "-CBaseExtProxyDrive::ErasePassword() r %d" */ - ECBaseExtProxyDriveErasePasswordRet, - - /** @SYMTraceFormatString "+CLocalProxyDrive::ErasePassword() this %x" */ - ECLocalProxyDriveErasePassword, - /** @SYMTraceFormatString "-CLocalProxyDrive::ErasePassword() r %d" */ - ECLocalProxyDriveErasePasswordRet, - - /** @SYMTraceFormatString "+CBaseExtProxyDrive::DeleteNotify() this %x aPos %ld aLength %d" */ - ECBaseExtProxyDriveDeleteNotify, - /** @SYMTraceFormatString "-CBaseExtProxyDrive::DeleteNotify() r %d" */ - ECBaseExtProxyDriveDeleteNotifyRet, - - /** @SYMTraceFormatString "+CLocalProxyDrive::DeleteNotify() this %x aPos %ld aLength %d" */ - ECLocalProxyDriveDeleteNotify, - /** @SYMTraceFormatString "-CLocalProxyDrive::DeleteNotify() r %d" */ - ECLocalProxyDriveDeleteNotifyRet, - - /** @SYMTraceFormatString "+CBaseExtProxyDrive::GetLastErrorInfo() this %x" */ - ECBaseExtProxyDriveGetLastErrorInfo, - /** @SYMTraceFormatString "-CBaseExtProxyDrive::GetLastErrorInfo() r %d" */ - ECBaseExtProxyDriveGetLastErrorInfoRet, - - /** @SYMTraceFormatString "+CLocalProxyDrive::GetLastErrorInfo() this %x" */ - ECLocalProxyDriveGetLastErrorInfo, - /** @SYMTraceFormatString "-CLocalProxyDrive::GetLastErrorInfo() r %d" */ - ECLocalProxyDriveGetLastErrorInfoRet, - - /** @SYMTraceFormatString "+CBaseExtProxyDrive::GetInterface() this %x aInterfaceId %d aInput %x" */ - ECBaseExtProxyDriveGetInterface, - /** @SYMTraceFormatString "-CBaseExtProxyDrive::GetInterface() r %d aInterface %x" */ - ECBaseExtProxyDriveGetInterfaceRet, - - /** @SYMTraceFormatString "+CLocalProxyDrive::GetInterface() this %x aInterfaceId %d aInput %x" */ - ECLocalProxyDriveGetInterface, - /** @SYMTraceFormatString "-CLocalProxyDrive::GetInterface() r %d aInterface %x" */ - ECLocalProxyDriveGetInterfaceRet, - - - - - /** - Provided to allow the following compile time assert. - */ - EFormatIdHighWaterMark, - }; - __ASSERT_COMPILE(EFormatIdHighWaterMark <= (UTF::KMaxFormatId + 1)); - - - - } // end of namespace UTraceModuleFileSys - - -#endif // UTRACEEFILE_H diff -r 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/fileserver/inc/utraceefsrv.h --- a/userlibandfileserver/fileserver/inc/utraceefsrv.h Thu May 27 14:17:14 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,995 +0,0 @@ - -// Copyright (c) 2008-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: -// File Server client-side tracing -// -// - -/** - @file - @publishedPartner - @prototype -*/ - -#ifndef UTRACEEFSRV_H -#define UTRACEEFSRV_H - - -#include - -#define MODULEUID EF32TraceUidEfsrv - - -/** -This defines trace attributes to be used by trace points within the efsrv.dll executable. -*/ -namespace UTraceModuleEfsrv - { - - /** - @SYMTraceFormatCategory EF32TraceUidEfsrv - */ - - - - /** - @SYMTraceFormatId - */ - enum TFormatId - { - EReserved = UTF::KInitialClientFormat-1, - - /** @SYMTraceFormatString "+RFile::Replace() sess %x mode %x FileName %*S" */ - EFileReplace, - /** @SYMTraceFormatString "-RFile::Replace() r %d subs %x" */ - EFileReplaceReturn, - - /** @SYMTraceFormatString "+RFile::Create() sess %x mode %x FileName %*S" */ - EFileCreate, - /** @SYMTraceFormatString "-RFile::Create() r %d subs %x" */ - EFileCreateReturn, - - /** @SYMTraceFormatString "+RFile::Open() sess %x mode %x FileName %*S" */ - EFileOpen, - /** @SYMTraceFormatString "-RFile::Open() r %d subs %x" */ - EFileOpenReturn, - - /** @SYMTraceFormatString "+RFile::Adopt() sess %x subs %x" */ - EFileAdopt, - /** @SYMTraceFormatString "-RFile::Adopt() r %d sess %x subs %x" */ - EFileAdoptReturn, - - /** @SYMTraceFormatString "+RFile::AdoptFromServer() sess %x subs %x" */ - EFileAdoptFromServer, - /** @SYMTraceFormatString "-RFile::AdoptFromServer() r %d sess %x subs %x" */ - EFileAdoptFromServerReturn, - - /** @SYMTraceFormatString "+RFile::AdoptFromClient() sess %x subs %x aFsHandleIndex %d aFileHandleIndex %d " */ - EFileAdoptFromClient, - /** @SYMTraceFormatString "-RFile::AdoptFromClient() r %d sess %x subs %x" */ - EFileAdoptFromClientReturn, - - /** @SYMTraceFormatString "+RFile::AdoptFromCreator() subs %x aFsHandleIndex %d aFileHandleIndex %d" */ - EFileAdoptFromCreator, - /** @SYMTraceFormatString "-RFile::AdoptFromCreator() r %d sess %x subs %x" */ - EFileAdoptFromCreatorReturn, - - /** @SYMTraceFormatString "+RFile::Duplicate() sess %x subs %x aType %d" */ - EFileDuplicate, - /** @SYMTraceFormatString "-RFile::Duplicate() r %d sess %x subs %x" */ - EFileDuplicateReturn, - - - /** @SYMTraceFormatString "+RFile::TransferToServer() sess %x subs %x aFsHandleIndex %d aFileHandleIndex %d" */ - EFileTransferToServer, - /** @SYMTraceFormatString "-RFile::TransferToServer() r %d" */ - EFileTransferToServerReturn, - - /** @SYMTraceFormatString "+RFile::TransferToClient() sess %x subs %x aFileHandleIndex %d" */ - EFileTransferToClient, - /** @SYMTraceFormatString "-RFile::TransferToClient() r %d" */ - EFileTransferToClientReturn, - - /** @SYMTraceFormatString "+RFile::TransferToProcess() sess %x subs %x aFsHandleIndex %d aFileHandleIndex %d" */ - EFileTransferToProcess, - /** @SYMTraceFormatString "-RFile::TransferToProcess() r %d" */ - EFileTransferToProcessReturn, - - - /** @SYMTraceFormatString "+RFile::Name() sess %x subs %x" */ - EFileName, - /** @SYMTraceFormatString "-RFile::Name() r %d aName %*S" */ - EFileNameReturn, - - /** @SYMTraceFormatString "+RFile::FullName() sess %x subs %x" */ - EFileFullName, - /** @SYMTraceFormatString "-RFile::FullName() r %d aName %*S" */ - EFileFullNameReturn, - - - - /** @SYMTraceFormatString "+RFile::Temp() sess %x aPath %*S aMode %x" */ - EFileTemp, - /** @SYMTraceFormatString "-RFile::Temp() r %d subs %x aName %*S" */ - EFileTempReturn, - - - /** @SYMTraceFormatString "+RFile::Write1() sess %x subs %x len %d" */ - EFileWrite1, - /** @SYMTraceFormatString "-RFile::Write1() r %d" */ - EFileWrite1Return, - - /** @SYMTraceFormatString "+RFile::Write2() sess %x subs %x len %d status %x" */ - EFileWrite2, - /** @SYMTraceFormatString "-RFile::Write2()" */ - EFileWrite2Return, - - /** @SYMTraceFormatString "+RFile::Write3() sess %x subs %x pos %ld len %d" */ - EFileWrite3, - /** @SYMTraceFormatString "-RFile::Write3() r %d" */ - EFileWrite3Return, - - /** @SYMTraceFormatString "+RFile::Write4() sess %x subs %x pos %ld len %d status %x" */ - EFileWrite4, - /** @SYMTraceFormatString "-RFile::Write4()" */ - EFileWrite4Return, - - - - - /** @SYMTraceFormatString "+RFile::Read1() sess %x subs %x maxlen %d" */ - EFileRead1, - /** @SYMTraceFormatString "-RFile::Read1() r %d len %d" */ - EFileRead1Return, - - /** @SYMTraceFormatString "+RFile::Read2() sess %x subs %x maxlen %d status %x" */ - EFileRead2, - /** @SYMTraceFormatString "-RFile::Read2()" */ - EFileRead2Return, - - /** @SYMTraceFormatString "+RFile::Read3() sess %x subs %x aPos %ld maxlen %d" */ - EFileRead3, - /** @SYMTraceFormatString "-RFile::Read3() r %d len %d" */ - EFileRead3Return, - - /** @SYMTraceFormatString "+RFile::Read4() sess %x subs %x aPos %ld maxlen %d status %x" */ - EFileRead4, - /** @SYMTraceFormatString "-RFile::Read4()" */ - EFileRead4Return, - - - - - - /** @SYMTraceFormatString "+RFile::Lock() sess %x subs %x aPos %ld aLength %d" */ - EFileLock, - /** @SYMTraceFormatString "-RFile::Lock() r %d" */ - EFileLockReturn, - - /** @SYMTraceFormatString "+RFile::UnLock() sess %x subs %x aPos %ld aLength %d" */ - EFileUnLock, - /** @SYMTraceFormatString "-RFile::UnLock() r %d" */ - EFileUnLockReturn, - - /** @SYMTraceFormatString "+RFile::Seek() sess %x subs %x aMode %x aPos %ld" */ - EFileSeek, - /** @SYMTraceFormatString "-RFile::Seek() r %d" */ - EFileSeekReturn, - - /** @SYMTraceFormatString "+RFile::Flush() sess %x subs %x status %x" */ - EFileFlush, - /** @SYMTraceFormatString "-RFile::Flush() r %d" */ - EFileFlushReturn, - - /** @SYMTraceFormatString "+RFile::Size1() sess %x subs %x" */ - EFileSize, - /** @SYMTraceFormatString "-RFile::Size1() r %d aSize %d" */ - EFileSizeReturn, - - /** @SYMTraceFormatString "+RFile::Size2() sess %x subs %x" */ - EFileSize2, - /** @SYMTraceFormatString "-RFile::Size2() r %d aSize %ld" */ - EFileSize2Return, - - /** @SYMTraceFormatString "+RFile::SetSize() sess %x subs %x aSize %ld" */ - EFileSetSize, - /** @SYMTraceFormatString "-RFile::SetSize() r %d" */ - EFileSetSizeReturn, - - /** @SYMTraceFormatString "+RFile::Att() sess %x subs %x" */ - EFileAtt, - /** @SYMTraceFormatString "-RFile::Att() r %d aVal %x" */ - EFileAttReturn, - - /** @SYMTraceFormatString "+RFile::SetAtt() sess %x subs %x aSetAttMask %x aClearAttMask %x" */ - EFileSetAtt, - /** @SYMTraceFormatString "-RFile::SetAtt() r %d" */ - EFileSetAttReturn, - - /** @SYMTraceFormatString "+RFile::Modified() sess %x subs %x" */ - EFileModified, - /** @SYMTraceFormatString "-RFile::Modified() r %d aTime %lx" */ - EFileModifiedReturn, - - /** @SYMTraceFormatString "+RFile::SetModified() sess %x subs %x aTime %lx" */ - EFileSetModified, - /** @SYMTraceFormatString "-RFile::SetModified() r %d" */ - EFileSetModifiedReturn, - - /** @SYMTraceFormatString "+RFile::Set() sess %x subs %x aTime %lx aSetAttMask %x aClearAttMask %x" */ - EFileSet, - /** @SYMTraceFormatString "-RFile::Set() r %d" */ - EFileSetReturn, - - /** @SYMTraceFormatString "+RFile::ChangeMode() sess %x subs %x aNewMode %x" */ - EFileChangeMode, - /** @SYMTraceFormatString "-RFile::ChangeMode() r %d" */ - EFileChangeModeReturn, - - /** @SYMTraceFormatString "+RFile::Rename() sess %x subs %x aNewName %*S" */ - EFileRename, - /** @SYMTraceFormatString "-RFile::Rename() r %d" */ - EFileRenameReturn, - - /** @SYMTraceFormatString "+RFile::Drive() sess %x subs %x" */ - EFileDrive, - /** @SYMTraceFormatString "-RFile::Drive() r %d driveAtt %x mediaAtt %x type %x" */ - EFileDriveReturn, - - /** @SYMTraceFormatString "+RFile::Clamp() sess %x subs %x" */ - EFileClamp, - /** @SYMTraceFormatString "-RFile::Clamp() r %d" */ - EFileClampReturn, - - /** @SYMTraceFormatString "+RFile::BlockMap() sess %x subs %x aStartPos %ld aEndPos %ld aBlockMapusage %d" */ - EFileBlockMap, - /** @SYMTraceFormatString "-RFile::BlockMap() r %d" */ - EFileBlockMapReturn, - - /** @SYMTraceFormatString "+RFile::Close() sess %x subs %x" */ - EFileClose, - /** @SYMTraceFormatString "-RFile::Close()" */ - EFileCloseReturn, - - - - /** @SYMTraceFormatString "+RFS::DriveToChar() aDrive %d" */ - EFsDriveToChar, - /** @SYMTraceFormatString "-RFs::DriveToChar() r %d aChar %c" */ - EFsDriveToCharReturn, - /** @SYMTraceFormatString "+RFs::IsRomAddress() aPtr %x" */ - EFsIsRomAddress, - /** @SYMTraceFormatString "-RFS::IsRomAddress() r %d" */ - EFsIsRomAddressReturn, - /** @SYMTraceFormatString "+RFs::GetSystemDrive()" */ - EFsGetSystemDrive, - /** @SYMTraceFormatString "-RFs::GetSystemDrive() r %d" */ - EFsGetSystemDriveReturn, - /** @SYMTraceFormatString "+RFs::GetSystemDriveChar()" */ - EFsGetSystemDriveChar, - /** @SYMTraceFormatString "-RFs::GetSystemDriveChar() r %c" */ - EFsGetSystemDriveCharReturn, - /** @SYMTraceFormatString "+RFs::SetSystemDrive() sess %x" */ - EFsSetSystemDrive, - /** @SYMTraceFormatString "-RFs::SetSystemDrive() r %d" */ - EFsSetSystemDriveReturn, - /** @SYMTraceFormatString "+RFs::Connect()" */ - EFsConnect, - /** @SYMTraceFormatString "-RFs::Connect() r %d sess %x" */ - EFsConnectReturn, - /** @SYMTraceFormatString "+RFs::SetSessionToPrivate() sess %x" */ - EFsSetSessionToPrivate, - /** @SYMTraceFormatString "-RFs::SetSessionToPrivate() r %d" */ - EFsSetSessionToPrivateReturn, - /** @SYMTraceFormatString "+RFs::PrivatePath() sess %x" */ - EFsPrivatePath, - /** @SYMTraceFormatString "-RFs::PrivatePath() r %d aPath %*S" */ - EFsPrivatePathReturn, - /** @SYMTraceFormatString "+RFs::CreatePrivatePath() sess %x aDrive %d" */ - EFsCreatePrivatePath, - /** @SYMTraceFormatString "-RFs::CreatePrivatePath() r %d" */ - EFsCreatePrivatePathReturn, - /** @SYMTraceFormatString "+RFs::Version() sess %x" */ - EFsVersion, - /** @SYMTraceFormatString "-RFs::Version() iMajor %d iMinor %d iBuild %d" */ - EFsVersionReturn, - /** @SYMTraceFormatString "+RFs::AddFileSystem() sess %x aFileName %*S" */ - EFsAddFileSystem, - /** @SYMTraceFormatString "-RFs::AddFileSystem() r %d" */ - EFsAddFileSystemReturn, - /** @SYMTraceFormatString "+RFs::RemoveFileSystem() sess %x aFileName %*S" */ - EFsRemoveFileSystem, - /** @SYMTraceFormatString "-RFs::RemoveFileSystem() r %d" */ - EFsRemoveFileSystemReturn, - /** @SYMTraceFormatString "+RFs::MountFileSystem1() sess %x aFileSystemName %*S aDrive %d" */ - EFsMountFileSystem1, - /** @SYMTraceFormatString "-RFs::MountFileSystem1() r %d" */ - EFsMountFileSystem1Return, - /** @SYMTraceFormatString "+RFs::MountFileSystem2() sess %x aFileSystemName %*S aDrive %d aIsSync %d" */ - EFsMountFileSystem2, - /** @SYMTraceFormatString "-RFs::MountFileSystem2() r %d" */ - EFsMountFileSystem2Return, - /** @SYMTraceFormatString "+RFs::MountFileSystem3() sess %x aFileSystemName %*S aExtensionName %*S aDrive %d" */ - EFsMountFileSystem3, - /** @SYMTraceFormatString "-RFs::MountFileSystem3() r %d" */ - EFsMountFileSystem3Return, - /** @SYMTraceFormatString "+RFs::MountFileSystem4() sess %x aFileSystemName %*S aExtensionName %*S aDrive %d aIsSync %d" */ - EFsMountFileSystem4, - /** @SYMTraceFormatString "-RFs::MountFileSystem4() r %d" */ - EFsMountFileSystem4Return, - /** @SYMTraceFormatString "+RFs::MountFileSystemAndScan1() sess %x aFileSystemName %*S aDrive %d" */ - EFsMountFileSystemAndScan1, - /** @SYMTraceFormatString "-RFs::MountFileSystemAndScan1() r %d" */ - EFsMountFileSystemAndScan1Return, - /** @SYMTraceFormatString "+RFs::MountFileSystemAndScan2() sess %x aFileSystemName %*S aExtensionName %*S aDrive %d " */ - EFsMountFileSystemAndScan2, - /** @SYMTraceFormatString "-RFs::MountFileSystemAndScan2() r %d aIsMountSuccess %d" */ - EFsMountFileSystemAndScan2Return, - /** @SYMTraceFormatString "+RFs::DismountFileSystem() sess %x aFileSystemName %*S aDrive %d" */ - EFsDismountFileSystem, - /** @SYMTraceFormatString "-RFs::DismountFileSystem() r %d" */ - EFsDismountFileSystemReturn, - /** @SYMTraceFormatString "+RFs::FileSystemName() sess %x aDrive %d" */ - EFsFileSystemName, - /** @SYMTraceFormatString "-RFs::FileSystemName() r %d aName %*S" */ - EFsFileSystemNameReturn, - /** @SYMTraceFormatString "+RFs::AddExtension() sess %x aFileName %*S" */ - EFsAddExtension, - /** @SYMTraceFormatString "-RFs::AddExtension() r %d" */ - EFsAddExtensionReturn, - /** @SYMTraceFormatString "+RFs::MountExtension() sess %x aExtensionName %*S aDrive %d" */ - EFsMountExtension, - /** @SYMTraceFormatString "-RFs::MountExtension() r %d" */ - EFsMountExtensionReturn, - /** @SYMTraceFormatString "+RFs::DismountExtension() sess %x aExtensionName %*S aDrive %d" */ - EFsDismountExtension, - /** @SYMTraceFormatString "-RFs::DismountExtension() r %d" */ - EFsDismountExtensionReturn, - /** @SYMTraceFormatString "+RFs::RemoveExtension() sess %x aExtensionName %*S" */ - EFsRemoveExtension, - /** @SYMTraceFormatString "-RFs::RemoveExtension() r %d" */ - EFsRemoveExtensionReturn, - /** @SYMTraceFormatString "+RFs::ExtensionName() sess %x aExtensionName %*S aDrive %d aPos %d" */ - EFsExtensionName, - /** @SYMTraceFormatString "-RFs::ExtensionName() r %d" */ - EFsExtensionNameReturn, - /** @SYMTraceFormatString "+RFs::RemountDrive() sess %x aDrive %d aMountInfo %x aFlags %x" */ - EFsRemountDrive, - /** @SYMTraceFormatString "-RFs::RemountDrive() r %d" */ - EFsRemountDriveReturn, - /** @SYMTraceFormatString "+RFs::NotifyChange1() sess %x aType %x status %x" */ - EFsNotifyChange1, - /** @SYMTraceFormatString "-RFs::NotifyChange1() r %d" */ - EFsNotifyChange1Return, - /** @SYMTraceFormatString "+RFs::NotifyChange2() sess %x aType %x status %x aPathName %*S" */ - EFsNotifyChange2, - /** @SYMTraceFormatString "-RFs::NotifyChange2() r %d" */ - EFsNotifyChange2Return, - /** @SYMTraceFormatString "+RFs::NotifyChangeCancel1() sess %x" */ - EFsNotifyChangeCancel1, - /** @SYMTraceFormatString "-RFs::NotifyChangeCancel1() r %d" */ - EFsNotifyChangeCancel1Return, - /** @SYMTraceFormatString "+RFs::NotifyChangeCancel2() sess %x status %x" */ - EFsNotifyChangeCancel2, - /** @SYMTraceFormatString "-RFs::NotifyChangeCancel2() r %d" */ - EFsNotifyChangeCancel2Return, - /** @SYMTraceFormatString "+RFs::NotifyDiskSpace() sess %x aThreshold %ld aDrive %d status %x" */ - EFsNotifyDiskSpace, - /** @SYMTraceFormatString "-RFs::NotifyDiskSpace() r %d" */ - EFsNotifyDiskSpaceReturn, - /** @SYMTraceFormatString "+RFs::NotifyDiskSpaceCancel1() sess %x status %x" */ - EFsNotifyDiskSpaceCancel1, - /** @SYMTraceFormatString "-RFs::NotifyDiskSpaceCancel1() r %d" */ - EFsNotifyDiskSpaceCancel1Return, - /** @SYMTraceFormatString "+RFs::NotifyDiskSpaceCancel2() sess %x" */ - EFsNotifyDiskSpaceCancel2, - /** @SYMTraceFormatString "-RFs::NotifyDiskSpaceCancel2() r %d" */ - EFsNotifyDiskSpaceCancel2Return, - /** @SYMTraceFormatString "+RFs::DriveList1() sess %x" */ - EFsDriveList1, - /** @SYMTraceFormatString "-RFs::DriveList1() r %d" */ - EFsDriveList1Return, - /** @SYMTraceFormatString "+RFs::DriveList2() sess %x aFlags %x" */ - EFsDriveList2, - /** @SYMTraceFormatString "-RFs::DriveList2() r %d" */ - EFsDriveList2Return, - /** @SYMTraceFormatString "+RFs::Drive() sess %x aDrive %d" */ - EFsDrive, - /** @SYMTraceFormatString "-RFs::Drive() r %d driveAtt %x mediaAtt %x type %x" */ - EFsDriveReturn, - /** @SYMTraceFormatString "+RFs::Volume1() sess %x aDrive %d" */ - EFsVolume1, - /** @SYMTraceFormatString "-RFs::Volume1() r %d iUniqueID %x iSize %ld iFree %ld iFileCacheFlags %x" */ - EFsVolume1Return, - /** @SYMTraceFormatString "+RFs::Volume2() sess %x aDrive %d status %x" */ - EFsVolume2, - /** @SYMTraceFormatString "-RFs::Volume2() r %d" */ - EFsVolume2Return, - /** @SYMTraceFormatString "+RFs::SetVolumeLabel() sess %x aName %*S aDrive %d" */ - EFsSetVolumeLabel, - /** @SYMTraceFormatString "-RFs::SetVolumeLabel() r %d" */ - EFsSetVolumeLabelReturn, - /** @SYMTraceFormatString "+RFs::Subst() sess %x aPath %*S aDrive %d" */ - EFsSubst, - /** @SYMTraceFormatString "-RFs::Subst() r %d" */ - EFsSubstReturn, - /** @SYMTraceFormatString "+RFs::SetSubst() sess %x aPath %%S aDrive %d" */ - EFsSetSubst, - /** @SYMTraceFormatString "-RFs::SetSubst() r %d" */ - EFsSetSubstReturn, - /** @SYMTraceFormatString "+RFs::RealName() sess %x aName %*S" */ - EFsRealName, - /** @SYMTraceFormatString "-RFs::RealName() r %d aResult %*S" */ - EFsRealNameReturn, - /** @SYMTraceFormatString "+RFs::GetMediaSerialNumber() sess %x aDrive %d" */ - EFsGetMediaSerialNumber, - /** @SYMTraceFormatString "-RFs::GetMediaSerialNumber() r %d aSerialNum %*x" */ - EFsGetMediaSerialNumberReturn, - /** @SYMTraceFormatString "+RFs::SessionPath() sess %x" */ - EFsSessionPath, - /** @SYMTraceFormatString "-RFs::SessionPath() r %d aPath %*S" */ - EFsSessionPathReturn, - /** @SYMTraceFormatString "+RFs::SetSessionPath() sess %x aPath %*S" */ - EFsSetSessionPath, - /** @SYMTraceFormatString "-RFs::SetSessionPath() r %d" */ - EFsSetSessionPathReturn, - /** @SYMTraceFormatString "+RFs::MkDir() sess %x aPath %*S" */ - EFsMkDir, - /** @SYMTraceFormatString "-RFs::MkDir() r %d" */ - EFsMkDirReturn, - /** @SYMTraceFormatString "+RFs::MkDirAll() sess %x aPath %*S" */ - EFsMkDirAll, - /** @SYMTraceFormatString "-RFs::MkDirAll() r %d" */ - EFsMkDirAllReturn, - /** @SYMTraceFormatString "+RFs::RmDir() sess %x aPath %*S" */ - EFsRmDir, - /** @SYMTraceFormatString "-RFs::RmDir() r %d" */ - EFsRmDirReturn, - /** @SYMTraceFormatString "+RFs::GetDir1() sess %x aName %*S aUidType0 %x aUidType1 %x aUidType2 %x aKey %x" */ - EFsGetDir1, - /** @SYMTraceFormatString "-RFs::GetDir1() r %d" */ - EFsGetDir1Return, - /** @SYMTraceFormatString "+RFs::GetDir2() sess %x aName %*S anAttMask %x aKey %x" */ - EFsGetDir2, - /** @SYMTraceFormatString "-RFs::GetDir2() r %d" */ - EFsGetDir2Return, - /** @SYMTraceFormatString "+RFs::GetDir3() sess %x aName %*S anAttMask %x aKey %x" */ - EFsGetDir3, - /** @SYMTraceFormatString "-RFs::GetDir3() r %d" */ - EFsGetDir3Return, - /** @SYMTraceFormatString "+RFs::Parse1() sess %x aName %*S" */ - EFsParse1, - /** @SYMTraceFormatString "-RFs::Parse1() r %d" */ - EFsParse1Return, - /** @SYMTraceFormatString "+RFs::Parse2() sess %x aName %*S aRelated %*S" */ - EFsParse2, - /** @SYMTraceFormatString "-RFs::Parse2() r %d" */ - EFsParse2Return, - /** @SYMTraceFormatString "+RFs::Delete() sess %x aName %*S" */ - EFsDelete, - /** @SYMTraceFormatString "-RFs::Delete() r %d" */ - EFsDeleteReturn, - /** @SYMTraceFormatString "+RFs::Rename() sess %x anOldName %*S aNewName %*S" */ - EFsRename, - /** @SYMTraceFormatString "-RFs::Rename() r %d" */ - EFsRenameReturn, - /** @SYMTraceFormatString "+RFs::Replace() sess %x anOldName %*S aNewName %*S" */ - EFsReplace, - /** @SYMTraceFormatString "-RFs::Replace() r %d" */ - EFsReplaceReturn, - /** @SYMTraceFormatString "+RFs::Att() sess %x aName %*S" */ - EFsAtt, - /** @SYMTraceFormatString "-RFs::Att() r %d aVal %x" */ - EFsAttReturn, - /** @SYMTraceFormatString "+RFs::SetAtt() sess %x aName %*S aSetAttMask %x aClearAttMask %x" */ - EFsSetAtt, - /** @SYMTraceFormatString "-RFs::SetAtt() r %d" */ - EFsSetAttReturn, - /** @SYMTraceFormatString "+RFs::Modified() sess %x aName %*S" */ - EFsModified, - /** @SYMTraceFormatString "-RFs::Modified() r %d aTime %lx" */ - EFsModifiedReturn, - /** @SYMTraceFormatString "+RFs::SetModified() sess %x aName %*S aTime %lx" */ - EFsSetModified, - /** @SYMTraceFormatString "-RFs::SetModified() r %d" */ - EFsSetModifiedReturn, - /** @SYMTraceFormatString "+RFs::Entry() sess %x aName %*S" */ - EFsEntry, - /** @SYMTraceFormatString "-RFs::Entry() r %d att %x modified %lx size %d" */ - EFsEntryReturn, - /** @SYMTraceFormatString "+RFs::SetEntry() sess %x aName %*S aTime %lx aSetAttMask %x aClearAttMask %x" */ - EFsSetEntry, - /** @SYMTraceFormatString "-RFs::SetEntry() r %d" */ - EFsSetEntryReturn, - /** @SYMTraceFormatString "+RFs::ReadFileSection() sess %x aName %*S aPos %ld aLength %d" */ - EFsReadFileSection, - /** @SYMTraceFormatString "-RFs::ReadFileSection() r %d" */ - EFsReadFileSectionReturn, - /** @SYMTraceFormatString "+RFs::ResourceCountMarkStart() sess %x" */ - EFsResourceCountMarkStart, - /** @SYMTraceFormatString "-RFs::ResourceCountMarkStart() r %d" */ - EFsResourceCountMarkStartReturn, - /** @SYMTraceFormatString "+RFs::ResourceCountMarkEnd() sess %x" */ - EFsResourceCountMarkEnd, - /** @SYMTraceFormatString "-RFs::ResourceCountMarkEnd() r %d" */ - EFsResourceCountMarkEndReturn, - /** @SYMTraceFormatString "+RFs::ResourceCount() sess %x" */ - EFsResourceCount, - /** @SYMTraceFormatString "-RFs::ResourceCount() r %d" */ - EFsResourceCountReturn, - /** @SYMTraceFormatString "+RFs::CheckDisk() sess %x aDrive %*S" */ - EFsCheckDisk, - /** @SYMTraceFormatString "-RFs::CheckDisk() r %d" */ - EFsCheckDiskReturn, - /** @SYMTraceFormatString "+RFs::ScanDrive() sess %x aDrive %*S" */ - EFsScanDrive, - /** @SYMTraceFormatString "-RFs::ScanDrive() r %d" */ - EFsScanDriveReturn, - /** @SYMTraceFormatString "+RFs::GetShortName() sess %x aLongName %*S" */ - EFsGetShortName, - /** @SYMTraceFormatString "-RFs::GetShortName() r %d aShortName %*S" */ - EFsGetShortNameReturn, - /** @SYMTraceFormatString "+RFs::GetLongName() sess %x aShortName %*S" */ - EFsGetLongName, - /** @SYMTraceFormatString "-RFs::GetLongName() r %d aLongName %*S" */ - EFsGetLongNameReturn, - /** @SYMTraceFormatString "+RFs::IsFileOpen() sess %x aFileName %*S" */ - EFsIsFileOpen, - /** @SYMTraceFormatString "-RFs::IsFileOpen() r %d anAnswer %d" */ - EFsIsFileOpenReturn, - /** @SYMTraceFormatString "+RFs::GetNotifyUser() sess %x" */ - EFsGetNotifyUser, - /** @SYMTraceFormatString "-RFs::GetNotifyUser() r %d" */ - EFsGetNotifyUserReturn, - /** @SYMTraceFormatString "+RFs::SetNotifyUser() sess %x aValue %d" */ - EFsSetNotifyUser, - /** @SYMTraceFormatString "-RFs::SetNotifyUser() r %d" */ - EFsSetNotifyUserReturn, - /** @SYMTraceFormatString "+RFs::IsFileInRom() sess %x aFileName %*S" */ - EFsIsFileInRom, - /** @SYMTraceFormatString "-RFs::IsFileInRom() r %d" */ - EFsIsFileInRomReturn, - /** @SYMTraceFormatString "+RFs::IsValidName1() sess %x aFileName %*S" */ - EFsIsValidName1, - /** @SYMTraceFormatString "-RFs::IsValidName1() r %d" */ - EFsIsValidName1Return, - /** @SYMTraceFormatString "+RFs::IsValidName2() sess %x aFileName %*S" */ - EFsIsValidName2, - /** @SYMTraceFormatString "-RFs::IsValidName2() r %d aBadChar %c" */ - EFsIsValidName2Return, - /** @SYMTraceFormatString "+RFs::IsValidName3() sess %x aFileName %*S" */ - EFsIsValidName3, - /** @SYMTraceFormatString "-RFs::IsValidName3() r %d err %d" */ - EFsIsValidName3Return, - /** @SYMTraceFormatString "+RFs::GetDriveName() sess %x aDrive %d" */ - EFsGetDriveName, - /** @SYMTraceFormatString "-RFs::GetDriveName() r %d aDriveName %*S" */ - EFsGetDriveNameReturn, - /** @SYMTraceFormatString "+RFs::SetDriveName() sess %x aDrive %d aDriveName %*S" */ - EFsSetDriveName, - /** @SYMTraceFormatString "-RFs::SetDriveName() r %d" */ - EFsSetDriveNameReturn, - /** @SYMTraceFormatString "+RFs::LockDrive() sess %x aDrv %d aStore %d" */ - EFsLockDrive, - /** @SYMTraceFormatString "-RFs::LockDrive() r %d" */ - EFsLockDriveReturn, - /** @SYMTraceFormatString "+RFs::UnlockDrive() sess %x aDrv %d aStore %d" */ - EFsUnlockDrive, - /** @SYMTraceFormatString "-RFs::UnlockDrive() r %d" */ - EFsUnlockDriveReturn, - /** @SYMTraceFormatString "+RFs::ClearPassword() sess %x aDrv %d" */ - EFsClearPassword, - /** @SYMTraceFormatString "-RFs::ClearPassword() r %d" */ - EFsClearPasswordReturn, - /** @SYMTraceFormatString "+RFs::ErasePassword() sess %x aDrv %d" */ - EFsErasePassword, - /** @SYMTraceFormatString "-RFs::ErasePassword() r %d" */ - EFsErasePasswordReturn, - /** @SYMTraceFormatString "+RFs::StartupInitComplete() sess %x status %x" */ - EFsStartupInitComplete, - /** @SYMTraceFormatString "-RFs::StartupInitComplete() r %d" */ - EFsStartupInitCompleteReturn, - /** @SYMTraceFormatString "+RFs::SetLocalDriveMapping() sess %x aMapping %*x" */ - EFsSetLocalDriveMapping, - /** @SYMTraceFormatString "-RFs::SetLocalDriveMapping() r %d" */ - EFsSetLocalDriveMappingReturn, - /** @SYMTraceFormatString "+RFs::FinaliseDrive() sess %x aDriveNo %d aMode %d" */ - EFsFinaliseDrive, - /** @SYMTraceFormatString "-RFs::FinaliseDrive() r %d" */ - EFsFinaliseDriveReturn, - /** @SYMTraceFormatString "+RFs::FinaliseDrives() sess %x" */ - EFsFinaliseDrives, - /** @SYMTraceFormatString "-RFs::FinaliseDrives() r %d" */ - EFsFinaliseDrivesReturn, - /** @SYMTraceFormatString "+RFs::SwapFileSystem() sess %x aOldFileSystemName %*S aNewFileSystemName %*S aDrive %d" */ - EFsSwapFileSystem, - /** @SYMTraceFormatString "-RFs::SwapFileSystem() r %d" */ - EFsSwapFileSystemReturn, - /** @SYMTraceFormatString "+RFs::AddCompositeMount() sess %x aFileSystemName %*S aLocalDriveToMount %d aCompositeDrive %d aSync %d" */ - EFsAddCompositeMount, - /** @SYMTraceFormatString "-RFs::AddCompositeMount() r %d" */ - EFsAddCompositeMountReturn, - /** @SYMTraceFormatString "+RFs::ReserveDriveSpace() sess %x aDriveNo %d aSpace %d" */ - EFsReserveDriveSpace, - /** @SYMTraceFormatString "-RFs::ReserveDriveSpace() r %d" */ - EFsReserveDriveSpaceReturn, - /** @SYMTraceFormatString "+RFs::GetReserveAccess() sess %x aDriveNo %d" */ - EFsGetReserveAccess, - /** @SYMTraceFormatString "-RFs::GetReserveAccess() r %d" */ - EFsGetReserveAccessReturn, - /** @SYMTraceFormatString "+RFs::ReleaseReserveAccess() sess %x aDriveNo %d" */ - EFsReleaseReserveAccess, - /** @SYMTraceFormatString "-RFs::ReleaseReserveAccess() r %d" */ - EFsReleaseReserveAccessReturn, - /** @SYMTraceFormatString "+RFs::NotifyDismount() sess %x aDrive %d stauts %x aMode %d" */ - EFsNotifyDismount, - /** @SYMTraceFormatString "-RFs::NotifyDismount() r %d" */ - EFsNotifyDismountReturn, - /** @SYMTraceFormatString "+RFs::NotifyDismountCancel1() sess %x status %x" */ - EFsNotifyDismountCancel1, - /** @SYMTraceFormatString "-RFs::NotifyDismountCancel1() r %d" */ - EFsNotifyDismountCancel1Return, - /** @SYMTraceFormatString "+RFs::NotifyDismountCancel2() sess %x" */ - EFsNotifyDismountCancel2, - /** @SYMTraceFormatString "-RFs::NotifyDismountCancel2() r %d" */ - EFsNotifyDismountCancel2Return, - /** @SYMTraceFormatString "+RFs::AllowDismount() sess %x aDrive %d" */ - EFsAllowDismount, - /** @SYMTraceFormatString "-RFs::AllowDismount() r %d" */ - EFsAllowDismountReturn, - /** @SYMTraceFormatString "+RFs::SetStartupConfiguration() sess %x aCommand %d aParam1 %x aParam2 %x" */ - EFsSetStartupConfiguration, - /** @SYMTraceFormatString "-RFs::SetStartupConfiguration() r %d" */ - EFsSetStartupConfigurationReturn, - /** @SYMTraceFormatString "+RFs::SetNotifyChange() sess %x aNotifyChange %d" */ - EFsSetNotifyChange, - /** @SYMTraceFormatString "-RFs::SetNotifyChange() r %d" */ - EFsSetNotifyChangeReturn, - /** @SYMTraceFormatString "+RFs::InitialisePropertiesFile() sess %x filePtr %x fileLen %d" */ - EFsInitialisePropertiesFile, - /** @SYMTraceFormatString "-RFs::InitialisePropertiesFile() r %d" */ - EFsInitialisePropertiesFileReturn, - /** @SYMTraceFormatString "+RFs::QueryVolumeInfoExt() sess %x aDrive %d aCommand %d" */ - EFsQueryVolumeInfoExt, - /** @SYMTraceFormatString "-RFs::QueryVolumeInfoExt() r %d" */ - EFsQueryVolumeInfoExtReturn, - /** @SYMTraceFormatString "+RFs::VolumeIOParam() sess %x aDrive %d" */ - EFsVolumeIOParam, - /** @SYMTraceFormatString "-RFs::VolumeIOParam() r %d iBlockSize %d iClusterSize %d iRecReadBufSize %d iRecWriteBufSize %d" */ - EFsVolumeIOParamReturn, - /** @SYMTraceFormatString "+RFs::FileSystemSubType() sess %x aDrive %d aName %*S" */ - EFsFileSystemSubType, - /** @SYMTraceFormatString "-RFs::FileSystemSubType() r %d" */ - EFsFileSystemSubTypeReturn, - - /** @SYMTraceFormatString "+RFs::AddPlugin() sess %x aFileName %*S" */ - EFsAddPlugin, - /** @SYMTraceFormatString "-RFs::AddPlugin() r %d" */ - EFsAddPluginReturn, - - /** @SYMTraceFormatString "+RFs::RemovePlugin() sess %x aPluginName %*S" */ - EFsRemovePlugin, - /** @SYMTraceFormatString "-RFs::RemovePlugin() r %d" */ - EFsRemovePluginReturn, - - /** @SYMTraceFormatString "+RFs::MountPlugin1() sess %x aPluginName %*S" */ - EFsMountPlugin1, - /** @SYMTraceFormatString "-RFs::MountPlugin1() r %d" */ - EFsMountPlugin1Return, - - /** @SYMTraceFormatString "+RFs::MountPlugin2() sess %x aPluginName %*S aDrive %d" */ - EFsMountPlugin2, - /** @SYMTraceFormatString "-RFs::MountPlugin2() r %d" */ - EFsMountPlugin2Return, - - /** @SYMTraceFormatString "+RFs::MountPlugin3() sess %x aPluginName %*S aDrive %d aPos %d" */ - EFsMountPlugin3, - /** @SYMTraceFormatString "-RFs::MountPlugin3() r %d" */ - EFsMountPlugin3Return, - - /** @SYMTraceFormatString "+RFs::DismountPlugin() sess %x aPluginName %*S" */ - EFsDismountPlugin1, - /** @SYMTraceFormatString "-RFs::DismountPlugin() r %d" */ - EFsDismountPlugin1Return, - - /** @SYMTraceFormatString "+RFs::DismountPlugin2() sess %x aPluginName %*S aDrive %d" */ - EFsDismountPlugin2, - /** @SYMTraceFormatString "-RFs::DismountPlugin2() r %d" */ - EFsDismountPlugin2Return, - - /** @SYMTraceFormatString "+RFs::DismountPlugin3() sess %x aPluginName %*S aDrive %d aPos %d" */ - EFsDismountPlugin3, - /** @SYMTraceFormatString "-RFs::DismountPlugin3() r %d" */ - EFsDismountPlugin3Return, - - /** @SYMTraceFormatString "+RFs::PluginName() sess %x aDrive %d aPos %d" */ - EFsPluginName, - /** @SYMTraceFormatString "-RFs::PluginName() r %d aName %*S" */ - EFsPluginNameReturn, - - /** @SYMTraceFormatString "+RFs::Close() sess %x" */ - EFsClose, - /** @SYMTraceFormatString "-RFs::Close() r %d" */ - EFsCloseReturn, - - - /** @SYMTraceFormatString "+RDir::Open1() sess %x aName %*S aUidType0 %x aUidType1 %x aUidType2 %x" */ - EDirOpen1, - /** @SYMTraceFormatString "-RDir::Open1() r %d subs %x" */ - EDirOpen1Return, - - /** @SYMTraceFormatString "+RDir::Open2() sess %x aName %*S anAttMask %x" */ - EDirOpen2, - /** @SYMTraceFormatString "-RDir::Open2() r %d subs %x" */ - EDirOpen2Return, - - /** @SYMTraceFormatString "+RDir::Close() sess %x subs %x" */ - EDirClose, - /** @SYMTraceFormatString "-RDir::Close()" */ - EDirCloseReturn, - - /** @SYMTraceFormatString "+RDir::Read1() sess %x subs %x" */ - EDirRead1, - /** @SYMTraceFormatString "-RDir::Read1() r %d count %d" */ - EDirRead1Return, - - /** @SYMTraceFormatString "+RDir::Read2() sess %x subs %x status %x" */ - EDirRead2, - /** @SYMTraceFormatString "-RDir::Read2()" */ - EDirRead2Return, - - /** @SYMTraceFormatString "+RDir::Read3() sess %x subs %x" */ - EDirRead3, - /** @SYMTraceFormatString "-RDir::Read3() r %d" */ - EDirRead3Return, - - /** @SYMTraceFormatString "+RDir::Read4() sess %x subs %x status %x" */ - EDirRead4, - /** @SYMTraceFormatString "-RDir::Read4()" */ - EDirRead4Return, - - - /** @SYMTraceFormatString "+RFormat::Open1() sess %x aName %*S aFormatMode %x" */ - EFormat1Open, - /** @SYMTraceFormatString "-RFormat::Open1() r %d subs %x aCount %d" */ - EFormatOpen1Return, - - /** @SYMTraceFormatString "+RFormat::Open2() sess %x aName %*S aFormatMode %x aInfo %x" */ - EFormat2Open, - /** @SYMTraceFormatString "-RFormat::Open2() r %d subs %x aCount %d" */ - EFormatOpen2Return, - - /** @SYMTraceFormatString "+RFormat::Close() sess %x subs %x" */ - EFormatClose, - /** @SYMTraceFormatString "-RFormat::Close()" */ - EFormatCloseReturn, - - /** @SYMTraceFormatString "+RFormat::Next1() sess %x subs %x" */ - EFormatNext1, - /** @SYMTraceFormatString "-RFormat::Next1() r %d aStep %d" */ - EFormatNext1Return, - - /** @SYMTraceFormatString "+RFormat::Next2() sess %x subs %x status %x" */ - EFormatNext2, - /** @SYMTraceFormatString "-RFormat::Next2()" */ - EFormatNext2Return, - - - - /** @SYMTraceFormatString "+RPlugin::Open() aPos %d" */ - EPluginOpen, - /** @SYMTraceFormatString "-RPlugin::Open() r %d subs %x" */ - EPluginOpenReturn, - - /** @SYMTraceFormatString "+RPlugin::Close() sess %x subs %x" */ - EPluginClose, - /** @SYMTraceFormatString "-RPlugin::Close() r %d" */ - EPluginCloseReturn, - - /** @SYMTraceFormatString "+RPlugin::DoRequest1() sess %x subs %x aReqNo %d status %x" */ - EPluginDoRequest1, - /** @SYMTraceFormatString "-RPlugin::DoRequest1()" */ - EPluginDoRequest1Return, - - /** @SYMTraceFormatString "+RPlugin::DoRequest2() sess %x subs %x aReqNo %d status %x a1 %x" */ - EPluginDoRequest2, - /** @SYMTraceFormatString "-RPlugin::DoRequest2()" */ - EPluginDoRequest2Return, - - /** @SYMTraceFormatString "+RPlugin::DoRequest3() sess %x subs %x aReqNo %d status %x a1 %x a2 %x" */ - EPluginDoRequest3, - /** @SYMTraceFormatString "-RPlugin::DoRequest3()" */ - EPluginDoRequest3Return, - - /** @SYMTraceFormatString "+RPlugin::DoControl() sess %x subs %x aFunction %d" */ - EPluginDoControl1, - /** @SYMTraceFormatString "-RPlugin::DoControl() r %d" */ - EPluginDoControl1Return, - - /** @SYMTraceFormatString "+RPlugin::DoControl2() sess %x subs %x aFunction %d a1 %x" */ - EPluginDoControl2, - /** @SYMTraceFormatString "-RPlugin::DoControl2() r %d" */ - EPluginDoControl2Return, - - /** @SYMTraceFormatString "+RPlugin::DoControl3() sess %x subs %x aFunction %d a1 %x a2 %x" */ - EPluginDoControl3, - /** @SYMTraceFormatString "-RPlugin::DoControl3() r %d" */ - EPluginDoControl3Return, - - /** @SYMTraceFormatString "+RPlugin::DoCancel() sess %x subs %x aReqMask %x" */ - EPluginDoCancel, - /** @SYMTraceFormatString "-RPlugin::DoCancel()" */ - EPluginDoCancelReturn, - - - /** @SYMTraceFormatString "+CFileMan::NewL1() sess %x" */ - ECFileManNewL1, - /** @SYMTraceFormatString "-CFileMan::NewL1() CFileMan* %x" */ - ECFileManNewL1Return, - - /** @SYMTraceFormatString "+CFileMan::NewL2() sess %x anObserver %x" */ - ECFileManNewL2, - /** @SYMTraceFormatString "-CFileMan::NewL2() CFileMan* %x" */ - ECFileManNewL2Return, - - /** @SYMTraceFormatString "+CFileMan::~CFileMan() this %x" */ - ECFileManDestructor, - /** @SYMTraceFormatString "-CFileMan::~CFileMan()" */ - ECFileManDestructorReturn, - - /** @SYMTraceFormatString "+CFileMan::CurrentAction() this %x" */ - ECFileManCurrentAction, - /** @SYMTraceFormatString "-CFileMan::CurrentAction() action %d" */ - ECFileManCurrentActionReturn, - - /** @SYMTraceFormatString "+CFileMan::GetCurrentTarget() this %x" */ - ECFileManGetCurrentTarget, - /** @SYMTraceFormatString "-CFileMan::GetCurrentTarget() aTrgName %*S" */ - ECFileManGetCurrentTargetReturn, - - /** @SYMTraceFormatString "+CFileMan::GetCurrentSource() this %x" */ - ECFileManGetCurrentSource, - /** @SYMTraceFormatString "-CFileMan::GetCurrentSource() aSrcName %*S" */ - ECFileManGetCurrentSourceReturn, - - /** @SYMTraceFormatString ".CFileMan::BytesTransferredByCopyStep() this %x BytesTransferred %d" */ - ECFileManBytesTransferredByCopyStep, - - /** @SYMTraceFormatString "+CFileMan::Attribs1() this %x aName %*S aSetMask %x aClearMask %x aTime %lx aSwitches %d, status %x" */ - ECFileManAttribs1, - /** @SYMTraceFormatString "-CFileMan::Attribs1() r %d" */ - ECFileManAttribs1Return, - - /** @SYMTraceFormatString "+CFileMan::Attribs2() this %x aName %*S aSetMask %x aClearMask %x aTime %lx aSwitches %d" */ - ECFileManAttribs2, - /** @SYMTraceFormatString "-CFileMan::Attribs2() r %d" */ - ECFileManAttribs2Return, - - /** @SYMTraceFormatString "+CFileMan::Copy1() this %x anOld %*S aNew %*S aSwitches %d status %x" */ - ECFileManCopy1, - /** @SYMTraceFormatString "-CFileMan::Copy1() r %d" */ - ECFileManCopy1Return, - - /** @SYMTraceFormatString "+CFileMan::Copy2() this %x anOld %*S aNew %*S aSwitches %d" */ - ECFileManCopy2, - /** @SYMTraceFormatString "-CFileMan::Copy2() r %d" */ - ECFileManCopy2Return, - - /** @SYMTraceFormatString "+CFileMan::Copy3() this %x anOldSubs %x aNew %*S aSwitches %d" */ - ECFileManCopy3, - /** @SYMTraceFormatString "-CFileMan::Copy3() r %d" */ - ECFileManCopy3Return, - - /** @SYMTraceFormatString "+CFileMan::Copy4() this %x anOldSubs %x aNew %*S aSwitches %dstatus %x" */ - ECFileManCopy4, - /** @SYMTraceFormatString "-CFileMan::Copy4() r %d" */ - ECFileManCopy4Return, - - /** @SYMTraceFormatString "+CFileMan::Delete1() this %x aName %*S aSwitches %d status %x" */ - ECFileManDelete1, - /** @SYMTraceFormatString "-CFileMan::Delete1() r %d" */ - ECFileManDelete1Return, - - /** @SYMTraceFormatString "+CFileMan::Delete2() this %x aName %*S aSwitches %d" */ - ECFileManDelete2, - /** @SYMTraceFormatString "-CFileMan::Delete2() r %d" */ - ECFileManDelete2Return, - - /** @SYMTraceFormatString "+CFileMan::Move1() this %x anOld %*S aNew %*S aSwitches %d status %x" */ - ECFileManMove1, - /** @SYMTraceFormatString "-CFileMan::Move1() r %d" */ - ECFileManMove1Return, - - /** @SYMTraceFormatString "+CFileMan::Move2() this %x anOld %*S aNew %*S aSwitches %d" */ - ECFileManMove2, - /** @SYMTraceFormatString "-CFileMan::Move2() r %d" */ - ECFileManMove2Return, - - /** @SYMTraceFormatString "+CFileMan::Rename1() this %x anOld %*S aNew %*S aSwitches %d status %x" */ - ECFileManRename1, - /** @SYMTraceFormatString "-CFileMan::Rename1() r %d" */ - ECFileManRename1Return, - - /** @SYMTraceFormatString "+CFileMan::Rename2() this %x anOld %*S aNew %*S aSwitches %d" */ - ECFileManRename2, - /** @SYMTraceFormatString "-CFileMan::Rename2() r %d" */ - ECFileManRename2Return, - - /** @SYMTraceFormatString "+CFileMan::RmDir1() this %x aDirName %*S status %x" */ - ECFileManRmDir1, - /** @SYMTraceFormatString "-CFileMan::RmDir1() r %d" */ - ECFileManRmDir1Return, - - /** @SYMTraceFormatString "+CFileMan::RmDir2() this %x aDirName %*S" */ - ECFileManRmDir2, - /** @SYMTraceFormatString "-CFileMan::RmDir2() r %d" */ - ECFileManRmDir2Return, - - - - - - /** @SYMTraceFormatString "+CDirScan::NewL() sess %x" */ - ECDirScanNewL, - /** @SYMTraceFormatString "-CDirScan::NewL() CDirScan* %x" */ - ECDirScanNewLReturn, - - /** @SYMTraceFormatString "+CDirScan::NewLC() sess %x" */ - ECDirScanNewLC, - /** @SYMTraceFormatString "-CDirScan::NewLC() CDirScan* %x" */ - ECDirScanNewLCReturn, - - /** @SYMTraceFormatString "+CDirScan::~CDirScan() this %x" */ - ECDirScanDestructor, - /** @SYMTraceFormatString "-CDirScan::~CDirScan()" */ - ECDirScanDestructorReturn, - - /** @SYMTraceFormatString "+CDirScan::SetScanDataL() this %x aMatchName %*S anEntryAttMask %x anEntrySortKey %d aScanDir %d" */ - ECDirScanSetScanDataL, - /** @SYMTraceFormatString "-CDirScan::SetScanDataL() r %d" */ - ECDirScanSetScanDataLReturn, - - /** @SYMTraceFormatString "+CDirScan::NextL() this %x" */ - ECDirScanNextL, - /** @SYMTraceFormatString "-CDirScan::NextL() r %d DirEntries %d" */ - ECDirScanNextLReturn, - - /** @SYMTraceFormatString "-CDirScan Leave r %d" */ - ECDirScanLeave, - - - - - - - /** @SYMTraceFormatString "Efsrv.dll Panic r %d" */ - EPanic, - - - /** @SYMTraceFormatString "TimeStamp" */ - ETimeStamp, - - /** - Provided to allow the following compile time assert. - */ - EFormatIdHighWaterMark, - }; - __ASSERT_COMPILE(EFormatIdHighWaterMark <= (UTF::KMaxFormatId + 1)); - - - - } // end of namespace UTraceModuleEfsrv - - -#endif // UTRACEEFSRV_H diff -r 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/fileserver/rom/f32.iby --- a/userlibandfileserver/fileserver/rom/f32.iby Thu May 27 14:17:14 2010 +0300 +++ b/userlibandfileserver/fileserver/rom/f32.iby Fri Jun 11 15:02:23 2010 +0300 @@ -17,8 +17,6 @@ secondary=\Epoc32\Release\##MAIN##\##BUILD##\efile.exe sys\bin\efile.exe FIXED HEAPMAX(0x80000) file=\Epoc32\Release\##MAIN##\##BUILD##\efsrv.dll sys\bin\efsrv.dll -device[VARID]=\Epoc32\Release\##KMAIN##\##BUILD##\d_ftrace.ldd sys\bin\d_ftrace.ldd - #ifdef WITH_EXFAT file=\Epoc32\Release\##MAIN##\##BUILD##\exfat.fsy sys\bin\exfat.fsy #endif diff -r 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/fileserver/scomp/base_f32_scomp.mrp --- a/userlibandfileserver/fileserver/scomp/base_f32_scomp.mrp Thu May 27 14:17:14 2010 +0300 +++ b/userlibandfileserver/fileserver/scomp/base_f32_scomp.mrp Fri Jun 11 15:02:23 2010 +0300 @@ -1,18 +1,3 @@ -# -# 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 "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: -# # component name "Composite File System" component base_f32_scomp diff -r 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/fileserver/sfat/base_f32_sfat.mrp --- a/userlibandfileserver/fileserver/sfat/base_f32_sfat.mrp Thu May 27 14:17:14 2010 +0300 +++ b/userlibandfileserver/fileserver/sfat/base_f32_sfat.mrp Fri Jun 11 15:02:23 2010 +0300 @@ -1,18 +1,3 @@ -# -# 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 "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: -# # component name "FAT File System" component base_f32_sfat diff -r 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/fileserver/sfat32/base_f32_sfat32.mrp --- a/userlibandfileserver/fileserver/sfat32/base_f32_sfat32.mrp Thu May 27 14:17:14 2010 +0300 +++ b/userlibandfileserver/fileserver/sfat32/base_f32_sfat32.mrp Fri Jun 11 15:02:23 2010 +0300 @@ -1,18 +1,3 @@ -# -# 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 "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: -# # component name "FAT32 File System" component base_f32_sfat32 diff -r 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/fileserver/sfile/efile.mmh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/userlibandfileserver/fileserver/sfile/efile.mmh Fri Jun 11 15:02:23 2010 +0300 @@ -0,0 +1,109 @@ +// Copyright (c) 1996-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of the License "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// f32\sfile\efile.mmp +// efile.exe File Server +// +// + +/** + @file +*/ + + +SOURCEPATH ../sfsrv +USERINCLUDE ../sfsrv + +USERINCLUDE ../ftrace +USERINCLUDE ../sfile/traces + +SOURCE cl_file.cpp +SOURCE cl_cli.cpp +SOURCE cl_dir.cpp + +SOURCEPATH ../sfile +USERINCLUDE . +SOURCE sf_amh.cpp sf_dat.cpp sf_debug.cpp sf_dir.cpp +SOURCE sf_drv.cpp sf_file.cpp sf_fmt.cpp +SOURCE sf_ldr.cpp sf_main.cpp sf_nbs.cpp sf_ses.cpp +SOURCE sf_svr.cpp sf_sys.cpp sf_utl.cpp sf_mnt.cpp +SOURCE sf_raw.cpp sf_prel.cpp sf_disk.cpp +SOURCE sf_request.cpp sf_ops.cpp sf_notify.cpp +SOURCE sf_thread.cpp sf_local.cpp sf_obj.cpp +SOURCE sf_ext.cpp sf_hash.cpp +SOURCE sf_plugin.cpp sf_plugin_ops.cpp sf_plugin_man.cpp +SOURCE Sf_plugin_util.cpp +SOURCE sf_cache_man.cpp sf_cache_client.cpp +SOURCE sf_file_cache.cpp +SOURCE sf_memory_man.cpp sf_memory_client.cpp +SOURCE sf_plugin_shim.cpp +SOURCE sf_notifier_handlers.cpp +#ifdef SYMBIAN_F32_ENHANCED_CHANGE_NOTIFICATION +SOURCE sf_pool.cpp sf_notifier.cpp +#endif + +#ifdef WINS +SOURCE sf_lwins.cpp + +library emulator.lib +#else +SOURCE sf_lepoc.cpp sf_inflate.cpp sf_cache.cpp sf_decomp.cpp +SOURCE sf_pgcompr.cpp + +#ifdef MARM +SOURCEPATH ../../../kernel/eka/kernel/arm +SOURCE byte_pair.cia +#else +SOURCEPATH ../../../kernel/eka/kernel +SOURCE byte_pair.cpp +#endif + + +SOURCEPATH ../srom +SOURCE sr_rom.cpp +#endif + +STRICTDEPEND + +SOURCEPATH . +DOCUMENT ../group/release.txt + +TARGETTYPE exexp + +DEFFILE efile.def + +USERINCLUDE ../inc ../sfsrv/traces +#ifdef SYMBIAN_OLD_EXPORT_LOCATION +SYSTEMINCLUDE ../inc +#endif +OS_LAYER_SYSTEMINCLUDE_SYMBIAN +USERINCLUDE ../../../kernel/eka/include + +LIBRARY efsrv.lib euser.lib hal.lib + +EPOCSTACKSIZE 0x6000 +EPOCHEAPSIZE 0x00001000 0x800000 + +START WINS +BASEADDRESS 0x62000000 +WIN32_LIBRARY kernel32.lib +END +UID 0x1000008c 0x100039e3 +VENDORID 0x70000001 + +unpagedcode +unpageddata + +SMPSAFE + + diff -r 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/fileserver/sfile/efile.mmp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/userlibandfileserver/fileserver/sfile/efile.mmp Fri Jun 11 15:02:23 2010 +0300 @@ -0,0 +1,42 @@ +// Copyright (c) 1996-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of the License "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// f32/sfile/efile.mmp +// efile.exe File Server +// +// + +/** + @file +*/ + + +TARGET efile.exe + +#include "f32caps.mmh" // Capabilities of File Server process +#include "f32.mmh" // Generic definitions for the whole f32 component + +MACRO SYMBIAN_PRIVATE_EFSRV + +// By default, tracepoints are compiled in to UDEB version only +#ifdef SYMBIAN_TRACE_SYSTEM_INCLUDE +macro SYMBIAN_FTRACE_ENABLE_UDEB +//macro SYMBIAN_FTRACE_ENABLE_UREL +#endif + +#include "efile.mmh" + + + + + diff -r 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/fileserver/sfile/sf_dat.cpp --- a/userlibandfileserver/fileserver/sfile/sf_dat.cpp Thu May 27 14:17:14 2010 +0300 +++ b/userlibandfileserver/fileserver/sfile/sf_dat.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -51,7 +51,6 @@ TBool StartupInitCompleted; TBool LocalDriveMappingSet; CKernEventNotifier* TheKernEventNotifier; -RFTrace TheFtrace; GLDEF_D TCodePageUtils TheCodePage; diff -r 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/fileserver/sfile/sf_dir.cpp --- a/userlibandfileserver/fileserver/sfile/sf_dir.cpp Thu May 27 14:17:14 2010 +0300 +++ b/userlibandfileserver/fileserver/sfile/sf_dir.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -17,6 +17,10 @@ #include "sf_std.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "sf_dirTraces.h" +#endif + LOCAL_C CDirCB* GetDirFromHandle(TInt aHandle,CSessionFs* aSession) // // Get the dir control block from its handle. @@ -52,19 +56,18 @@ { TEntry e; - TRACE1(UTF::EBorder, UTraceModuleFileSys::ECDirCBReadL, EF32TraceUidFileSys, &aDir); + OstTrace1(TRACE_FILESYSTEM, FSYS_ECDIRCBREADL2, "fsDirReadPacked this %x", &aDir); aDir.ReadL(e); - TRACE5(UTF::EBorder, UTraceModuleFileSys::ECDirCBReadLRet, EF32TraceUidFileSys, - KErrNone, e.iAtt, I64LOW(e.iModified.Int64()), I64HIGH(e.iModified.Int64()), e.iSize); + OstTraceExt5(TRACE_FILESYSTEM, FSYS_ECDIRCBREADL2RET, "fsDirReadPacked r %d att %x modified %x:%x size %d", (TUint) KErrNone, (TUint) e.iAtt, (TUint) I64HIGH(e.iModified.Int64()), (TUint) I64LOW(e.iModified.Int64()), (TUint) e.iSize); TInt len=EntrySize(e, EFalse); TInt rLen=EntrySize(e, ETrue); TEntry* pX=PtrAdd(pE,rLen); if (pX>pEnd) { - TRACE1(UTF::EBorder, UTraceModuleFileSys::ECDirCBStoreLongEntryNameL, EF32TraceUidFileSys, &aDir); + OstTrace1(TRACE_FILESYSTEM, FSYS_ECDIRCBSTORELONGENTRYNAMEL, "fsDirReadPacked this %x", &aDir); aDir.StoreLongEntryNameL(e.iName); - TRACE1(UTF::EBorder, UTraceModuleFileSys::ECDirCBStoreLongEntryNameLRet, EF32TraceUidFileSys, KErrNone); + OstTrace1(TRACE_FILESYSTEM, FSYS_ECDIRCBSTORELONGENTRYNAMELRET, "fsDirReadPacked r %d", KErrNone); aDir.SetPending(ETrue); break; @@ -163,10 +166,10 @@ return(r); TEntry e; - TRACE1(UTF::EBorder, UTraceModuleFileSys::ECDirCBReadL, EF32TraceUidFileSys, &dir); + OstTrace1(TRACE_FILESYSTEM, FSYS_ECDIRCBREADL1, "this %x", &dir); TRAP(r,dir->ReadL(e)) - TRACE5(UTF::EBorder, UTraceModuleFileSys::ECDirCBReadLRet, EF32TraceUidFileSys, - KErrNone, e.iAtt, I64LOW(e.iModified.Int64()), I64HIGH(e.iModified.Int64()), e.iSize); + OstTraceExt5(TRACE_FILESYSTEM, FSYS_ECDIRCBREADL1RET, "r %d att %x modified %x:%x size %d", (TUint) KErrNone, (TUint) e.iAtt, (TUint) I64HIGH(e.iModified.Int64()), (TUint) I64LOW(e.iModified.Int64()), (TUint) e.iSize); + if (r==KErrNone) diff -r 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/fileserver/sfile/sf_drv.cpp --- a/userlibandfileserver/fileserver/sfile/sf_drv.cpp Thu May 27 14:17:14 2010 +0300 +++ b/userlibandfileserver/fileserver/sfile/sf_drv.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -17,8 +17,9 @@ #include "sf_std.h" #include "sf_file_cache.h" - - +#ifdef OST_TRACE_COMPILER_IN_USE +#include "sf_drvTraces.h" +#endif //const TInt KMaxNotifierAttempts=4; // not used anywhere static TPtrC StripBackSlash(const TDesC& aName) @@ -286,12 +287,12 @@ if (!aMount.IsDismounted() && !aMount.ProxyDriveDismounted()) { aMount.SetDrive(this); - TRACE1(UTF::EBorder, UTraceModuleFileSys::ECMountCBReMount, EF32TraceUidFileSys, DriveNumber()); + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBREMOUNT1, "drive %d", DriveNumber()); //-- actually, this is asking CMountCB to see if it belongs to the current media. iReason = aMount.ReMount(); - TRACE1(UTF::EBorder, UTraceModuleFileSys::ECMountCBReMountRet, EF32TraceUidFileSys, iReason); + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBREMOUNT1RET, "success %d", iReason); if (iReason == KErrNone) // ReMount succeeded { @@ -327,13 +328,13 @@ apMount = NULL; - TRACE2(UTF::EBorder, UTraceModuleFileSys::ECFileSystemNewMountL, EF32TraceUidFileSys, &FSys(), DriveNumber()); + OstTraceExt2(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMNEWMOUNTL, "this %x drive %d", (TUint) &FSys(), (TUint) DriveNumber()); //-- construct a new CmountCB object. //-- on return pMountsFs will be the pointer to the factory object of CFileSystem that produced this mount apMount = FSys().NewMountExL(this, &pMountsFs, aForceMount, aFsNameHash); - TRACE2(UTF::EBorder, UTraceModuleFileSys::ECFileSystemNewMountLRet, EF32TraceUidFileSys, KErrNone, apMount); + OstTraceExt2(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMNEWMOUNTLRET, "r %d CMountCB %x", (TUint) KErrNone, (TUint) apMount); __PRINT2(_L("TDrive::MountMediaL created mount:0x%x FileSys:0x%x"), apMount, pMountsFs); ASSERT(pMountsFs && apMount); @@ -402,10 +403,10 @@ */ TInt TDrive::MountControl(TInt aLevel, TInt aOption, TAny* aParam) { - TRACE4(UTF::EBorder, UTraceModuleFileSys::ECMountCBMountControl, EF32TraceUidFileSys, DriveNumber(), aLevel, aOption, aParam); + OstTraceExt4(TRACE_FILESYSTEM, FSYS_ECMOUNTCBMOUNTCONTROL, "drive %d aLevel %d aOption %x aParam %x", (TUint) DriveNumber(), (TUint) aLevel, (TUint) aOption, (TUint) aParam); TInt r = CurrentMount().MountControl(aLevel, aOption, aParam); - TRACERET1(UTF::EBorder, UTraceModuleFileSys::ECMountCBMountControlRet, EF32TraceUidFileSys, r); - + + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBMOUNTCONTROLRET, "r %d", r); return r; } @@ -434,9 +435,9 @@ //-- the caller will be suspended until aFreeSpaceRequired bytes is available or scanning process finishes { TUint64 freeSpaceReq = aFreeSpaceRequired; - TRACE1(UTF::EBorder, UTraceModuleFileSys::ECMountCBFreeSpace, EF32TraceUidFileSys, DriveNumber()); + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBFREESPACE, "drive %d", DriveNumber()); nRes = CurrentMount().RequestFreeSpace(freeSpaceReq); - TRACERET3(UTF::EBorder, UTraceModuleFileSys::ECMountCBFreeSpaceRet, EF32TraceUidFileSys, nRes, I64LOW(freeSpaceReq), I64HIGH(freeSpaceReq)); + OstTraceExt3(TRACE_FILESYSTEM, FSYS_ECMOUNTCBFREESPACERET, "r %d FreeSpace %x:%x", (TUint) nRes, (TUint) I64HIGH(freeSpaceReq), (TUint) I64LOW(freeSpaceReq)); if(nRes == KErrNone) { return (freeSpaceReq >= aFreeSpaceRequired) ? KErrNone : KErrDiskFull; @@ -466,11 +467,10 @@ nRes = CheckMount(); if(nRes != KErrNone) return nRes; - //-- 1. Try mount-specific request first. It won't block this call as CMountCB::VolumeL() can do if some background activity is going on the mount - TRACE1(UTF::EBorder, UTraceModuleFileSys::ECMountCBVolumeSize, EF32TraceUidFileSys, DriveNumber()); + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBVOLUMESIZE, "drive %d", DriveNumber()); nRes = CurrentMount().MountedVolumeSize(aSize); - TRACERET3(UTF::EBorder, UTraceModuleFileSys::ECMountCBVolumeSize, EF32TraceUidFileSys, nRes, I64LOW(aSize), I64HIGH(aSize)); + OstTraceExt3(TRACE_FILESYSTEM, FSYS_ECMOUNTCBVOLUMESIZERET, "r %d aSize %x:%x", (TUint) nRes, (TUint) I64HIGH(aSize), (TUint) I64LOW(aSize)); if(nRes == KErrNone) return nRes; @@ -503,9 +503,9 @@ return nRes; //-- 1. Try mount-specific request first. It won't block this call as CMountCB::VolumeL() can do - TRACE1(UTF::EBorder, UTraceModuleFileSys::ECMountCBCurrentFreeSpace, EF32TraceUidFileSys, DriveNumber()); + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBCURRENTFREESPACE, "drive %d", DriveNumber()); nRes = CurrentMount().GetCurrentFreeSpaceAvailable(aFreeDiskSpace); - TRACERET3(UTF::EBorder, UTraceModuleFileSys::ECMountCBCurrentFreeSpaceRet, EF32TraceUidFileSys, nRes, I64LOW(aFreeDiskSpace), I64HIGH(aFreeDiskSpace)); + OstTraceExt3(TRACE_FILESYSTEM, FSYS_ECMOUNTCBCURRENTFREESPACERET, "r %d FreeSpace %x:%x", (TUint) nRes, (TUint) I64HIGH(aFreeDiskSpace), (TUint) I64LOW(aFreeDiskSpace)); if(nRes == KErrNone) return nRes; @@ -543,9 +543,9 @@ if(IsWriteProtected()) return(KErrAccessDenied); - TRACE4(UTF::EBorder, UTraceModuleFileSys::ECMountCBFinaliseMount2, EF32TraceUidFileSys, DriveNumber(), aOperation, aParam1, aParam2); + OstTraceExt4(TRACE_FILESYSTEM, FSYS_ECMOUNTCBFINALISEMOUNT2, "drive %d aOperation %d aParam1 %x aParam2 %x", (TUint) DriveNumber(), (TUint) aOperation, (TUint) aParam1, (TUint) aParam2); TRAP(r,CurrentMount().FinaliseMountL(aOperation, aParam1, aParam2)); - TRACERET1(UTF::EBorder, UTraceModuleFileSys::ECMountCBFinaliseMount2Ret, EF32TraceUidFileSys, r); + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBFINALISEMOUNT2RET, "r %d", r); // Pass FinaliseDrive notification down to media driver TInt driveNumber = DriveNumber(); @@ -578,9 +578,10 @@ if(IsWriteProtected()) return(KErrAccessDenied); - TRACE1(UTF::EBorder, UTraceModuleFileSys::ECMountCBFinaliseMount1, EF32TraceUidFileSys, DriveNumber()); + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBFINALISEMOUNT1, "drive %d", DriveNumber()); TRAP(r,CurrentMount().FinaliseMountL()); - TRACERET1(UTF::EBorder, UTraceModuleFileSys::ECMountCBFinaliseMount1Ret, EF32TraceUidFileSys, r); + + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBFINALISEMOUNT1RET, "r %d", r); return r; } @@ -887,7 +888,6 @@ return KErrNone; } - void TDrive::DriveInfo(TDriveInfo& anInfo) // // Get the drive info. @@ -900,10 +900,9 @@ if(iFSys) { - TRACE2(UTF::EBorder, UTraceModuleFileSys::ECFileSystemDriveInfo, EF32TraceUidFileSys, &FSys(), DriveNumber()); + OstTraceExt2(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMDRIVEINFO, "this %x aDriveNumber %d", (TUint) &FSys(), (TUint) DriveNumber()); FSys().DriveInfo(anInfo,DriveNumber()); - TRACE3(UTF::EBorder, UTraceModuleFileSys::ECFileSystemDriveInfoRet, EF32TraceUidFileSys, - anInfo.iType, anInfo.iDriveAtt, anInfo.iMediaAtt); + OstTraceExt3(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMDRIVEINFORET, "type %d driveAtt %x mediaAtt %x", (TUint) anInfo.iType, (TUint) anInfo.iDriveAtt, (TUint) anInfo.iMediaAtt); } anInfo.iDriveAtt=Att(); @@ -923,12 +922,10 @@ aVolume.iUniqueID=m.iUniqueID; aVolume.iSize=m.iSize; - TRACE1(UTF::EBorder, UTraceModuleFileSys::ECMountCBVolumeL, EF32TraceUidFileSys, DriveNumber()); + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBVOLUMEL, "drive %d", DriveNumber()); TRAP(r,m.VolumeL(aVolume)) - TRACE7(UTF::EBorder, UTraceModuleFileSys::ECMountCBVolumeLRet, EF32TraceUidFileSys, - r, aVolume.iUniqueID, I64LOW(aVolume.iSize), I64HIGH(aVolume.iSize), - I64LOW(aVolume.iFree), I64HIGH(aVolume.iFree), aVolume.iFileCacheFlags); - + OstTraceExt5(TRACE_FILESYSTEM, FSYS_ECMOUNTCBVOLUMELRETA, "r %d iSize %x:%x iFree %x:%x", (TUint) r, (TUint) I64HIGH(aVolume.iSize), (TUint) I64LOW(aVolume.iSize), (TUint) I64HIGH(aVolume.iFree), (TUint) I64LOW(aVolume.iFree)); + OstTraceExt2(TRACE_FILESYSTEM, FSYS_ECMOUNTCBVOLUMELRETB, "iUniqueID %x iFileCacheFlags %x", (TUint) aVolume.iUniqueID, (TUint) aVolume.iFileCacheFlags); } return(r); } @@ -942,12 +939,11 @@ __CHECK_DRIVETHREAD(iDriveNumber); aBuf=aName.AllocL(); TPtr volumeName=aBuf->Des(); - - TRACEMULT2(UTF::EBorder, UTraceModuleFileSys::ECMountCBSetVolumeL, EF32TraceUidFileSys, DriveNumber(), aName); + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBSETVOLUMEL, "drive %d", DriveNumber()); + OstTraceData(TRACE_FILESYSTEM, FSYS_EVOLUMENAME, "VolumeName %S", aName.Ptr(), aName.Length()<<1); + CurrentMount().SetVolumeL(volumeName); - TRACE1(UTF::EBorder, UTraceModuleFileSys::ECMountCBSetVolumeLRet, EF32TraceUidFileSys, KErrNone); - - + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBSETVOLUMELRET, "r %d", KErrNone); delete &CurrentMount().VolumeName(); CurrentMount().SetVolumeName(aBuf); } @@ -982,14 +978,12 @@ return(KErrAccessDenied); TParse newDirName; newDirName.Set(aName,NULL,NULL); - - TRACEMULT2(UTF::EBorder, UTraceModuleFileSys::ECMountCBMkDirL, EF32TraceUidFileSys, DriveNumber(), aName); + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBMKDIRL, "drive %d", DriveNumber()); + OstTraceData(TRACE_FILESYSTEM, FSYS_ECMOUNTCBMKDIRLYS_EDIRNAME, "Dir %S", aName.Ptr(), aName.Length()<<1); TRAP(r,CurrentMount().MkDirL(newDirName.FullName())) - TRACERET1(UTF::EBorder, UTraceModuleFileSys::ECMountCBMkDirLRet, EF32TraceUidFileSys, r); - + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBMKDIRLRET, "r %d", r); return(r); } - TInt TDrive::RmDir(const TDesC& aName) // // Remove a directory. @@ -1006,11 +1000,10 @@ return(KErrPathNotFound); if ((entry.iAtt&KEntryAttReadOnly) || IsWriteProtected()) return(KErrAccessDenied); - - TRACEMULT2(UTF::EBorder, UTraceModuleFileSys::ECMountCBRmDirL, EF32TraceUidFileSys, DriveNumber(), aName); + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBRMDIRL, "drive %d", DriveNumber()); + OstTraceData(TRACE_FILESYSTEM, FSYS_ECMOUNTCBRMDIRLYS_EDIRNAME, "Dir %S", aName.Ptr(), aName.Length()<<1); TRAP(r,CurrentMount().RmDirL(aName)) - TRACERET1(UTF::EBorder, UTraceModuleFileSys::ECMountCBRmDirLRet, EF32TraceUidFileSys, r); - + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBRMDIRLRET, "r %d", r); return(r); } @@ -1031,12 +1024,10 @@ if (IsWriteProtected()) return(KErrAccessDenied); - - //-- filesystems' CMountCB::DeleteL() implementations shall check the entry attributes themeselves. - TRACEMULT2(UTF::EBorder, UTraceModuleFileSys::ECMountCBDeleteL, EF32TraceUidFileSys, DriveNumber(), aName); + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBDELETEL1, "drive %d", DriveNumber()); + OstTraceData(TRACE_FILESYSTEM, FSYS_ECMOUNTCBDELETEL1_EFILENAME, "FileName %S", aName.Ptr(), aName.Length()<<1); TRAP(r,CurrentMount().DeleteL(aName)) - TRACERET1(UTF::EBorder, UTraceModuleFileSys::ECMountCBDeleteLRet, EF32TraceUidFileSys, r); - + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBDELETEL1_RET, "r %d", r); return r; } @@ -1107,11 +1098,11 @@ // remove from closed queue LocateClosedFile(anOldName, EFalse); LocateClosedFile(aNewName, EFalse); - - TRACEMULT3(UTF::EBorder, UTraceModuleFileSys::ECMountCBRenameL, EF32TraceUidFileSys, DriveNumber(), oldEntryName,newEntryName); + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBRENAMEL, "drive %d", DriveNumber()); + OstTraceData(TRACE_FILESYSTEM, FSYS_ECMOUNTCBRENAMELYS_EOLDNAME, "OldName %S", oldEntryName.Ptr(), oldEntryName.Length()<<1); + OstTraceData(TRACE_FILESYSTEM, FSYS_ECMOUNTCBRENAMELYS_ENEWNAME, "NewName %S", newEntryName.Ptr(), newEntryName.Length()<<1); TRAP(r,CurrentMount().RenameL(oldEntryName,newEntryName)) - TRACERET1(UTF::EBorder, UTraceModuleFileSys::ECMountCBRenameLRet, EF32TraceUidFileSys, r); - + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBRENAMELRET, "r %d", r); return(r); } @@ -1145,11 +1136,11 @@ // remove from closed queue LocateClosedFile(anOldName, EFalse); LocateClosedFile(aNewName, EFalse); - - TRACEMULT3(UTF::EBorder, UTraceModuleFileSys::ECMountCBReplaceL, EF32TraceUidFileSys, DriveNumber(), anOldName, aNewName); + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBREPLACEL, "drive %d", DriveNumber()); + OstTraceData(TRACE_FILESYSTEM, FSYS_ECMOUNTCBREPLACEL_EOLDNAME, "OldName %S", anOldName.Ptr(), anOldName.Length()<<1); + OstTraceData(TRACE_FILESYSTEM, FSYS_ECMOUNTCBREPLACEL_ENEWNAME, "NewName %S", aNewName.Ptr(), aNewName.Length()<<1); TRAP(r,CurrentMount().ReplaceL(anOldName,aNewName)) - TRACERET1(UTF::EBorder, UTraceModuleFileSys::ECMountCBReplaceLRet, EF32TraceUidFileSys, r); - + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBREPLACELRET, "r %d", r); return(r); } @@ -1179,14 +1170,10 @@ // { FlushCachedFileInfoL(); - - TRACEMULT2(UTF::EBorder, UTraceModuleFileSys::ECMountCBEntryL, EF32TraceUidFileSys, DriveNumber(), aName); + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBENTRYL, "drive %d", DriveNumber()); + OstTraceData(TRACE_FILESYSTEM, FSYS_ECMOUNTCBENTRYL_EFILEPATH, "FilePath %S", aName.Ptr(), aName.Length()<<1); CurrentMount().EntryL(aName,anEntry); - TRACE5(UTF::EBorder, UTraceModuleFileSys::ECMountCBEntryLRet, EF32TraceUidFileSys, - KErrNone, anEntry.iAtt, - I64LOW(anEntry.iModified.Int64()), I64HIGH(anEntry.iModified.Int64()), - anEntry.iSize); - + OstTraceExt5(TRACE_FILESYSTEM, FSYS_ECMOUNTCBENTRYLRET, "att %x modified %x:%x size %x:%x", (TUint) anEntry.iAtt, (TUint) I64HIGH(anEntry.iModified.Int64()), (TUint) I64LOW(anEntry.iModified.Int64()), (TUint) I64HIGH(anEntry.FileSize()), (TUint) anEntry.FileSize()); } TInt TDrive::CheckAttributes(const TDesC& aName,TUint& aSetAttMask,TUint& aClearAttMask) @@ -1224,12 +1211,10 @@ TTime nullTime(0); if (aTime!=nullTime) aSetAttMask|=KEntryAttModified; - - TRACEMULT6(UTF::EBorder, UTraceModuleFileSys::ECMountCBSetEntryL, EF32TraceUidFileSys, - DriveNumber(), aName, I64LOW(aTime.Int64()), I64HIGH(aTime.Int64()), aSetAttMask, aClearAttMask); + OstTraceExt5(TRACE_FILESYSTEM, FSYS_ECMOUNTCBSETENTRYL, "drive %d aTime %x:%x aSetAttMask %x aClearAttMask %x", (TUint) DriveNumber(), (TUint) I64HIGH(aTime.Int64()), (TUint) I64LOW(aTime.Int64()), (TUint) aSetAttMask, (TUint) aClearAttMask); + OstTraceData(TRACE_FILESYSTEM, FSYS_ECMOUNTCBSETENTRYL_EFILEPATH, "FilePath %S", aName.Ptr(), aName.Length()<<1); TRAP(r,CurrentMount().SetEntryL(entryName,aTime,aSetAttMask,aClearAttMask)) - TRACERET1(UTF::EBorder, UTraceModuleFileSys::ECMountCBSetEntryLRet, EF32TraceUidFileSys, r); - + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBSETENTRYLRET, "r %d", r); return(r); } @@ -1365,12 +1350,11 @@ } else { - TRACE2(UTF::EBorder, UTraceModuleFileSys::ECFileSystemNewFileL, EF32TraceUidFileSys, &FSys(), DriveNumber()); - + OstTraceExt2(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMNEWFILEL, "this %x drive %d", (TUint) &FSys(), (TUint) DriveNumber()); //-- construct CFileCB object, belonging to the corresponding mount pFile = aFileCB = CurrentMount().NewFileL(); - TRACERET2(UTF::EBorder, UTraceModuleFileSys::ECFileSystemNewFileLRet, EF32TraceUidFileSys, r, pFile); + OstTraceExt2(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMNEWFILELRET, "r %d CFileCB %x", (TUint) r, (TUint) pFile); TDrive* createdDrive=!aRequest->SubstedDrive() ? this : aRequest->SubstedDrive(); HBufC* fileName = CreateFileNameL(aName); @@ -1401,10 +1385,10 @@ if (openFile) { - TRACEMULT5(UTF::EBorder, UTraceModuleFileSys::ECMountCBFileOpenL, EF32TraceUidFileSys, DriveNumber(), aName, aMode, (TUint) anOpen, (TUint) pFile); + OstTraceExt4(TRACE_FILESYSTEM, FSYS_ECMOUNTCBFILEOPENL, "drive %d aMode %x anOpen %d aFile %x", (TUint) DriveNumber(), (TUint) aMode, (TUint) anOpen, (TUint) pFile); + OstTraceData(TRACE_FILESYSTEM, FSYS_ECMOUNTCBFILEOPENL_EFILENAME, "FileName %S", aName.Ptr(), aName.Length()<<1); CurrentMount().FileOpenL(aName,aMode,anOpen,pFile); - TRACE1(UTF::EBorder, UTraceModuleFileSys::ECMountCBFileOpenLRet, EF32TraceUidFileSys, KErrNone); - + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBFILEOPENLRET, "r %d", KErrNone); // Delete on close may now be safely flagged if required. // The file did not exist on the media prior to the // CMountCB::FileOpenL() call for the case of a create. @@ -1475,11 +1459,10 @@ // Open a directory listing. Leave on error. // { - TRACE2(UTF::EBorder, UTraceModuleFileSys::ECFileSystemNewDirL, EF32TraceUidFileSys, &FSys(), DriveNumber()); - + OstTraceExt2(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMNEWDIRL, "this %x drive %d", (TUint) &FSys(), (TUint) DriveNumber()); CDirCB* pD = aDir = CurrentMount().NewDirL(); //-- construct CDirCB object, belonging to the corresponding mount - TRACE2(UTF::EBorder, UTraceModuleFileSys::ECFileSystemNewDirLRet, EF32TraceUidFileSys, KErrNone, pD); + OstTraceExt2(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMNEWDIRLRET, "r %d CDirCB %x", (TUint) KErrNone, (TUint) pD); pD->InitL(this); // modify resource counter after initialisation to ensure correct cleanup AddResource(CurrentMount()); @@ -1487,10 +1470,10 @@ pD->iUidType=aUidType; Dirs->AddL(pD,ETrue); aHandle=aSession->Handles().AddL(pD,ETrue); - - TRACEMULT3(UTF::EBorder, UTraceModuleFileSys::ECMountCBDirOpenL, EF32TraceUidFileSys, DriveNumber(), aName, (TUint) pD); + OstTraceExt2(TRACE_FILESYSTEM, FSYS_ECMOUNTCBDIROPENL, "drive %d aDir %x", (TUint) DriveNumber(), (TUint) pD); + OstTraceData(TRACE_FILESYSTEM, FSYS_ECMOUNTCBDIROPENL_EDIRNAME, "Dir %S", aName.Ptr(), aName.Length()<<1); CurrentMount().DirOpenL(aName,pD); - TRACE1(UTF::EBorder, UTraceModuleFileSys::ECMountCBDirOpenLRet, EF32TraceUidFileSys, KErrNone); + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBDIROPENLRET, "r %d", KErrNone); } TInt TDrive::DirOpen(CSessionFs* aSession,TInt& aHandle,const TDesC& aName,TUint anAtt,const TUidType& aUidType) @@ -1549,13 +1532,11 @@ if (r!=KErrNone) return(r); TPtrC entryName(StripBackSlash(aName)); - TRACETHREADID(aMessage); - TRACEMULT7(UTF::EBorder, UTraceModuleFileSys::ECMountCBReadFileSectionL, EF32TraceUidFileSys, - DriveNumber(), aName, I64LOW(aPos), I64HIGH(aPos), (TUint) aTrg, aLength, I64LOW(threadId)); + OstTraceExt5(TRACE_FILESYSTEM, FSYS_ECMOUNTCBREADFILESECTIONL, "drive %d clientThreadId %x aPos %x:%x aLength %d", (TUint) DriveNumber(), (TUint) threadId, (TUint) I64HIGH(aPos), (TUint) I64LOW(aPos), (TUint) aLength); + OstTraceData(TRACE_FILESYSTEM, FSYS_ECMOUNTCBREADFILESECTIONL_EFILENAME, "FileName %S", aName.Ptr(), aName.Length()<<1); TRAP(r,ReadSectionL(entryName,aPos,aTrg,aLength,aMessage)); - TRACERET1(UTF::EBorder, UTraceModuleFileSys::ECMountCBReadFileSectionLRet, EF32TraceUidFileSys, r); - + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBREADFILESECTIONLRET, "r %d", r); if (r==KErrHidden) r=KErrNotFound; else if (r==KErrPathHidden) @@ -1587,9 +1568,9 @@ TRAP(r,FlushCachedFileInfoL()); if (r==KErrNone) { - TRACE1(UTF::EBorder, UTraceModuleFileSys::ECMountCBCheckDisk1, EF32TraceUidFileSys, DriveNumber()); + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBCHECKDISK1, "drive %d", DriveNumber()); r=CurrentMount().CheckDisk(); - TRACERET1(UTF::EBorder, UTraceModuleFileSys::ECMountCBCheckDisk1Ret, EF32TraceUidFileSys, r); + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBCHECKDISK1RET, "r %d", r); } return(r); } @@ -1604,9 +1585,9 @@ TRAP(r,FlushCachedFileInfoL()); if (r==KErrNone) { - TRACE4(UTF::EBorder, UTraceModuleFileSys::ECMountCBCheckDisk2, EF32TraceUidFileSys, DriveNumber(), aOperation, aParam1, aParam2); + OstTraceExt4(TRACE_FILESYSTEM, FSYS_ECMOUNTCBCHECKDISK2, "drive %d aOperation %d aParam1 %x aParam2 %x", (TUint) DriveNumber(), (TUint) aOperation, (TUint) aParam1, (TUint) aParam2); r=CurrentMount().CheckDisk(aOperation, aParam1, aParam2); - TRACERET1(UTF::EBorder, UTraceModuleFileSys::ECMountCBCheckDisk2Ret, EF32TraceUidFileSys, r); + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBCHECKDISK2RET, "r %d", r); } return(r); @@ -1628,10 +1609,9 @@ // Empty closed file queue TClosedFileUtils::Remove(DriveNumber()); - TRACE1(UTF::EBorder, UTraceModuleFileSys::ECMountCBScanDrive1, EF32TraceUidFileSys, DriveNumber()); + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBSCANDRIVE1, "drive %d", DriveNumber()); r = CurrentMount().ScanDrive(); - TRACERET1(UTF::EBorder, UTraceModuleFileSys::ECMountCBScanDrive1Ret, EF32TraceUidFileSys, r); - + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBSCANDRIVE1RET, "r %d", r); return r; } @@ -1655,10 +1635,9 @@ // Empty closed file queue TClosedFileUtils::Remove(DriveNumber()); - TRACE4(UTF::EBorder, UTraceModuleFileSys::ECMountCBScanDrive2, EF32TraceUidFileSys, DriveNumber(), aOperation, aParam1, aParam2); + OstTraceExt4(TRACE_FILESYSTEM, FSYS_ECMOUNTCBSCANDRIVE2, "drive %d aOperation %d aParam1 %x aParam2 %x", (TUint) DriveNumber(), (TUint) aOperation, (TUint) aParam1, (TUint) aParam2); r = CurrentMount().ScanDrive(aOperation, aParam1, aParam2); - TRACERET1(UTF::EBorder, UTraceModuleFileSys::ECMountCBScanDrive2Ret, EF32TraceUidFileSys, r); - + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBSCANDRIVE2RET, "r %d", r); return r; } @@ -1672,11 +1651,11 @@ if (r!=KErrNone) return(r); TPtrC entryName(StripBackSlash(aName)); - - TRACEMULT2(UTF::EBorder, UTraceModuleFileSys::ECMountCBGetShortNameL, EF32TraceUidFileSys, DriveNumber(), entryName); + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBGETSHORTNAMEL, "drive %d", DriveNumber()); + OstTraceData(TRACE_FILESYSTEM, FSYS_ECMOUNTCBGETSHORTNAMEL_ELONGNAME, "LongName %S", entryName.Ptr(), entryName.Length()<<1); TRAP(r,CurrentMount().GetShortNameL(entryName,aShortName)); - TRACERETMULT2(UTF::EBorder, UTraceModuleFileSys::ECMountCBGetShortNameLRet, EF32TraceUidFileSys, r, aShortName); - + OstTraceData(TRACE_FILESYSTEM, FSYS_ECMOUNTCBGETSHORTNAMEL_ESHORTNAME, "ShortName %S", aShortName.Ptr(), aShortName.Length()<<1); + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBGETSHORTNAMEL_ECMOUNTCBGETSHORTNAMELRET, "r %d", r); return(r); } @@ -1689,11 +1668,11 @@ if (r!=KErrNone) return(r); TPtrC entryName(StripBackSlash(aShortName)); - - TRACEMULT2(UTF::EBorder, UTraceModuleFileSys::ECMountCBGetLongNameL, EF32TraceUidFileSys, DriveNumber(), entryName); + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBGETLONGNAMEL, "drive %d", DriveNumber()); + OstTraceData(TRACE_FILESYSTEM, FSYS_ECMOUNTCBGETLONGNAMEL_ESHORTNAME, "ShortName %S", entryName.Ptr(), entryName.Length()<<1); TRAP(r,CurrentMount().GetLongNameL(entryName,aLongName)); - TRACERETMULT2(UTF::EBorder, UTraceModuleFileSys::ECMountCBGetLongNameLRet, EF32TraceUidFileSys, r, aLongName); - + OstTraceData(TRACE_FILESYSTEM, FSYS_ECMOUNTCBGETLONGNAMEL_ELONGNAME, "LongName %S", aLongName.Ptr(), aLongName.Length()<<1); + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBGETLONGNAMELRET, "r %d", r); return(r); } @@ -1857,22 +1836,18 @@ return(KErrNotReady); TInt r; CMountCB* pM=NULL; - TRACE2(UTF::EBorder, UTraceModuleFileSys::ECFileSystemNewMountL, EF32TraceUidFileSys, &FSys(), DriveNumber()); + OstTraceExt2(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMNEWMOUNTL1, "this %x drive %d", (TUint) &FSys(), (TUint) DriveNumber()); TRAP(r,pM=FSys().NewMountL()); - TRACERET2(UTF::EBorder, UTraceModuleFileSys::ECFileSystemNewMountLRet, EF32TraceUidFileSys, r, pM); + OstTraceExt2(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMNEWMOUNTL1RET, "r %d CMountCB %x", (TUint) r, (TUint) pM); if(r!=KErrNone) return(r); pM->SetDrive(this); - - TRACE4(UTF::EBorder, UTraceModuleFileSys::ECMountCBForceRemountDrive, EF32TraceUidFileSys, - DriveNumber(), aMountInfo, aMountInfoMessageHandle, aFlags); + OstTraceExt4(TRACE_FILESYSTEM, FSYS_ECMOUNTCBFORCEREMOUNTDRIVE, "drive %d aMountInfo %x aMountInfoMessageHandle %x aFlags %x", (TUint) DriveNumber(), (TUint) aMountInfo, (TUint) aMountInfoMessageHandle, (TUint) aFlags); r=pM->ForceRemountDrive(aMountInfo,aMountInfoMessageHandle,aFlags); - TRACERET1(UTF::EBorder, UTraceModuleFileSys::ECMountCBForceRemountDriveRet, EF32TraceUidFileSys, r); - + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBFORCEREMOUNTDRIVERET, "r %d", r); pM->Close(); return(r); } - TBool TDrive::IsExtensionMounted(CProxyDriveFactory* aFactory) // // return ETrue if extension mounted on the drive @@ -1885,7 +1860,6 @@ } return(EFalse); } - TInt TDrive::MountExtension(CProxyDriveFactory* aFactory,TBool aIsPrimary) // // Mount an extension @@ -1909,7 +1883,7 @@ if(iFSys==NULL) return(KErrNotReady); TBool extSupported = iFSys->IsExtensionSupported(); - TRACE1(UTF::EBorder, UTraceModuleFileSys::ECFileSystemIsExtensionSupported, EF32TraceUidFileSys, extSupported); + OstTraceExt2(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMISEXTENSIONSUPPORTED1, "%x r %d", (TUint) iFSys, (TUint) extSupported); if(!extSupported) return(KErrNotSupported); if(IsExtensionMounted(aFactory)) @@ -1997,17 +1971,16 @@ return(KErrNotReady); TInt r; CMountCB* pM=NULL; - TRACE2(UTF::EBorder, UTraceModuleFileSys::ECFileSystemNewMountL, EF32TraceUidFileSys, &FSys(), DriveNumber()); + OstTraceExt2(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMNEWMOUNTL2, "this %x drive %d", (TUint) &FSys(), (TUint) DriveNumber()); TRAP(r,pM=FSys().NewMountL()); - TRACERET2(UTF::EBorder, UTraceModuleFileSys::ECFileSystemNewMountLRet, EF32TraceUidFileSys, r, pM); + OstTraceExt2(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMNEWMOUNTL2RET, "r %d CMountCB %x", (TUint) r, (TUint) pM); if(r!=KErrNone) return(r); pM->SetDrive(this); - TRACE2(UTF::EBorder, UTraceModuleFileSys::ECMountCBLock, EF32TraceUidFileSys, DriveNumber(), aStore); + OstTraceExt2(TRACE_FILESYSTEM, FSYS_ECMOUNTCBLOCK, "drive %d aStore %d", (TUint) DriveNumber(), (TUint) aStore); r=pM->Lock(aOld,aNew,aStore); - TRACERET1(UTF::EBorder, UTraceModuleFileSys::ECMountCBLockRet, EF32TraceUidFileSys, r); - + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBLOCKRET, "r %d", r); pM->Close(); return(r); } @@ -2023,9 +1996,9 @@ return(KErrNotReady); TInt r; CMountCB* pM=NULL; - TRACE2(UTF::EBorder, UTraceModuleFileSys::ECFileSystemNewMountL, EF32TraceUidFileSys, &FSys(), DriveNumber()); + OstTraceExt2(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMNEWMOUNTL3, "this %x drive %d", (TUint) &FSys(), (TUint) DriveNumber()); TRAP(r,pM=FSys().NewMountL()); - TRACERET2(UTF::EBorder, UTraceModuleFileSys::ECFileSystemNewMountLRet, EF32TraceUidFileSys, r, pM); + OstTraceExt2(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMNEWMOUNTL3RET, "r %d CMountCB %x", (TUint) r, (TUint) pM); if(r!=KErrNone) return(r); @@ -2034,10 +2007,9 @@ pM->SetDrive(this); - TRACE2(UTF::EBorder, UTraceModuleFileSys::ECMountCBUnlock, EF32TraceUidFileSys, DriveNumber(), aStore); + OstTraceExt2(TRACE_FILESYSTEM, FSYS_ECMOUNTCBUNLOCK, "drive %d aStore %d", (TUint) DriveNumber(), (TUint) aStore); r=pM->Unlock(aPassword,aStore); - TRACERET1(UTF::EBorder, UTraceModuleFileSys::ECMountCBUnlockRet, EF32TraceUidFileSys, r); - + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBUNLOCKRET, "r %d", r); pM->Close(); return(r); } @@ -2053,9 +2025,9 @@ return(KErrNotReady); TInt r; CMountCB* pM=NULL; - TRACE2(UTF::EBorder, UTraceModuleFileSys::ECFileSystemNewMountL, EF32TraceUidFileSys, &FSys(), DriveNumber()); + OstTraceExt2(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMNEWMOUNTL4, "this %x drive %d", (TUint) &FSys(), (TUint) DriveNumber()); TRAP(r,pM=FSys().NewMountL()); - TRACERET2(UTF::EBorder, UTraceModuleFileSys::ECFileSystemNewMountLRet, EF32TraceUidFileSys, r, pM); + OstTraceExt2(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMNEWMOUNTL4RET, "r %d CMountCB %x", (TUint) r, (TUint) pM); if(r!=KErrNone) return(r); pM->SetDrive(this); @@ -2069,10 +2041,9 @@ if (info.iMediaAtt & KMediaAttLocked) UnlockDevice(aPassword, EFalse); - TRACE1(UTF::EBorder, UTraceModuleFileSys::ECMountCBClearPassword, EF32TraceUidFileSys, DriveNumber()); + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBCLEARPASSWORD, "drive %d", DriveNumber()); r=pM->ClearPassword(aPassword); - TRACERET1(UTF::EBorder, UTraceModuleFileSys::ECMountCBClearPasswordRet, EF32TraceUidFileSys, r); - + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBCLEARPASSWORDRET, "r %d", r); pM->Close(); return(r); } @@ -2088,17 +2059,16 @@ return(KErrNotReady); TInt r; CMountCB* pM=NULL; - TRACE2(UTF::EBorder, UTraceModuleFileSys::ECFileSystemNewMountL, EF32TraceUidFileSys, &FSys(), DriveNumber()); + OstTraceExt2(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMNEWMOUNTL5, "this %x drive %d", (TUint) &FSys(), (TUint) DriveNumber()); TRAP(r,pM=FSys().NewMountL()); - TRACERET2(UTF::EBorder, UTraceModuleFileSys::ECFileSystemNewMountLRet, EF32TraceUidFileSys, r, pM); + OstTraceExt2(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMNEWMOUNTL5RET, "r %d CMountCB %x", (TUint) r, (TUint) pM); if(r!=KErrNone) return(r); pM->SetDrive(this); - TRACE1(UTF::EBorder, UTraceModuleFileSys::ECMountCBErasePassword, EF32TraceUidFileSys, DriveNumber()); + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBERASEPASSWORD, "drive %d", DriveNumber()); r=pM->ErasePassword(); - TRACERET1(UTF::EBorder, UTraceModuleFileSys::ECMountCBErasePasswordRet, EF32TraceUidFileSys, r); - + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBERASEPASSWORDRET, "r %d", r); pM->Close(); return(r); } @@ -2237,10 +2207,9 @@ if (!iCurrentMount) return; - TRACE1(UTF::EBorder, UTraceModuleFileSys::ECMountCBDismounted, EF32TraceUidFileSys, DriveNumber()); + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBDISMOUNTED, "drive %d", DriveNumber()); iCurrentMount->Dismounted(); - TRACE0(UTF::EBorder, UTraceModuleFileSys::ECMountCBDismountedRet, EF32TraceUidFileSys); - + OstTrace0(TRACE_FILESYSTEM, FSYS_ECMOUNTCBDISMOUNTEDRET, ""); iCurrentMount->Close(); iCurrentMount=NULL; } @@ -2337,7 +2306,6 @@ } - TInt TDrive::ControlIO(const RMessagePtr2& aMessage,TInt aCommand,TAny* aParam1,TAny* aParam2) // // General purpose test interface - .FSY specific. @@ -2347,10 +2315,9 @@ if(r==KErrNone || (r==KErrInUse && iReason==KErrNone)) { TRACETHREADID(aMessage); - TRACE5(UTF::EBorder, UTraceModuleFileSys::ECMountCBControlIO, EF32TraceUidFileSys, - DriveNumber(), aCommand, aParam1, aParam2, I64LOW(threadId)); + OstTraceExt5(TRACE_FILESYSTEM, FSYS_ECMOUNTCBCONTROLIO, "drive %d aCommand %d aParam1 %x aParam2 %x clientThreadId %x", (TUint) DriveNumber(), (TUint) aCommand, (TUint) aParam1, (TUint) aParam2, (TUint) threadId); r=CurrentMount().ControlIO(aMessage,aCommand,aParam1,aParam2); - TRACERET1(UTF::EBorder, UTraceModuleFileSys::ECMountCBControlIORet, EF32TraceUidFileSys, r); + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBCONTROLIORET, "r %d", r); } return(r); } @@ -2567,11 +2534,10 @@ { ASSERT(!(apLDFormatInfo && apVolFormatParam)); //-- these parameters are mutually exclusive - TRACE2(UTF::EBorder, UTraceModuleFileSys::ECFileSystemNewFormatL, EF32TraceUidFileSys, &FSys(), DriveNumber()); - + OstTraceExt2(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMNEWFORMATL, "this %x drive %d", (TUint) &FSys(), (TUint) DriveNumber()); CFormatCB* pFormat = CurrentMount().NewFormatL(); - TRACE2(UTF::EBorder, UTraceModuleFileSys::ECFileSystemNewFormatLRet, EF32TraceUidFileSys, KErrNone, pFormat); + OstTraceExt2(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMNEWFORMATLRET, "r %d CFormatCB %x", (TUint) KErrNone, (TUint) pFormat); Formats->AddL(pFormat, ETrue); pFormat->InitL(this, aFmtMode); diff -r 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/fileserver/sfile/sf_ext.cpp --- a/userlibandfileserver/fileserver/sfile/sf_ext.cpp Thu May 27 14:17:14 2010 +0300 +++ b/userlibandfileserver/fileserver/sfile/sf_ext.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -15,9 +15,10 @@ // // - #include "sf_std.h" - +#ifdef OST_TRACE_COMPILER_IN_USE +#include "sf_extTraces.h" +#endif typedef CProxyDriveFactory*(*TExtensionNew)(); typedef CExtProxyDriveFactory*(*TProxyDriveNew)(); @@ -297,12 +298,10 @@ */ CLocalProxyDrive* CLocalProxyDrive::New(CMountCB* aMount,TBusLocalDrive& aLocDrv) { - TRACE2(UTF::EBorder, UTraceModuleProxyDrive::ECLocalProxyDriveNew, EF32TraceUidProxyDrive, - aMount, aMount->DriveNumber()); - + OstTraceExt2(TRACE_DRIVE, PROXYDRIVE_ECLOCALPROXYDRIVENEW, "aMount %x drive %d", (TUint) aMount, (TUint) aMount->DriveNumber()); CLocalProxyDrive* proxyDrive = new CLocalProxyDrive(aMount,aLocDrv); - TRACE1(UTF::EBorder, UTraceModuleProxyDrive::ECLocalProxyDriveNewRet, EF32TraceUidProxyDrive, proxyDrive); + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECLOCALPROXYDRIVENEWRET, "proxyDrive %x", proxyDrive); return proxyDrive; } @@ -328,9 +327,8 @@ */ TInt CLocalProxyDrive::Initialise() { - TRACE1(UTF::EBorder, UTraceModuleProxyDrive::ECLocalProxyDriveInitialise, EF32TraceUidProxyDrive, this); - TRACE1(UTF::EBorder, UTraceModuleProxyDrive::ECLocalProxyDriveInitialiseRet, EF32TraceUidProxyDrive, KErrNone); - + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECLOCALPROXYDRIVEINITIALISE, "this %x", this); + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECLOCALPROXYDRIVEINITIALISERET, "r %d", KErrNone); return(KErrNone); } @@ -344,9 +342,8 @@ */ TInt CLocalProxyDrive::Dismounted() { - TRACE1(UTF::EBorder, UTraceModuleProxyDrive::ECLocalProxyDriveDismounted, EF32TraceUidProxyDrive, this); - TRACE1(UTF::EBorder, UTraceModuleProxyDrive::ECLocalProxyDriveDismountedRet, EF32TraceUidProxyDrive, KErrNone); - + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECLOCALPROXYDRIVEDISMOUNTED, "this %x", this); + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECLOCALPROXYDRIVEDISMOUNTEDRET, "r %d", KErrNone); return(KErrNone); } @@ -360,11 +357,9 @@ */ TInt CLocalProxyDrive::Enlarge(TInt aLength) { - TRACE2(UTF::EBorder, UTraceModuleProxyDrive::ECLocalProxyDriveEnlarge, EF32TraceUidProxyDrive, this, aLength); - + OstTraceExt2(TRACE_DRIVE, PROXYDRIVE_ECLOCALPROXYDRIVEENLARGE, "this %x aLength %d", (TUint) this, (TUint) aLength); TInt r = iLocDrv.Enlarge(aLength); - - TRACERET1(UTF::EBorder, UTraceModuleProxyDrive::ECLocalProxyDriveEnlargeRet, EF32TraceUidProxyDrive, r); + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECLOCALPROXYDRIVEENLARGERET, "r %d", r); return r; } @@ -382,11 +377,9 @@ */ TInt CLocalProxyDrive::ReduceSize(TInt aPos, TInt aLength) { - TRACE3(UTF::EBorder, UTraceModuleProxyDrive::ECLocalProxyDriveReduceSize, EF32TraceUidProxyDrive, this, aPos, aLength); - + OstTraceExt3(TRACE_DRIVE, PROXYDRIVE_ECLOCALPROXYDRIVEREDUCESIZE, "this %x aPos %x aLength %d", (TUint) this, (TUint) aPos, (TUint) aLength); TInt r = iLocDrv.ReduceSize(aPos,aLength); - - TRACERET1(UTF::EBorder, UTraceModuleProxyDrive::ECLocalProxyDriveReduceSizeRet, EF32TraceUidProxyDrive, r); + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECLOCALPROXYDRIVEREDUCESIZERET, "r %d", r); return r; } @@ -406,12 +399,9 @@ TInt CLocalProxyDrive::Read(TInt64 aPos,TInt aLength,const TAny* aTrg,TInt aThreadHandle,TInt aOffset, TInt aFlags) { TRACETHREADIDH(aThreadHandle); - TRACE8(UTF::EBorder, UTraceModuleProxyDrive::ECLocalProxyDriveRead1, EF32TraceUidProxyDrive, - this, I64LOW(aPos), I64HIGH(aPos), aLength, aTrg, threadId, aOffset, aFlags); - + OstTraceExt5(TRACE_DRIVE, PROXYDRIVE_ECLOCALPROXYDRIVEREAD1, "this %x clientThreadId %x aPos %x:%x aLength %d", (TUint) this, (TUint) threadId, (TUint) I64HIGH(aPos), (TUint) I64LOW(aPos), aLength); TInt r = iLocDrv.Read(aPos,aLength,aTrg,aThreadHandle,aOffset,aFlags); - - TRACERET1(UTF::EBorder, UTraceModuleProxyDrive::ECLocalProxyDriveRead1Ret, EF32TraceUidProxyDrive, r); + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECLOCALPROXYDRIVEREAD1RET, "r %d", r); return r; } @@ -429,12 +419,9 @@ TInt CLocalProxyDrive::Read(TInt64 aPos,TInt aLength,const TAny* aTrg,TInt aThreadHandle,TInt anOffset) { TRACETHREADIDH(aThreadHandle); - TRACE7(UTF::EBorder, UTraceModuleProxyDrive::ECLocalProxyDriveRead2, EF32TraceUidProxyDrive, - this, I64LOW(aPos), I64HIGH(aPos), aLength, aTrg, threadId, anOffset); - + OstTraceExt5(TRACE_DRIVE, PROXYDRIVE_ECLOCALPROXYDRIVEREAD2, "this %x clientThreadId %x aPos %x:%x aLength %d", (TUint) this, (TUint) threadId, (TUint) I64HIGH(aPos), (TUint) I64LOW(aPos), aLength); TInt r = iLocDrv.Read(aPos,aLength,aTrg,aThreadHandle,anOffset); - - TRACERET1(UTF::EBorder, UTraceModuleProxyDrive::ECLocalProxyDriveRead2Ret, EF32TraceUidProxyDrive, r); + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECLOCALPROXYDRIVEREAD2RET, "r %d", r); return r; } @@ -449,12 +436,9 @@ */ TInt CLocalProxyDrive::Read(TInt64 aPos,TInt aLength,TDes8& aTrg) { - TRACE5(UTF::EBorder, UTraceModuleProxyDrive::ECLocalProxyDriveRead3, EF32TraceUidProxyDrive, - this, I64LOW(aPos), I64HIGH(aPos), aLength, &aTrg); - + OstTraceExt5(TRACE_DRIVE, PROXYDRIVE_ECLOCALPROXYDRIVEREAD3, "this %x aPos %x:%x aLength %d aTrg %x", (TUint) this, (TUint) I64HIGH(aPos), (TUint) I64LOW(aPos), aLength, (TUint) &aTrg); TInt r = iLocDrv.Read(aPos,aLength,aTrg); - - TRACERET1(UTF::EBorder, UTraceModuleProxyDrive::ECLocalProxyDriveRead3Ret, EF32TraceUidProxyDrive, r); + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECLOCALPROXYDRIVEREAD3RET, "r %d", r); return r; } @@ -474,13 +458,9 @@ TInt CLocalProxyDrive::Write(TInt64 aPos,TInt aLength,const TAny* aSrc,TInt aThreadHandle,TInt aOffset,TInt aFlags) { TRACETHREADIDH(aThreadHandle); - TRACE8(UTF::EBorder, UTraceModuleProxyDrive::ECLocalProxyDriveWrite1, EF32TraceUidProxyDrive, - this, I64LOW(aPos), I64HIGH(aPos), aLength, aSrc, threadId, aOffset, aFlags); - + OstTraceExt5(TRACE_DRIVE, PROXYDRIVE_ECLOCALPROXYDRIVEWRITE1, "this %x clientThreadId %x aPos %x:%x aLength %d", (TUint) this, (TUint) threadId, (TUint) I64HIGH(aPos), (TUint) I64LOW(aPos), aLength); TInt r = iLocDrv.Write(aPos,aLength,aSrc,aThreadHandle,aOffset,aFlags); - - TRACERET1(UTF::EBorder, UTraceModuleProxyDrive::ECLocalProxyDriveWrite1Ret, EF32TraceUidProxyDrive, r); - + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECLOCALPROXYDRIVEWRITE1RET, "r %d", r); return r; } @@ -499,12 +479,9 @@ TInt CLocalProxyDrive::Write(TInt64 aPos,TInt aLength,const TAny* aSrc,TInt aThreadHandle,TInt anOffset) { TRACETHREADIDH(aThreadHandle); - TRACE7(UTF::EBorder, UTraceModuleProxyDrive::ECLocalProxyDriveWrite2, EF32TraceUidProxyDrive, - this, I64LOW(aPos), I64HIGH(aPos), aLength, aSrc, threadId, anOffset); - + OstTraceExt5(TRACE_DRIVE, PROXYDRIVE_ECLOCALPROXYDRIVEWRITE2, "this %x clientThreadId %x aPos %x:%x aLength %d", (TUint) this, (TUint) threadId, (TUint) I64HIGH(aPos), (TUint) I64LOW(aPos), aLength); TInt r = iLocDrv.Write(aPos,aLength,aSrc,aThreadHandle,anOffset); - - TRACERET1(UTF::EBorder, UTraceModuleProxyDrive::ECLocalProxyDriveWrite2Ret, EF32TraceUidProxyDrive, r); + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECLOCALPROXYDRIVEWRITE2RET, "r %d", r); return r; } @@ -519,12 +496,9 @@ */ TInt CLocalProxyDrive::Write(TInt64 aPos,const TDesC8& aSrc) { - TRACE5(UTF::EBorder, UTraceModuleProxyDrive::ECLocalProxyDriveWrite3, EF32TraceUidProxyDrive, - this, I64LOW(aPos), I64HIGH(aPos), aSrc.Length(), &aSrc); - + OstTraceExt5(TRACE_DRIVE, PROXYDRIVE_ECLOCALPROXYDRIVEWRITE3, "this %x aPos %x:%x aLength %d aSrc %x", (TUint) this, (TUint) I64HIGH(aPos), (TUint) I64LOW(aPos), aSrc.Length(), (TUint) &aSrc); TInt r = iLocDrv.Write(aPos,aSrc); - - TRACERET1(UTF::EBorder, UTraceModuleProxyDrive::ECLocalProxyDriveWrite3Ret, EF32TraceUidProxyDrive, r); + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECLOCALPROXYDRIVEWRITE3RET, "r %d", r); return r; } @@ -538,11 +512,9 @@ */ TInt CLocalProxyDrive::Caps(TDes8& anInfo) { - TRACE1(UTF::EBorder, UTraceModuleProxyDrive::ECLocalProxyDriveCaps, EF32TraceUidProxyDrive, this); - + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECLOCALPROXYDRIVECAPS, "this %x", this); TInt r = iLocDrv.Caps(anInfo); - - TRACERET1(UTF::EBorder, UTraceModuleProxyDrive::ECLocalProxyDriveCapsRet, EF32TraceUidProxyDrive, r); + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECLOCALPROXYDRIVECAPSRET, "r %d", r); return r; } @@ -556,12 +528,9 @@ */ TInt CLocalProxyDrive::Format(TFormatInfo& anInfo) { - TRACE1(UTF::EBorder, UTraceModuleProxyDrive::ECLocalProxyDriveFormat1, EF32TraceUidProxyDrive, this); - + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECLOCALPROXYDRIVEFORMAT1, "this %x", this); TInt r = iLocDrv.Format(anInfo); - - TRACE4(UTF::EBorder, UTraceModuleProxyDrive::ECLocalProxyDriveFormat1Ret, EF32TraceUidProxyDrive, - r, anInfo.iFormatIsCurrent, anInfo.i512ByteSectorsFormatted, anInfo.iMaxBytesPerFormat); + OstTraceExt4(TRACE_DRIVE, PROXYDRIVE_ECLOCALPROXYDRIVEFORMAT1RET, "r %d iFormatIsCurrent %d i512ByteSectorsFormatted %d iMaxBytesPerFormat %d", (TUint) r, (TUint) anInfo.iFormatIsCurrent, (TUint) anInfo.i512ByteSectorsFormatted, (TUint) anInfo.iMaxBytesPerFormat); return r; } @@ -576,12 +545,9 @@ */ TInt CLocalProxyDrive::Format(TInt64 aPos,TInt aLength) { - TRACE4(UTF::EBorder, UTraceModuleProxyDrive::ECLocalProxyDriveFormat2, EF32TraceUidProxyDrive, - this, I64LOW(aPos), I64HIGH(aPos), aLength); - + OstTraceExt4(TRACE_DRIVE, PROXYDRIVE_ECLOCALPROXYDRIVEFORMAT2, "this %x aPos %x:%x aLength %d", (TUint) this, (TUint) I64HIGH(aPos), (TUint) I64LOW(aPos), (TUint) aLength); TInt r = iLocDrv.Format(aPos,aLength); - - TRACERET1(UTF::EBorder, UTraceModuleProxyDrive::ECLocalProxyDriveFormat2Ret, EF32TraceUidProxyDrive, r); + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECLOCALPROXYDRIVEFORMAT2RET, "r %d", r); return r; } @@ -596,11 +562,9 @@ */ TInt CLocalProxyDrive::SetMountInfo(const TDesC8* aMountInfo,TInt aMountInfoThreadHandle) { - TRACE3(UTF::EBorder, UTraceModuleProxyDrive::ECLocalProxyDriveSetMountInfo, EF32TraceUidProxyDrive, this, aMountInfo, aMountInfoThreadHandle); - + OstTraceExt3(TRACE_DRIVE, PROXYDRIVE_ECLOCALPROXYDRIVESETMOUNTINFO, "this %x aMountInfo %x aMountInfoThreadHandle %d", (TUint) this, (TUint) aMountInfo, (TUint) aMountInfoThreadHandle); TInt r = iLocDrv.SetMountInfo(aMountInfo,aMountInfoThreadHandle); - - TRACERET1(UTF::EBorder, UTraceModuleProxyDrive::ECLocalProxyDriveSetMountInfoRet, EF32TraceUidProxyDrive, r); + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECLOCALPROXYDRIVESETMOUNTINFORET, "r %d", r); return r; } @@ -614,11 +578,9 @@ */ TInt CLocalProxyDrive::ForceRemount(TUint aFlags) { - TRACE2(UTF::EBorder, UTraceModuleProxyDrive::ECLocalProxyDriveForceRemount, EF32TraceUidProxyDrive, this, aFlags); - + OstTraceExt2(TRACE_DRIVE, PROXYDRIVE_ECLOCALPROXYDRIVEFORCEREMOUNT, "this %x aFlags %x", (TUint) this, (TUint) aFlags); TInt r = iLocDrv.ForceRemount(aFlags); - - TRACERET1(UTF::EBorder, UTraceModuleProxyDrive::ECLocalProxyDriveForceRemountRet, EF32TraceUidProxyDrive, r); + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECLOCALPROXYDRIVEFORCEREMOUNTRET, "r %d", r); return r; } @@ -635,11 +597,9 @@ */ TInt CLocalProxyDrive::ControlIO(const RMessagePtr2& /*aMessage*/,TInt aCommand,TAny* aParam1,TAny* aParam2) { - TRACE1(UTF::EBorder, UTraceModuleProxyDrive::ECLocalProxyDriveControlIO, EF32TraceUidProxyDrive, this); - + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECLOCALPROXYDRIVECONTROLIO, "this %x", this); TInt r = iLocDrv.ControlIO(aCommand,aParam1,aParam2); - - TRACERET1(UTF::EBorder, UTraceModuleProxyDrive::ECLocalProxyDriveControlIORet, EF32TraceUidProxyDrive, r); + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECLOCALPROXYDRIVECONTROLIORET, "r %d", r); return r; } @@ -654,11 +614,9 @@ */ TInt CLocalProxyDrive::Unlock(TMediaPassword &aPassword, TBool aStorePassword) { - TRACE2(UTF::EBorder, UTraceModuleProxyDrive::ECLocalProxyDriveUnlock, EF32TraceUidProxyDrive, this, aStorePassword); - + OstTraceExt2(TRACE_DRIVE, PROXYDRIVE_ECLOCALPROXYDRIVEUNLOCK, "this %x aPassword %d", (TUint) this, (TUint) aStorePassword); TInt r = iLocDrv.Unlock(aPassword,aStorePassword); - - TRACERET1(UTF::EBorder, UTraceModuleProxyDrive::ECLocalProxyDriveUnlockRet, EF32TraceUidProxyDrive, r); + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECLOCALPROXYDRIVEUNLOCKRET, "r %d", r); return r; } @@ -674,11 +632,9 @@ */ TInt CLocalProxyDrive::Lock(TMediaPassword &aOldPassword, TMediaPassword &aNewPassword, TBool aStorePassword) { - TRACE2(UTF::EBorder, UTraceModuleProxyDrive::ECLocalProxyDriveLock, EF32TraceUidProxyDrive, this, aStorePassword); - + OstTraceExt2(TRACE_DRIVE, PROXYDRIVE_ECLOCALPROXYDRIVELOCK, "this %x aPassword %d", (TUint) this, (TUint) aStorePassword); TInt r = iLocDrv.SetPassword(aOldPassword,aNewPassword,aStorePassword); - - TRACERET1(UTF::EBorder, UTraceModuleProxyDrive::ECLocalProxyDriveLockRet, EF32TraceUidProxyDrive, r); + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECLOCALPROXYDRIVELOCKRET, "r %d", r); return r; } @@ -692,11 +648,9 @@ */ TInt CLocalProxyDrive::Clear(TMediaPassword &aPassword) { - TRACE1(UTF::EBorder, UTraceModuleProxyDrive::ECLocalProxyDriveClear, EF32TraceUidProxyDrive, this); - + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECLOCALPROXYDRIVECLEAR, "this %x", this); TInt r = iLocDrv.Clear(aPassword); - - TRACERET1(UTF::EBorder, UTraceModuleProxyDrive::ECLocalProxyDriveClearRet, EF32TraceUidProxyDrive, r); + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECLOCALPROXYDRIVECLEARRET, "r %d", r); return r; } @@ -707,11 +661,9 @@ */ TInt CLocalProxyDrive::ErasePassword() { - TRACE1(UTF::EBorder, UTraceModuleProxyDrive::ECLocalProxyDriveErasePassword, EF32TraceUidProxyDrive, this); - + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECLOCALPROXYDRIVEERASEPASSWORD, "this %x", this); TInt r = iLocDrv.ErasePassword(); - - TRACERET1(UTF::EBorder, UTraceModuleProxyDrive::ECLocalProxyDriveErasePasswordRet, EF32TraceUidProxyDrive, r); + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECLOCALPROXYDRIVEERASEPASSWORDRET, "r %d", r); return r; } @@ -721,17 +673,13 @@ @param aPos The position of the data which is being deleted. @param aLength The length of the data which is being deleted. - @return System wide error code. */ TInt CLocalProxyDrive::DeleteNotify(TInt64 aPos, TInt aLength) { - TRACE4(UTF::EBorder, UTraceModuleProxyDrive::ECLocalProxyDriveDeleteNotify, EF32TraceUidProxyDrive, - this, I64LOW(aPos), I64HIGH(aPos), aLength); - + OstTraceExt4(TRACE_DRIVE, PROXYDRIVE_ECLOCALPROXYDRIVEDELETENOTIFY, "this %x aPos %x:%x aLength %d", (TUint) this, (TUint) I64HIGH(aPos), (TUint) I64LOW(aPos), (TUint) aLength); TInt r = iLocDrv.DeleteNotify(aPos, aLength); - - TRACERET1(UTF::EBorder, UTraceModuleProxyDrive::ECLocalProxyDriveDeleteNotifyRet, EF32TraceUidProxyDrive, r); + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECLOCALPROXYDRIVEDELETENOTIFYRET, "r %d", r); return r; } @@ -745,20 +693,16 @@ */ TInt CLocalProxyDrive::GetLastErrorInfo(TDes8 &aErrorInfo) { - TRACE1(UTF::EBorder, UTraceModuleProxyDrive::ECLocalProxyDriveGetLastErrorInfo, EF32TraceUidProxyDrive, this); - + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECLOCALPROXYDRIVEGETLASTERRORINFO, "this %x", this); TInt r = iLocDrv.GetLastErrorInfo(aErrorInfo); - - TRACERET1(UTF::EBorder, UTraceModuleProxyDrive::ECLocalProxyDriveGetLastErrorInfoRet, EF32TraceUidProxyDrive, r); + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECLOCALPROXYDRIVEGETLASTERRORINFORET, "r %d", r); return r; } TInt CLocalProxyDrive::GetInterface(TInt aInterfaceId,TAny*& aInterface,TAny* aInput) { - TRACE3(UTF::EBorder, UTraceModuleProxyDrive::ECLocalProxyDriveGetInterface, EF32TraceUidProxyDrive, - this, aInterfaceId, aInput); - + OstTraceExt3(TRACE_DRIVE, PROXYDRIVE_ECLOCALPROXYDRIVEGETINTERFACE, "this %x aInterfaceId %d aInput %x", (TUint) this, (TUint) aInterfaceId, (TUint) aInput); TInt r; switch(aInterfaceId) { @@ -776,8 +720,7 @@ default: r= CProxyDrive::GetInterface(aInterfaceId,aInterface,aInput); } - - TRACERET2(UTF::EBorder, UTraceModuleProxyDrive::ECLocalProxyDriveGetInterfaceRet, EF32TraceUidProxyDrive, r, aInterface); + OstTraceExt2(TRACE_DRIVE, PROXYDRIVE_ECLOCALPROXYDRIVEGETINTERFACERET, "r %d aInterface %x", (TUint) r, (TUint) aInterface); return r; } @@ -814,11 +757,9 @@ */ EXPORT_C TInt CBaseExtProxyDrive::Initialise() { - TRACE1(UTF::EBorder, UTraceModuleProxyDrive::ECBaseExtProxyDriveInitialise, EF32TraceUidProxyDrive, this); - + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECBASEEXTPROXYDRIVEINITIALISE, "this %x", this); TInt r = iProxy->Initialise(); - - TRACERET1(UTF::EBorder, UTraceModuleProxyDrive::ECBaseExtProxyDriveInitialiseRet, EF32TraceUidProxyDrive, r); + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECBASEEXTPROXYDRIVEINITIALISERET, "r %d", r); return r; } @@ -830,11 +771,9 @@ */ EXPORT_C TInt CBaseExtProxyDrive::Dismounted() { - TRACE1(UTF::EBorder, UTraceModuleProxyDrive::ECBaseExtProxyDriveDismounted, EF32TraceUidProxyDrive, this); - + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECBASEEXTPROXYDRIVEDISMOUNTED, "this %x", this); TInt r = iProxy->Dismounted(); - - TRACERET1(UTF::EBorder, UTraceModuleProxyDrive::ECBaseExtProxyDriveDismountedRet, EF32TraceUidProxyDrive, r); + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECBASEEXTPROXYDRIVEDISMOUNTEDRET, "r %d", r); return r; } @@ -847,11 +786,9 @@ */ EXPORT_C TInt CBaseExtProxyDrive::Enlarge(TInt aLength) { - TRACE2(UTF::EBorder, UTraceModuleProxyDrive::ECBaseExtProxyDriveEnlarge, EF32TraceUidProxyDrive, this, aLength); - + OstTraceExt2(TRACE_DRIVE, PROXYDRIVE_ECBASEEXTPROXYDRIVEENLARGE, "this %x aLength %d", (TUint) this, (TUint) aLength); TInt r = iProxy->Enlarge(aLength); - - TRACERET1(UTF::EBorder, UTraceModuleProxyDrive::ECBaseExtProxyDriveEnlargeRet, EF32TraceUidProxyDrive, r); + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECBASEEXTPROXYDRIVEENLARGERET, "r %d", r); return r; } @@ -869,11 +806,9 @@ */ EXPORT_C TInt CBaseExtProxyDrive::ReduceSize(TInt aPos, TInt aLength) { - TRACE3(UTF::EBorder, UTraceModuleProxyDrive::ECBaseExtProxyDriveReduceSize, EF32TraceUidProxyDrive, this, aPos, aLength); - + OstTraceExt3(TRACE_DRIVE, PROXYDRIVE_ECBASEEXTPROXYDRIVEREDUCESIZE, "this %x aPos %x aLength %d", (TUint) this, (TUint) aPos, (TUint) aLength); TInt r = iProxy->ReduceSize(aPos,aLength); - - TRACERET1(UTF::EBorder, UTraceModuleProxyDrive::ECBaseExtProxyDriveReduceSizeRet, EF32TraceUidProxyDrive, r); + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECBASEEXTPROXYDRIVEREDUCESIZERET, "r %d", r); return r; } @@ -893,13 +828,9 @@ EXPORT_C TInt CBaseExtProxyDrive::Read(TInt64 aPos,TInt aLength,const TAny* aTrg,TInt aThreadHandle,TInt aOffset,TInt aFlags) { TRACETHREADIDH(aThreadHandle); - TRACE8(UTF::EBorder, UTraceModuleProxyDrive::ECBaseExtProxyDriveRead1, EF32TraceUidProxyDrive, - this, I64LOW(aPos), I64HIGH(aPos), aLength, aTrg, threadId, aOffset, aFlags); - + OstTraceExt5(TRACE_DRIVE, PROXYDRIVE_ECBASEEXTPROXYDRIVEREAD1, "this %x clientThreadId %x aPos %x:%x aLength %d", (TUint) this, (TUint) threadId, (TUint) I64HIGH(aPos), (TUint) I64LOW(aPos), aLength); TInt r = iProxy->Read(aPos,aLength,aTrg,aThreadHandle,aOffset,aFlags); - - TRACERET1(UTF::EBorder, UTraceModuleProxyDrive::ECBaseExtProxyDriveRead1Ret, EF32TraceUidProxyDrive, r); - + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECBASEEXTPROXYDRIVEREAD1RET, "r %d", r); return r; } @@ -918,12 +849,9 @@ EXPORT_C TInt CBaseExtProxyDrive::Read(TInt64 aPos,TInt aLength,const TAny* aTrg,TInt aThreadHandle,TInt anOffset) { TRACETHREADIDH(aThreadHandle); - TRACE7(UTF::EBorder, UTraceModuleProxyDrive::ECBaseExtProxyDriveRead2, EF32TraceUidProxyDrive, - this, I64LOW(aPos), I64HIGH(aPos), aLength, aTrg, threadId, anOffset); - + OstTraceExt5(TRACE_DRIVE, PROXYDRIVE_ECBASEEXTPROXYDRIVEREAD2, "this %x clientThreadId %x aPos %x:%x aLength %d", (TUint) this, (TUint) threadId, (TUint) I64HIGH(aPos), (TUint) I64LOW(aPos), aLength); TInt r = iProxy->Read(aPos,aLength,aTrg,aThreadHandle,anOffset); - - TRACERET1(UTF::EBorder, UTraceModuleProxyDrive::ECBaseExtProxyDriveRead2Ret, EF32TraceUidProxyDrive, r); + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECBASEEXTPROXYDRIVEREAD2RET, "r %d", r); return r; } @@ -939,12 +867,10 @@ */ EXPORT_C TInt CBaseExtProxyDrive::Read(TInt64 aPos,TInt aLength,TDes8& aTrg) { - TRACE5(UTF::EBorder, UTraceModuleProxyDrive::ECBaseExtProxyDriveRead3, EF32TraceUidProxyDrive, - this, I64LOW(aPos), I64HIGH(aPos), aLength, &aTrg); - + OstTraceExt5(TRACE_DRIVE, PROXYDRIVE_ECBASEEXTPROXYDRIVEREAD3, "this %x aPos %x:%x aLength %d aTrg %x", (TUint) this, (TUint) I64HIGH(aPos), (TUint) I64LOW(aPos), aLength, (TUint) &aTrg); + TInt r = iProxy->Read(aPos,aLength,aTrg); - - TRACERET1(UTF::EBorder, UTraceModuleProxyDrive::ECBaseExtProxyDriveRead3Ret, EF32TraceUidProxyDrive, r); + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECBASEEXTPROXYDRIVEREAD3RET, "r %d", r); return r; } @@ -964,12 +890,9 @@ EXPORT_C TInt CBaseExtProxyDrive::Write(TInt64 aPos,TInt aLength,const TAny* aSrc,TInt aThreadHandle,TInt aOffset,TInt aFlags) { TRACETHREADIDH(aThreadHandle); - TRACE8(UTF::EBorder, UTraceModuleProxyDrive::ECBaseExtProxyDriveWrite1, EF32TraceUidProxyDrive, - this, I64LOW(aPos), I64HIGH(aPos), aLength, aSrc, threadId, aOffset, aFlags); - + OstTraceExt5(TRACE_DRIVE, PROXYDRIVE_ECBASEEXTPROXYDRIVEWRITE1, "this %x clientThreadId %x aPos %x:%x aLength %d", (TUint) this, (TUint) threadId, (TUint) I64HIGH(aPos), (TUint) I64LOW(aPos), aLength); TInt r = iProxy->Write(aPos,aLength,aSrc,aThreadHandle,aOffset,aFlags); - - TRACERET1(UTF::EBorder, UTraceModuleProxyDrive::ECBaseExtProxyDriveWrite1Ret, EF32TraceUidProxyDrive, r); + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECBASEEXTPROXYDRIVEWRITE1RET, "r %d", r); return r; } @@ -988,12 +911,9 @@ EXPORT_C TInt CBaseExtProxyDrive::Write(TInt64 aPos,TInt aLength,const TAny* aSrc,TInt aThreadHandle,TInt anOffset) { TRACETHREADIDH(aThreadHandle); - TRACE7(UTF::EBorder, UTraceModuleProxyDrive::ECBaseExtProxyDriveWrite2, EF32TraceUidProxyDrive, - this, I64LOW(aPos), I64HIGH(aPos), aLength, aSrc, threadId, anOffset); - + OstTraceExt5(TRACE_DRIVE, PROXYDRIVE_ECBASEEXTPROXYDRIVEWRITE2, "this %x clientThreadId %x aPos %x:%x aLength %d", (TUint) this, (TUint) threadId, (TUint) I64HIGH(aPos), (TUint) I64LOW(aPos), aLength); TInt r = iProxy->Write(aPos,aLength,aSrc,aThreadHandle,anOffset); - - TRACERET1(UTF::EBorder, UTraceModuleProxyDrive::ECBaseExtProxyDriveWrite2Ret, EF32TraceUidProxyDrive, r); + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECBASEEXTPROXYDRIVEWRITE2RET, "r %d", r); return r; } @@ -1008,12 +928,9 @@ */ EXPORT_C TInt CBaseExtProxyDrive::Write(TInt64 aPos,const TDesC8& aSrc) { - TRACE5(UTF::EBorder, UTraceModuleProxyDrive::ECBaseExtProxyDriveWrite3, EF32TraceUidProxyDrive, - this, I64LOW(aPos), I64HIGH(aPos), aSrc.Length(), &aSrc); - + OstTraceExt5(TRACE_DRIVE, PROXYDRIVE_ECBASEEXTPROXYDRIVEWRITE3, "this %x aPos %x:%x aLength %d aSrc %x", (TUint) this, (TUint) I64HIGH(aPos), (TUint) I64LOW(aPos), aSrc.Length(), (TUint) &aSrc); TInt r = iProxy->Write(aPos,aSrc); - - TRACERET1(UTF::EBorder, UTraceModuleProxyDrive::ECBaseExtProxyDriveWrite3Ret, EF32TraceUidProxyDrive, r); + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECBASEEXTPROXYDRIVEWRITE3RET, "r %d", r); return r; } @@ -1027,11 +944,9 @@ */ EXPORT_C TInt CBaseExtProxyDrive::Caps(TDes8& anInfo) { - TRACE1(UTF::EBorder, UTraceModuleProxyDrive::ECBaseExtProxyDriveCaps, EF32TraceUidProxyDrive, this); - + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECBASEEXTPROXYDRIVECAPS, "this %x", this); TInt r = iProxy->Caps(anInfo); - - TRACERET1(UTF::EBorder, UTraceModuleProxyDrive::ECBaseExtProxyDriveCapsRet, EF32TraceUidProxyDrive, r); + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECBASEEXTPROXYDRIVECAPSRET, "r %d", r); return r; } @@ -1045,12 +960,9 @@ */ EXPORT_C TInt CBaseExtProxyDrive::Format(TFormatInfo& anInfo) { - TRACE1(UTF::EBorder, UTraceModuleProxyDrive::ECBaseExtProxyDriveFormat1, EF32TraceUidProxyDrive, this); - + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECBASEEXTPROXYDRIVEFORMAT1, "this %x", this); TInt r = iProxy->Format(anInfo); - - TRACE4(UTF::EBorder, UTraceModuleProxyDrive::ECBaseExtProxyDriveFormat1Ret, EF32TraceUidProxyDrive, - r, anInfo.iFormatIsCurrent, anInfo.i512ByteSectorsFormatted, anInfo.iMaxBytesPerFormat); + OstTraceExt4(TRACE_DRIVE, PROXYDRIVE_ECBASEEXTPROXYDRIVEFORMAT1RET, "r %d iFormatIsCurrent %d i512ByteSectorsFormatted %d iMaxBytesPerFormat %d", (TUint) r, (TUint) anInfo.iFormatIsCurrent, (TUint) anInfo.i512ByteSectorsFormatted, (TUint) anInfo.iMaxBytesPerFormat); return r; } @@ -1065,12 +977,9 @@ */ EXPORT_C TInt CBaseExtProxyDrive::Format(TInt64 aPos,TInt aLength) { - TRACE4(UTF::EBorder, UTraceModuleProxyDrive::ECBaseExtProxyDriveFormat2, EF32TraceUidProxyDrive, - this, I64LOW(aPos), I64HIGH(aPos), aLength); - + OstTraceExt4(TRACE_DRIVE, PROXYDRIVE_ECBASEEXTPROXYDRIVEFORMAT2, "this %x aPos %x:%x aLength %d", (TUint) this, (TUint) I64HIGH(aPos), (TUint) I64LOW(aPos), (TUint) aLength); TInt r = iProxy->Format(aPos,aLength); - - TRACERET1(UTF::EBorder, UTraceModuleProxyDrive::ECBaseExtProxyDriveFormat2Ret, EF32TraceUidProxyDrive, r); + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECBASEEXTPROXYDRIVEFORMAT2RET, "r %d", r); return r; } @@ -1085,11 +994,9 @@ */ EXPORT_C TInt CBaseExtProxyDrive::SetMountInfo(const TDesC8* aMountInfo,TInt aMountInfoThreadHandle) { - TRACE3(UTF::EBorder, UTraceModuleProxyDrive::ECBaseExtProxyDriveSetMountInfo, EF32TraceUidProxyDrive, this, aMountInfo, aMountInfoThreadHandle); - + OstTraceExt3(TRACE_DRIVE, PROXYDRIVE_ECBASEEXTPROXYDRIVESETMOUNTINFO, "this %x aMountInfo %x aMountInfoThreadHandle %x", (TUint) this, (TUint) aMountInfo, (TUint) aMountInfoThreadHandle); TInt r = iProxy->SetMountInfo(aMountInfo,aMountInfoThreadHandle); - - TRACERET1(UTF::EBorder, UTraceModuleProxyDrive::ECBaseExtProxyDriveSetMountInfoRet, EF32TraceUidProxyDrive, r); + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECBASEEXTPROXYDRIVESETMOUNTINFORET, "r %d", r); return r; } @@ -1103,11 +1010,9 @@ */ EXPORT_C TInt CBaseExtProxyDrive::ForceRemount(TUint aFlags) { - TRACE2(UTF::EBorder, UTraceModuleProxyDrive::ECBaseExtProxyDriveForceRemount, EF32TraceUidProxyDrive, this, aFlags); - + OstTraceExt2(TRACE_DRIVE, PROXYDRIVE_ECBASEEXTPROXYDRIVEFORCEREMOUNT, "this %x aFlags%x", (TUint) this, (TUint) aFlags); TInt r = iProxy->ForceRemount(aFlags); - - TRACERET1(UTF::EBorder, UTraceModuleProxyDrive::ECBaseExtProxyDriveForceRemountRet, EF32TraceUidProxyDrive, r); + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECBASEEXTPROXYDRIVEFORCEREMOUNTRET, "r %d", r); return r; } @@ -1122,11 +1027,9 @@ */ EXPORT_C TInt CBaseExtProxyDrive::Unlock(TMediaPassword &aPassword, TBool aStorePassword) { - TRACE2(UTF::EBorder, UTraceModuleProxyDrive::ECBaseExtProxyDriveUnlock, EF32TraceUidProxyDrive, this, aStorePassword); - + OstTraceExt2(TRACE_DRIVE, PROXYDRIVE_ECBASEEXTPROXYDRIVEUNLOCK, "this %x aPassword %d", (TUint) this, (TUint) aStorePassword); TInt r = iProxy->Unlock(aPassword,aStorePassword); - - TRACERET1(UTF::EBorder, UTraceModuleProxyDrive::ECBaseExtProxyDriveUnlockRet, EF32TraceUidProxyDrive, r); + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECBASEEXTPROXYDRIVEUNLOCKRET, "r %d", r); return r; } @@ -1142,11 +1045,9 @@ */ EXPORT_C TInt CBaseExtProxyDrive::Lock(TMediaPassword &aOldPassword, TMediaPassword &aNewPassword, TBool aStorePassword) { - TRACE2(UTF::EBorder, UTraceModuleProxyDrive::ECBaseExtProxyDriveLock, EF32TraceUidProxyDrive, this, aStorePassword); - + OstTraceExt2(TRACE_DRIVE, PROXYDRIVE_ECBASEEXTPROXYDRIVELOCK, "this %x aPassword %d", (TUint) this, (TUint) aStorePassword); TInt r = iProxy->Lock(aOldPassword,aNewPassword,aStorePassword); - - TRACERET1(UTF::EBorder, UTraceModuleProxyDrive::ECBaseExtProxyDriveLockRet, EF32TraceUidProxyDrive, r); + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECBASEEXTPROXYDRIVELOCKRET, "r %d", r); return r; } @@ -1160,11 +1061,9 @@ */ EXPORT_C TInt CBaseExtProxyDrive::Clear(TMediaPassword &aPassword) { - TRACE1(UTF::EBorder, UTraceModuleProxyDrive::ECBaseExtProxyDriveClear, EF32TraceUidProxyDrive, this); - + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECBASEEXTPROXYDRIVECLEAR, "this %x", this); TInt r = iProxy->Clear(aPassword); - - TRACERET1(UTF::EBorder, UTraceModuleProxyDrive::ECBaseExtProxyDriveClearRet, EF32TraceUidProxyDrive, r); + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECBASEEXTPROXYDRIVECLEARRET, "r %d", r); return r; } @@ -1175,11 +1074,9 @@ */ EXPORT_C TInt CBaseExtProxyDrive::ErasePassword() { - TRACE1(UTF::EBorder, UTraceModuleProxyDrive::ECBaseExtProxyDriveErasePassword, EF32TraceUidProxyDrive, this); - + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECBASEEXTPROXYDRIVEERASEPASSWORD, "this %x", this); TInt r = iProxy->ErasePassword(); - - TRACERET1(UTF::EBorder, UTraceModuleProxyDrive::ECBaseExtProxyDriveErasePasswordRet, EF32TraceUidProxyDrive, r); + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECBASEEXTPROXYDRIVEERASEPASSWORDRET, "r %d", r); return r; } @@ -1196,11 +1093,9 @@ */ EXPORT_C TInt CBaseExtProxyDrive::ControlIO(const RMessagePtr2& aMessage,TInt aCommand,TAny* aParam1,TAny* aParam2) { - TRACE1(UTF::EBorder, UTraceModuleProxyDrive::ECBaseExtProxyDriveControlIO, EF32TraceUidProxyDrive, this); - + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECBASEEXTPROXYDRIVECONTROLIO, "this %x", this); TInt r = iProxy->ControlIO(aMessage,aCommand,aParam1,aParam2); - - TRACERET1(UTF::EBorder, UTraceModuleProxyDrive::ECBaseExtProxyDriveControlIORet, EF32TraceUidProxyDrive, r); + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECBASEEXTPROXYDRIVECONTROLIORET, "r %d", r); return r; } @@ -1216,9 +1111,8 @@ */ EXPORT_C TInt CBaseExtProxyDrive::GetInterface(TInt aInterfaceId,TAny*& aInterface,TAny* aInput) { - TRACE3(UTF::EBorder, UTraceModuleProxyDrive::ECBaseExtProxyDriveGetInterface, EF32TraceUidProxyDrive, - this, aInterfaceId, aInput); - + OstTraceExt3(TRACE_DRIVE, PROXYDRIVE_ECBASEEXTPROXYDRIVEGETINTERFACE, "this %x aInterfaceId %d aInput %x", (TUint) this, (TUint) aInterfaceId, (TUint) aInput); + TInt r; if (aInterfaceId==EGetLocalDrive) { @@ -1226,8 +1120,7 @@ } else r = CProxyDrive::GetInterface(aInterfaceId,aInterface,aInput); - - TRACERET2(UTF::EBorder, UTraceModuleProxyDrive::ECBaseExtProxyDriveGetInterfaceRet, EF32TraceUidProxyDrive, r, aInterface); + OstTraceExt2(TRACE_DRIVE, PROXYDRIVE_ECBASEEXTPROXYDRIVEGETINTERFACERET, "r %d aInterface %x", (TUint) r, (TUint) aInterface); return r; } @@ -1241,11 +1134,9 @@ */ EXPORT_C TInt CBaseExtProxyDrive::GetLastErrorInfo(TDes8 &aErrorInfo) { - TRACE1(UTF::EBorder, UTraceModuleProxyDrive::ECBaseExtProxyDriveGetLastErrorInfo, EF32TraceUidProxyDrive, this); - + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECBASEEXTPROXYDRIVEGETLASTERRORINFO, "this %x", this); TInt r = iProxy->GetLastErrorInfo(aErrorInfo); - - TRACERET1(UTF::EBorder, UTraceModuleProxyDrive::ECBaseExtProxyDriveGetLastErrorInfoRet, EF32TraceUidProxyDrive, r); + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECBASEEXTPROXYDRIVEGETLASTERRORINFORET, "r %d", r); return r; } @@ -1261,12 +1152,9 @@ */ EXPORT_C TInt CBaseExtProxyDrive::DeleteNotify(TInt64 aPos, TInt aLength) { - TRACE4(UTF::EBorder, UTraceModuleProxyDrive::ECBaseExtProxyDriveDeleteNotify, EF32TraceUidProxyDrive, - this, I64LOW(aPos), I64HIGH(aPos), aLength); - + OstTraceExt4(TRACE_DRIVE, PROXYDRIVE_ECBASEEXTPROXYDRIVEDELETENOTIFY, "this %x aPos %x:%x aLength %d", (TUint) this, (TUint) I64HIGH(aPos), (TUint) I64LOW(aPos), (TUint) aLength); TInt r = iProxy->DeleteNotify(aPos, aLength); - - TRACERET1(UTF::EBorder, UTraceModuleProxyDrive::ECBaseExtProxyDriveDeleteNotifyRet, EF32TraceUidProxyDrive, r); + OstTrace1(TRACE_DRIVE, PROXYDRIVE_ECBASEEXTPROXYDRIVEDELETENOTIFYRET, "r %d", r); return r; } @@ -1339,7 +1227,7 @@ return(aConcreteDrive); TBool extSupported = drive.FSys().IsExtensionSupported(); - TRACE1(UTF::EBorder, UTraceModuleFileSys::ECFileSystemIsExtensionSupported, EF32TraceUidProxyDrive, extSupported); + OstTraceExt2(TRACE_DRIVE, FSYS_ECFILESYSTEMISEXTENSIONSUPPORTED2, "%x r %d", (TUint) &drive.FSys(), (TUint) extSupported); if(!extSupported) { delete(aConcreteDrive); diff -r 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/fileserver/sfile/sf_file.cpp --- a/userlibandfileserver/fileserver/sfile/sf_file.cpp Thu May 27 14:17:14 2010 +0300 +++ b/userlibandfileserver/fileserver/sfile/sf_file.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -16,7 +16,9 @@ #include "sf_std.h" #include "sf_file_cache.h" #include "cl_std.h" - +#ifdef OST_TRACE_COMPILER_IN_USE +#include "sf_fileTraces.h" +#endif #if defined(_DEBUG) || defined(_DEBUG_RELEASE) TInt OutputTraceInfo(CFsRequest* aRequest,TCorruptNameRec* aNameRec) @@ -241,7 +243,7 @@ TUint32 mode=aRequest->Message().Int1(); if (anOpen==EFileCreate || anOpen==EFileReplace) { - r = CheckDiskSpace(0, aRequest); + r = CheckDiskSpace(KMinFsCreateObjTreshold, aRequest); if(r != KErrNone) return r; @@ -601,7 +603,7 @@ { __PRINT(_L("TFsFileTemp::DoRequestL(CFsRequest* aRequest)")); - TInt r = CheckDiskSpace(0, aRequest); + TInt r = CheckDiskSpace(KMinFsCreateObjTreshold, aRequest); if(r != KErrNone) return r; @@ -1494,11 +1496,9 @@ r=share->CheckMount(); if (r!=KErrNone) return(r); - - TRACE1(UTF::EBorder, UTraceModuleFileSys::ECFileCBFlushDataL, EF32TraceUidFileSys, &share->File()); + OstTrace1(TRACE_FILESYSTEM, FSYS_ECFILECBFLUSHDATAL1, "this %x", &share->File()); TRAP(r,share->File().FlushDataL()); - TRACERET1(UTF::EBorder, UTraceModuleFileSys::ECFileCBFlushDataLRet, EF32TraceUidFileSys, r); - + OstTrace1(TRACE_FILESYSTEM, FSYS_ECFILECBFLUSHDATAL1RET, "r %d", r); return(r); } @@ -1652,7 +1652,7 @@ { __PRINT(_L("TFsFileSetAtt::DoRequestL(CSessionFs* aSession)")); - TInt r = CheckDiskSpace(0, aRequest); + TInt r = CheckDiskSpace(KMinFsCreateObjTreshold, aRequest); if(r != KErrNone) return r; @@ -1667,11 +1667,9 @@ TUint setAttMask=(TUint)(aRequest->Message().Int0()); TUint clearAttMask=(TUint)aRequest->Message().Int1(); ValidateAtts(share->File().Att(),setAttMask,clearAttMask); - - TRACE5(UTF::EBorder, UTraceModuleFileSys::ECFileCBSetEntryL, EF32TraceUidFileSys, &share->File(), 0, 0, setAttMask,clearAttMask); + OstTraceExt3(TRACE_FILESYSTEM, FSYS_ECFILECBSETENTRYL1, "this %x aSetAttMask %x aClearAttMask %x", (TUint) &share->File(), (TUint) setAttMask, (TUint) clearAttMask); TRAP(r,share->File().SetEntryL(TTime(0),setAttMask,clearAttMask)) - TRACERET1(UTF::EBorder, UTraceModuleFileSys::ECFileCBSetEntryLRet, EF32TraceUidFileSys, r); - + OstTrace1(TRACE_FILESYSTEM, FSYS_ECFILECBSETENTRYL1RET, "r %d", r); return(r); } @@ -1717,7 +1715,7 @@ { __PRINT(_L("TFsFileSetModified::DoRequestL(CFsRequest* aRequest)")); - TInt r = CheckDiskSpace(0, aRequest); + TInt r = CheckDiskSpace(KMinFsCreateObjTreshold, aRequest); if(r != KErrNone) return r; @@ -1733,11 +1731,9 @@ TTime time; TPtr8 t((TUint8*)&time,sizeof(TTime)); aRequest->ReadL(KMsgPtr0,t); - - TRACE5(UTF::EBorder, UTraceModuleFileSys::ECFileCBSetEntryL, EF32TraceUidFileSys, &share->File(), 0, 0, KEntryAttModified,0); + OstTraceExt3(TRACE_FILESYSTEM, FSYS_ECFILECBSETENTRYL2, "this %x aSetAttMask %x aClearAttMask %x", (TUint) &share->File(), (TUint) KEntryAttModified, (TUint) 0); TRAP(r,share->File().SetEntryL(time,KEntryAttModified,0)) - TRACERET1(UTF::EBorder, UTraceModuleFileSys::ECFileCBSetEntryLRet, EF32TraceUidFileSys, r); - + OstTrace1(TRACE_FILESYSTEM, FSYS_ECFILECBSETENTRYL2RET, "r %d", r); return(r); } @@ -1757,7 +1753,7 @@ { __PRINT(_L("TFsFileSet::DoRequestL(CFsRequest* aRequest)")); - TInt r = CheckDiskSpace(0, aRequest); + TInt r = CheckDiskSpace(KMinFsCreateObjTreshold, aRequest); if(r != KErrNone) return r; @@ -1782,10 +1778,9 @@ TUint clearAttMask=(TUint)aRequest->Message().Int2(); ValidateAtts(share->File().Att(),setAttMask,clearAttMask);// Validate attributes - TRACE5(UTF::EBorder, UTraceModuleFileSys::ECFileCBSetEntryL, EF32TraceUidFileSys, &share->File(), 0, 0, setAttMask,clearAttMask); + OstTraceExt3(TRACE_FILESYSTEM, FSYS_ECFILECBSETENTRYL3, "this %x aSetAttMask %x aClearAttMask %x", (TUint) &share->File(), (TUint) setAttMask, (TUint) clearAttMask); TRAP(r,share->File().SetEntryL(time,setAttMask,clearAttMask)) - TRACERET1(UTF::EBorder, UTraceModuleFileSys::ECFileCBSetEntryLRet, EF32TraceUidFileSys, r); - + OstTrace1(TRACE_FILESYSTEM, FSYS_ECFILECBSETENTRYL3RET, "r %d", r); return(r); } @@ -1869,7 +1864,7 @@ { __PRINT(_L("TFsFileRename::DoRequestL(CFsRequest* aRequest)")); - TInt r = CheckDiskSpace(0, aRequest); + TInt r = CheckDiskSpace(KMinFsCreateObjTreshold, aRequest); if(r != KErrNone) return r; @@ -1887,12 +1882,10 @@ TPtrC filePath = aRequest->Dest().FullName().Mid(2); CFileCB& file = share->File(); - - TRACEMULT2(UTF::EBorder, UTraceModuleFileSys::ECFileCBRenameL, EF32TraceUidFileSys, - (TUint) &file, filePath); + OstTrace1(TRACE_FILESYSTEM, FSYS_ECFILECBRENAMEL, "this %x", (TUint) &file); + OstTraceData(TRACE_FILESYSTEM, FSYS_ECFILECBRENAMELYS_EFILENAME, "FileName %S", filePath.Ptr(), filePath.Length()<<1); TRAP(r,file.RenameL(filePath)); - TRACERETMULT1(UTF::EBorder, UTraceModuleFileSys::ECFileCBRenameLRet, EF32TraceUidFileSys, r); - + OstTrace1(TRACE_FILESYSTEM, FSYS_ECFILECBRENAMELRET, "r %d", r); // Re-write the file's folded name & re-calculate the hash if (r == KErrNone) { @@ -2337,10 +2330,11 @@ FileCache()->Close(); if (iBody && iBody->iDeleteOnClose) { - TRACEMULT2(UTF::EBorder, UTraceModuleFileSys::ECMountCBDeleteL, EF32TraceUidFileSys, DriveNumber(), FileName()); + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBDELETEL2, "drive %d", DriveNumber()); + OstTraceData(TRACE_FILESYSTEM, FSYS_ECMOUNTCBDELETEL2_EFILENAME, "FileName %S", FileName().Ptr(), FileName().Length()<<1); TInt r; TRAP(r, iMount->DeleteL(FileName())); - TRACERET1(UTF::EBorder, UTraceModuleFileSys::ECMountCBDeleteLRet, EF32TraceUidFileSys, r); + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBDELETEL2RET, "r %d", r); } if(iMount) @@ -2958,32 +2952,25 @@ void CFileCB::ReadL(TInt64 aPos,TInt& aLength,TDes8* aDes,const RMessagePtr2& aMessage, TInt aOffset) { TRACETHREADID(aMessage); - TRACE7(UTF::EBorder, UTraceModuleFileSys::ECFileCBReadL, EF32TraceUidFileSys, - this, I64LOW(aPos), I64HIGH(aPos), aLength, aDes, threadId, aOffset); - + OstTraceExt5(TRACE_FILESYSTEM, FSYS_ECFILECBREADLA, "this %x clientThreadId %x aPos %x:%x aLength %d", (TUint) this, (TUint) threadId, (TUint) I64HIGH(aPos), (TUint) I64LOW(aPos), (TUint) aLength); iBody->iExtendedFileInterface->ReadL(aPos,aLength,aDes,aMessage,aOffset); - TRACE1(UTF::EBorder, UTraceModuleFileSys::ECFileCBReadLRet, EF32TraceUidFileSys, KErrNone); + OstTrace1(TRACE_FILESYSTEM, FSYS_ECFILECBREADLRET, "r %d", KErrNone); } void CFileCB::WriteL(TInt64 aPos,TInt& aLength,const TDesC8* aDes,const RMessagePtr2& aMessage, TInt aOffset) { TRACETHREADID(aMessage); - TRACE7(UTF::EBorder, UTraceModuleFileSys::ECFileCBWriteL, EF32TraceUidFileSys, - this, I64LOW(aPos), I64HIGH(aPos), aLength, aDes, threadId, aOffset); - + OstTraceExt5(TRACE_FILESYSTEM, FSYS_ECFILECBWRITEL, "this %x clientThreadId %x aPos %x:%x aLength %d", (TUint) this, (TUint) threadId, (TUint) I64HIGH(aPos), (TUint) I64LOW(aPos), (TUint) aLength); iBody->iExtendedFileInterface->WriteL(aPos,aLength,aDes,aMessage,aOffset); - - TRACE1(UTF::EBorder, UTraceModuleFileSys::ECFileCBWriteLRet, EF32TraceUidFileSys, KErrNone); + OstTrace1(TRACE_FILESYSTEM, FSYS_ECFILECBWRITELRET, "r %d", KErrNone); } void CFileCB::SetSizeL(TInt64 aSize) { - TRACE3(UTF::EBorder, UTraceModuleFileSys::ECFileCBSetSizeL, EF32TraceUidFileSys, this, I64LOW(aSize), I64HIGH(aSize)); - + OstTraceExt3(TRACE_FILESYSTEM, FSYS_ECFILECBSETSIZEL, "this %x aSize %x:%x", (TUint) this, (TUint) I64HIGH(aSize), (TUint) I64LOW(aSize)); iBody->iExtendedFileInterface->SetSizeL(aSize); - - TRACE1(UTF::EBorder, UTraceModuleFileSys::ECFileCBSetSizeLRet, EF32TraceUidFileSys, KErrNone); + OstTrace1(TRACE_FILESYSTEM, FSYS_ECFILECBSETSIZELRET, "r %d", KErrNone); } TBool CFileCB::ExtendedFileInterfaceSupported() @@ -3029,12 +3016,9 @@ TInt CFileCB::GetInterfaceTraced(TInt aInterfaceId, TAny*& aInterface, TAny* aInput) { - TRACE2(UTF::EBorder, UTraceModuleFileSys::ECFileCBGetInterface, EF32TraceUidFileSys, aInterfaceId, aInput); - + OstTraceExt2(TRACE_FILESYSTEM, FSYS_ECFILECBGETINTERFACE, "aInterfaceId %d aInput %x", (TUint) aInterfaceId, (TUint) aInput); TInt r = GetInterface(aInterfaceId, aInterface, aInput); - - TRACERET2(UTF::EBorder, UTraceModuleFileSys::ECFileCBGetInterfaceRet, EF32TraceUidFileSys, r, aInterface); - + OstTraceExt2(TRACE_FILESYSTEM, FSYS_ECFILECBGETINTERFACERET, "r %d aInterface %x", (TUint) r, (TUint) aInterface); return r; } @@ -3115,11 +3099,9 @@ r=share->CheckMount(); if (r!=KErrNone) return(r); - - TRACE1(UTF::EBorder, UTraceModuleFileSys::ECFileCBFlushDataL, EF32TraceUidFileSys, &share->File()); + OstTrace1(TRACE_FILESYSTEM, FSYS_ECFILECBFLUSHDATAL2, "this %x", &share->File()); TRAP(r,share->File().FlushDataL()); - TRACERET1(UTF::EBorder, UTraceModuleFileSys::ECFileCBFlushDataLRet, EF32TraceUidFileSys, r); - + OstTrace1(TRACE_FILESYSTEM, FSYS_ECFILECBFLUSHDATAL2RET, "r %d", r); if(r!=KErrNone) return(r); } @@ -3698,4 +3680,3 @@ - diff -r 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/fileserver/sfile/sf_file_cache.cpp --- a/userlibandfileserver/fileserver/sfile/sf_file_cache.cpp Thu May 27 14:17:14 2010 +0300 +++ b/userlibandfileserver/fileserver/sfile/sf_file_cache.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -32,6 +32,10 @@ #include "sf_cache_client.h" #include "sf_file_cache_defs.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "sf_file_cacheTraces.h" +#endif + // disables flushing of stale cachelines before each write #define LAZY_WRITE @@ -1996,11 +2000,11 @@ // However if the write error is to the bootsector remounting will always fail because the boot // sector will have changed and hence the disk is useless. // - TRACE1(UTF::EBorder, UTraceModuleFileSys::ECMountCBReMount, EF32TraceUidFileSys, DriveNumber()); + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBREMOUNT2, "drive %d", DriveNumber()); TInt remountSuccess = iDrive->ReMount(*iMount); - TRACE1(UTF::EBorder, UTraceModuleFileSys::ECMountCBReMountRet, EF32TraceUidFileSys, remountSuccess); + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBREMOUNT2RET, "success %d", remountSuccess); if (!remountSuccess) continue; diff -r 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/fileserver/sfile/sf_fmt.cpp --- a/userlibandfileserver/fileserver/sfile/sf_fmt.cpp Thu May 27 14:17:14 2010 +0300 +++ b/userlibandfileserver/fileserver/sfile/sf_fmt.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -17,6 +17,10 @@ #include "sf_std.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "sf_fmtTraces.h" +#endif + LOCAL_C CFormatCB* GetFormatFromHandle(TInt aHandle,CSessionFs* aSession) // // Get the format control block from aHandle @@ -466,9 +470,11 @@ TPtr8 pStep((TUint8*)&format->CurrentStep(),sizeof(TInt)); aRequest->ReadL(KMsgPtr0,pStep); - TRACE1(UTF::EBorder, UTraceModuleFileSys::ECFormatCBDoFormatStepL, EF32TraceUidFileSys, format); + OstTrace1(TRACE_FILESYSTEM, FSYS_ECFORMATCBDOFORMATSTEPL, "this %x", format); + TRAP(r,format->DoFormatStepL()); - TRACERET2(UTF::EBorder, UTraceModuleFileSys::ECFormatCBDoFormatStepLRet, EF32TraceUidFileSys, r, format->CurrentStep()); + + OstTraceExt2(TRACE_FILESYSTEM, FSYS_ECFORMATCBDOFORMATSTEPLRET, "r %d iCurrentStep %d", r, (TUint) format->CurrentStep()); if (r==KErrNone) aRequest->WriteL(KMsgPtr0,pStep); diff -r 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/fileserver/sfile/sf_main.cpp --- a/userlibandfileserver/fileserver/sfile/sf_main.cpp Thu May 27 14:17:14 2010 +0300 +++ b/userlibandfileserver/fileserver/sfile/sf_main.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -26,9 +26,6 @@ #endif #include "d32btrace.h" -// define this macro to enable tracing very early on in the boot sequence -//#define __ENABLE_TRACE__ - #ifdef __EPOC32__ _LIT(KStartupExeSysBinName,"Z:\\Sys\\Bin\\ESTART.EXE"); #else @@ -286,35 +283,6 @@ User::SetCritical(User::ESystemCritical); TInt r; -#ifdef SYMBIAN_FTRACE_ENABLE - r = User::LoadLogicalDevice(_L("D_FTRACE")); - __PRINT1(_L("User::LoadLogicalDevice(D_FTRACE) returns %d"),r); - __ASSERT_ALWAYS(r==KErrNone || r==KErrAlreadyExists,Fault(ETraceLddLoadFailure)); - - r = TheFtrace.Open(EOwnerProcess); - __ASSERT_ALWAYS(r==KErrNone || r==KErrAlreadyExists,Fault(ETraceLddLoadFailure)); -#endif - -#if defined (__ENABLE_TRACE__) - { - RBTrace trace; - - trace.Open(); - -// trace.SetMode(RBTrace::EEnable + RBTrace::EFreeRunning); - trace.SetFilter(BTrace::EThreadIdentification,1); - - trace.SetFilter(UTF::EBorder,1); - trace.SetFilter(UTF::EError,1); - - trace.SetFilter2(EF32TraceUidEfsrv,1); -// trace.SetFilter2(EF32TraceUidFileSys,1); -// trace.SetFilter2(EF32TraceUidProxyDrive,1); - - trace.Close(); - } - -#endif // // Load the file system's device driver diff -r 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/fileserver/sfile/sf_mnt.cpp --- a/userlibandfileserver/fileserver/sfile/sf_mnt.cpp Thu May 27 14:17:14 2010 +0300 +++ b/userlibandfileserver/fileserver/sfile/sf_mnt.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -15,6 +15,10 @@ #include "sf_std.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "sf_mntTraces.h" +#endif + @@ -369,12 +373,11 @@ TInt CMountCB::GetInterfaceTraced(TInt aInterfaceId, TAny*& aInterface, TAny* aInput) { - TRACE3(UTF::EBorder, UTraceModuleFileSys::ECMountCBGetInterface, EF32TraceUidFileSys, - DriveNumber(), aInterfaceId, aInput); + OstTraceExt3(TRACE_FILESYSTEM, FSYS_ECMOUNTCBGETINTERFACE, "drive %d aInterfaceId %d aInput %x", (TUint) DriveNumber(), (TUint) aInterfaceId, (TUint) aInput); TInt r = GetInterface(aInterfaceId, aInterface, aInput); - TRACERET2(UTF::EBorder, UTraceModuleFileSys::ECMountCBGetInterfaceRet, EF32TraceUidFileSys, r, aInterface); + OstTraceExt2(TRACE_FILESYSTEM, FSYS_ECMOUNTCBGETINTERFACERET, "r %d aInterface %x", (TUint) r, (TUint) aInterface); return r; } diff -r 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/fileserver/sfile/sf_nbs.cpp --- a/userlibandfileserver/fileserver/sfile/sf_nbs.cpp Thu May 27 14:17:14 2010 +0300 +++ b/userlibandfileserver/fileserver/sfile/sf_nbs.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -22,7 +22,7 @@ { __PRINT(_L("TFsMkDir::DoRequestL(CFsRequest* aRequest)")); - TInt r = CheckDiskSpace(0, aRequest); + TInt r = CheckDiskSpace(KMinFsCreateObjTreshold, aRequest); if(r != KErrNone) return r; @@ -143,7 +143,7 @@ // { __PRINT(_L("TFsRename::DoRequestL(CFsRequest* aRequest)")); - TInt r = CheckDiskSpace(0, aRequest); + TInt r = CheckDiskSpace(KMinFsCreateObjTreshold, aRequest); if(r != KErrNone) return r; @@ -182,7 +182,7 @@ { __PRINT(_L("TFsReplace::DoRequestL(CFsRequest* aRequest)")); - TInt r = CheckDiskSpace(0, aRequest); + TInt r = CheckDiskSpace(KMinFsCreateObjTreshold, aRequest); if(r != KErrNone) return r; @@ -261,7 +261,7 @@ { __PRINT(_L("TFsSetEntry::DoRequestL(CFsRequest* aRequest)")); - TInt r = CheckDiskSpace(0, aRequest); + TInt r = CheckDiskSpace(KMinFsCreateObjTreshold, aRequest); if(r != KErrNone) return r; @@ -892,7 +892,7 @@ // create the private path unless it already exists // { - TInt ret = CheckDiskSpace(0, aRequest); + TInt ret = CheckDiskSpace(KMinFsCreateObjTreshold, aRequest); if(ret != KErrNone) return ret; diff -r 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/fileserver/sfile/sf_plugin_shim.cpp --- a/userlibandfileserver/fileserver/sfile/sf_plugin_shim.cpp Thu May 27 14:17:14 2010 +0300 +++ b/userlibandfileserver/fileserver/sfile/sf_plugin_shim.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -703,11 +703,6 @@ TPckgBuf reply; args.Set(3,&reply); - // copy session pointer - RLocalMessage message = iMessage; - message.SetFunction(aFunction); - message.SetArgs(args); - TInt err = Dispatch(aFunction, args); if (err == KErrNone) *aReply = reply(); diff -r 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/fileserver/sfile/sf_raw.cpp --- a/userlibandfileserver/fileserver/sfile/sf_raw.cpp Thu May 27 14:17:14 2010 +0300 +++ b/userlibandfileserver/fileserver/sfile/sf_raw.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -18,6 +18,10 @@ #include "sf_std.h" #include "sf_file_cache.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "sf_rawTraces.h" +#endif + LOCAL_C CRawDiskCB* GetRawDiskFromHandle(TInt aHandle, CSessionFs* aSession) // // Get the rawdisk control block from aHandle @@ -112,10 +116,11 @@ const TAny* pDes=aRequest->Message().Ptr0(); TRACETHREADID(aRequest->Message()); - TRACE7(UTF::EBorder, UTraceModuleFileSys::ECMountCBRawReadL, EF32TraceUidFileSys, - aRequest->DriveNumber(), I64LOW(pos), I64HIGH(pos), length, pDes, 0, I64LOW(threadId)); + OstTraceExt5(TRACE_FILESYSTEM, FSYS_ECMOUNTCBRAWREADL, "drive %d clientThreadId %x aPos %x:%x aLength %d", (TUint) aRequest->DriveNumber(), (TUint) threadId, (TUint) I64HIGH(pos), (TUint) I64LOW(pos), (TUint) length); + TRAP(r,rawDisk->Mount().RawReadL(pos,length,pDes,0,aRequest->Message())); - TRACERET1(UTF::EBorder, UTraceModuleFileSys::ECMountCBRawReadLRet, EF32TraceUidFileSys, r); + + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBRAWREADLRET, "r %d", r); return(r); } @@ -159,10 +164,11 @@ const TAny* pDes=aRequest->Message().Ptr0(); TRACETHREADID(aRequest->Message()); - TRACE7(UTF::EBorder, UTraceModuleFileSys::ECMountCBRawWriteL, EF32TraceUidFileSys, - aRequest->DriveNumber(), I64LOW(pos), I64HIGH(pos), length, pDes, 0, I64LOW(threadId)); + OstTraceExt5(TRACE_FILESYSTEM, FSYS_ECMOUNTCBRAWWRITEL, "drive %d clientThreadId %x aPos %x:%x aLength %d", (TUint) aRequest->DriveNumber(), (TUint) threadId, (TUint) I64HIGH(pos), (TUint) I64LOW(pos), (TUint) length); + TRAP(r,rawDisk->Mount().RawWriteL(pos,length,pDes,0,aRequest->Message())); - TRACERET1(UTF::EBorder, UTraceModuleFileSys::ECMountCBRawWriteLRet, EF32TraceUidFileSys, r); + + OstTrace1(TRACE_FILESYSTEM, FSYS_ECMOUNTCBRAWWRITELRET, "r %d", r); rawDisk->SetChanged(); return(r); diff -r 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/fileserver/sfile/sf_std.h --- a/userlibandfileserver/fileserver/sfile/sf_std.h Thu May 27 14:17:14 2010 +0300 +++ b/userlibandfileserver/fileserver/sfile/sf_std.h Fri Jun 11 15:02:23 2010 +0300 @@ -34,7 +34,6 @@ #include "sf_func.h" #include #include "f32trace.h" -#include #define __PRINT1TEMP_ALWAYS(t,a) {{TBuftemp(a);RDebug::Print(t,&temp);}} #define __PRINT2TEMP_ALWAYS(t,a,b) {{TBuftemp(b);RDebug::Print(t,a,&temp);}} @@ -144,6 +143,13 @@ //-- absolute maximum file size that file server supports const TUint64 KMaxSupportedFileSize = KMaxTUint64; +//-- this is a speculative value of a min. amount of free space on the volume necessary to create a file, directory etc. +//-- it is used mostly in "reserve drive space" functionality, which is, actually, fundamentally flawed. +//-- the problem is that the file server can't know exactly how much space is required to create some fs object on the volume, +//-- so, it has to guess. This is a default "sector size" value; the file system can round it up internally to its cluster size if any. +const TInt KMinFsCreateObjTreshold = KDefaultVolumeBlockSize; + + //__DATA_CAGING__ const TUint SHA1_LBLOCK=16; const TUint SHA1_HASH=20; @@ -1705,7 +1711,6 @@ extern HBufC* TheDriveNames[]; extern TDrive TheDrives[KMaxDrives]; extern TFileName TheDefaultPath; -extern RFTrace TheFtrace; extern SCapabilitySet AllCapabilities; extern SCapabilitySet DisabledCapabilities; @@ -1839,10 +1844,6 @@ typedef TPckgBuf TMediaPswdReplyNotifyInfoV1Buf; -#if defined(__WINS__) - TInt MapWindowsFileName(TDes& aBuffer,const TDesC& aFileName); -#endif - enum TDllFindMethod {EFindInPath, EFindInSystemLibs, EFindInSystemBin, EFindExhausted}; //--------------------------------------------------------------------------------------------------------------------- diff -r 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/fileserver/sfile/sf_svr.cpp --- a/userlibandfileserver/fileserver/sfile/sf_svr.cpp Thu May 27 14:17:14 2010 +0300 +++ b/userlibandfileserver/fileserver/sfile/sf_svr.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -590,7 +590,7 @@ // Set the volume name. // { - TInt r = CheckDiskSpace(0, aRequest); + TInt r = CheckDiskSpace(KMinFsCreateObjTreshold, aRequest); if(r != KErrNone) return r; diff -r 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/fileserver/sfile/sf_sys.cpp --- a/userlibandfileserver/fileserver/sfile/sf_sys.cpp Thu May 27 14:17:14 2010 +0300 +++ b/userlibandfileserver/fileserver/sfile/sf_sys.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -18,9 +18,13 @@ #include "sf_std.h" #include #include "sf_file_cache.h" -#include +#include #include +#ifdef OST_TRACE_COMPILER_IN_USE +#include "sf_sysTraces.h" +#endif + typedef CFileSystem*(*TFileSystemNew)(); extern CProxyDriveFactory* GetExtension(const TDesC& aName); @@ -39,8 +43,8 @@ */ EXPORT_C CFileSystem::CFileSystem() { - TRACE0(UTF::EBorder, UTraceModuleFileSys::ECFileSystemConstructor, EF32TraceUidFileSys); - TRACE0(UTF::EBorder, UTraceModuleFileSys::ECFileSystemConstructorReturn, EF32TraceUidFileSys); + OstTrace0(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMCONSTRUCTOR, ""); + OstTrace0(TRACE_FILESYSTEM,FILESYS_ECFILESYSTEMCONSTRUCTORRETURN, ""); } /** @@ -48,8 +52,8 @@ */ EXPORT_C CFileSystem::~CFileSystem() { - TRACE0(UTF::EBorder, UTraceModuleFileSys::ECFileSystemDestructor, EF32TraceUidFileSys); - TRACE0(UTF::EBorder, UTraceModuleFileSys::ECFileSystemDestructorReturn, EF32TraceUidFileSys); + OstTrace0(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMDESTRUCTOR, ""); + OstTrace0(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMDESTRUCTORRETURN, ""); } /** @@ -266,22 +270,25 @@ // { - TRACE1(UTF::EBorder, UTraceModuleFileSys::ECFileSystemInstall, EF32TraceUidFileSys, aSys); + OstTrace1(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMINSTALL, "this %x", aSys); + TInt r=aSys->Install(); - TRACERETMULT2(UTF::EBorder, UTraceModuleFileSys::ECFileSystemInstallRet, EF32TraceUidFileSys, r, aSys->Name()); + + OstTraceData(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMINSTALLYS_EFILESYSTEMNAME, "FileSystemName %S", aSys->Name().Ptr(), aSys->Name().Length()<<1); + OstTrace1(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMINSTALLRET, "r %d", r); __PRINT1TEMP(_L("InstallFileSystem %S"),aSys->Name()); if (r==KErrNone) {TRAP(r,FileSystems->AddL(aSys,ETrue))} if (r!=KErrNone) { - TRACE1(UTF::EBorder, UTraceModuleFileSys::ECFileSystemRemove, EF32TraceUidFileSys, aSys); -#ifdef SYMBIAN_FTRACE_ENABLE + OstTrace1(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMREMOVE1, "this %x", aSys); +#ifdef OST_TRACE_COMPILER_IN_USE TInt r = #endif aSys->Remove(); - TRACERET1(UTF::EBorder, UTraceModuleFileSys::ECFileSystemRemoveRet, EF32TraceUidFileSys, r); + OstTrace1(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMREMOVE1RET, "r %d", r); } if (r==KErrNone) aSys->SetLibrary(aLib); @@ -320,9 +327,9 @@ if (!f) return KErrCorrupt; - TRACE1(UTF::EBorder, UTraceModuleFileSys::ECFileSystemNew, EF32TraceUidFileSys, lib.Handle()); + OstTrace1(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMNEW, "handle %x", lib.Handle()); CFileSystem* pS=(*f)(); - TRACE1(UTF::EBorder, UTraceModuleFileSys::ECFileSystemNewRet, EF32TraceUidFileSys, pS); + OstTrace1(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMNEWRET, "fileSystem %x", pS); if (!pS) return KErrNoMemory; TInt r=InstallFileSystem(pS,lib); @@ -374,9 +381,12 @@ return KErrInUse; } - TRACE1(UTF::EBorder, UTraceModuleFileSys::ECFileSystemRemove, EF32TraceUidFileSys, pF); + OstTrace1(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMREMOVE2, "this %x", pF); + TInt r=pF->Remove(); - TRACERET1(UTF::EBorder, UTraceModuleFileSys::ECFileSystemRemoveRet, EF32TraceUidFileSys, r); + + OstTrace1(TRACE_FILESYSTEM, FSYS_ECFILESYSTEMREMOVE2RET, "r %d", r); + if (r!=KErrNone) return(r); diff -r 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/fileserver/sfile/sf_utl.cpp --- a/userlibandfileserver/fileserver/sfile/sf_utl.cpp Thu May 27 14:17:14 2010 +0300 +++ b/userlibandfileserver/fileserver/sfile/sf_utl.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -1067,6 +1067,8 @@ if(KReservedSpace == 0 || KDriveNumber == EDriveZ) return KErrNone; + ASSERT(aThreshold); + //-- if the drive has a reserved space, take it into account CSessionFs* session=aRequest->Session(); @@ -1074,8 +1076,7 @@ aThreshold += KReservedSpace; //-- ask the corresponding file system if there is aThreshold bytes available. - //-- for some reason it's required to be strictly > than aThreshold - return aRequest->Drive()->RequestFreeSpaceOnMount(aThreshold+1); + return aRequest->Drive()->RequestFreeSpaceOnMount(aThreshold); } diff -r 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/fileserver/sfile/traces/OstTraceDefinitions.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/userlibandfileserver/fileserver/sfile/traces/OstTraceDefinitions.h Fri Jun 11 15:02:23 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 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/fileserver/sfile/traces/fixed_id.definitions --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/userlibandfileserver/fileserver/sfile/traces/fixed_id.definitions Fri Jun 11 15:02:23 2010 +0300 @@ -0,0 +1,740 @@ +#Fixed group and trace id definitions. If this file is removed, the identifiers are rebuilt. +[GROUP]TRACE_BORDER=0x42 +[GROUP]TRACE_DRIVE=0x41 +[GROUP]TRACE_FILESYSTEM=0x40 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EDIRCLOSE=0x124 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EDIRCLOSERETURN=0x125 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EDIROPEN1=0x11e +[TRACE]TRACE_BORDER[0x42]_EFSRV_EDIROPEN1RETURN=0x120 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EDIROPEN1_EDIRNAME=0x11f +[TRACE]TRACE_BORDER[0x42]_EFSRV_EDIROPEN2=0x121 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EDIROPEN2RETURN=0x123 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EDIROPEN2_EDIRNAME=0x122 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EDIRREAD1=0x126 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EDIRREAD1RETURN=0x127 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EDIRREAD2=0x128 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EDIRREAD2RETURN=0x129 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EDIRREAD3=0x12a +[TRACE]TRACE_BORDER[0x42]_EFSRV_EDIRREAD3RETURN=0x12b +[TRACE]TRACE_BORDER[0x42]_EFSRV_EDIRREAD4=0x12c +[TRACE]TRACE_BORDER[0x42]_EFSRV_EDIRREAD4RETURN=0x12d +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64ADOPTFROMCLIENT=0x1b1 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64ADOPTFROMCLIENTRETURN1=0x1b2 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64ADOPTFROMCLIENTRETURN2=0x1b3 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64ADOPTFROMCLIENTRETURN3=0x1b4 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64ADOPTFROMCREATOR=0x1b8 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64ADOPTFROMCREATORRETURN1=0x1b9 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64ADOPTFROMCREATORRETURN2=0x1ba +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64ADOPTFROMCREATORRETURN3=0x1bb +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64ADOPTFROMSERVER=0x1b5 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64ADOPTFROMSERVERRETURN1=0x1b6 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64ADOPTFROMSERVERRETURN2=0x1b7 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64CREATE=0x1a7 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64CREATERETURN=0x1a9 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64CREATE_EFILENAME=0x1a8 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64LOCK=0x1d2 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64LOCKRETURN=0x1d3 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64OPEN=0x1a4 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64OPENRETURN=0x1a6 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64OPEN_EFILENAME=0x1a5 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64READ10=0x1be +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64READ10RETURN=0x1bf +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64READ11=0x1c2 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64READ11RETURN=0x1c3 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64READ12=0x1d8 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64READ12RETURN=0x1d9 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64READ13=0x1dc +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64READ13RETURN=0x1dd +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64READ14=0x1d6 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64READ14RETURN=0x1d7 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64READ15=0x1c0 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64READ15RETURN=0x1c1 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64READ16=0x1da +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64READ16RETURN=0x1db +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64READ8=0x1bc +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64READ8RETURN=0x1bd +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64REPLACE=0x1aa +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64REPLACERETURN=0x1ac +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64REPLACE_EFILENAME=0x1ab +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64SEEK2=0x1cc +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64SEEK2RETURN=0x1cd +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64SETSIZE2=0x1d0 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64SETSIZE2RETURN=0x1d1 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64SIZE2=0x1ce +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64SIZE2RETURN=0x1cf +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64TEMP=0x1ad +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64TEMPRETURN=0x1b0 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64TEMP_EDIRNAME=0x1ae +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64TEMP_EFILENAME=0x1af +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64UNLOCK=0x1d4 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64UNLOCKRETURN=0x1d5 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64WRITE11=0x1ca +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64WRITE11RETURN=0x1cb +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64WRITE12=0x1e4 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64WRITE12RETURN=0x1e5 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64WRITE13=0x1c4 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64WRITE13RETURN=0x1c5 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64WRITE14=0x1de +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64WRITE14RETURN=0x1df +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64WRITE15=0x1c6 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64WRITE15RETURN=0x1c7 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64WRITE16=0x1e0 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64WRITE16RETURN=0x1e1 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64WRITE7=0x1c8 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64WRITE7RETURN=0x1c9 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64WRITE8=0x1e2 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILE64WRITE8RETURN=0x1e3 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEADOPT=0x12e +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEADOPTFROMCLIENT=0x135 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEADOPTFROMCLIENTRETURN1=0x136 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEADOPTFROMCLIENTRETURN2=0x137 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEADOPTFROMCLIENTRETURN3=0x138 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEADOPTFROMCREATOR=0x139 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEADOPTFROMCREATORRETURN1=0x13a +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEADOPTFROMCREATORRETURN2=0x13b +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEADOPTFROMCREATORRETURN3=0x13c +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEADOPTFROMSERVER=0x132 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEADOPTFROMSERVERRETURN1=0x133 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEADOPTFROMSERVERRETURN2=0x134 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEADOPTRETURN1=0x12f +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEADOPTRETURN2=0x130 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEADOPTRETURN3=0x131 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEATT=0x18d +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEATTRETURN=0x18e +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEBLOCKMAPA=0x1a1 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEBLOCKMAPB=0x1a2 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEBLOCKMAPRETURN=0x1a3 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILECHANGEMODE=0x198 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILECHANGEMODERETURN=0x199 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILECLAMP=0x19f +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILECLAMPRETURN=0x1a0 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILECLOSE=0x153 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILECLOSERETURN=0x154 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILECREATE=0x155 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILECREATERETURN=0x157 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILECREATE_EFILENAME=0x156 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEDRIVE=0x19d +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEDRIVERETURN=0x19e +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEDUPLICATE=0x13d +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEDUPLICATERETURN1=0x13e +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEDUPLICATERETURN2=0x13f +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEDUPLICATERETURN3=0x140 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEFLUSH1=0x185 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEFLUSH1RETURN=0x186 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEFLUSH2=0x187 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEFLUSH2RETURN=0x188 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEFULLNAME=0x14d +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEFULLNAMERETURN=0x14f +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEFULLNAME_EFILENAME=0x14e +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEGETNAME=0x14a +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEGETNAMERETURN=0x14c +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEGETNAME_EFILENAME=0x14b +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILELOCK=0x17f +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILELOCKRETURN=0x180 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEMODIFIED=0x191 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEMODIFIEDRETURN=0x192 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEOPEN=0x150 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEOPENRETURN=0x152 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEOPEN_EFILENAME=0x151 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEREAD1=0x15f +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEREAD1RETURN=0x160 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEREAD2=0x161 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEREAD2RETURN=0x162 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEREAD3=0x167 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEREAD3RETURN=0x168 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEREAD4=0x169 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEREAD4RETURN=0x16a +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEREAD5=0x163 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEREAD5RETURN=0x164 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEREAD6=0x165 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEREAD6RETURN=0x166 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEREAD7=0x16b +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEREAD7RETURN=0x16c +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEREAD9=0x16d +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEREAD9RETURN=0x16e +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILERENAME=0x19a +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILERENAMERETURN=0x19c +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILERENAME_ENEWNAME=0x19b +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEREPLACE=0x158 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEREPLACERETURN=0x15a +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEREPLACE_EFILENAME=0x159 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILESEEK1=0x183 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILESEEK1RETURN=0x184 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILESETA=0x195 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILESETATT=0x18f +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILESETATTRETURN=0x190 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILESETB=0x196 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILESETMODIFIED=0x193 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILESETMODIFIEDRETURN=0x194 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILESETRETURN=0x197 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILESETSIZE1=0x18b +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILESETSIZE1RETURN=0x18c +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILESIZE=0x189 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILESIZERETURN=0x18a +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILETEMP=0x15b +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILETEMPRETURN=0x15e +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILETEMP_EDIRNAME=0x15c +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILETEMP_EFILENAME=0x15d +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILETRANSFERTOCLIENT=0x144 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILETRANSFERTOCLIENTRETURN1=0x145 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILETRANSFERTOCLIENTRETURN2=0x146 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILETRANSFERTOCLIENTRETURN3=0x147 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILETRANSFERTOPROCESS=0x148 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILETRANSFERTOPROCESSRETURN=0x149 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILETRANSFERTOSERVER=0x141 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILETRANSFERTOSERVERRETURN1=0x142 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILETRANSFERTOSERVERRETURN2=0x143 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEUNLOCK=0x181 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEUNLOCKRETURN=0x182 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEWRITE1=0x16f +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEWRITE10=0x17d +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEWRITE10RETURN=0x17e +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEWRITE1RETURN=0x170 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEWRITE2=0x171 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEWRITE2RETURN=0x172 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEWRITE3=0x177 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEWRITE3RETURN=0x178 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEWRITE4=0x179 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEWRITE4RETURN=0x17a +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEWRITE5=0x173 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEWRITE5RETURN=0x174 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEWRITE6=0x17b +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEWRITE6RETURN=0x17c +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEWRITE9=0x175 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFILEWRITE9RETURN=0x176 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSADDCOMPOSITEMOUNT=0xfe +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSADDCOMPOSITEMOUNTRETURN=0x100 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSADDCOMPOSITEMOUNT_EFILESYSTEMNAME=0xff +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSADDEXTENSION=0x3b +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSADDEXTENSIONRETURN=0x3d +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSADDEXTENSION_EEXTENSIONNAME=0x3c +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSADDFILESYSTEM=0x17 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSADDFILESYSTEMRETURN=0x19 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSADDFILESYSTEM_EFILENAME=0x18 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSALLOWDISMOUNT=0x10d +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSALLOWDISMOUNTRETURN=0x10e +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSATT=0xa0 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSATTRETURN=0xa2 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSATT_EFILENAME=0xa1 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSCHECKDISK=0xc1 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSCHECKDISKRETURN=0xc3 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSCHECKDISK_EDIRNAME=0xc2 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSCLEARPASSWORD=0xec +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSCLEARPASSWORDRETURN=0xed +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSCLOSE=0x11c +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSCLOSERETURN=0x11d +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSCONNECT=0xc +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSCONNECTRETURN=0xd +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSCREATEPRIVATEPATH=0x13 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSCREATEPRIVATEPATHRETURN=0x14 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSDELETE=0x95 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSDELETERETURN=0x97 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSDELETE_EFILENAME=0x96 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSDISMOUNTEXTENSION=0x41 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSDISMOUNTEXTENSIONRETURN=0x43 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSDISMOUNTEXTENSION_EEXTENSIONNAME=0x42 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSDISMOUNTFILESYSTEM=0x32 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSDISMOUNTFILESYSTEMRETURN=0x34 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSDISMOUNTFILESYSTEM_EFILESYSTEMNAME=0x33 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSDRIVE=0x5f +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSDRIVELIST1=0x5b +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSDRIVELIST1RETURN=0x5c +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSDRIVELIST2=0x5d +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSDRIVELIST2RETURN=0x5e +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSDRIVERETURN=0x60 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSDRIVETOCHAR=0x1 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSDRIVETOCHARRETURN=0x2 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSENTRY=0xac +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSENTRYRETURN=0xae +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSENTRY_EFILENAME=0xad +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSERASEPASSWORD=0xee +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSERASEPASSWORDRETURN=0xef +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSEXTENSIONNAME=0x47 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSEXTENSIONNAMERETURN=0x49 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSEXTENSIONNAME_EEXTENSIONNAME=0x48 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSFILESYSTEMNAME=0x35 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSFILESYSTEMNAMERETURN=0x37 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSFILESYSTEMNAME_EFILESYSTEMNAME=0x36 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSFILESYSTEMNAME_ESUPPORTEDFILESYSTEMNAME=0x39 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSFILESYSTEMSUBTYPE=0x119 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSFILESYSTEMSUBTYPERETURN=0x11b +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSFILESYSTEMSUBTYPE_EFILESYSTEMNAME=0x11a +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSFINALISEDRIVE=0xf5 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSFINALISEDRIVERETURN=0xf6 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSFINALISEDRIVES=0xf7 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSFINALISEDRIVESRETURN1=0xf8 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSFINALISEDRIVESRETURN2=0xf9 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSGETDIR1=0x85 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSGETDIR1RETURN=0x87 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSGETDIR1_EDIRNAME=0x86 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSGETDIR2=0x88 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSGETDIR2RETURN=0x8a +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSGETDIR2_EDIRNAME=0x89 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSGETDIR3=0x8b +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSGETDIR3RETURN=0x8d +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSGETDIR3_EDIRNAME=0x8c +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSGETDRIVENAME=0xe2 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSGETDRIVENAMERETURN=0xe4 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSGETDRIVENAME_EDRIVENAME=0xe3 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSGETLONGNAME=0xcb +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSGETLONGNAMERETURN=0xce +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSGETLONGNAME_ELONGNAME=0xcd +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSGETLONGNAME_ESHORTNAME=0xcc +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSGETMEDIASERIALNUMBER=0x73 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSGETMEDIASERIALNUMBERRETURN=0x74 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSGETMEDIASERIALNUMBER_ESERIALNUMBER=0x75 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSGETNOTIFYUSER=0xd2 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSGETNOTIFYUSERRETURN=0xd3 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSGETRESERVEACCESS=0x103 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSGETRESERVEACCESSRETURN=0x104 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSGETSHORTNAME=0xc7 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSGETSHORTNAMERETURN=0xca +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSGETSHORTNAME_ELONGNAME=0xc8 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSGETSHORTNAME_ESHORTNAME=0xc9 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSGETSYSTEMDRIVE=0x5 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSGETSYSTEMDRIVECHAR=0x8 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSGETSYSTEMDRIVECHARRETURN=0x9 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSGETSYSTEMDRIVERETURN1=0x6 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSGETSYSTEMDRIVERETURN2=0x7 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSINITIALISEPROPERTIESFILE=0x113 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSINITIALISEPROPERTIESFILERETURN=0x114 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSISFILEINROM=0xd6 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSISFILEINROMRETURN=0xd8 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSISFILEINROM_EFILENAME=0xd7 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSISFILEOPEN=0xcf +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSISFILEOPENRETURN=0xd1 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSISFILEOPEN_EFILENAME=0xd0 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSISROMADDRESS=0x3 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSISROMADDRESSRETURN=0x4 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSISVALIDNAME1=0xd9 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSISVALIDNAME1RETURN=0xdb +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSISVALIDNAME1_EFILENAME=0xda +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSISVALIDNAME2=0xdc +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSISVALIDNAME2RETURN=0xde +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSISVALIDNAME2_EFILENAME=0xdd +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSISVALIDNAME3=0xdf +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSISVALIDNAME3RETURN=0xe1 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSISVALIDNAME3_EFILENAME=0xe0 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSLOCKDRIVE=0xe8 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSLOCKDRIVERETURN=0xe9 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSMKDIR=0x7c +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSMKDIRALL=0x7f +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSMKDIRALLRETURN=0x81 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSMKDIRALL_EDIRNAME=0x80 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSMKDIRRETURN=0x7e +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSMKDIR_EDIRNAME=0x7d +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSMODIFIED=0xa6 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSMODIFIEDRETURN=0xa8 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSMODIFIED_EFILENAME=0xa7 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSMOUNTEXTENSION=0x3e +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSMOUNTEXTENSIONRETURN=0x40 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSMOUNTEXTENSION_EEXTENSIONNAME=0x3f +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSMOUNTFILESYSTEM1=0x1d +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSMOUNTFILESYSTEM1RETURN=0x1f +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSMOUNTFILESYSTEM1_EFILESYSTEMNAME=0x1e +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSMOUNTFILESYSTEM2=0x20 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSMOUNTFILESYSTEM2RETURN=0x22 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSMOUNTFILESYSTEM2_EFILESYSTEMNAME=0x21 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSMOUNTFILESYSTEM3=0x23 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSMOUNTFILESYSTEM3RETURN=0x26 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSMOUNTFILESYSTEM3_EEXTENSIONNAME=0x24 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSMOUNTFILESYSTEM3_EFILESYSTEMNAME=0x25 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSMOUNTFILESYSTEM4=0x27 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSMOUNTFILESYSTEM4RETURN=0x2a +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSMOUNTFILESYSTEM4_EEXTENSIONNAME=0x29 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSMOUNTFILESYSTEM4_EFILESYSTEMNAME=0x28 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSMOUNTFILESYSTEMANDSCAN1=0x2b +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSMOUNTFILESYSTEMANDSCAN1RETURN=0x2d +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSMOUNTFILESYSTEMANDSCAN1_EFILESYSTEMNAME=0x2c +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSMOUNTFILESYSTEMANDSCAN2=0x2e +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSMOUNTFILESYSTEMANDSCAN2RETURN=0x31 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSMOUNTFILESYSTEMANDSCAN2_EEXTENSIONNAME=0x30 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSMOUNTFILESYSTEMANDSCAN2_EFILESYSTEMNAME=0x2f +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSNOTIFYCHANGE1=0x4c +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSNOTIFYCHANGE1RETURN=0x4d +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSNOTIFYCHANGE2=0x4e +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSNOTIFYCHANGE2RETURN=0x50 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSNOTIFYCHANGE2_EDIRNAME=0x4f +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSNOTIFYCHANGECANCEL1=0x51 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSNOTIFYCHANGECANCEL1RETURN=0x52 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSNOTIFYCHANGECANCEL2=0x53 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSNOTIFYCHANGECANCEL2RETURN=0x54 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSNOTIFYDISKSPACE=0x55 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSNOTIFYDISKSPACECANCEL1=0x57 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSNOTIFYDISKSPACECANCEL1RETURN=0x58 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSNOTIFYDISKSPACECANCEL2=0x59 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSNOTIFYDISKSPACECANCEL2RETURN=0x5a +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSNOTIFYDISKSPACERETURN=0x56 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSNOTIFYDISMOUNT=0x107 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSNOTIFYDISMOUNTCANCEL1=0x109 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSNOTIFYDISMOUNTCANCEL1RETURN=0x10a +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSNOTIFYDISMOUNTCANCEL2=0x10b +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSNOTIFYDISMOUNTCANCEL2RETURN=0x10c +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSNOTIFYDISMOUNTRETURN=0x108 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSPARSE1=0x8e +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSPARSE1RETURN=0x90 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSPARSE1_EFILEPATH=0x8f +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSPARSE2=0x91 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSPARSE2RETURN=0x94 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSPARSE2_EFILENAME=0x92 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSPARSE2_ERELATED=0x93 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSPRIVATEPATH=0x10 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSPRIVATEPATHRETURN=0x12 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSPRIVATEPATH_EDIRNAME=0x11 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSQUERYVOLUMEINFOEXT=0x115 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSQUERYVOLUMEINFOEXTRETURN=0x116 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSREADFILESECTION=0xb2 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSREADFILESECTIONRETURN1=0xb4 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSREADFILESECTIONRETURN2=0xb5 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSREADFILESECTIONRETURN3=0xb6 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSREADFILESECTION_EFILENAME=0xb3 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSREADFILESECTION_RESERVED=0xb7 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSREADFILESECTION_RESERVED_EFILENAME=0xb8 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSREADFILESECTION_RESERVED_RETURN1=0xb9 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSREADFILESECTION_RESERVED_RETURN2=0xba +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSREALNAME=0x6f +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSREALNAMERETURN=0x72 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSREALNAME_EFILENAME1=0x70 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSREALNAME_EFILENAME2=0x71 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSRELEASERESERVEACCESS=0x105 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSRELEASERESERVEACCESSRETURN=0x106 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSREMOUNTDRIVE=0x4a +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSREMOUNTDRIVERETURN=0x4b +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSREMOVEEXTENSION=0x44 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSREMOVEEXTENSIONRETURN=0x46 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSREMOVEEXTENSION_EEXTENSIONNAME=0x45 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSREMOVEFILESYSTEM=0x1a +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSREMOVEFILESYSTEMRETURN=0x1c +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSREMOVEFILESYSTEM_EFILESYSTEMNAME=0x1b +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSRENAME=0x98 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSRENAMERETURN=0x9b +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSRENAME_ENEWNAME=0x9a +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSRENAME_EOLDNAME=0x99 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSREPLACE=0x9c +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSREPLACERETURN=0x9f +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSREPLACE_ENEWNAME=0x9e +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSREPLACE_EOLDNAME=0x9d +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSRESERVEDRIVESPACE=0x101 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSRESERVEDRIVESPACERETURN=0x102 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSRESOURCECOUNT=0xbf +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSRESOURCECOUNTMARKEND=0xbd +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSRESOURCECOUNTMARKENDRETURN=0xbe +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSRESOURCECOUNTMARKSTART=0xbb +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSRESOURCECOUNTMARKSTARTRETURN=0xbc +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSRESOURCECOUNTRETURN=0xc0 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSRMDIR=0x82 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSRMDIRRETURN=0x84 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSRMDIR_EDIRNAME=0x83 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSCANDRIVE=0xc4 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSCANDRIVERETURN=0xc6 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSCANDRIVE_EDIRNAME=0xc5 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSESSIONPATH=0x76 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSESSIONPATHRETURN=0x77 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSESSIONPATH_EDIRNAME=0x78 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSETATT=0xa3 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSETATTRETURN=0xa5 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSETATT_EFILENAME=0xa4 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSETDRIVENAME=0xe5 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSETDRIVENAMERETURN=0xe7 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSETDRIVENAME_EDRIVENAME=0xe6 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSETENTRY=0xaf +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSETENTRYRETURN=0xb1 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSETENTRY_EFILENAME=0xb0 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSETLOCALDRIVEMAPPING=0xf2 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSETLOCALDRIVEMAPPINGRETURN=0xf4 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSETLOCALDRIVEMAPPING_ELOCALDRIVEMAPPING=0xf3 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSETMODIFIED=0xa9 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSETMODIFIEDRETURN=0xab +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSETMODIFIED_EFILENAME=0xaa +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSETNOTIFYCHANGE=0x111 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSETNOTIFYCHANGERETURN=0x112 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSETNOTIFYUSER=0xd4 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSETNOTIFYUSERRETURN=0xd5 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSETSESSIONPATH=0x79 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSETSESSIONPATHRETURN=0x7b +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSETSESSIONPATH_EDIRNAME=0x7a +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSETSESSIONTOPRIVATE=0xe +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSETSESSIONTOPRIVATERETURN=0xf +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSETSTARTUPCONFIGURATION=0x10f +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSETSTARTUPCONFIGURATIONRETURN=0x110 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSETSUBST=0x6c +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSETSUBSTRETURN=0x6e +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSETSUBST_EDIRNAME=0x6d +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSETSYSTEMDRIVE=0xa +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSETSYSTEMDRIVERETURN=0xb +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSETVOLUMELABEL=0x66 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSETVOLUMELABELRETURN=0x68 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSETVOLUMELABEL_EVOLUMENAME=0x67 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSTARTUPINITCOMPLETE=0xf0 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSTARTUPINITCOMPLETERETURN=0xf1 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSUBST=0x69 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSUBSTRETURN=0x6b +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSUBST_EDIRNAME=0x6a +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSUPPORTEDFILESYSTEMNAME=0x38 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSUPPORTEDFILESYSTEMNAMERETURN=0x3a +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSWAPFILESYSTEM=0xfa +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSWAPFILESYSTEMRETURN=0xfd +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSWAPFILESYSTEM_ENEWNAME=0xfc +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSSWAPFILESYSTEM_EOLDNAME=0xfb +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSUNLOCKDRIVE=0xea +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSUNLOCKDRIVERETURN=0xeb +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSVERSION=0x15 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSVERSIONRETURN=0x16 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSVOLUME1=0x61 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSVOLUME1RETURNA=0x62 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSVOLUME1RETURNB=0x63 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSVOLUME2=0x64 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSVOLUME2RETURN=0x65 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSVOLUMEIOPARAM=0x117 +[TRACE]TRACE_BORDER[0x42]_EFSRV_EFSVOLUMEIOPARAMRETURN=0x118 +[TRACE]TRACE_DRIVE[0x41]_FSYS_ECFILESYSTEMISEXTENSIONSUPPORTED2=0x5f +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECBASEEXTPROXYDRIVECAPS=0x45 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECBASEEXTPROXYDRIVECAPSRET=0x46 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECBASEEXTPROXYDRIVECLEAR=0x53 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECBASEEXTPROXYDRIVECLEARRET=0x54 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECBASEEXTPROXYDRIVECONTROLIO=0x57 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECBASEEXTPROXYDRIVECONTROLIORET=0x58 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECBASEEXTPROXYDRIVEDELETENOTIFY=0x5d +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECBASEEXTPROXYDRIVEDELETENOTIFYRET=0x5e +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECBASEEXTPROXYDRIVEDISMOUNTED=0x33 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECBASEEXTPROXYDRIVEDISMOUNTEDRET=0x34 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECBASEEXTPROXYDRIVEENLARGE=0x35 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECBASEEXTPROXYDRIVEENLARGERET=0x36 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECBASEEXTPROXYDRIVEERASEPASSWORD=0x55 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECBASEEXTPROXYDRIVEERASEPASSWORDRET=0x56 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECBASEEXTPROXYDRIVEFORCEREMOUNT=0x4d +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECBASEEXTPROXYDRIVEFORCEREMOUNTRET=0x4e +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECBASEEXTPROXYDRIVEFORMAT1=0x47 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECBASEEXTPROXYDRIVEFORMAT1RET=0x48 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECBASEEXTPROXYDRIVEFORMAT2=0x49 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECBASEEXTPROXYDRIVEFORMAT2RET=0x4a +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECBASEEXTPROXYDRIVEGETINTERFACE=0x59 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECBASEEXTPROXYDRIVEGETINTERFACERET=0x5a +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECBASEEXTPROXYDRIVEGETLASTERRORINFO=0x5b +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECBASEEXTPROXYDRIVEGETLASTERRORINFORET=0x5c +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECBASEEXTPROXYDRIVEINITIALISE=0x31 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECBASEEXTPROXYDRIVEINITIALISERET=0x32 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECBASEEXTPROXYDRIVELOCK=0x51 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECBASEEXTPROXYDRIVELOCKRET=0x52 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECBASEEXTPROXYDRIVEREAD1=0x39 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECBASEEXTPROXYDRIVEREAD1RET=0x3a +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECBASEEXTPROXYDRIVEREAD2=0x3b +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECBASEEXTPROXYDRIVEREAD2RET=0x3c +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECBASEEXTPROXYDRIVEREAD3=0x3d +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECBASEEXTPROXYDRIVEREAD3RET=0x3e +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECBASEEXTPROXYDRIVEREDUCESIZE=0x37 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECBASEEXTPROXYDRIVEREDUCESIZERET=0x38 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECBASEEXTPROXYDRIVESETMOUNTINFO=0x4b +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECBASEEXTPROXYDRIVESETMOUNTINFORET=0x4c +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECBASEEXTPROXYDRIVEUNLOCK=0x4f +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECBASEEXTPROXYDRIVEUNLOCKRET=0x50 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECBASEEXTPROXYDRIVEWRITE1=0x3f +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECBASEEXTPROXYDRIVEWRITE1RET=0x40 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECBASEEXTPROXYDRIVEWRITE2=0x41 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECBASEEXTPROXYDRIVEWRITE2RET=0x42 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECBASEEXTPROXYDRIVEWRITE3=0x43 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECBASEEXTPROXYDRIVEWRITE3RET=0x44 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECLOCALPROXYDRIVECAPS=0x17 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECLOCALPROXYDRIVECAPSRET=0x18 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECLOCALPROXYDRIVECLEAR=0x27 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECLOCALPROXYDRIVECLEARRET=0x28 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECLOCALPROXYDRIVECONTROLIO=0x21 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECLOCALPROXYDRIVECONTROLIORET=0x22 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECLOCALPROXYDRIVEDELETENOTIFY=0x2b +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECLOCALPROXYDRIVEDELETENOTIFYRET=0x2c +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECLOCALPROXYDRIVEDISMOUNTED=0x5 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECLOCALPROXYDRIVEDISMOUNTEDRET=0x6 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECLOCALPROXYDRIVEENLARGE=0x7 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECLOCALPROXYDRIVEENLARGERET=0x8 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECLOCALPROXYDRIVEERASEPASSWORD=0x29 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECLOCALPROXYDRIVEERASEPASSWORDRET=0x2a +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECLOCALPROXYDRIVEFORCEREMOUNT=0x1f +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECLOCALPROXYDRIVEFORCEREMOUNTRET=0x20 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECLOCALPROXYDRIVEFORMAT1=0x19 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECLOCALPROXYDRIVEFORMAT1RET=0x1a +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECLOCALPROXYDRIVEFORMAT2=0x1b +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECLOCALPROXYDRIVEFORMAT2RET=0x1c +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECLOCALPROXYDRIVEGETINTERFACE=0x2f +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECLOCALPROXYDRIVEGETINTERFACERET=0x30 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECLOCALPROXYDRIVEGETLASTERRORINFO=0x2d +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECLOCALPROXYDRIVEGETLASTERRORINFORET=0x2e +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECLOCALPROXYDRIVEINITIALISE=0x3 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECLOCALPROXYDRIVEINITIALISERET=0x4 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECLOCALPROXYDRIVELOCK=0x25 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECLOCALPROXYDRIVELOCKRET=0x26 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECLOCALPROXYDRIVENEW=0x1 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECLOCALPROXYDRIVENEWRET=0x2 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECLOCALPROXYDRIVEREAD1=0xb +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECLOCALPROXYDRIVEREAD1RET=0xc +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECLOCALPROXYDRIVEREAD2=0xd +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECLOCALPROXYDRIVEREAD2RET=0xe +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECLOCALPROXYDRIVEREAD3=0xf +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECLOCALPROXYDRIVEREAD3RET=0x10 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECLOCALPROXYDRIVEREDUCESIZE=0x9 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECLOCALPROXYDRIVEREDUCESIZERET=0xa +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECLOCALPROXYDRIVESETMOUNTINFO=0x1d +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECLOCALPROXYDRIVESETMOUNTINFORET=0x1e +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECLOCALPROXYDRIVEUNLOCK=0x23 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECLOCALPROXYDRIVEUNLOCKRET=0x24 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECLOCALPROXYDRIVEWRITE1=0x11 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECLOCALPROXYDRIVEWRITE1RET=0x12 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECLOCALPROXYDRIVEWRITE2=0x13 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECLOCALPROXYDRIVEWRITE2RET=0x14 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECLOCALPROXYDRIVEWRITE3=0x15 +[TRACE]TRACE_DRIVE[0x41]_PROXYDRIVE_ECLOCALPROXYDRIVEWRITE3RET=0x16 +[TRACE]TRACE_FILESYSTEM[0x40]_FILESYS_ECFILESYSTEMCONSTRUCTORRETURN=0x91 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECDIRCBREADL1=0x5 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECDIRCBREADL1RET=0x6 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECDIRCBREADL2=0x1 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECDIRCBREADL2RET=0x2 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECDIRCBSTORELONGENTRYNAMEL=0x3 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECDIRCBSTORELONGENTRYNAMELRET=0x4 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILECBFLUSHDATAL1=0x6e +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILECBFLUSHDATAL1RET=0x6f +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILECBFLUSHDATAL2=0x84 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILECBFLUSHDATAL2RET=0x85 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILECBGETINTERFACE=0x82 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILECBGETINTERFACERET=0x83 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILECBREADLA=0x7c +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILECBREADLRET=0x7d +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILECBRENAMEL=0x76 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILECBRENAMELRET=0x78 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILECBRENAMELYS_EFILENAME=0x77 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILECBSETENTRYL1=0x70 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILECBSETENTRYL1RET=0x71 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILECBSETENTRYL2=0x72 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILECBSETENTRYL2RET=0x73 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILECBSETENTRYL3=0x74 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILECBSETENTRYL3RET=0x75 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILECBSETSIZEL=0x80 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILECBSETSIZELRET=0x81 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILECBWRITEL=0x7e +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILECBWRITELRET=0x7f +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILESYSTEMCONSTRUCTOR=0x90 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILESYSTEMDESTRUCTOR=0x92 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILESYSTEMDESTRUCTORRETURN=0x93 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILESYSTEMDRIVEINFO=0x17 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILESYSTEMDRIVEINFORET=0x18 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILESYSTEMINSTALL=0x94 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILESYSTEMINSTALLRET=0x96 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILESYSTEMINSTALLYS_EFILESYSTEMNAME=0x95 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILESYSTEMISEXTENSIONSUPPORTED1=0x57 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILESYSTEMNEW=0x99 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILESYSTEMNEWDIRL=0x3b +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILESYSTEMNEWDIRLRET=0x3c +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILESYSTEMNEWFILEL=0x36 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILESYSTEMNEWFILELRET=0x37 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILESYSTEMNEWFORMATL=0x6c +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILESYSTEMNEWFORMATLRET=0x6d +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILESYSTEMNEWMOUNTL=0x9 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILESYSTEMNEWMOUNTL1=0x53 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILESYSTEMNEWMOUNTL1RET=0x54 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILESYSTEMNEWMOUNTL2=0x58 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILESYSTEMNEWMOUNTL2RET=0x59 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILESYSTEMNEWMOUNTL3=0x5c +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILESYSTEMNEWMOUNTL3RET=0x5d +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILESYSTEMNEWMOUNTL4=0x60 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILESYSTEMNEWMOUNTL4RET=0x61 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILESYSTEMNEWMOUNTL5=0x64 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILESYSTEMNEWMOUNTL5RET=0x65 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILESYSTEMNEWMOUNTLRET=0xa +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILESYSTEMNEWRET=0x9a +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILESYSTEMREMOVE1=0x97 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILESYSTEMREMOVE1RET=0x98 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILESYSTEMREMOVE2=0x9b +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFILESYSTEMREMOVE2RET=0x9c +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFORMATCBDOFORMATSTEPL=0x88 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECFORMATCBDOFORMATSTEPLRET=0x89 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBCHECKDISK1=0x43 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBCHECKDISK1RET=0x44 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBCHECKDISK2=0x45 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBCHECKDISK2RET=0x46 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBCLEARPASSWORD=0x62 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBCLEARPASSWORDRET=0x63 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBCONTROLIO=0x6a +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBCONTROLIORET=0x6b +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBCURRENTFREESPACE=0x11 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBCURRENTFREESPACERET=0x12 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBDELETEL1=0x25 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBDELETEL1_EFILENAME=0x26 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBDELETEL1_RET=0x27 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBDELETEL2=0x79 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBDELETEL2RET=0x7b +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBDELETEL2_EFILENAME=0x7a +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBDIROPENL=0x3d +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBDIROPENLRET=0x3f +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBDIROPENL_EDIRNAME=0x3e +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBDISMOUNTED=0x68 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBDISMOUNTEDRET=0x69 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBENTRYL=0x30 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBENTRYLRET=0x32 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBENTRYL_EFILEPATH=0x31 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBERASEPASSWORD=0x66 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBERASEPASSWORDRET=0x67 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBFILEOPENL=0x38 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBFILEOPENLRET=0x3a +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBFILEOPENL_EFILENAME=0x39 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBFINALISEMOUNT1=0x15 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBFINALISEMOUNT1RET=0x16 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBFINALISEMOUNT2=0x13 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBFINALISEMOUNT2RET=0x14 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBFORCEREMOUNTDRIVE=0x55 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBFORCEREMOUNTDRIVERET=0x56 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBFREESPACE=0xd +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBFREESPACERET=0xe +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBGETINTERFACE=0x8a +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBGETINTERFACERET=0x8b +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBGETLONGNAMEL=0x4f +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBGETLONGNAMELRET=0x52 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBGETLONGNAMEL_ELONGNAME=0x51 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBGETLONGNAMEL_ESHORTNAME=0x50 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBGETSHORTNAMEL=0x4b +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBGETSHORTNAMEL_ECMOUNTCBGETSHORTNAMELRET=0x4e +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBGETSHORTNAMEL_ELONGNAME=0x4c +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBGETSHORTNAMEL_ESHORTNAME=0x4d +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBLOCK=0x5a +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBLOCKRET=0x5b +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBMKDIRL=0x1f +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBMKDIRLRET=0x21 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBMKDIRLYS_EDIRNAME=0x20 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBMOUNTCONTROL=0xb +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBMOUNTCONTROLRET=0xc +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBRAWREADL=0x8c +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBRAWREADLRET=0x8d +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBRAWWRITEL=0x8e +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBRAWWRITELRET=0x8f +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBREADFILESECTIONL=0x40 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBREADFILESECTIONLRET=0x42 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBREADFILESECTIONL_EFILENAME=0x41 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBREMOUNT1=0x7 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBREMOUNT1RET=0x8 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBREMOUNT2=0x86 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBREMOUNT2RET=0x87 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBRENAMEL=0x28 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBRENAMELRET=0x2b +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBRENAMELYS_ENEWNAME=0x2a +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBRENAMELYS_EOLDNAME=0x29 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBREPLACEL=0x2c +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBREPLACELRET=0x2f +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBREPLACEL_ENEWNAME=0x2e +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBREPLACEL_EOLDNAME=0x2d +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBRMDIRL=0x22 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBRMDIRLRET=0x24 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBRMDIRLYS_EDIRNAME=0x23 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBSCANDRIVE1=0x47 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBSCANDRIVE1RET=0x48 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBSCANDRIVE2=0x49 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBSCANDRIVE2RET=0x4a +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBSETENTRYL=0x33 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBSETENTRYLRET=0x35 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBSETENTRYL_EFILEPATH=0x34 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBSETVOLUMEL=0x1c +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBSETVOLUMELRET=0x1e +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBUNLOCK=0x5e +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBUNLOCKRET=0x5f +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBVOLUMEL=0x19 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBVOLUMELRETA=0x1a +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBVOLUMELRETB=0x1b +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBVOLUMESIZE=0xf +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_ECMOUNTCBVOLUMESIZERET=0x10 +[TRACE]TRACE_FILESYSTEM[0x40]_FSYS_EVOLUMENAME=0x1d diff -r 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/fileserver/sfsrv/cl_cli.cpp --- a/userlibandfileserver/fileserver/sfsrv/cl_cli.cpp Thu May 27 14:17:14 2010 +0300 +++ b/userlibandfileserver/fileserver/sfsrv/cl_cli.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -17,13 +17,9 @@ #include "cl_std.h" #include - - - - - - - +#ifdef OST_TRACE_COMPILER_IN_USE +#include "cl_cliTraces.h" +#endif EFSRV_EXPORT_C TBool RFs::IsValidDrive(TInt aDrive) /** Tests whether the specified drive number is valid. @@ -97,7 +93,7 @@ if (aDrive==KDefaultDrive) { - TRACE1(UTF::EBorder, UTraceModuleEfsrv::EFsDriveToChar, MODULEUID, aDrive); + OstTrace1(TRACE_BORDER, EFSRV_EFSDRIVETOCHAR, "aDrive %d", aDrive); RFs fs; TFileName path; TInt r=fs.Connect(); @@ -108,7 +104,7 @@ if (r!=KErrNone) return(r); aChar=path[0]; - TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFsDriveToCharReturn, MODULEUID, KErrNone, aChar); + OstTraceExt2(TRACE_BORDER, EFSRV_EFSDRIVETOCHARRETURN, "r %d aChar %x", (TUint) KErrNone, (TUint) aChar); return(KErrNone); } if (!IsValidDrive(aDrive)) @@ -129,14 +125,12 @@ @return True, if the address is in ROM; false, if not. */ { - TRACE1(UTF::EBorder, UTraceModuleEfsrv::EFsIsRomAddress, MODULEUID, aPtr); - + OstTrace1(TRACE_BORDER, EFSRV_EFSISROMADDRESS, "aPtr %x", aPtr); TBool res; TInt r=User::IsRomAddress(res,aPtr); // Only returns error on WINS if (r!=KErrNone) res=EFalse; - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsIsRomAddressReturn, MODULEUID, res); + OstTrace1(TRACE_BORDER, EFSRV_EFSISROMADDRESSRETURN, "r %d", res); return(res); } @@ -166,19 +160,18 @@ */ EFSRV_EXPORT_C TDriveNumber RFs::GetSystemDrive() { - TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFsGetSystemDrive, MODULEUID); + OstTrace0(TRACE_BORDER, EFSRV_EFSGETSYSTEMDRIVE, ""); TInt drive; TInt err = RProperty::Get(TSecureId(KFileServerUidValue), KSystemDriveKey, drive); if(err==KErrNone) { if((drive>=EDriveA) && (drive<=EDriveZ)) { - TRACE1(UTF::EBorder, UTraceModuleEfsrv::EFsGetSystemDriveReturn, MODULEUID, drive); + OstTrace1(TRACE_BORDER, EFSRV_EFSGETSYSTEMDRIVERETURN1, "r %d", drive); return static_cast(drive); } } - - TRACE1(UTF::EBorder, UTraceModuleEfsrv::EFsGetSystemDriveReturn, MODULEUID, EDriveC); + OstTrace1(TRACE_BORDER, EFSRV_EFSGETSYSTEMDRIVERETURN2, "r %d", EDriveC); return EDriveC; } @@ -193,11 +186,9 @@ */ EFSRV_EXPORT_C TChar RFs::GetSystemDriveChar() { - TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFsGetSystemDriveChar, MODULEUID); - + OstTrace0(TRACE_BORDER, EFSRV_EFSGETSYSTEMDRIVECHAR, ""); TInt r = 'A' + GetSystemDrive(); - - TRACE1(UTF::EBorder, UTraceModuleEfsrv::EFsGetSystemDriveCharReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSGETSYSTEMDRIVECHARRETURN, "RFs::GetSystemDriveChar() r %x", (char) r); return r; } @@ -217,10 +208,9 @@ */ EFSRV_EXPORT_C TInt RFs::SetSystemDrive(TDriveNumber aSystemDrive) { - TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFsSetSystemDrive, MODULEUID, Handle(), aSystemDrive); + OstTraceExt2(TRACE_BORDER, EFSRV_EFSSETSYSTEMDRIVE, "sess %x aSystemDrive %d", (TUint) Handle(), (TUint) aSystemDrive); TInt r = SendReceive(EFsSetSystemDrive, TIpcArgs(aSystemDrive)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsSetSystemDriveReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSSETSYSTEMDRIVERETURN, "r %d", r); return r; } @@ -247,11 +237,10 @@ error codes. */ { - TRACE1(UTF::EBorder, UTraceModuleEfsrv::EFsConnect, MODULEUID, aMessageSlots); + OstTrace1(TRACE_BORDER, EFSRV_EFSCONNECT, "aMessageSlots %d", aMessageSlots); _LIT(KFileServerName,"!FileServer"); TInt r = CreateSession(KFileServerName,Version(),aMessageSlots); - - TRACERET2(UTF::EBorder, UTraceModuleEfsrv::EFsConnectReturn, MODULEUID, r, Handle()); + OstTraceExt2(TRACE_BORDER, EFSRV_EFSCONNECTRETURN, "r %d sess %x", (TUint) r, (TUint) Handle()); return r; } @@ -275,10 +264,9 @@ error codes. */ { - TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFsSetSessionToPrivate, MODULEUID, Handle(), aDrive); + OstTraceExt2(TRACE_BORDER, EFSRV_EFSSETSESSIONTOPRIVATE, "sess %x aDrive %d", (TUint) Handle(), (TUint) aDrive); TInt r = SendReceive(EFsSessionToPrivate,TIpcArgs(aDrive)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsSetSessionToPrivateReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSSETSESSIONTOPRIVATERETURN, "r %d", r); return r; } @@ -294,10 +282,10 @@ @param aPath On successful return, contains the private path for a process. */ { - TRACE1(UTF::EBorder, UTraceModuleEfsrv::EFsPrivatePath, MODULEUID, Handle()); + OstTrace1(TRACE_BORDER, EFSRV_EFSPRIVATEPATH, "sess %x", Handle()); TInt r = SendReceive(EFsPrivatePath,TIpcArgs(&aPath)); - - TRACERETMULT2(UTF::EBorder, UTraceModuleEfsrv::EFsPrivatePathReturn, MODULEUID, r, aPath); + OstTraceData(TRACE_BORDER, EFSRV_EFSPRIVATEPATH_EDIRNAME, "Dir %S", aPath.Ptr(), aPath.Length()<<1); + OstTrace1(TRACE_BORDER, EFSRV_EFSPRIVATEPATHRETURN, "r %d", r); return r; } @@ -318,10 +306,9 @@ error codes. */ { - TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFsCreatePrivatePath, MODULEUID, Handle(), aDrive); + OstTraceExt2(TRACE_BORDER, EFSRV_EFSCREATEPRIVATEPATH, "sess %x aDrive %d", (TUint) Handle(), (TUint) aDrive); TInt r = SendReceive(EFsCreatePrivatePath,TIpcArgs(aDrive)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsCreatePrivatePathReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSCREATEPRIVATEPATHRETURN, "r %d", r); return r; } @@ -335,11 +322,9 @@ @return The client side version number. */ { - TRACE1(UTF::EBorder, UTraceModuleEfsrv::EFsVersion, MODULEUID, Handle()); - + OstTrace1(TRACE_BORDER, EFSRV_EFSVERSION, "sess %x", Handle()); TVersion r = TVersion(KF32MajorVersionNumber,KF32MinorVersionNumber,KF32BuildVersionNumber); - - TRACERET3(UTF::EBorder, UTraceModuleEfsrv::EFsVersionReturn, MODULEUID, r.iMajor, r.iMinor, r.iBuild); + OstTraceExt3(TRACE_BORDER, EFSRV_EFSVERSIONRETURN, "iMajor %d iMinor %d iBuild %d", (TUint) r.iMajor, (TUint) r.iMinor, (TUint) r.iBuild); return r; } @@ -364,7 +349,8 @@ @see RFs::MountFileSystem */ { - TRACEMULT2(UTF::EBorder, UTraceModuleEfsrv::EFsAddFileSystem, MODULEUID, Handle(), aFileName); + OstTrace1(TRACE_BORDER, EFSRV_EFSADDFILESYSTEM, "sess %x", Handle()); + OstTraceData(TRACE_BORDER, EFSRV_EFSADDFILESYSTEM_EFILENAME, "FileName %S", aFileName.Ptr(), aFileName.Length()<<1); RLoader loader; TInt r = loader.Connect(); if (r==KErrNone) @@ -372,8 +358,7 @@ r = loader.SendReceive(ELoadFileSystem, TIpcArgs(0, &aFileName, 0)); loader.Close(); } - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsAddFileSystemReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSADDFILESYSTEMRETURN, "r %d", r); return r; } @@ -395,10 +380,10 @@ */ { - TRACEMULT2(UTF::EBorder, UTraceModuleEfsrv::EFsRemoveFileSystem, MODULEUID, Handle(), aFileSystemName); + OstTrace1(TRACE_BORDER, EFSRV_EFSREMOVEFILESYSTEM, "sess %x", Handle()); + OstTraceData(TRACE_BORDER, EFSRV_EFSREMOVEFILESYSTEM_EFILESYSTEMNAME, "FileSystemName %S", aFileSystemName.Ptr(), aFileSystemName.Length()<<1); TInt r = SendReceive(EFsRemoveFileSystem,TIpcArgs(&aFileSystemName)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsRemoveFileSystemReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSREMOVEFILESYSTEMRETURN, "r %d", r); return r; } @@ -423,10 +408,10 @@ @see RFs::FileSystemName */ { - TRACEMULT3(UTF::EBorder, UTraceModuleEfsrv::EFsMountFileSystem1, MODULEUID, Handle(), aFileSystemName, aDrive); + OstTraceExt2(TRACE_BORDER, EFSRV_EFSMOUNTFILESYSTEM1, "sess %x aDrive %d", (TUint) Handle(), (TUint) aDrive); + OstTraceData(TRACE_BORDER, EFSRV_EFSMOUNTFILESYSTEM1_EFILESYSTEMNAME, "FileSystemName %S", aFileSystemName.Ptr(), aFileSystemName.Length()<<1); TInt r = SendReceive(EFsMountFileSystem,TIpcArgs(&aFileSystemName,aDrive,NULL,EFalse)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsMountFileSystem1Return, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSMOUNTFILESYSTEM1RETURN, "r %d", r); return r; } @@ -454,16 +439,14 @@ @return KErrNone if successful, otherwise one of the other system-wide error codes. @capability DiskAdmin - @see RFs::AddFileSystem @see RFs::FileSystemName */ { - TRACEMULT4(UTF::EBorder, UTraceModuleEfsrv::EFsMountFileSystem2, MODULEUID, Handle(), aFileSystemName, aDrive, aIsSync); - + OstTraceExt3(TRACE_BORDER, EFSRV_EFSMOUNTFILESYSTEM2, "sess %x aDrive %d aIsSync %d", (TUint) Handle(), (TUint) aDrive, (TUint) aIsSync); + OstTraceData(TRACE_BORDER, EFSRV_EFSMOUNTFILESYSTEM2_EFILESYSTEMNAME, "FileSystemName %S", aFileSystemName.Ptr(), aFileSystemName.Length()<<1); TInt r = SendReceive(EFsMountFileSystem,TIpcArgs(&aFileSystemName,aDrive,NULL,aIsSync)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsMountFileSystem2Return, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSMOUNTFILESYSTEM2RETURN, "r %d", r); return r; } @@ -489,11 +472,11 @@ @see RFs::FileSystemName */ { - TRACEMULT4(UTF::EBorder, UTraceModuleEfsrv::EFsMountFileSystem3, MODULEUID, Handle(), aFileSystemName, aExtensionName, aDrive); - + OstTraceExt2(TRACE_BORDER, EFSRV_EFSMOUNTFILESYSTEM3, "sess %x aDrive %d", (TUint) Handle(), (TUint) aDrive); + OstTraceData(TRACE_BORDER, EFSRV_EFSMOUNTFILESYSTEM3_EEXTENSIONNAME, "ExtensionName %S", aExtensionName.Ptr(), aExtensionName.Length()<<1); + OstTraceData(TRACE_BORDER, EFSRV_EFSMOUNTFILESYSTEM3_EFILESYSTEMNAME, "FileSystemName %S", aFileSystemName.Ptr(), aFileSystemName.Length()<<1); TInt r = SendReceive(EFsMountFileSystem,TIpcArgs(&aFileSystemName,aDrive,&aExtensionName,EFalse)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsMountFileSystem3Return, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSMOUNTFILESYSTEM3RETURN, "r %d", r); return r; } @@ -528,10 +511,11 @@ @see RFs::FileSystemName */ { - TRACEMULT5(UTF::EBorder, UTraceModuleEfsrv::EFsMountFileSystem4, MODULEUID, Handle(), aFileSystemName, aExtensionName, aDrive, aIsSync); + OstTraceExt3(TRACE_BORDER, EFSRV_EFSMOUNTFILESYSTEM4, "sess %x aDrive %d aIsSync %d", (TUint) Handle(), (TUint) aDrive, (TUint) aIsSync); + OstTraceData(TRACE_BORDER, EFSRV_EFSMOUNTFILESYSTEM4_EFILESYSTEMNAME, "FileSystemName %S", aFileSystemName.Ptr(), aFileSystemName.Length()<<1); + OstTraceData(TRACE_BORDER, EFSRV_EFSMOUNTFILESYSTEM4_EEXTENSIONNAME, "ExtensionName %S", aExtensionName.Ptr(), aExtensionName.Length()<<1); TInt r = SendReceive(EFsMountFileSystem,TIpcArgs(&aFileSystemName,aDrive,&aExtensionName,aIsSync)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsMountFileSystem4Return, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSMOUNTFILESYSTEM4RETURN, "r %d", r); return r; } @@ -560,12 +544,12 @@ @see RFs::FileSystemName */ { - TRACEMULT3(UTF::EBorder, UTraceModuleEfsrv::EFsMountFileSystemAndScan1, MODULEUID, Handle(), aFileSystemName, aDrive); + OstTraceExt2(TRACE_BORDER, EFSRV_EFSMOUNTFILESYSTEMANDSCAN1, "sess %x aDrive %d", (TUint) Handle(), (TUint) aDrive); + OstTraceData(TRACE_BORDER, EFSRV_EFSMOUNTFILESYSTEMANDSCAN1_EFILESYSTEMNAME, "FileSystemName %S", aFileSystemName.Ptr(), aFileSystemName.Length()<<1); aIsMountSuccess=EFalse; TPckg pckg(aIsMountSuccess); TInt r = SendReceive(EFsMountFileSystemScan,TIpcArgs(&aFileSystemName,aDrive,NULL,&pckg)); - - TRACERET2(UTF::EBorder, UTraceModuleEfsrv::EFsMountFileSystemAndScan1Return, MODULEUID, r, aIsMountSuccess); + OstTraceExt2(TRACE_BORDER, EFSRV_EFSMOUNTFILESYSTEMANDSCAN1RETURN, "r %d aIsMountSuccess %d", (TUint) r, (TUint) aIsMountSuccess); return r; } @@ -598,14 +582,13 @@ @see RFs::FileSystemName */ { - TRACEMULT5(UTF::EBorder, UTraceModuleEfsrv::EFsMountFileSystemAndScan2, MODULEUID, - Handle(), aFileSystemName, aExtensionName, aDrive, aIsMountSuccess); - + OstTraceExt3(TRACE_BORDER, EFSRV_EFSMOUNTFILESYSTEMANDSCAN2, "sess %x aDrive %d aIsMountSuccess %d", (TUint) Handle(), (TUint) aDrive, (TUint) aIsMountSuccess); + OstTraceData(TRACE_BORDER, EFSRV_EFSMOUNTFILESYSTEMANDSCAN2_EFILESYSTEMNAME, "FileSystemName %S", aFileSystemName.Ptr(), aFileSystemName.Length()<<1); + OstTraceData(TRACE_BORDER, EFSRV_EFSMOUNTFILESYSTEMANDSCAN2_EEXTENSIONNAME, "ExtensionName %S", aExtensionName.Ptr(), aExtensionName.Length()<<1); aIsMountSuccess=EFalse; TPckg pckg(aIsMountSuccess); TInt r = SendReceive(EFsMountFileSystemScan,TIpcArgs(&aFileSystemName,aDrive,&aExtensionName,&pckg)); - - TRACERET2(UTF::EBorder, UTraceModuleEfsrv::EFsMountFileSystemAndScan2Return, MODULEUID, r, aIsMountSuccess); + OstTraceExt2(TRACE_BORDER, EFSRV_EFSMOUNTFILESYSTEMANDSCAN2RETURN, "r %d aIsMountSuccess %d", (TUint) r, (TUint) aIsMountSuccess); return r; } @@ -632,10 +615,10 @@ @see RFs::FileSystemName */ { - TRACEMULT3(UTF::EBorder, UTraceModuleEfsrv::EFsDismountFileSystem, MODULEUID, Handle(), aFileSystemName, aDrive); + OstTraceExt2(TRACE_BORDER, EFSRV_EFSDISMOUNTFILESYSTEM, "sess %x aDrive %d", (TUint) Handle(), (TUint) aDrive); + OstTraceData(TRACE_BORDER, EFSRV_EFSDISMOUNTFILESYSTEM_EFILESYSTEMNAME, "FileSystemName %S", aFileSystemName.Ptr(), aFileSystemName.Length()<<1); TInt r = SendReceive(EFsDismountFileSystem,TIpcArgs(&aFileSystemName,aDrive)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsDismountFileSystemReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSDISMOUNTFILESYSTEMRETURN, "r %d", r); return r; } @@ -661,12 +644,11 @@ */ EFSRV_EXPORT_C TInt RFs::FileSystemName(TDes& aName,TInt aDrive) const { - TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFsFileSystemName, MODULEUID, Handle(), aDrive); - + OstTraceExt2(TRACE_BORDER, EFSRV_EFSFILESYSTEMNAME, "sess %x aDrive %d", (TUint) Handle(), (TUint) aDrive); //-- ipc argument "-1" here is to indicate legacy FileSystemName() API TInt r = SendReceive(EFsFileSystemName,TIpcArgs(&aName, aDrive, -1)); - - TRACERETMULT2(UTF::EBorder, UTraceModuleEfsrv::EFsFileSystemNameReturn, MODULEUID, r, aName); + OstTraceData(TRACE_BORDER, EFSRV_EFSFILESYSTEMNAME_EFILESYSTEMNAME, "FileSystemName %S", aName.Ptr(), aName.Length()<<1); + OstTrace1(TRACE_BORDER, EFSRV_EFSFILESYSTEMNAMERETURN, "r %d", r); return r; } @@ -701,12 +683,11 @@ { if(aFsEnumerator < 0) return KErrArgument; //-- see RFs::FileSystemName(). "-1" is a reserved value - - TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFsFileSystemName, MODULEUID, Handle(), aDrive); + OstTraceExt2(TRACE_BORDER, EFSRV_EFSSUPPORTEDFILESYSTEMNAME, "sess %x aDrive %d", (TUint) Handle(), (TUint) aDrive); TInt r = SendReceive(EFsFileSystemName,TIpcArgs(&aName, aDrive, aFsEnumerator)); - - TRACERETMULT2(UTF::EBorder, UTraceModuleEfsrv::EFsFileSystemNameReturn, MODULEUID, r, aName); + OstTraceData(TRACE_BORDER, EFSRV_EFSFILESYSTEMNAME_ESUPPORTEDFILESYSTEMNAME, "SupportedFileSystemName %S", aName.Ptr(), aName.Length()<<1); + OstTrace1(TRACE_BORDER, EFSRV_EFSSUPPORTEDFILESYSTEMNAMERETURN, "r %d", r); return r; } @@ -723,7 +704,8 @@ @return KErrNone, if successful; otherwise one of the other system wide error codes. */ { - TRACEMULT2(UTF::EBorder, UTraceModuleEfsrv::EFsAddExtension, MODULEUID, Handle(), aFileName); + OstTrace1(TRACE_BORDER, EFSRV_EFSADDEXTENSION, "sess %x", Handle()); + OstTraceData(TRACE_BORDER, EFSRV_EFSADDEXTENSION_EEXTENSIONNAME, "ExtensionName %S", aFileName.Ptr(), aFileName.Length()<<1); RLoader loader; TInt r = loader.Connect(); if (r==KErrNone) @@ -731,8 +713,7 @@ r = loader.SendReceive(ELoadFSExtension, TIpcArgs(0, &aFileName, 0)); loader.Close(); } - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsAddExtensionReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSADDEXTENSIONRETURN, "r %d", r); return r; } @@ -756,10 +737,10 @@ @see RFs::ExtensionName */ { - TRACEMULT3(UTF::EBorder, UTraceModuleEfsrv::EFsMountExtension, MODULEUID, Handle(), aExtensionName, aDrive); + OstTraceExt2(TRACE_BORDER, EFSRV_EFSMOUNTEXTENSION, "sess %x aDrive %d", (TUint) Handle(), (TUint) aDrive); + OstTraceData(TRACE_BORDER, EFSRV_EFSMOUNTEXTENSION_EEXTENSIONNAME, "ExtensionName %S", aExtensionName.Ptr(), aExtensionName.Length()<<1); TInt r = SendReceive(EFsMountExtension,TIpcArgs(&aExtensionName,aDrive)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsMountExtensionReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSMOUNTEXTENSIONRETURN, "r %d", r); return r; } @@ -780,10 +761,10 @@ */ EFSRV_EXPORT_C TInt RFs::DismountExtension(const TDesC& aExtensionName,TInt aDrive) { - TRACEMULT3(UTF::EBorder, UTraceModuleEfsrv::EFsDismountExtension, MODULEUID, Handle(), aExtensionName, aDrive); + OstTraceExt2(TRACE_BORDER, EFSRV_EFSDISMOUNTEXTENSION, "sess %x aDrive %d", (TUint) Handle(), (TUint) aDrive); + OstTraceData(TRACE_BORDER, EFSRV_EFSDISMOUNTEXTENSION_EEXTENSIONNAME, "ExtensionName %S", aExtensionName.Ptr(), aExtensionName.Length()<<1); TInt r = SendReceive(EFsDismountExtension,TIpcArgs(&aExtensionName,aDrive)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsDismountExtensionReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSDISMOUNTEXTENSIONRETURN, "r %d", r); return r; } @@ -800,10 +781,10 @@ otrherwise one of the other system-wide error codes. */ { - TRACEMULT2(UTF::EBorder, UTraceModuleEfsrv::EFsRemoveExtension, MODULEUID, Handle(), aExtensionName); + OstTrace1(TRACE_BORDER, EFSRV_EFSREMOVEEXTENSION, "sess %x", Handle()); + OstTraceData(TRACE_BORDER, EFSRV_EFSREMOVEEXTENSION_EEXTENSIONNAME, "ExtensionName %S", aExtensionName.Ptr(), aExtensionName.Length()<<1); TInt r = SendReceive(EFsRemoveExtension,TIpcArgs(&aExtensionName)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsRemoveExtensionReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSREMOVEEXTENSIONRETURN, "r %d", r); return r; } @@ -823,10 +804,10 @@ KErrNotFound if the extension name is not found; */ { - TRACEMULT4(UTF::EBorder, UTraceModuleEfsrv::EFsExtensionName, MODULEUID, Handle(), aExtensionName, aDrive, aPos); + OstTraceExt3(TRACE_BORDER, EFSRV_EFSEXTENSIONNAME, "sess %x aDrive %d aPos %x", (TUint) Handle(), (TUint) aDrive, (TUint) aPos); + OstTraceData(TRACE_BORDER, EFSRV_EFSEXTENSIONNAME_EEXTENSIONNAME, "ExtensionName %S", aExtensionName.Ptr(), aExtensionName.Length()<<1); TInt r = SendReceive(EFsExtensionName,TIpcArgs(&aExtensionName,aDrive,aPos)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsExtensionNameReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSEXTENSIONNAMERETURN, "r %d", r); return r; } @@ -850,10 +831,9 @@ the other system wide error codes. */ { - TRACE4(UTF::EBorder, UTraceModuleEfsrv::EFsRemountDrive, MODULEUID, Handle(), aDrive, aMountInfo, aFlags); + OstTraceExt4(TRACE_BORDER, EFSRV_EFSREMOUNTDRIVE, "sess %x aDrive %d aMountInfo %x aFlags %x", (TUint) Handle(), aDrive, (TUint) aMountInfo, (TUint) aFlags); TInt r = SendReceive(EFsRemountDrive,TIpcArgs(aDrive,aMountInfo,aFlags)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsRemountDriveReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSREMOUNTDRIVERETURN, "r %d", r); return r; } @@ -899,7 +879,7 @@ */ { - TRACE3(UTF::EBorder, UTraceModuleEfsrv::EFsNotifyChange1, MODULEUID, Handle(), aType, &aStat); + OstTraceExt3(TRACE_BORDER, EFSRV_EFSNOTIFYCHANGE1, "sess %x aType %x status %x", (TUint) Handle(), (TUint) aType, (TUint) &aStat); aStat=KRequestPending; // for backward compatibility TNotifyType type = (aType == 0 ? ENotifyEntry : aType); @@ -907,7 +887,7 @@ //This call is to synchronise with the file server when this functions stack varibles can go out of scope SendReceive(EFsSynchroniseDriveThread, TIpcArgs(-1)); - TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFsNotifyChange1Return, MODULEUID); + OstTrace0(TRACE_BORDER, EFSRV_EFSNOTIFYCHANGE1RETURN, ""); } @@ -966,7 +946,8 @@ */ { - TRACEMULT4(UTF::EBorder, UTraceModuleEfsrv::EFsNotifyChange2, MODULEUID, Handle(), (TUint) aType, (TUint) &aStat, aPathName); + OstTraceExt3(TRACE_BORDER, EFSRV_EFSNOTIFYCHANGE2, "sess %x aType %x status %x", (TUint) Handle(), (TUint) aType, (TUint) &aStat); + OstTraceData(TRACE_BORDER, EFSRV_EFSNOTIFYCHANGE2_EDIRNAME, "Dir %S", aPathName.Ptr(), aPathName.Length()<<1); aStat=KRequestPending; // for backward compatibility TNotifyType type = (aType == 0 ? ENotifyEntry : aType); @@ -974,7 +955,7 @@ //This call is to synchronise with the file server when this functions stack varibles can go out of scope SendReceive(EFsSynchroniseDriveThread, TIpcArgs(-1)); - TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFsNotifyChange2Return, MODULEUID); + OstTrace0(TRACE_BORDER, EFSRV_EFSNOTIFYCHANGE2RETURN, ""); } @@ -991,10 +972,10 @@ */ { - TRACE1(UTF::EBorder, UTraceModuleEfsrv::EFsNotifyChangeCancel1, MODULEUID, Handle()); + OstTrace1(TRACE_BORDER, EFSRV_EFSNOTIFYCHANGECANCEL1, "sess %x", Handle()); RSessionBase::SendReceive(EFsNotifyChangeCancel); - TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFsNotifyChangeCancel1Return, MODULEUID); + OstTrace0(TRACE_BORDER, EFSRV_EFSNOTIFYCHANGECANCEL1RETURN, ""); } @@ -1015,11 +996,11 @@ */ { - TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFsNotifyChangeCancel2, MODULEUID, Handle(), &aStat); + OstTraceExt2(TRACE_BORDER, EFSRV_EFSNOTIFYCHANGECANCEL2, "sess %x status %x", (TUint) Handle(), (TUint) &aStat); if (aStat==KRequestPending) // May be better to ASSERT this? SendReceive(EFsNotifyChangeCancelEx,TIpcArgs(&aStat)); - TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFsNotifyChangeCancel2Return, MODULEUID); + OstTrace0(TRACE_BORDER, EFSRV_EFSNOTIFYCHANGECANCEL2RETURN, ""); } @@ -1070,8 +1051,8 @@ @see TDriveNumber */ { - TRACE5(UTF::EBorder, UTraceModuleEfsrv::EFsNotifyDiskSpace, MODULEUID, - Handle(), I64LOW(aThreshold),I64HIGH(aThreshold), aDrive,(TUint) &aStat); + OstTraceExt5(TRACE_BORDER, EFSRV_EFSNOTIFYDISKSPACE, "sess %x aThreshold %x:%x aDrive %d status %x", (TUint) Handle(), (TUint) I64HIGH(aThreshold), (TUint) I64LOW(aThreshold), (TUint) aDrive, (TUint) &aStat); + aStat=KRequestPending; TPtrC8 tBuf((TUint8*)&aThreshold,sizeof(TInt64)); RSessionBase::SendReceive(EFsNotifyDiskSpace,TIpcArgs(&tBuf,aDrive,&aStat), aStat); @@ -1081,7 +1062,7 @@ SendReceive(EFsSynchroniseDriveThread, TIpcArgs(aDrive)); - TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFsNotifyDiskSpaceReturn, MODULEUID); + OstTrace0(TRACE_BORDER, EFSRV_EFSNOTIFYDISKSPACERETURN, ""); } @@ -1098,12 +1079,12 @@ notification request. */ { - TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFsNotifyDiskSpaceCancel1, MODULEUID, Handle(), &aStat); + OstTraceExt2(TRACE_BORDER, EFSRV_EFSNOTIFYDISKSPACECANCEL1, "sess %x status %x", (TUint) Handle(), (TUint) &aStat); if(aStat==KRequestPending) SendReceive(EFsNotifyDiskSpaceCancel,TIpcArgs(&aStat)); - TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFsNotifyDiskSpaceCancel1Return, MODULEUID); + OstTrace0(TRACE_BORDER, EFSRV_EFSNOTIFYDISKSPACECANCEL1RETURN, ""); } @@ -1117,10 +1098,10 @@ Outstanding requests complete with KErrCancel. */ { - TRACE1(UTF::EBorder, UTraceModuleEfsrv::EFsNotifyDiskSpaceCancel2, MODULEUID, Handle()); + OstTrace1(TRACE_BORDER, EFSRV_EFSNOTIFYDISKSPACECANCEL2, "sess %x", Handle()); SendReceive(EFsNotifyDiskSpaceCancel,TIpcArgs(NULL)); - TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFsNotifyDiskSpaceCancel2Return, MODULEUID); + OstTrace0(TRACE_BORDER, EFSRV_EFSNOTIFYDISKSPACECANCEL2RETURN, ""); } @@ -1146,10 +1127,9 @@ @return KErrNone, successful, otherwise one of the other system-wide error codes. */ { - TRACE1(UTF::EBorder, UTraceModuleEfsrv::EFsDriveList1, MODULEUID, Handle()); + OstTrace1(TRACE_BORDER, EFSRV_EFSDRIVELIST1, "sess %x", Handle()); TInt r = SendReceive(EFsDriveList,TIpcArgs(&aList, KDriveAttExclude|KDriveAttRemote|KDriveAttHidden)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsDriveList1Return, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSDRIVELIST1RETURN, "r %d", r); return r; } @@ -1180,10 +1160,9 @@ KErrArgument, If aFlags contains an invalid attribute combination. */ { - TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFsDriveList2, MODULEUID, Handle(), aFlags); + OstTraceExt2(TRACE_BORDER, EFSRV_EFSDRIVELIST2, "sess %x aFlags %x", (TUint) Handle(), (TUint) aFlags); TInt r = SendReceive(EFsDriveList,TIpcArgs(&aList,aFlags)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsDriveList2Return, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSDRIVELIST2RETURN, "r %d", r); return r; } @@ -1213,12 +1192,10 @@ @see RFs::Volume */ { - TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFsDrive, MODULEUID, Handle(), aDrive); - + OstTraceExt2(TRACE_BORDER, EFSRV_EFSDRIVE, "sess %x aDrive %d", (TUint) Handle(), (TUint) aDrive); TPckg m(anInfo); TInt r = SendReceive(EFsDrive,TIpcArgs(&m,aDrive)); - - TRACERET4(UTF::EBorder, UTraceModuleEfsrv::EFsDriveReturn, MODULEUID, r, anInfo.iDriveAtt, anInfo.iMediaAtt, anInfo.iType); + OstTraceExt4(TRACE_BORDER, EFSRV_EFSDRIVERETURN, "r %d driveAtt %x mediaAtt %x type %x", r, (TUint) anInfo.iDriveAtt, (TUint) anInfo.iMediaAtt, (TUint) anInfo.iType); return r; } @@ -1250,13 +1227,11 @@ @see RFs::Drive */ { - TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFsVolume1, MODULEUID, Handle(), aDrive); + OstTraceExt2(TRACE_BORDER, EFSRV_EFSVOLUME1, "sess %x aDrive %d", (TUint) Handle(), (TUint) aDrive); TPckg v(aVol); TInt r = SendReceive(EFsVolume,TIpcArgs(&v,aDrive,NULL)); - - TRACE7(UTF::EBorder, UTraceModuleEfsrv::EFsVolume1Return, MODULEUID, - r, aVol.iUniqueID, I64LOW(aVol.iSize), I64HIGH(aVol.iSize), - I64LOW(aVol.iFree), I64HIGH(aVol.iFree), aVol.iFileCacheFlags); + OstTraceExt5(TRACE_BORDER, EFSRV_EFSVOLUME1RETURNA, "r %d iSize %x:%x iFree %x:%x", (TUint) r, (TUint) I64HIGH(aVol.iSize), (TUint) I64LOW(aVol.iSize), (TUint) I64HIGH(aVol.iFree), (TUint) I64LOW(aVol.iFree)); + OstTraceExt2(TRACE_BORDER, EFSRV_EFSVOLUME1RETURNB, "iUniqueID %x iFileCacheFlags %x", (TUint) aVol.iUniqueID, (TUint) aVol.iFileCacheFlags); return r; } @@ -1279,12 +1254,12 @@ */ EFSRV_EXPORT_C void RFs::Volume(TVolumeInfo& aVol,TInt aDrive, TRequestStatus& aStat) const { - TRACE3(UTF::EBorder, UTraceModuleEfsrv::EFsVolume2, MODULEUID, Handle(), aDrive, &aStat); + OstTraceExt3(TRACE_BORDER, EFSRV_EFSVOLUME2, "sess %x aDrive %d status %x", (TUint) Handle(), (TUint) aDrive, (TUint) &aStat); TPckg v(aVol); aStat=KRequestPending; RSessionBase::SendReceive(EFsVolume,TIpcArgs(&v,aDrive,&aStat), aStat); - TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFsVolume2Return, MODULEUID); + OstTrace0(TRACE_BORDER, EFSRV_EFSVOLUME2RETURN, ""); } @@ -1314,12 +1289,11 @@ @see RFs::Volume */ { - TRACEMULT3(UTF::EBorder, UTraceModuleEfsrv::EFsSetVolumeLabel, MODULEUID, - Handle(), aName, aDrive); - + OstTraceExt2(TRACE_BORDER, EFSRV_EFSSETVOLUMELABEL, "sess %x aDrive %d", (TUint) Handle(), (TUint) aDrive); + + OstTraceData(TRACE_BORDER, EFSRV_EFSSETVOLUMELABEL_EVOLUMENAME, "VolumeName %S", aName.Ptr(), aName.Length()<<1); TInt r = SendReceive(EFsSetVolume,TIpcArgs(&aName,aDrive)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsSetVolumeLabelReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSSETVOLUMELABELRETURN, "r %d", r); return r; } @@ -1350,10 +1324,10 @@ @see RFs::Drive */ { - TRACEMULT3(UTF::EBorder, UTraceModuleEfsrv::EFsSubst, MODULEUID, Handle(), aPath, aDrive); + OstTraceExt2(TRACE_BORDER, EFSRV_EFSSUBST, "sess %x aDrive %d", (TUint) Handle(), (TUint) aDrive); + OstTraceData(TRACE_BORDER, EFSRV_EFSSUBST_EDIRNAME, "Dir %S", aPath.Ptr(), aPath.Length()<<1); TInt r = SendReceive(EFsSubst,TIpcArgs(&aPath,aDrive)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsSubstReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSSUBSTRETURN, "r %d", r); return r; } @@ -1402,10 +1376,10 @@ @capability Dependent If aPath is /Resource then Tcb capability is required. */ { - TRACEMULT3(UTF::EBorder, UTraceModuleEfsrv::EFsSetSubst, MODULEUID, Handle(), aPath, aDrive); + OstTraceExt2(TRACE_BORDER, EFSRV_EFSSETSUBST, "sess %x aPath %d", (TUint) Handle(), (TUint) aDrive); + OstTraceData(TRACE_BORDER, EFSRV_EFSSETSUBST_EDIRNAME, "Dir %S", aPath.Ptr(), aPath.Length()<<1); TInt r = SendReceive(EFsSetSubst,TIpcArgs(&aPath,aDrive)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsSetSubstReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSSETSUBSTRETURN, "r %d", r); return r; } @@ -1433,10 +1407,11 @@ */ { - TRACEMULT2(UTF::EBorder, UTraceModuleEfsrv::EFsRealName, MODULEUID, Handle(), aName); + OstTrace1(TRACE_BORDER, EFSRV_EFSREALNAME, "sess %x", Handle()); + OstTraceData(TRACE_BORDER, EFSRV_EFSREALNAME_EFILENAME1, "FileName %S", aName.Ptr(), aName.Length()<<1); TInt r = SendReceive(EFsRealName,TIpcArgs(&aName,&aResult)); - - TRACERETMULT2(UTF::EBorder, UTraceModuleEfsrv::EFsRealNameReturn, MODULEUID, r, aResult); + OstTraceData(TRACE_BORDER, EFSRV_EFSREALNAME_EFILENAME2, "FileName %S", aResult.Ptr(), aResult.Length()<<1); + OstTrace1(TRACE_BORDER, EFSRV_EFSREALNAMERETURN, "r %d", r); return r; } @@ -1460,10 +1435,10 @@ */ EFSRV_EXPORT_C TInt RFs::GetMediaSerialNumber(TMediaSerialNumber& aSerialNum, TInt aDrive) { - TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFsGetMediaSerialNumber, MODULEUID, Handle(), aDrive); + OstTraceExt2(TRACE_BORDER, EFSRV_EFSGETMEDIASERIALNUMBER, "sess %x aDrive %d", (TUint) Handle(), (TUint) aDrive); TInt r = SendReceive(EFsGetMediaSerialNumber, TIpcArgs(&aSerialNum, aDrive)); - - TRACERETMULT2(UTF::EBorder, UTraceModuleEfsrv::EFsGetMediaSerialNumberReturn, MODULEUID, r, aSerialNum); + OstTrace1(TRACE_BORDER, EFSRV_EFSGETMEDIASERIALNUMBERRETURN, "r %d", r); + OstTraceData(TRACE_BORDER, EFSRV_EFSGETMEDIASERIALNUMBER_ESERIALNUMBER, "SerialNum %x", aSerialNum.Ptr(), aSerialNum.Length()); return r; } @@ -1485,10 +1460,10 @@ system-wide error codes. */ { - TRACE1(UTF::EBorder, UTraceModuleEfsrv::EFsSessionPath, MODULEUID, Handle()); + OstTrace1(TRACE_BORDER, EFSRV_EFSSESSIONPATH, "sess %x", Handle()); TInt r = SendReceive(EFsSessionPath,TIpcArgs(&aPath)); - - TRACERETMULT2(UTF::EBorder, UTraceModuleEfsrv::EFsSessionPathReturn, MODULEUID, r, aPath); + OstTrace1(TRACE_BORDER, EFSRV_EFSSESSIONPATHRETURN, "r %d", r); + OstTraceData(TRACE_BORDER, EFSRV_EFSSESSIONPATH_EDIRNAME, "Dir %S", aPath.Ptr(), aPath.Length()<<1); return r; } @@ -1526,10 +1501,10 @@ */ { - TRACEMULT2(UTF::EBorder, UTraceModuleEfsrv::EFsSetSessionPath, MODULEUID, Handle(), aPath); + OstTrace1(TRACE_BORDER, EFSRV_EFSSETSESSIONPATH, "sess %x", Handle()); + OstTraceData(TRACE_BORDER, EFSRV_EFSSETSESSIONPATH_EDIRNAME, "Dir %S", aPath.Ptr(), aPath.Length()<<1); TInt r = SendReceive(EFsSetSessionPath,TIpcArgs(&aPath)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsSetSessionPathReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSSETSESSIONPATHRETURN, "r %d", r); return r; } @@ -1603,10 +1578,10 @@ */ EFSRV_EXPORT_C TInt RFs::MkDir(const TDesC& aPath) { - TRACEMULT2(UTF::EBorder, UTraceModuleEfsrv::EFsMkDir, MODULEUID, Handle(), aPath); + OstTrace1(TRACE_BORDER, EFSRV_EFSMKDIR, "sess %x", Handle()); + OstTraceData(TRACE_BORDER, EFSRV_EFSMKDIR_EDIRNAME, "Dir %S", aPath.Ptr(), aPath.Length()<<1); TInt r = SendReceive(EFsMkDir,TIpcArgs(&aPath,NULL)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsMkDirReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSMKDIRRETURN, "r %d", r); return r; } @@ -1653,10 +1628,10 @@ */ EFSRV_EXPORT_C TInt RFs::MkDirAll(const TDesC& aPath) { - TRACEMULT2(UTF::EBorder, UTraceModuleEfsrv::EFsMkDirAll, MODULEUID, Handle(), aPath); + OstTrace1(TRACE_BORDER, EFSRV_EFSMKDIRALL, "sess %x", Handle()); + OstTraceData(TRACE_BORDER, EFSRV_EFSMKDIRALL_EDIRNAME, "Dir %S", aPath.Ptr(), aPath.Length()<<1); TInt r = SendReceive(EFsMkDir,TIpcArgs(&aPath,TRUE)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsMkDirAllReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSMKDIRALLRETURN, "r %d", r); return r; } @@ -1707,10 +1682,10 @@ @see CFileMan */ { - TRACEMULT2(UTF::EBorder, UTraceModuleEfsrv::EFsRmDir, MODULEUID, Handle(), aPath); + OstTrace1(TRACE_BORDER, EFSRV_EFSRMDIR, "sess %x", Handle()); + OstTraceData(TRACE_BORDER, EFSRV_EFSRMDIR_EDIRNAME, "Dir %S", aPath.Ptr(), aPath.Length()<<1); TInt r = SendReceive(EFsRmDir,TIpcArgs(&aPath)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsRmDirReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSRMDIRRETURN, "r %d", r); return r; } @@ -1825,9 +1800,8 @@ @see TEntryKey */ { - TRACEMULT6(UTF::EBorder, UTraceModuleEfsrv::EFsGetDir1, MODULEUID, - Handle(), aName, aUidType[0].iUid, aUidType[1].iUid, aUidType[2].iUid, aKey); - + OstTraceExt5(TRACE_BORDER, EFSRV_EFSGETDIR1, "sess %x aUidType0 %x aUidType1 %x aUidType2 %x aKey %x", (TUint) Handle(), (TUint) aUidType[0].iUid, (TUint) aUidType[1].iUid, (TUint) aUidType[2].iUid, (TUint) aKey); + OstTraceData(TRACE_BORDER, EFSRV_EFSGETDIR1_EDIRNAME, "Dir %S", aName.Ptr(), aName.Length()<<1); RDir d; TRAPD(r,GetDirL(aName,aUidType,aKey,aFileList,d)) d.Close(); @@ -1836,8 +1810,7 @@ delete aFileList; aFileList=NULL; } - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsGetDir1Return, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSGETDIR1RETURN, "r %d", r); return r; } @@ -1883,8 +1856,8 @@ @see TEntryKey */ { - TRACEMULT4(UTF::EBorder, UTraceModuleEfsrv::EFsGetDir2, MODULEUID, Handle(), aName, anAttMask, aKey); - + OstTraceExt3(TRACE_BORDER, EFSRV_EFSGETDIR2, "sess %x anAttMask %x aKey %x", (TUint) Handle(), (TUint) anAttMask, (TUint) aKey); + OstTraceData(TRACE_BORDER, EFSRV_EFSGETDIR2_EDIRNAME, "Dir %S", aName.Ptr(), aName.Length()<<1); RDir d; if ((aKey&0xff)==ESortByUid) anAttMask|=KEntryAttAllowUid; @@ -1895,8 +1868,7 @@ delete aFileList; aFileList=NULL; } - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsGetDir2Return, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSGETDIR2RETURN, "r %d", r); return r; } @@ -1949,8 +1921,8 @@ @see TEntryKey */ { - TRACEMULT4(UTF::EBorder, UTraceModuleEfsrv::EFsGetDir3, MODULEUID, Handle(), aName, anAttMask, aKey); - + OstTraceExt3(TRACE_BORDER, EFSRV_EFSGETDIR3, "sess %x anAttMask %x aKey %x", (TUint) Handle(), (TUint) anAttMask, (TUint) aKey); + OstTraceData(TRACE_BORDER, EFSRV_EFSGETDIR3_EDIRNAME, "Dir %S", aName.Ptr(), aName.Length()<<1); RDir d; if (aKey&ESortByUid) anAttMask|=KEntryAttAllowUid; @@ -1963,8 +1935,7 @@ delete aDirList; aDirList=NULL; } - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsGetDir3Return, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSGETDIR3RETURN, "r %d", r); return r; } @@ -2011,13 +1982,13 @@ system-wide error codes. */ { - TRACEMULT2(UTF::EBorder, UTraceModuleEfsrv::EFsParse1, MODULEUID, Handle(), aName); + OstTrace1(TRACE_BORDER, EFSRV_EFSPARSE1, "sess %x", Handle()); + OstTraceData(TRACE_BORDER, EFSRV_EFSPARSE1_EFILEPATH, "FilePath %S", aName.Ptr(), aName.Length()<<1); TFileName session_path; TInt r = SessionPath(session_path); if (r==KErrNone) r = aParse.Set(aName, NULL, &session_path); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsParse1Return, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSPARSE1RETURN, "r %d", r); return r; } @@ -2066,13 +2037,14 @@ system-wide error codes. */ { - TRACEMULT3(UTF::EBorder, UTraceModuleEfsrv::EFsParse2, MODULEUID, Handle(), aName, aRelated); + OstTrace1(TRACE_BORDER, EFSRV_EFSPARSE2, "sess %x", Handle()); + OstTraceData(TRACE_BORDER, EFSRV_EFSPARSE2_EFILENAME, "FileName %S", aName.Ptr(), aName.Length()<<1); + OstTraceData(TRACE_BORDER, EFSRV_EFSPARSE2_ERELATED, "Related %S", aRelated.Ptr(), aRelated.Length()<<1); TFileName session_path; TInt r = SessionPath(session_path); if (r==KErrNone) r = aParse.Set(aName, &aRelated, &session_path); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsParse2Return, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSPARSE2RETURN, "r %d", r); return r; } @@ -2105,10 +2077,10 @@ @see CFileMan */ { - TRACEMULT2(UTF::EBorder, UTraceModuleEfsrv::EFsDelete, MODULEUID, Handle(), aName); + OstTrace1(TRACE_BORDER, EFSRV_EFSDELETE, "sess %x", Handle()); + OstTraceData(TRACE_BORDER, EFSRV_EFSDELETE_EFILENAME, "FileName %S", aName.Ptr(), aName.Length()<<1); TInt r = SendReceive(EFsDelete,TIpcArgs(&aName)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsDeleteReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSDELETERETURN, "r %d", r); return r; } @@ -2167,15 +2139,15 @@ @see CFileMan */ { - TRACEMULT3(UTF::EBorder, UTraceModuleEfsrv::EFsRename, MODULEUID, Handle(), anOldName, aNewName); - + OstTrace1(TRACE_BORDER, EFSRV_EFSRENAME, "sess %x", Handle()); + OstTraceData(TRACE_BORDER, EFSRV_EFSRENAME_EOLDNAME, "OldName %S", anOldName.Ptr(), anOldName.Length()<<1); + OstTraceData(TRACE_BORDER, EFSRV_EFSRENAME_ENEWNAME, "NewName %S", aNewName.Ptr(), aNewName.Length()<<1); TInt r; if (anOldName.Length() <= 0 || aNewName.Length() <= 0 ) r = KErrBadName; else r = SendReceive(EFsRename,TIpcArgs(&anOldName,&aNewName)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsRenameReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSRENAMERETURN, "r %d", r); return r; } @@ -2226,10 +2198,11 @@ */ { - TRACEMULT3(UTF::EBorder, UTraceModuleEfsrv::EFsReplace, MODULEUID, Handle(), anOldName, aNewName); + OstTrace1(TRACE_BORDER, EFSRV_EFSREPLACE, "sess %x", Handle()); + OstTraceData(TRACE_BORDER, EFSRV_EFSREPLACE_EOLDNAME, "OldName %S", anOldName.Ptr(), anOldName.Length()<<1); + OstTraceData(TRACE_BORDER, EFSRV_EFSREPLACE_ENEWNAME, "NewName %S", aNewName.Ptr(), aNewName.Length()<<1); TInt r = SendReceive(EFsReplace,TIpcArgs(&anOldName,&aNewName)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsReplaceReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSREPLACERETURN, "r %d", r); return r; } @@ -2256,14 +2229,13 @@ @see KEntryAttNormal */ { - TRACEMULT2(UTF::EBorder, UTraceModuleEfsrv::EFsAtt, MODULEUID, Handle(), aName); - + OstTrace1(TRACE_BORDER, EFSRV_EFSATT, "sess %x", Handle()); + OstTraceData(TRACE_BORDER, EFSRV_EFSATT_EFILENAME, "FileName %S", aName.Ptr(), aName.Length()<<1); TEntry e; TInt r=Entry(aName,e); if (r==KErrNone) aVal=e.iAtt; - - TRACERET2(UTF::EBorder, UTraceModuleEfsrv::EFsAttReturn, MODULEUID, r, aVal); + OstTraceExt2(TRACE_BORDER, EFSRV_EFSATTRETURN, "r %d aVal %x", (TUint) r, (TUint) aVal); return r; } @@ -2303,12 +2275,10 @@ */ { - TRACEMULT4(UTF::EBorder, UTraceModuleEfsrv::EFsSetAtt, MODULEUID, - Handle(), aName, aSetAttMask, aClearAttMask); - + OstTraceExt3(TRACE_BORDER, EFSRV_EFSSETATT, "sess %x aSetAttMask %x aClearAttMask %x", (TUint) Handle(), (TUint) aSetAttMask, (TUint) aClearAttMask); + OstTraceData(TRACE_BORDER, EFSRV_EFSSETATT_EFILENAME, "FileName %S", aName.Ptr(), aName.Length()<<1); TInt r = SetEntry(aName,TTime(0),aSetAttMask,aClearAttMask); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsSetAttReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSSETATTRETURN, "r %d", r); return r; } @@ -2336,14 +2306,13 @@ */ { - TRACEMULT2(UTF::EBorder, UTraceModuleEfsrv::EFsModified, MODULEUID, Handle(), aName); - + OstTrace1(TRACE_BORDER, EFSRV_EFSMODIFIED, "sess %x", Handle()); + OstTraceData(TRACE_BORDER, EFSRV_EFSMODIFIED_EFILENAME, "FileName %S", aName.Ptr(), aName.Length()<<1); TEntry e; TInt r=Entry(aName,e); if (r==KErrNone) aTime=e.iModified; - - TRACERET3(UTF::EBorder, UTraceModuleEfsrv::EFsModifiedReturn, MODULEUID, r, I64LOW(aTime.Int64()), I64HIGH(aTime.Int64())); + OstTraceExt3(TRACE_BORDER, EFSRV_EFSMODIFIEDRETURN, "r %d aTime %x:%x ", (TUint) r, (TUint) I64HIGH(aTime.Int64()), (TUint) I64LOW(aTime.Int64())); return r; } @@ -2370,11 +2339,10 @@ */ { - TRACEMULT4(UTF::EBorder, UTraceModuleEfsrv::EFsSetModified, MODULEUID, Handle(), aName, I64LOW(aTime.Int64()), I64HIGH(aTime.Int64()) ); - + OstTraceExt3(TRACE_BORDER, EFSRV_EFSSETMODIFIED, "sess %x aTime %x:%x ", (TUint) Handle(), (TUint) I64HIGH(aTime.Int64()), (TUint) I64LOW(aTime.Int64()) ); + OstTraceData(TRACE_BORDER, EFSRV_EFSSETMODIFIED_EFILENAME, "FileName %S", aName.Ptr(), aName.Length()<<1); TInt r = SetEntry(aName,aTime,KEntryAttModified,0); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsSetModifiedReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSSETMODIFIEDRETURN, "r %d", r); return r; } @@ -2403,14 +2371,11 @@ readable with AllFiles capability or if matches the process' SID. */ { - TRACEMULT2(UTF::EBorder, UTraceModuleEfsrv::EFsEntry, MODULEUID, Handle(), aName); + OstTrace1(TRACE_BORDER, EFSRV_EFSENTRY, "sess %x", Handle()); + OstTraceData(TRACE_BORDER, EFSRV_EFSENTRY_EFILENAME, "FileName %S", aName.Ptr(), aName.Length()<<1); TPckg e(anEntry); TInt r = SendReceive(EFsEntry,TIpcArgs(&aName,&e)); - - TRACE5(UTF::EBorder, UTraceModuleEfsrv::EFsEntryReturn, MODULEUID, - r, anEntry.iAtt, - I64LOW(anEntry.iModified.Int64()), I64HIGH(anEntry.iModified.Int64()), - anEntry.iSize); + OstTraceExt5(TRACE_BORDER, EFSRV_EFSENTRYRETURN, "r %d att %x modified %x:%x size %d", (TUint) r, (TUint) anEntry.iAtt, (TUint) I64HIGH(anEntry.iModified.Int64()), (TUint) I64LOW(anEntry.iModified.Int64()), (TUint) anEntry.iSize); return r; } @@ -2450,16 +2415,12 @@ @see KEntryAttVolume */ { - TRACEMULT6(UTF::EBorder, UTraceModuleEfsrv::EFsSetEntry, MODULEUID, - Handle(), aName, - I64LOW(aTime.Int64()), I64HIGH(aTime.Int64()), - aSetAttMask, aClearAttMask); - + OstTraceExt5(TRACE_BORDER, EFSRV_EFSSETENTRY, "sess %x aTime %x:%x aSetAttMask %x aClearAttMask %x", (TUint) Handle(), (TUint) I64HIGH(aTime.Int64()), (TUint) I64LOW(aTime.Int64()), (TUint) aSetAttMask, (TUint) aClearAttMask); + OstTraceData(TRACE_BORDER, EFSRV_EFSSETENTRY_EFILENAME, "FileName %S", aName.Ptr(), aName.Length()<<1); __ASSERT_ALWAYS((aSetAttMask&aClearAttMask)==0,Panic(EAttributesIllegal)); TPtrC8 timeBuf((TUint8*)&aTime,sizeof(TTime)); TInt r = SendReceive(EFsSetEntry,TIpcArgs(&aName,&timeBuf,aSetAttMask,aClearAttMask)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsSetEntryReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSSETENTRYRETURN, "r %d", r); return r; } @@ -2496,15 +2457,14 @@ */ EFSRV_EXPORT_C TInt RFs::ReadFileSection(const TDesC& aName,TInt64 aPos,TDes8& aDes,TInt aLength) const { - TRACEMULT5(UTF::EBorder, UTraceModuleEfsrv::EFsReadFileSection, MODULEUID, - Handle(), aName, I64LOW(aPos), I64HIGH(aPos), aLength); - + OstTraceExt4(TRACE_BORDER, EFSRV_EFSREADFILESECTION, "sess %x aPos %x:%x aLength %d", (TUint) Handle(), (TUint) I64HIGH(aPos), (TUint) I64LOW(aPos), aLength); + OstTraceData(TRACE_BORDER, EFSRV_EFSREADFILESECTION_EFILENAME, "FileName %S", aName.Ptr(), aName.Length()<<1); __ASSERT_ALWAYS(aPos>=0,Panic(EPosNegative)); #ifndef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API if(aPos > KMaxTInt) { - TRACE1(UTF::EBorder, UTraceModuleEfsrv::EFsReadFileSectionReturn, MODULEUID, KErrTooBig); + OstTrace1(TRACE_BORDER, EFSRV_EFSREADFILESECTIONRETURN1, "r %d", KErrTooBig); return KErrTooBig; } if((aPos + aLength) > KMaxTInt) @@ -2517,7 +2477,7 @@ else { aDes.Zero(); - TRACE1(UTF::EBorder, UTraceModuleEfsrv::EFsReadFileSectionReturn, MODULEUID, KErrNone); + OstTrace1(TRACE_BORDER, EFSRV_EFSREADFILESECTIONRETURN2, "r %d", KErrNone); return(KErrNone); } @@ -2533,19 +2493,17 @@ TPckgC pkPos(aPos); r = SendReceive(EFsReadFileSection|KIpcArgSlot2Desc,TIpcArgs(&aDes,&aName,&pkPos,aLength)); } - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsReadFileSectionReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSREADFILESECTIONRETURN3, "r %d", r); return r; } /** Maintained for BC - @internalTechnology */ EFSRV_EXPORT_C TInt RFs::ReadFileSection_RESERVED(const TDesC& aName,TInt aPos,TDes8& aDes,TInt aLength) const { - TRACEMULT5(UTF::EBorder, UTraceModuleEfsrv::EFsReadFileSection, MODULEUID, - Handle(), aName, aPos, 0, aLength); - + OstTraceExt3(TRACE_BORDER, EFSRV_EFSREADFILESECTION_RESERVED, "sess %x aPos %x aLength %d", (TUint) Handle(), (TUint) aPos, aLength); + OstTraceData(TRACE_BORDER, EFSRV_EFSREADFILESECTION_RESERVED_EFILENAME, "FileName %S", aName.Ptr(), aName.Length()<<1); __ASSERT_ALWAYS(aPos>=0,Panic(EPosNegative)); if (aLength) // Number of characters to read @@ -2555,15 +2513,14 @@ else { aDes.Zero(); - TRACE1(UTF::EBorder, UTraceModuleEfsrv::EFsReadFileSectionReturn, MODULEUID, KErrNone); + OstTrace1(TRACE_BORDER, EFSRV_EFSREADFILESECTION_RESERVED_RETURN1, "r %d", KErrNone); return(KErrNone); } __ASSERT_ALWAYS(aDes.MaxLength()>=aLength,Panic(EBadLength)); TInt r = SendReceive(EFsReadFileSection,TIpcArgs(&aDes,&aName,aPos,aLength)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsReadFileSectionReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSREADFILESECTION_RESERVED_RETURN2, "r %d", r); return r; } @@ -2578,11 +2535,11 @@ to the file server, and before any resources are opened. */ { - TRACE1(UTF::EBorder, UTraceModuleEfsrv::EFsResourceCountMarkStart, MODULEUID, Handle()); + OstTrace1(TRACE_BORDER, EFSRV_EFSRESOURCECOUNTMARKSTART, "sess %x", Handle()); RSessionBase::SendReceive(EFsResourceCountMarkStart); - TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFsResourceCountMarkStartReturn, MODULEUID); + OstTrace0(TRACE_BORDER, EFSRV_EFSRESOURCECOUNTMARKSTARTRETURN, ""); } @@ -2597,11 +2554,10 @@ count checking is not equal to the number of resources closed. */ { - TRACE1(UTF::EBorder, UTraceModuleEfsrv::EFsResourceCountMarkEnd, MODULEUID, Handle()); - + OstTrace1(TRACE_BORDER, EFSRV_EFSRESOURCECOUNTMARKEND, "sess %x", Handle()); RSessionBase::SendReceive(EFsResourceCountMarkEnd); - TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFsResourceCountMarkEndReturn, MODULEUID); + OstTrace0(TRACE_BORDER, EFSRV_EFSRESOURCECOUNTMARKENDRETURN, ""); } @@ -2618,14 +2574,12 @@ @return The number of resources currently open. */ { - TRACE1(UTF::EBorder, UTraceModuleEfsrv::EFsResourceCount, MODULEUID, Handle()); - + OstTrace1(TRACE_BORDER, EFSRV_EFSRESOURCECOUNT, "sess %x", Handle()); TInt count; TPckg pckg(count); SendReceive(EFsResourceCount,TIpcArgs(&pckg)); TInt r = *(TInt*)pckg.Ptr(); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsResourceCountReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSRESOURCECOUNTRETURN, "r %d", r); return r; } @@ -2664,10 +2618,10 @@ */ EFSRV_EXPORT_C TInt RFs::CheckDisk(const TDesC& aDrive) const { - TRACEMULT2(UTF::EBorder, UTraceModuleEfsrv::EFsCheckDisk, MODULEUID, Handle(), aDrive); + OstTrace1(TRACE_BORDER, EFSRV_EFSCHECKDISK, "sess %x", Handle()); + OstTraceData(TRACE_BORDER, EFSRV_EFSCHECKDISK_EDIRNAME, "Dir %S", aDrive.Ptr(), aDrive.Length()<<1); TInt r = SendReceive(EFsCheckDisk,TIpcArgs(&aDrive)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsCheckDiskReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSCHECKDISKRETURN, "r %d", r); return r; } @@ -2714,10 +2668,10 @@ Therefore, do not treat ScanDrive on removable media as a generic "disk repair utility". */ { - TRACEMULT2(UTF::EBorder, UTraceModuleEfsrv::EFsScanDrive, MODULEUID, Handle(), aDrive); + OstTrace1(TRACE_BORDER, EFSRV_EFSSCANDRIVE, "sess %x", Handle()); + OstTraceData(TRACE_BORDER, EFSRV_EFSSCANDRIVE_EDIRNAME, "Dir %S", aDrive.Ptr(), aDrive.Length()<<1); TInt r = SendReceive(EFsScanDrive,TIpcArgs(&aDrive)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsScanDriveReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSSCANDRIVERETURN, "r %d", r); return r; } @@ -2746,10 +2700,11 @@ have the relevant SID capability AllFiles is required */ { - TRACEMULT2(UTF::EBorder, UTraceModuleEfsrv::EFsGetShortName, MODULEUID, Handle(), aLongName); + OstTrace1(TRACE_BORDER, EFSRV_EFSGETSHORTNAME, "sess %x", Handle()); + OstTraceData(TRACE_BORDER, EFSRV_EFSGETSHORTNAME_ELONGNAME, "LongName %S", aLongName.Ptr(), aLongName.Length()<<1); TInt r = SendReceive(EFsGetShortName,TIpcArgs(&aLongName,&aShortName)); - - TRACERETMULT2(UTF::EBorder, UTraceModuleEfsrv::EFsGetShortNameReturn, MODULEUID, r, aShortName); + OstTraceData(TRACE_BORDER, EFSRV_EFSGETSHORTNAME_ESHORTNAME, "ShortName %S", aShortName.Ptr(), aShortName.Length()<<1); + OstTrace1(TRACE_BORDER, EFSRV_EFSGETSHORTNAMERETURN, "r %d", r); return r; } @@ -2778,10 +2733,11 @@ */ { - TRACEMULT2(UTF::EBorder, UTraceModuleEfsrv::EFsGetLongName, MODULEUID, Handle(), aShortName); + OstTrace1(TRACE_BORDER, EFSRV_EFSGETLONGNAME, "sess %x", Handle()); + OstTraceData(TRACE_BORDER, EFSRV_EFSGETLONGNAME_ESHORTNAME, "ShortName %S", aShortName.Ptr(), aShortName.Length()<<1); TInt r = SendReceive(EFsGetLongName,TIpcArgs(&aShortName,&aLongName)); - - TRACERETMULT2(UTF::EBorder, UTraceModuleEfsrv::EFsGetLongNameReturn, MODULEUID, r, aLongName); + OstTraceData(TRACE_BORDER, EFSRV_EFSGETLONGNAME_ELONGNAME, "LongName %S", aLongName.Ptr(), aLongName.Length()<<1); + OstTrace1(TRACE_BORDER, EFSRV_EFSGETLONGNAMERETURN, "r %d", r); return r; } @@ -2814,11 +2770,11 @@ @see RFs::Replace */ { - TRACEMULT2(UTF::EBorder, UTraceModuleEfsrv::EFsIsFileOpen, MODULEUID, Handle(), aFileName); + OstTrace1(TRACE_BORDER, EFSRV_EFSISFILEOPEN, "sess %x", Handle()); + OstTraceData(TRACE_BORDER, EFSRV_EFSISFILEOPEN_EFILENAME, "FileName %S", aFileName.Ptr(), aFileName.Length()<<1); TPckg b(anAnswer); TInt r = SendReceive(EFsIsFileOpen,TIpcArgs(&aFileName,&b)); - - TRACERET2(UTF::EBorder, UTraceModuleEfsrv::EFsIsFileOpenReturn, MODULEUID, r, anAnswer); + OstTraceExt2(TRACE_BORDER, EFSRV_EFSISFILEOPENRETURN, "r %d anAnswer %d", (TUint) r, (TUint) anAnswer); return r; } @@ -2850,14 +2806,12 @@ @return True if notification in effect, false if not. */ { - TRACE1(UTF::EBorder, UTraceModuleEfsrv::EFsGetNotifyUser, MODULEUID, Handle()); - + OstTrace1(TRACE_BORDER, EFSRV_EFSGETNOTIFYUSER, "sess %x", Handle()); TInt notifyUser; TPckg pckgNotify(notifyUser); SendReceive(EFsGetNotifyUser,TIpcArgs(&pckgNotify)); TBool r = notifyUser; - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsGetNotifyUserReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSGETNOTIFYUSERRETURN, "r %d", r); return r; } @@ -2874,10 +2828,10 @@ EFalse, for no notification. */ { - TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFsSetNotifyUser, MODULEUID, Handle(), aValue); + OstTraceExt2(TRACE_BORDER, EFSRV_EFSSETNOTIFYUSER, "sess %x aValue %d", (TUint) Handle(), (TUint) aValue); SendReceive(EFsSetNotifyUser,TIpcArgs(aValue)); - TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFsSetNotifyUserReturn, MODULEUID); + OstTrace0(TRACE_BORDER, EFSRV_EFSSETNOTIFYUSERRETURN, ""); } @@ -2907,8 +2861,8 @@ */ { - TRACEMULT2(UTF::EBorder, UTraceModuleEfsrv::EFsIsFileInRom, MODULEUID, Handle(), aFileName); - + OstTrace1(TRACE_BORDER, EFSRV_EFSISFILEINROM, "sess %x", Handle()); + OstTraceData(TRACE_BORDER, EFSRV_EFSISFILEINROM_EFILENAME, "FileName %S", aFileName.Ptr(), aFileName.Length()<<1); TPckgBuf start; TUint8* r; @@ -2917,7 +2871,7 @@ else r = start(); - TRACE1(UTF::EBorder, UTraceModuleEfsrv::EFsIsFileInRomReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSISFILEINROMRETURN, "r %d", r); return r; } @@ -2957,7 +2911,8 @@ */ EFSRV_EXPORT_C TBool RFs::IsValidName(const TDesC& aFileName) const { - TRACEMULT2(UTF::EBorder, UTraceModuleEfsrv::EFsIsValidName1, MODULEUID, Handle(), aFileName); + OstTrace1(TRACE_BORDER, EFSRV_EFSISVALIDNAME1, "sess %x", Handle()); + OstTraceData(TRACE_BORDER, EFSRV_EFSISVALIDNAME1_EFILENAME, "FileName %S", aFileName.Ptr(), aFileName.Length()<<1); TBool returnInvalidChar=EFalse; TPckg bPckg(returnInvalidChar); TBool b; @@ -2965,7 +2920,7 @@ b = EFalse; else b = ETrue; - TRACE1(UTF::EBorder, UTraceModuleEfsrv::EFsIsValidName1Return, MODULEUID, b); + OstTrace1(TRACE_BORDER, EFSRV_EFSISVALIDNAME1RETURN, "r %d", b); return b; } @@ -3008,7 +2963,8 @@ */ EFSRV_EXPORT_C TBool RFs::IsValidName(const TDesC& aFileName,TText& aBadChar) const { - TRACEMULT2(UTF::EBorder, UTraceModuleEfsrv::EFsIsValidName2, MODULEUID, Handle(), aFileName); + OstTrace1(TRACE_BORDER, EFSRV_EFSISVALIDNAME2, "sess %x", Handle()); + OstTraceData(TRACE_BORDER, EFSRV_EFSISVALIDNAME2_EFILENAME, "FileName %S", aFileName.Ptr(), aFileName.Length()<<1); TBool returnInvalidChar=ETrue; TPckg boolPckg(returnInvalidChar); TPckg textPckg(aBadChar); @@ -3017,7 +2973,7 @@ b = EFalse; else b = ETrue; - TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFsIsValidName2Return, MODULEUID, b, aBadChar); + OstTraceExt2(TRACE_BORDER, EFSRV_EFSISVALIDNAME2RETURN, "r %d aBadChar %x", (TUint) b, (TUint) aBadChar); return b; } /** @@ -3066,14 +3022,15 @@ */ EFSRV_EXPORT_C TBool RFs::IsValidName(const TDesC& aName, TNameValidParam& aParam ) { - TRACEMULT2(UTF::EBorder, UTraceModuleEfsrv::EFsIsValidName3, MODULEUID, Handle(), aName); + OstTrace1(TRACE_BORDER, EFSRV_EFSISVALIDNAME3, "sess %x", Handle()); + OstTraceData(TRACE_BORDER, EFSRV_EFSISVALIDNAME3_EFILENAME, "FileName %S", aName.Ptr(), aName.Length()<<1); TPckg paramPckg(aParam); TBool b; if (SendReceive(EFsIsValidName,TIpcArgs(&aName,NULL,NULL,¶mPckg))!=KErrNone) b = EFalse; else b = ETrue; - TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFsIsValidName3Return, MODULEUID, b, aParam.ErrorCode()); + OstTraceExt2(TRACE_BORDER, EFSRV_EFSISVALIDNAME3RETURN, "r %d err %d", (TUint) b, (TUint) aParam.ErrorCode()); return b; } @@ -3099,10 +3056,10 @@ @see TDriveNumber */ { - TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFsGetDriveName, MODULEUID, Handle(), aDrive); + OstTraceExt2(TRACE_BORDER, EFSRV_EFSGETDRIVENAME, "sess %x aDrive %d", (TUint) Handle(), (TUint) aDrive); TInt r = SendReceive(EFsGetDriveName,TIpcArgs(aDrive,&aDriveName)); - - TRACERETMULT2(UTF::EBorder, UTraceModuleEfsrv::EFsGetDriveNameReturn, MODULEUID, r, aDriveName); + OstTraceData(TRACE_BORDER, EFSRV_EFSGETDRIVENAME_EDRIVENAME, "DriveName %S", aDriveName.Ptr(), aDriveName.Length()<<1); + OstTrace1(TRACE_BORDER, EFSRV_EFSGETDRIVENAMERETURN, "r %d", r); return r; } @@ -3130,10 +3087,10 @@ */ { - TRACEMULT3(UTF::EBorder, UTraceModuleEfsrv::EFsSetDriveName, MODULEUID, Handle(), aDrive, aDriveName); + OstTraceExt2(TRACE_BORDER, EFSRV_EFSSETDRIVENAME, "sess %x aDrive %d", (TUint) Handle(), (TUint) aDrive); + OstTraceData(TRACE_BORDER, EFSRV_EFSSETDRIVENAME_EDRIVENAME, "DriveName %S", aDriveName.Ptr(), aDriveName.Length()<<1); TInt r = SendReceive(EFsSetDriveName,TIpcArgs(aDrive,&aDriveName)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsSetDriveNameReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSSETDRIVENAMERETURN, "r %d", r); return r; } @@ -3164,10 +3121,9 @@ */ { - TRACE3(UTF::EBorder, UTraceModuleEfsrv::EFsLockDrive, MODULEUID, Handle(), aDrv, aStore); + OstTraceExt3(TRACE_BORDER, EFSRV_EFSLOCKDRIVE, "sess %x aDrv %d aStore %d", (TUint) Handle(), (TUint) aDrv, (TUint) aStore); TInt r = SendReceive(EFsLockDrive,TIpcArgs(aDrv,&aOld,&aNew,aStore)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsLockDriveReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSLOCKDRIVERETURN, "r %d", r); return r; } @@ -3196,10 +3152,9 @@ */ { - TRACE3(UTF::EBorder, UTraceModuleEfsrv::EFsUnlockDrive, MODULEUID, Handle(), aDrive, aStore); + OstTraceExt3(TRACE_BORDER, EFSRV_EFSUNLOCKDRIVE, "sess %x aDrv %d aStore %d", (TUint) Handle(), (TUint) aDrive, (TUint) aStore); TInt r = SendReceive(EFsUnlockDrive,TIpcArgs(aDrive,&aPassword,aStore)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsUnlockDriveReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSUNLOCKDRIVERETURN, "r %d", r); return r; } @@ -3225,10 +3180,9 @@ */ { - TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFsClearPassword, MODULEUID, Handle(), aDrv); + OstTraceExt2(TRACE_BORDER, EFSRV_EFSCLEARPASSWORD, "sess %x aDrv %d", (TUint) Handle(), (TUint) aDrv); TInt r = SendReceive(EFsClearPassword,TIpcArgs(aDrv,&aPswd)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsClearPasswordReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSCLEARPASSWORDRETURN, "r %d", r); return r; } @@ -3253,10 +3207,9 @@ */ { - TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFsErasePassword, MODULEUID, Handle(), aDrv); + OstTraceExt2(TRACE_BORDER, EFSRV_EFSERASEPASSWORD, "sess %x aDrv %d", (TUint) Handle(), (TUint) aDrv); TInt r = SendReceive(EFsErasePassword,TIpcArgs(aDrv)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsErasePasswordReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSERASEPASSWORDRETURN, "r %d", r); return r; } @@ -3273,11 +3226,11 @@ // Notify file server that startup initialisation has been completed // { - TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFsStartupInitComplete, MODULEUID, Handle(), &aStat); + OstTraceExt2(TRACE_BORDER, EFSRV_EFSSTARTUPINITCOMPLETE, "sess %x status %x", (TUint) Handle(), (TUint) &aStat); aStat=KRequestPending; RSessionBase::SendReceive(EFsStartupInitComplete,aStat); - TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFsStartupInitCompleteReturn, MODULEUID); + OstTrace0(TRACE_BORDER, EFSRV_EFSSTARTUPINITCOMPLETERETURN, ""); } @@ -3288,11 +3241,11 @@ // Set the local drive mapping // { - TRACEMULT2(UTF::EBorder, UTraceModuleEfsrv::EFsSetLocalDriveMapping, MODULEUID, Handle(), aMapping); - + OstTrace1(TRACE_BORDER, EFSRV_EFSSETLOCALDRIVEMAPPING, "sess %x", Handle()); + + OstTraceData( TRACE_BORDER, EFSRV_EFSSETLOCALDRIVEMAPPING_ELOCALDRIVEMAPPING, "aMapping %{int32[]}", aMapping.Ptr(), aMapping.Length()); TInt r = SendReceive(EFsSetLocalDriveMapping,TIpcArgs(&aMapping)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsSetLocalDriveMappingReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSSETLOCALDRIVEMAPPINGRETURN, "r %d", r); return r; } @@ -3314,10 +3267,9 @@ */ EFSRV_EXPORT_C TInt RFs::FinaliseDrive(TInt aDriveNo, TFinaliseDrvMode aMode) const { - TRACE3(UTF::EBorder, UTraceModuleEfsrv::EFsFinaliseDrive, MODULEUID, Handle(), aDriveNo, aMode); + OstTraceExt3(TRACE_BORDER, EFSRV_EFSFINALISEDRIVE, "sess %x aDriveNo %d aMode %d", (TUint) Handle(), (TUint) aDriveNo, (TUint) aMode); TInt r = SendReceive(EFsFinaliseDrive,TIpcArgs(aDriveNo, (TInt)aMode)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsFinaliseDriveReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSFINALISEDRIVERETURN, "r %d", r); return r; } @@ -3333,7 +3285,7 @@ */ EFSRV_EXPORT_C TInt RFs::FinaliseDrives() { - TRACE1(UTF::EBorder, UTraceModuleEfsrv::EFsFinaliseDrives, MODULEUID, Handle()); + OstTrace1(TRACE_BORDER, EFSRV_EFSFINALISEDRIVES, "sess %x", Handle()); TInt nRes; TDriveList driveList; TDriveInfo driveInfo; @@ -3341,7 +3293,7 @@ nRes=DriveList(driveList); if(nRes != KErrNone) { - TRACE1(UTF::EBorder, UTraceModuleEfsrv::EFsFinaliseDrivesReturn, MODULEUID, nRes); + OstTrace1(TRACE_BORDER, EFSRV_EFSFINALISEDRIVESRETURN1, "r %d", nRes); return nRes; //-- unable to obtain drives list } @@ -3363,7 +3315,7 @@ } - TRACE1(UTF::EBorder, UTraceModuleEfsrv::EFsFinaliseDrivesReturn, MODULEUID, KErrNone); + OstTrace1(TRACE_BORDER, EFSRV_EFSFINALISEDRIVESRETURN2, "r %d", KErrNone); return KErrNone; } @@ -3390,10 +3342,11 @@ @capability DiskAdmin */ { - TRACEMULT4(UTF::EBorder, UTraceModuleEfsrv::EFsSwapFileSystem, MODULEUID, Handle(), aOldFileSystemName, aNewFileSystemName, aDrive); + OstTraceExt2(TRACE_BORDER, EFSRV_EFSSWAPFILESYSTEM, "sess %x aDrive %d", (TUint) Handle(), (TUint) aDrive); + OstTraceData(TRACE_BORDER, EFSRV_EFSSWAPFILESYSTEM_EOLDNAME, "OldName %S", aOldFileSystemName.Ptr(), aOldFileSystemName.Length()<<1); + OstTraceData(TRACE_BORDER, EFSRV_EFSSWAPFILESYSTEM_ENEWNAME, "NewName %S", aNewFileSystemName.Ptr(), aNewFileSystemName.Length()<<1); TInt r = SendReceive(EFsSwapFileSystem,TIpcArgs(&aNewFileSystemName,aDrive,&aOldFileSystemName)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsSwapFileSystemReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSSWAPFILESYSTEMRETURN, "r %d", r); return r; } @@ -3418,11 +3371,10 @@ @capability DiskAdmin */ { - TRACEMULT5(UTF::EBorder, UTraceModuleEfsrv::EFsAddCompositeMount, MODULEUID, - Handle(), aFileSystemName, aLocalDriveToMount, aCompositeDrive, aSync); + OstTraceExt4(TRACE_BORDER, EFSRV_EFSADDCOMPOSITEMOUNT, "sess %x aLocalDriveToMount %d aCompositeDrive %d aSync %d", (TUint) Handle(), aLocalDriveToMount, aCompositeDrive, aSync); + OstTraceData(TRACE_BORDER, EFSRV_EFSADDCOMPOSITEMOUNT_EFILESYSTEMNAME, "FileSystemName %S", aFileSystemName.Ptr(), aFileSystemName.Length()<<1); TInt r = SendReceive(EFsAddCompositeMount,TIpcArgs(&aFileSystemName,aLocalDriveToMount,aCompositeDrive,aSync)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsAddCompositeMountReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSADDCOMPOSITEMOUNTRETURN, "r %d", r); return r; } @@ -3461,10 +3413,9 @@ any of the possible error return codes from TDrive::Volume() */ { - TRACE3(UTF::EBorder, UTraceModuleEfsrv::EFsReserveDriveSpace, MODULEUID, Handle(), aDriveNo, aSpace); + OstTraceExt3(TRACE_BORDER, EFSRV_EFSRESERVEDRIVESPACE, "sess %x aDriveNo %d aSpace %d", (TUint) Handle(), (TUint) aDriveNo, (TUint) aSpace); TInt r = SendReceive(EFsReserveDriveSpace, TIpcArgs(aDriveNo, aSpace)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsReserveDriveSpaceReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSRESERVEDRIVESPACERETURN, "r %d", r); return r; } @@ -3482,10 +3433,9 @@ KErrPermissionDenied if the drive has no spare reserved space */ { - TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFsGetReserveAccess, MODULEUID, Handle(), aDriveNo); + OstTraceExt2(TRACE_BORDER, EFSRV_EFSGETRESERVEACCESS, "sess %x aDriveNo %d", (TUint) Handle(), (TUint) aDriveNo); TInt r = SendReceive(EFsGetReserveAccess, TIpcArgs(aDriveNo)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsGetReserveAccessReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSGETRESERVEACCESSRETURN, "r %d", r); return r; } @@ -3499,10 +3449,9 @@ */ { - TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFsReleaseReserveAccess, MODULEUID, Handle(), aDriveNo); + OstTraceExt2(TRACE_BORDER, EFSRV_EFSRELEASERESERVEACCESS, "sess %x aDriveNo %d", (TUint) Handle(), (TUint) aDriveNo); TInt r = SendReceive(EFsReleaseReserveAccess, TIpcArgs(aDriveNo)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsReleaseReserveAccessReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSRELEASERESERVEACCESSRETURN, "r %d", r); return r; } @@ -3559,7 +3508,7 @@ */ EFSRV_EXPORT_C void RFs::NotifyDismount(TInt aDrive, TRequestStatus& aStat, TNotifyDismountMode aMode /*=EFsDismountRegisterClient*/) const { - TRACE4(UTF::EBorder, UTraceModuleEfsrv::EFsNotifyDismount, MODULEUID, Handle(), aDrive, &aStat, aMode); + OstTraceExt4(TRACE_BORDER, EFSRV_EFSNOTIFYDISMOUNT, "sess %x aDrive %d status %x aMode %d", (TUint) Handle(), aDrive, (TUint) &aStat, (TInt) aMode); aStat = KRequestPending; RSessionBase::SendReceive(EFsNotifyDismount, TIpcArgs(aDrive,aMode,&aStat), aStat); // This call is to synchronise with the driver thread as the corresponding cancel function (NotifyDismountCancel) @@ -3567,7 +3516,7 @@ // This call guarantees that the notify request has been added to queue. SendReceive(EFsSynchroniseDriveThread, TIpcArgs(aDrive)); - TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFsNotifyDismountReturn, MODULEUID); + OstTrace0(TRACE_BORDER, EFSRV_EFSNOTIFYDISMOUNTRETURN, ""); } @@ -3582,12 +3531,12 @@ */ EFSRV_EXPORT_C void RFs::NotifyDismountCancel(TRequestStatus& aStat) const { - TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFsNotifyDismountCancel1, MODULEUID, Handle(), &aStat); + OstTraceExt2(TRACE_BORDER, EFSRV_EFSNOTIFYDISMOUNTCANCEL1, "sess %x status %x", (TUint) Handle(), (TUint) &aStat); if (aStat == KRequestPending) SendReceive(EFsNotifyDismountCancel, TIpcArgs(&aStat)); - TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFsNotifyDismountCancel1Return, MODULEUID); + OstTrace0(TRACE_BORDER, EFSRV_EFSNOTIFYDISMOUNTCANCEL1RETURN, ""); } @@ -3599,11 +3548,10 @@ */ EFSRV_EXPORT_C void RFs::NotifyDismountCancel() const { - TRACE1(UTF::EBorder, UTraceModuleEfsrv::EFsNotifyDismountCancel2, MODULEUID, Handle()); - + OstTrace1(TRACE_BORDER, EFSRV_EFSNOTIFYDISMOUNTCANCEL2, "sess %x", Handle()); SendReceive(EFsNotifyDismountCancel, TIpcArgs(NULL)); - TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFsNotifyDismountCancel2Return, MODULEUID); + OstTrace0(TRACE_BORDER, EFSRV_EFSNOTIFYDISMOUNTCANCEL2RETURN, ""); } @@ -3623,10 +3571,9 @@ */ EFSRV_EXPORT_C TInt RFs::AllowDismount(TInt aDrive) const { - TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFsAllowDismount, MODULEUID, Handle(), aDrive); + OstTraceExt2(TRACE_BORDER, EFSRV_EFSALLOWDISMOUNT, "sess %x aDrive %d", (TUint) Handle(), (TUint) aDrive); TInt r = SendReceive(EFsAllowDismount, TIpcArgs(aDrive)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsAllowDismountReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSALLOWDISMOUNTRETURN, "r %d", r); return r; } @@ -3647,10 +3594,9 @@ @return KErrNone if successful, KErrPermissionDenied if called outside estart */ { - TRACE4(UTF::EBorder, UTraceModuleEfsrv::EFsSetStartupConfiguration, MODULEUID, Handle(), aCommand, aParam1, aParam2); + OstTraceExt4(TRACE_BORDER, EFSRV_EFSSETSTARTUPCONFIGURATION, "sess %x aCommand %d aParam1 %x aParam2 %x", (TUint) Handle(), aCommand, (TUint) aParam1, (TUint) aParam2); TInt r = SendReceive(EFsSetStartupConfiguration, TIpcArgs(aCommand,aParam1,aParam2)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsSetStartupConfigurationReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSSETSTARTUPCONFIGURATIONRETURN, "r %d", r); return r; } @@ -3670,10 +3616,9 @@ @see RFs::NotifyChange */ { - TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFsSetNotifyChange, MODULEUID, Handle(), aNotifyChange); + OstTraceExt2(TRACE_BORDER, EFSRV_EFSSETNOTIFYCHANGE, "sess %x aNotifyChange %d", (TUint) Handle(), (TUint) aNotifyChange); TInt r = SendReceive(EFsSetSessionFlags, TIpcArgs(aNotifyChange ? EFsSessionNotifyChange: 0, aNotifyChange ? 0 : EFsSessionNotifyChange)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsSetNotifyChangeReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSSETNOTIFYCHANGERETURN, "r %d", r); return r; } @@ -3707,10 +3652,9 @@ @capability KDiskAdmin */ { - TRACE3(UTF::EBorder, UTraceModuleEfsrv::EFsInitialisePropertiesFile, MODULEUID, Handle(), aPtr.Ptr(), aPtr.Length()); + OstTraceExt3(TRACE_BORDER, EFSRV_EFSINITIALISEPROPERTIESFILE, "sess %x filePtr %x fileLen %d", (TUint) Handle(), (TUint) aPtr.Ptr(), (TUint) aPtr.Length()); TInt r = SendReceive(EFsInitialisePropertiesFile, TIpcArgs(aPtr.Ptr(), aPtr.Length(), ETrue)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsInitialisePropertiesFileReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSINITIALISEPROPERTIESFILERETURN, "r %d", r); return r; } @@ -3729,10 +3673,9 @@ @see TVolumeIOParamInfo */ { - TRACE3(UTF::EBorder, UTraceModuleEfsrv::EFsQueryVolumeInfoExt, MODULEUID, Handle(), aDrive, aCommand); + OstTraceExt3(TRACE_BORDER, EFSRV_EFSQUERYVOLUMEINFOEXT, "sess %x aDrive %d aCommand %d", (TUint) Handle(), (TUint) aDrive, (TUint) aCommand); TInt r = SendReceive(EFsQueryVolumeInfoExt, TIpcArgs(aDrive, aCommand, &aInfo)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsQueryVolumeInfoExtReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSQUERYVOLUMEINFOEXTRETURN, "r %d", r); return r; } @@ -3751,8 +3694,7 @@ @return KErrNone if successful; otherwise, another system wide error code is returned. */ { - TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFsVolumeIOParam, MODULEUID, Handle(), aDrive); - + OstTraceExt2(TRACE_BORDER, EFSRV_EFSVOLUMEIOPARAM, "sess %x aDrive %d", (TUint) Handle(), (TUint) aDrive); TInt r = KErrNone; if (!IsValidDrive(aDrive)) @@ -3765,9 +3707,8 @@ if (r == KErrNone) aParamInfo = infoPckg(); } - - TRACE5(UTF::EBorder, UTraceModuleEfsrv::EFsVolumeIOParamReturn, MODULEUID, - r, aParamInfo.iBlockSize, aParamInfo.iClusterSize, aParamInfo.iRecReadBufSize, aParamInfo.iRecWriteBufSize); + OstTraceExt5(TRACE_BORDER, EFSRV_EFSVOLUMEIOPARAMRETURN, "r %d iBlockSize %d iClusterSize %d iRecReadBufSize %d iRecWriteBufSize %d", (TUint) r, (TUint) aParamInfo.iBlockSize, (TUint) aParamInfo.iClusterSize, (TUint) aParamInfo.iRecReadBufSize, (TUint) aParamInfo.iRecWriteBufSize); + return r; } @@ -3796,7 +3737,7 @@ */ EFSRV_EXPORT_C TInt RFs::FileSystemSubType(TInt aDrive, TDes& aName) const { - TRACEMULT3(UTF::EBorder, UTraceModuleEfsrv::EFsFileSystemSubType, MODULEUID, Handle(), aDrive, aName); + OstTraceExt2(TRACE_BORDER, EFSRV_EFSFILESYSTEMSUBTYPE, "sess %x aDrive %d", (TUint) Handle(), (TUint) aDrive); TInt r = KErrNone; @@ -3810,8 +3751,11 @@ if (r == KErrNone || r == KErrNotSupported) aName = namePckg(); } - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsFileSystemSubTypeReturn, MODULEUID, r); + + OstTraceData(TRACE_BORDER, EFSRV_EFSFILESYSTEMSUBTYPE_EFILESYSTEMNAME, "FileSystemName %S", aName.Ptr(), aName.Length()<<1); + + OstTrace1(TRACE_BORDER, EFSRV_EFSFILESYSTEMSUBTYPERETURN, "r %d", r); + return r; } @@ -3894,14 +3838,21 @@ return SendReceive(EFsDismountProxyDrive,TIpcArgs(aProxyDriveNumber)); } + +/** +Closes the file server session. + +NB This function was added to support tracing and was not present in earlier versions of Symbian OS. +For this reason no extra funcitonality should be added to this function. + +*/ EFSRV_EXPORT_C void RFs::Close() { - TRACE1(UTF::EBorder, UTraceModuleEfsrv::EFsClose, MODULEUID, Handle()); - RFTRACE_CLOSE; + OstTrace1(TRACE_BORDER, EFSRV_EFSCLOSE, "sess %x", Handle()); RSessionBase::Close(); - TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFsCloseReturn, MODULEUID); + OstTrace0(TRACE_BORDER, EFSRV_EFSCLOSERETURN, ""); } diff -r 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/fileserver/sfsrv/cl_dir.cpp --- a/userlibandfileserver/fileserver/sfsrv/cl_dir.cpp Thu May 27 14:17:14 2010 +0300 +++ b/userlibandfileserver/fileserver/sfsrv/cl_dir.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -17,6 +17,10 @@ #include "cl_std.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "cl_dirTraces.h" +#endif + @@ -48,13 +52,14 @@ */ { - TRACEMULT5(UTF::EBorder, UTraceModuleEfsrv::EDirOpen1, MODULEUID, - Session().Handle(), aName, aUidType[0].iUid, aUidType[1].iUid, aUidType[2].iUid); + OstTraceExt4(TRACE_BORDER, EFSRV_EDIROPEN1, "sess %x aUidType0 %x aUidType1 %x aUidType2 %x", (TUint) Session().Handle(), (TUint) aUidType[0].iUid, (TUint) aUidType[1].iUid, (TUint) aUidType[2].iUid); + OstTraceData(TRACE_BORDER, EFSRV_EDIROPEN1_EDIRNAME, "Dir %S", aName.Ptr(), aName.Length()<<1); TPckgC pckgUid(aUidType); TInt r = CreateSubSession(aFs,EFsDirOpen,TIpcArgs(&aName,KEntryAttAllowUid,&pckgUid)); - TRACERET2(UTF::EBorder, UTraceModuleEfsrv::EDirOpen1Return, MODULEUID, r, SubSessionHandle()); + OstTraceExt2(TRACE_BORDER, EFSRV_EDIROPEN1RETURN, "r %d subs %x", (TUint) r, (TUint) SubSessionHandle()); + return r; } @@ -92,13 +97,15 @@ */ { - TRACEMULT3(UTF::EBorder, UTraceModuleEfsrv::EDirOpen2, MODULEUID, Session().Handle(), aName, anAttMask); + OstTraceExt2(TRACE_BORDER, EFSRV_EDIROPEN2, "sess %x anAttMask %x", (TUint) Session().Handle(), (TUint) anAttMask); + OstTraceData(TRACE_BORDER, EFSRV_EDIROPEN2_EDIRNAME, "Dir %S", aName.Ptr(), aName.Length()<<1); TUidType uidType(TUid::Null(),TUid::Null(),TUid::Null()); TPckgC pckgUid(uidType); TInt r = CreateSubSession(aFs,EFsDirOpen,TIpcArgs(&aName,anAttMask,&pckgUid)); - TRACERET2(UTF::EBorder, UTraceModuleEfsrv::EDirOpen2Return, MODULEUID, r, SubSessionHandle()); + OstTraceExt2(TRACE_BORDER, EFSRV_EDIROPEN2RETURN, "r %d subs %x", (TUint) r, (TUint) SubSessionHandle()); + return r; } @@ -112,11 +119,11 @@ it completed successfully or not. */ { - TRACE2(UTF::EBorder, UTraceModuleEfsrv::EDirClose, MODULEUID, Session().Handle(), SubSessionHandle()); + OstTraceExt2(TRACE_BORDER, EFSRV_EDIRCLOSE, "sess %x subs %x", (TUint) Session().Handle(), (TUint) SubSessionHandle()); CloseSubSession(EFsDirSubClose); - TRACE0(UTF::EBorder, UTraceModuleEfsrv::EDirCloseReturn, MODULEUID); + OstTrace0(TRACE_BORDER, EFSRV_EDIRCLOSERETURN, ""); } @@ -140,12 +147,13 @@ (e.g. KErrCorrupt, KErrNoMemory etc). */ { - TRACE2(UTF::EBorder, UTraceModuleEfsrv::EDirRead1, MODULEUID, Session().Handle(), SubSessionHandle()); + OstTraceExt2(TRACE_BORDER, EFSRV_EDIRREAD1, "sess %x subs %x", (TUint) Session().Handle(), (TUint) SubSessionHandle()); anArray.iCount=KCountNeeded; TInt r = SendReceive(EFsDirReadPacked,TIpcArgs(&anArray.iBuf)); - TRACERET2(UTF::EBorder, UTraceModuleEfsrv::EDirRead1Return, MODULEUID, r, anArray.Count()); + OstTraceExt2(TRACE_BORDER, EFSRV_EDIRREAD1RETURN, "r %d count %d", (TUint) r, (TUint) anArray.Count()); + return r; } @@ -171,12 +179,12 @@ (e.g. KErrCorrupt, KErrNoMemory etc). */ { - TRACE3(UTF::EBorder, UTraceModuleEfsrv::EDirRead2, MODULEUID, Session().Handle(), SubSessionHandle(), &aStatus); + OstTraceExt3(TRACE_BORDER, EFSRV_EDIRREAD2, "sess %x subs %x status %x", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) &aStatus); anArray.iCount=KCountNeeded; RSubSessionBase::SendReceive(EFsDirReadPacked,TIpcArgs(&anArray.iBuf),aStatus); - TRACE0(UTF::EBorder, UTraceModuleEfsrv::EDirRead2Return, MODULEUID); + OstTrace0(TRACE_BORDER, EFSRV_EDIRREAD2RETURN, ""); } @@ -194,12 +202,13 @@ codes. */ { - TRACE2(UTF::EBorder, UTraceModuleEfsrv::EDirRead3, MODULEUID, Session().Handle(), SubSessionHandle()); + OstTraceExt2(TRACE_BORDER, EFSRV_EDIRREAD3, "sess %x subs %x", (TUint) Session().Handle(), (TUint) SubSessionHandle()); TPckg e(anEntry); TInt r = SendReceive(EFsDirReadOne,TIpcArgs(&e)); - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EDirRead3Return, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EDIRREAD3RETURN, "r %d", r); + return r; } @@ -218,9 +227,9 @@ error codes. */ { - TRACE3(UTF::EBorder, UTraceModuleEfsrv::EDirRead4, MODULEUID, Session().Handle(), SubSessionHandle(), &aStatus); + OstTraceExt3(TRACE_BORDER, EFSRV_EDIRREAD4, "sess %x subs %x status %x", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) &aStatus); RSubSessionBase::SendReceive(EFsDirReadOne,TIpcArgs(&anEntry),aStatus); - TRACE0(UTF::EBorder, UTraceModuleEfsrv::EDirRead4Return, MODULEUID); + OstTrace0(TRACE_BORDER, EFSRV_EDIRREAD4RETURN, ""); } diff -r 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/fileserver/sfsrv/cl_file.cpp --- a/userlibandfileserver/fileserver/sfsrv/cl_file.cpp Thu May 27 14:17:14 2010 +0300 +++ b/userlibandfileserver/fileserver/sfsrv/cl_file.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -16,7 +16,9 @@ // #include "cl_std.h" - +#ifdef OST_TRACE_COMPILER_IN_USE +#include "cl_fileTraces.h" +#endif static _LIT_SECURITY_POLICY_S1(KFileServerPolicy,KFileServerUidValue,ECapabilityTCB); EFSRV_EXPORT_C TInt RFile::Adopt(RFs& aFs, TInt aHandle) @@ -34,26 +36,23 @@ */ { - TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFileAdopt, MODULEUID, aFs.Handle(), aHandle); - + OstTraceExt2(TRACE_BORDER, EFSRV_EFILEADOPT, "sess %x subs %x", (TUint) aFs.Handle(), (TUint) aHandle); // duplicate the sub-session handle; don't panic if it's invalid. RFile file; TInt r = file.CreateSubSession(aFs, EFsFileDuplicate, TIpcArgs(aHandle, EFalse)); if (r == KErrArgument) { - TRACE1(UTF::EBorder, UTraceModuleEfsrv::EFileAdoptReturn, MODULEUID, KErrBadHandle); + OstTrace1(TRACE_BORDER, EFSRV_EFILEADOPTRETURN1, "r %d", KErrBadHandle); return KErrBadHandle; } else if (r != KErrNone) { - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileAdoptReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFILEADOPTRETURN2, "r %d", r); return r; } // adopt the duplicated handle r = CreateAutoCloseSubSession(aFs, EFsFileAdopt, TIpcArgs(file.SubSessionHandle(), KFileAdopt32)); - - TRACERET3(UTF::EBorder, UTraceModuleEfsrv::EFileAdoptReturn, MODULEUID, r, Session().Handle(), SubSessionHandle()); - + OstTraceExt3(TRACE_BORDER, EFSRV_EFILEADOPTRETURN3, "r %d sess %x subs %x", (TUint) r, (TUint) Session().Handle(), (TUint) SubSessionHandle()); return r; } @@ -77,19 +76,16 @@ error codes. */ { - TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFileAdoptFromServer, MODULEUID, aFsHandle, aFileHandle); - + OstTraceExt2(TRACE_BORDER, EFSRV_EFILEADOPTFROMSERVER, "sess %x subs %x", (TUint) aFsHandle, (TUint) aFileHandle); RFs fs; TInt r = fs.SetReturnedHandle(aFsHandle, KFileServerPolicy); if (r != KErrNone) { - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileAdoptFromServerReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFILEADOPTFROMSERVERRETURN1, "r %d", r); return r; } r = CreateAutoCloseSubSession(fs, EFsFileAdopt, TIpcArgs(aFileHandle, KFileAdopt32)); - - TRACERET3(UTF::EBorder, UTraceModuleEfsrv::EFileAdoptFromServerReturn, MODULEUID, r, Session().Handle(), SubSessionHandle()); - + OstTraceExt3(TRACE_BORDER, EFSRV_EFILEADOPTFROMSERVERRETURN2, "r %d sess %x subs %x", (TUint) r, (TUint) Session().Handle(), (TUint) SubSessionHandle()); return r; } @@ -130,7 +126,7 @@ else r = KErrArgument; -#ifdef SYMBIAN_FTRACE_ENABLE +#ifdef OST_TRACE_COMPILER_IN_USE TInt handle = NULL; if (aFsHandleIndex == 0) handle = aMsg.Int0(); @@ -140,12 +136,12 @@ handle = aMsg.Int2(); else if (aFsHandleIndex == 3) handle = aMsg.Int3(); - TRACE4(UTF::EBorder, UTraceModuleEfsrv::EFileAdoptFromClient, MODULEUID, handle, fileHandle, aFsHandleIndex, aFileHandleIndex); + OstTraceExt4(TRACE_BORDER, EFSRV_EFILEADOPTFROMCLIENT, "sess %x subs %x aFsHandleIndex %d aFileHandleIndex %d ", (TUint) handle, (TUint) fileHandle, (TUint) aFsHandleIndex, (TUint) aFileHandleIndex); #endif if (r != KErrNone) { - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileAdoptFromClientReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFILEADOPTFROMCLIENTRETURN1, "r %d", r); return r; } @@ -155,14 +151,12 @@ r = fs.Open(aMsg, aFsHandleIndex, KFileServerPolicy); if (r != KErrNone) { - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileAdoptFromClientReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFILEADOPTFROMCLIENTRETURN2, "r %d", r); return r; } r = CreateAutoCloseSubSession(fs, EFsFileAdopt, TIpcArgs(fileHandle, KFileAdopt32)); - - TRACERET3(UTF::EBorder, UTraceModuleEfsrv::EFileAdoptFromClientReturn, MODULEUID, r, Session().Handle(), SubSessionHandle()); - + OstTraceExt3(TRACE_BORDER, EFSRV_EFILEADOPTFROMCLIENTRETURN3, "r %d sess %x subs %x", (TUint) r, (TUint) Session().Handle(), (TUint) SubSessionHandle()); return r; } @@ -193,11 +187,10 @@ TInt r = User::GetTIntParameter(aFileHandleIndex, fileHandle); - TRACE3(UTF::EBorder, UTraceModuleEfsrv::EFileAdoptFromCreator, MODULEUID, fileHandle, aFsHandleIndex, aFileHandleIndex); - + OstTraceExt3(TRACE_BORDER, EFSRV_EFILEADOPTFROMCREATOR, "subs %x aFsHandleIndex %d aFileHandleIndex %d", (TUint) fileHandle, (TUint) aFsHandleIndex, (TUint) aFileHandleIndex); if (r != KErrNone) { - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileAdoptFromCreatorReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFILEADOPTFROMCREATORRETURN1, "r %d", r); return r; } @@ -208,14 +201,12 @@ r = fs.Open(aFsHandleIndex, KFileServerPolicy); if (r != KErrNone) { - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileAdoptFromCreatorReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFILEADOPTFROMCREATORRETURN2, "r %d", r); return r; } r = CreateAutoCloseSubSession(fs, EFsFileAdopt, TIpcArgs(fileHandle, KFileAdopt32)); - - TRACERET3(UTF::EBorder, UTraceModuleEfsrv::EFileAdoptFromCreatorReturn, MODULEUID, r, Session().Handle(), SubSessionHandle()); - + OstTraceExt3(TRACE_BORDER, EFSRV_EFILEADOPTFROMCREATORRETURN3, "r %d sess %x subs %x", (TUint) r, (TUint) Session().Handle(), (TUint) SubSessionHandle()); return r; } @@ -237,8 +228,7 @@ */ EFSRV_EXPORT_C TInt RFile::Duplicate(const RFile& aFile, TOwnerType aType) { - TRACE3(UTF::EBorder, UTraceModuleEfsrv::EFileDuplicate, MODULEUID, aFile.Session().Handle(), aFile.SubSessionHandle(), aType); - + OstTraceExt3(TRACE_BORDER, EFSRV_EFILEDUPLICATE, "sess %x subs %x aType %d", (TUint) aFile.Session().Handle(), (TUint) aFile.SubSessionHandle(), (TUint) aType); RFs fs; fs.SetHandle(aFile.Session().Handle()); @@ -247,7 +237,7 @@ TInt r = fs.Duplicate(RThread(), aType); if (r != KErrNone) { - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileDuplicateReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFILEDUPLICATERETURN1, "r %d", r); return r; } @@ -256,15 +246,14 @@ r = aFile.DuplicateHandle(dupSubSessionHandle); if (r != KErrNone) { - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileDuplicateReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFILEDUPLICATERETURN2, "r %d", r); return r; } // adopt the duplicated sub-session handle r = CreateAutoCloseSubSession(fs, EFsFileAdopt, TIpcArgs(dupSubSessionHandle, KFileDuplicate)); - TRACERET3(UTF::EBorder, UTraceModuleEfsrv::EFileDuplicateReturn, MODULEUID, r, Session().Handle(), SubSessionHandle()); - + OstTraceExt3(TRACE_BORDER, EFSRV_EFILEDUPLICATERETURN3, "r %d sess %x subs %x", (TUint) r, (TUint) Session().Handle(), (TUint) SubSessionHandle()); return r; } @@ -321,11 +310,10 @@ */ EFSRV_EXPORT_C TInt RFile::TransferToServer(TIpcArgs& aIpcArgs, TInt aFsHandleIndex, TInt aFileHandleIndex) const { - TRACE4(UTF::EBorder, UTraceModuleEfsrv::EFileTransferToServer, MODULEUID, Session().Handle(), SubSessionHandle(), aFsHandleIndex, aFileHandleIndex); - + OstTraceExt4(TRACE_BORDER, EFSRV_EFILETRANSFERTOSERVER, "sess %x subs %x aFsHandleIndex %d aFileHandleIndex %d", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) aFsHandleIndex, (TUint) aFileHandleIndex); if ((aFsHandleIndex < 0) || (aFsHandleIndex > (KMaxMessageArguments-2))) { - TRACE1(UTF::EBorder, UTraceModuleEfsrv::EFileTransferToServerReturn, MODULEUID, (TUint) KErrArgument); + OstTrace1(TRACE_BORDER, EFSRV_EFILETRANSFERTOSERVERRETURN1, "r %d", (TUint) KErrArgument); return KErrArgument; } @@ -336,8 +324,7 @@ aIpcArgs.Set(aFsHandleIndex, Session()); aIpcArgs.Set(aFileHandleIndex, dupSubSessionHandle); } - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileTransferToServerReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFILETRANSFERTOSERVERRETURN2, "r %d", r); return r; } @@ -368,11 +355,10 @@ */ EFSRV_EXPORT_C TInt RFile::TransferToClient(const RMessage2& aMsg, TInt aFileHandleIndex) const { - TRACE3(UTF::EBorder, UTraceModuleEfsrv::EFileTransferToClient, MODULEUID, Session().Handle(), SubSessionHandle(), aFileHandleIndex); - + OstTraceExt3(TRACE_BORDER, EFSRV_EFILETRANSFERTOCLIENT, "sess %x subs %x aFileHandleIndex %d", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) aFileHandleIndex); if (TUint(aFileHandleIndex) >= TUint(KMaxMessageArguments)) { - TRACE1(UTF::EBorder, UTraceModuleEfsrv::EFileTransferToClientReturn, MODULEUID, (TUint) KErrArgument); + OstTrace1(TRACE_BORDER, EFSRV_EFILETRANSFERTOCLIENTRETURN1, "r %d", (TUint) KErrArgument); return KErrArgument; } @@ -383,14 +369,13 @@ if (r != KErrNone) { - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileTransferToClientReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFILETRANSFERTOCLIENTRETURN2, "r %d", r); return r; } aMsg.Complete(Session()); - TRACE1(UTF::EBorder, UTraceModuleEfsrv::EFileTransferToClientReturn, MODULEUID, r); - + OstTrace1(TRACE_BORDER, EFSRV_EFILETRANSFERTOCLIENTRETURN3, "r %d", r); return r; } @@ -423,8 +408,7 @@ // NB slot 0 is reserved for the command line EFSRV_EXPORT_C TInt RFile::TransferToProcess(RProcess& aProcess, TInt aFsHandleIndex, TInt aFileHandleIndex) const { - TRACE4(UTF::EBorder, UTraceModuleEfsrv::EFileTransferToProcess, MODULEUID, Session().Handle(), SubSessionHandle(), aFsHandleIndex, aFileHandleIndex); - + OstTraceExt4(TRACE_BORDER, EFSRV_EFILETRANSFERTOPROCESS, "sess %x subs %x aFsHandleIndex %d aFileHandleIndex %d", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) aFsHandleIndex, (TUint) aFileHandleIndex); TInt dupSubSessionHandle; TInt r = DuplicateHandle(dupSubSessionHandle); @@ -433,9 +417,7 @@ if (r == KErrNone) r = aProcess.SetParameter(aFileHandleIndex, dupSubSessionHandle); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileTransferToProcessReturn, MODULEUID, r); - + OstTrace1(TRACE_BORDER, EFSRV_EFILETRANSFERTOPROCESSRETURN, "r %d", r); return r; } @@ -455,12 +437,10 @@ */ { - TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFileName, MODULEUID, Session().Handle(), SubSessionHandle()); - + OstTraceExt2(TRACE_BORDER, EFSRV_EFILEGETNAME, "sess %x subs %x", (TUint) Session().Handle(), (TUint) SubSessionHandle()); TInt r = SendReceive(EFsFileName, TIpcArgs(&aName)); - - TRACERETMULT2(UTF::EBorder, UTraceModuleEfsrv::EFileNameReturn, MODULEUID, r, aName); - + OstTraceData(TRACE_BORDER, EFSRV_EFILEGETNAME_EFILENAME, "FileName %S", aName.Ptr(), aName.Length()<<1); + OstTrace1(TRACE_BORDER, EFSRV_EFILEGETNAMERETURN, "r %d", r); return r; } @@ -480,12 +460,10 @@ */ { - TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFileFullName, MODULEUID, Session().Handle(), SubSessionHandle()); - + OstTraceExt2(TRACE_BORDER, EFSRV_EFILEFULLNAME, "sess %x subs %x", (TUint) Session().Handle(), (TUint) SubSessionHandle()); TInt r = SendReceive(EFsFileFullName, TIpcArgs(&aName)); - - TRACERETMULT2(UTF::EBorder, UTraceModuleEfsrv::EFileFullNameReturn, MODULEUID, r, aName); - + OstTraceData(TRACE_BORDER, EFSRV_EFILEFULLNAME_EFILENAME, "FileName %S", aName.Ptr(), aName.Length()<<1); + OstTrace1(TRACE_BORDER, EFSRV_EFILEFULLNAMERETURN, "r %d", r); return r; } @@ -540,13 +518,11 @@ */ { - TRACEMULT3(UTF::EBorder, UTraceModuleEfsrv::EFileOpen, MODULEUID, aFs.Handle(), aMode, aName); - + OstTraceExt2(TRACE_BORDER, EFSRV_EFILEOPEN, "sess %x mode %x", (TUint) aFs.Handle(), (TUint) aMode); + OstTraceData(TRACE_BORDER, EFSRV_EFILEOPEN_EFILENAME, "FileName %S", aName.Ptr(), aName.Length()<<1); aMode &= ~EFileBigFile; TInt r = CreateSubSession(aFs,EFsFileOpen,TIpcArgs(&aName,aMode)); - - TRACERET2(UTF::EBorder, UTraceModuleEfsrv::EFileOpenReturn, MODULEUID, r, SubSessionHandle()); - + OstTraceExt2(TRACE_BORDER, EFSRV_EFILEOPENRETURN, "r %d subs %x", (TUint) r, (TUint) SubSessionHandle()); return r; } @@ -564,22 +540,11 @@ no-operation. */ { - TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFileClose, MODULEUID, Session().Handle(), SubSessionHandle()); + OstTraceExt2(TRACE_BORDER, EFSRV_EFILECLOSE, "sess %x subs %x", (TUint) Session().Handle(), (TUint) SubSessionHandle()); -#if defined (SYMBIAN_FTRACE_ENABLE) && defined(__DLL__) - // Need to close the handle to the trace LDD if this is an auto-close subsession - // as these close their parent session by calling RHandleBase::Close(), i.e. they - // bypass RFs::Close() which would normally be responsible for closing the LDD - TInt h = Session().Handle() ^ CObjectIx::ENoClose; - if ( h != NULL && (!(h & CObjectIx::ENoClose)) ) - { - RFTRACE_CLOSE; - } -#endif - CloseSubSession(EFsFileSubClose); - TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFileCloseReturn, MODULEUID); + OstTrace0(TRACE_BORDER, EFSRV_EFILECLOSERETURN, ""); } @@ -623,13 +588,10 @@ */ { aMode &= ~EFileBigFile; - - TRACEMULT3(UTF::EBorder, UTraceModuleEfsrv::EFileCreate, MODULEUID, aFs.Handle(), aMode, aName); - + OstTraceExt2(TRACE_BORDER, EFSRV_EFILECREATE, "sess %x mode %x", (TUint) aFs.Handle(), (TUint) aMode); + OstTraceData(TRACE_BORDER, EFSRV_EFILECREATE_EFILENAME, "FileName %S", aName.Ptr(), aName.Length()<<1); TInt r = CreateSubSession(aFs,EFsFileCreate,TIpcArgs(&aName,aMode)); - - TRACERET2(UTF::EBorder, UTraceModuleEfsrv::EFileCreateReturn, MODULEUID, r, SubSessionHandle()); - + OstTraceExt2(TRACE_BORDER, EFSRV_EFILECREATERETURN, "r %d subs %x", (TUint) r, (TUint) SubSessionHandle()); return r; } @@ -680,10 +642,11 @@ */ { - TRACEMULT3(UTF::EBorder, UTraceModuleEfsrv::EFileReplace, MODULEUID, aFs.Handle(), aMode, aName); + OstTraceExt2(TRACE_BORDER, EFSRV_EFILEREPLACE, "sess %x mode %x", (TUint) aFs.Handle(), (TUint) aMode); + OstTraceData(TRACE_BORDER, EFSRV_EFILEREPLACE_EFILENAME, "FileName %S", aName.Ptr(), aName.Length()<<1); aMode &= ~EFileBigFile; TInt r = CreateSubSession(aFs,EFsFileReplace,TIpcArgs(&aName,aMode)); - TRACERET2(UTF::EBorder, UTraceModuleEfsrv::EFileReplaceReturn, MODULEUID, r, SubSessionHandle()); + OstTraceExt2(TRACE_BORDER, EFSRV_EFILEREPLACERETURN, "r %d subs %x", (TUint) r, (TUint) SubSessionHandle()); return r; } @@ -717,10 +680,13 @@ SID then AllFiles capability is required. */ { - TRACEMULT3(UTF::EBorder, UTraceModuleEfsrv::EFileTemp, MODULEUID, aFs.Handle(), aPath, aMode); + OstTraceExt2(TRACE_BORDER, EFSRV_EFILETEMP, "sess %x aMode %x", (TUint) aFs.Handle(), (TUint) aMode); + OstTraceData(TRACE_BORDER, EFSRV_EFILETEMP_EDIRNAME, "Dir %S", aPath.Ptr(), aPath.Length()<<1); aMode &= ~EFileBigFile; TInt r = CreateSubSession(aFs,EFsFileTemp,TIpcArgs(&aPath,aMode,&aName)); - TRACERETMULT3(UTF::EBorder, UTraceModuleEfsrv::EFileTempReturn, MODULEUID, r, SubSessionHandle(), aName); + OstTraceData(TRACE_BORDER, EFSRV_EFILETEMP_EFILENAME, "FileName %S", aName.Ptr(), aName.Length()<<1); + OstTraceExt2(TRACE_BORDER, EFSRV_EFILETEMPRETURN, "r %d subs %x", (TUint) r, (TUint) SubSessionHandle()); + return r; } @@ -748,12 +714,9 @@ @see TDesC8::Length */ { - TRACE3(UTF::EBorder, UTraceModuleEfsrv::EFileRead1, MODULEUID, Session().Handle(), SubSessionHandle(), aDes.MaxLength()); - + OstTraceExt3(TRACE_BORDER, EFSRV_EFILEREAD1, "sess %x subs %x desmaxlen %d", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) aDes.MaxLength()); TInt r = SendReceive(EFsFileRead,TIpcArgs(&aDes,aDes.MaxLength(),I64LOW(KCurrentPosition64))); - - TRACERET2(UTF::EBorder, UTraceModuleEfsrv::EFileRead1Return, MODULEUID, r, aDes.Length()); - + OstTraceExt2(TRACE_BORDER, EFSRV_EFILEREAD1RETURN, "r %d len %d", (TUint) r, (TUint) aDes.Length()); return r; } @@ -787,11 +750,10 @@ @see TDesC8::Length */ { - TRACE4(UTF::EBorder, UTraceModuleEfsrv::EFileRead2, MODULEUID, Session().Handle(), SubSessionHandle(), aDes.MaxLength(), &aStatus); - + OstTraceExt3(TRACE_BORDER, EFSRV_EFILEREAD2, "sess %x subs %x maxdeslen %d", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) aDes.MaxLength()); RSubSessionBase::SendReceive(EFsFileRead,TIpcArgs(&aDes,aDes.MaxLength(),I64LOW(KCurrentPosition64)),aStatus); - TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFileRead2Return, MODULEUID); + OstTrace0(TRACE_BORDER, EFSRV_EFILEREAD2RETURN, ""); } @@ -826,8 +788,7 @@ codes. */ { - TRACE3(UTF::EBorder, UTraceModuleEfsrv::EFileRead1, MODULEUID, Session().Handle(), SubSessionHandle(), aLength); - + OstTraceExt3(TRACE_BORDER, EFSRV_EFILEREAD5, "sess %x subs %x aLength %d", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) aLength); if (aLength==0) { aDes.Zero(); @@ -838,9 +799,7 @@ return(KErrOverflow); } TInt r = SendReceive(EFsFileRead,TIpcArgs(&aDes,aLength,I64LOW(KCurrentPosition64))); - - TRACERET2(UTF::EBorder, UTraceModuleEfsrv::EFileRead1Return, MODULEUID, r, aDes.Length()); - + OstTraceExt2(TRACE_BORDER, EFSRV_EFILEREAD5RETURN, "r %d len %d", (TUint) r, (TUint) aDes.Length()); return r; } @@ -880,8 +839,7 @@ otherwise one of the other system-wide error codes. */ { - TRACE4(UTF::EBorder, UTraceModuleEfsrv::EFileRead2, MODULEUID, Session().Handle(), SubSessionHandle(), aLength, &aStatus); - + OstTraceExt3(TRACE_BORDER, EFSRV_EFILEREAD6, "sess %x subs %x aLength %d", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) aLength); if (aLength==0) { aDes.Zero(); @@ -897,8 +855,7 @@ } RSubSessionBase::SendReceive(EFsFileRead,TIpcArgs(&aDes,aLength,I64LOW(KCurrentPosition64)),aStatus); - - TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFileRead2Return, MODULEUID); + OstTrace0(TRACE_BORDER, EFSRV_EFILEREAD6RETURN, ""); } @@ -932,14 +889,11 @@ @panic FSCLIENT 19 if aPos is negative. */ { - TRACE5(UTF::EBorder, UTraceModuleEfsrv::EFileRead3, MODULEUID, Session().Handle(), SubSessionHandle(), aPos, 0, aDes.MaxLength()); - + OstTraceExt4(TRACE_BORDER, EFSRV_EFILEREAD3, "sess %x subs %x aPos %x maxdeslen %d", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) aPos, (TUint) aDes.MaxLength()); __ASSERT_ALWAYS(aPos>=0,Panic(EPosNegative)); TInt r = SendReceive(EFsFileRead,TIpcArgs(&aDes,aDes.MaxLength(),aPos)); - - TRACERET2(UTF::EBorder, UTraceModuleEfsrv::EFileRead3Return, MODULEUID, r, aDes.Length()); - + OstTraceExt2(TRACE_BORDER, EFSRV_EFILEREAD3RETURN, "r %d len %d", (TUint) r, (TUint) aDes.Length()); return r; } @@ -979,12 +933,11 @@ @panic FSCLIENT 19 if aPos is negative. */ { - TRACE6(UTF::EBorder, UTraceModuleEfsrv::EFileRead4, MODULEUID, Session().Handle(), SubSessionHandle(), aPos, 0, aDes.MaxLength(), &aStatus); - + OstTraceExt4(TRACE_BORDER, EFSRV_EFILEREAD4, "sess %x subs %x aPos %x maxdeslen %d", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) aPos, (TUint) aDes.MaxLength()); __ASSERT_ALWAYS(aPos>=0,Panic(EPosNegative)); RSubSessionBase::SendReceive(EFsFileRead,TIpcArgs(&aDes,aDes.MaxLength(),aPos),aStatus); - TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFileRead4Return, MODULEUID); + OstTrace0(TRACE_BORDER, EFSRV_EFILEREAD4RETURN, ""); } @@ -1026,8 +979,7 @@ @panic FSCLIENT 19 if aPos is negative. */ { - TRACE5(UTF::EBorder, UTraceModuleEfsrv::EFileRead3, MODULEUID, Session().Handle(), SubSessionHandle(), aPos, 0, aLength); - + OstTraceExt4(TRACE_BORDER, EFSRV_EFILEREAD7, "sess %x subs %x aPos %x aLength %d", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) aPos, (TUint) aLength); __ASSERT_ALWAYS(aPos>=0,Panic(EPosNegative)); if (aLength==0) { @@ -1040,9 +992,7 @@ } TInt r = SendReceive(EFsFileRead,TIpcArgs(&aDes,aLength,aPos)); - - TRACERET2(UTF::EBorder, UTraceModuleEfsrv::EFileRead3Return, MODULEUID, r, aDes.Length()); - + OstTraceExt2(TRACE_BORDER, EFSRV_EFILEREAD7RETURN, "r %d len %d", (TUint) r, (TUint) aDes.Length()); return r; } @@ -1091,8 +1041,7 @@ @panic FSCLIENT 19 if aPos is negative. */ { - TRACE6(UTF::EBorder, UTraceModuleEfsrv::EFileRead4, MODULEUID, Session().Handle(), SubSessionHandle(), aPos, 0, aLength, &aStatus); - + OstTraceExt4(TRACE_BORDER, EFSRV_EFILEREAD9, "sess %x subs %x aPos %x maxlen %d", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) aPos, (TUint) aLength); __ASSERT_ALWAYS(aPos>=0,Panic(EPosNegative)); if (aLength==0) { @@ -1109,8 +1058,7 @@ } RSubSessionBase::SendReceive(EFsFileRead,TIpcArgs(&aDes,aLength,aPos),aStatus); - - TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFileRead4Return, MODULEUID); + OstTrace0(TRACE_BORDER, EFSRV_EFILEREAD9RETURN, ""); } @@ -1162,9 +1110,9 @@ codes. */ { - TRACE3(UTF::EBorder, UTraceModuleEfsrv::EFileWrite1, MODULEUID, Session().Handle(), SubSessionHandle(), aDes.Length()); + OstTraceExt3(TRACE_BORDER, EFSRV_EFILEWRITE1, "sess %x subs %x deslen %d", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) aDes.Length()); TInt r = SendReceive(EFsFileWrite,TIpcArgs(&aDes,aDes.Length(),I64LOW(KCurrentPosition64))); - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileWrite1Return, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFILEWRITE1RETURN, "r %d", r); return r; } @@ -1189,10 +1137,9 @@ otherwise one of the other system-wide error codes. */ { - TRACE4(UTF::EBorder, UTraceModuleEfsrv::EFileWrite2, MODULEUID, Session().Handle(), SubSessionHandle(), aDes.Length(), &aStatus); - + OstTraceExt3(TRACE_BORDER, EFSRV_EFILEWRITE2, "sess %x subs %x deslen %d", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) aDes.Length()); RSubSessionBase::SendReceive(EFsFileWrite,TIpcArgs(&aDes,aDes.Length(),I64LOW(KCurrentPosition64)),aStatus); - TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFileWrite2Return, MODULEUID); + OstTrace0(TRACE_BORDER, EFSRV_EFILEWRITE2RETURN, ""); } @@ -1219,12 +1166,10 @@ of the descriptor aDes. */ { - TRACE3(UTF::EBorder, UTraceModuleEfsrv::EFileWrite1, MODULEUID, Session().Handle(), SubSessionHandle(), aLength); - + OstTraceExt3(TRACE_BORDER, EFSRV_EFILEWRITE5, "sess %x subs %x aLength %d", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) aLength); __ASSERT_DEBUG(aDes.Length()>=aLength,Panic(EBadLength)); TInt r = SendReceive(EFsFileWrite,TIpcArgs(&aDes,aLength,I64LOW(KCurrentPosition64))); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileWrite1Return, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFILEWRITE5RETURN, "r %d", r); return r; } @@ -1257,11 +1202,10 @@ */ { - TRACE4(UTF::EBorder, UTraceModuleEfsrv::EFileWrite2, MODULEUID, Session().Handle(), SubSessionHandle(), aLength, &aStatus); + OstTraceExt3(TRACE_BORDER, EFSRV_EFILEWRITE9, "sess %x subs %x aLength %d", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) aLength); RSubSessionBase::SendReceive(EFsFileWrite,TIpcArgs(&aDes,aLength,I64LOW(KCurrentPosition64)),aStatus); - - TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFileWrite2Return, MODULEUID); + OstTrace0(TRACE_BORDER, EFSRV_EFILEWRITE9RETURN, ""); } @@ -1291,12 +1235,10 @@ @panic FSCLIENT 19 if aPos is negative. */ { - TRACE5(UTF::EBorder, UTraceModuleEfsrv::EFileWrite3, MODULEUID, Session().Handle(), SubSessionHandle(), aPos, 0, aDes.Length()); - + OstTraceExt4(TRACE_BORDER, EFSRV_EFILEWRITE3, "sess %x subs %x aPos %x len %d", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) aPos, (TUint) aDes.Length()); __ASSERT_ALWAYS(aPos>=0,Panic(EPosNegative)); TInt r = SendReceive(EFsFileWrite,TIpcArgs(&aDes,aDes.Length(),aPos)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileWrite3Return, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFILEWRITE3RETURN, "r %d", r); return r; } @@ -1331,11 +1273,10 @@ @panic FSCLIENT 19 if aPos is negative. */ { - TRACE6(UTF::EBorder, UTraceModuleEfsrv::EFileWrite4, MODULEUID, Session().Handle(), SubSessionHandle(), aPos, 0, aDes.Length(), &aStatus); - + OstTraceExt4(TRACE_BORDER, EFSRV_EFILEWRITE4, "sess %x subs %x aPos %x deslen %d", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) aPos, (TUint) aDes.Length()); __ASSERT_ALWAYS(aPos>=0,Panic(EPosNegative)); RSubSessionBase::SendReceive(EFsFileWrite,TIpcArgs(&aDes,aDes.Length(),aPos),aStatus); - TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFileWrite4Return, MODULEUID); + OstTrace0(TRACE_BORDER, EFSRV_EFILEWRITE4RETURN, ""); } @@ -1365,12 +1306,10 @@ @panic FSCLIENT 19 if aPos is negative. */ { - TRACE3(UTF::EBorder, UTraceModuleEfsrv::EFileWrite1, MODULEUID, Session().Handle(), SubSessionHandle(), aLength); - + OstTraceExt4(TRACE_BORDER, EFSRV_EFILEWRITE6, "sess %x subs %x aPos %x aLength %d", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) aPos, (TUint) aLength); __ASSERT_ALWAYS(aPos>=0,Panic(EPosNegative)); TInt r = SendReceive(EFsFileWrite,TIpcArgs(&aDes,aLength,aPos)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileWrite1Return, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFILEWRITE6RETURN, "r %d", r); return r; } @@ -1408,11 +1347,10 @@ @panic FSCLIENT 19 if aPos is negative. */ { - TRACE6(UTF::EBorder, UTraceModuleEfsrv::EFileWrite2, MODULEUID, Session().Handle(), SubSessionHandle(), aPos, 0, aLength, &aStatus); - + OstTraceExt4(TRACE_BORDER, EFSRV_EFILEWRITE10, "sess %x subs %x aPos %x aLength %d", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) aPos, (TUint) aLength); __ASSERT_ALWAYS(aPos>=0,Panic(EPosNegative)); RSubSessionBase::SendReceive(EFsFileWrite,TIpcArgs(&aDes,aLength,aPos),aStatus); - TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFileWrite2Return, MODULEUID); + OstTrace0(TRACE_BORDER, EFSRV_EFILEWRITE10RETURN, ""); } @@ -1446,13 +1384,10 @@ */ { - TRACE5(UTF::EBorder, UTraceModuleEfsrv::EFileLock, MODULEUID, Session().Handle(), SubSessionHandle(), aPos, 0, aLength); - + OstTraceExt4(TRACE_BORDER, EFSRV_EFILELOCK, "RFile::Lock() sess %x subs %x aPos %x aLength %d", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) aPos, (TUint) aLength); __ASSERT_ALWAYS(aPos>=0,Panic(EPosNegative)); - TInt r = SendReceive(EFsFileLock,TIpcArgs(aPos,aLength)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileLockReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFILELOCKRETURN, "r %d", r); return r; } @@ -1480,12 +1415,10 @@ @panic FSCLIENT 19 if aPos is negative. */ { - TRACE5(UTF::EBorder, UTraceModuleEfsrv::EFileUnLock, MODULEUID, Session().Handle(), SubSessionHandle(), aPos, 0, aLength); - + OstTraceExt4(TRACE_BORDER, EFSRV_EFILEUNLOCK, "RFile::UnLock() sess %x subs %x aPos %x aLength %d", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) aPos, (TUint) aLength); __ASSERT_ALWAYS(aPos>=0,Panic(EPosNegative)); TInt r = SendReceive(EFsFileUnLock,TIpcArgs(aPos,aLength)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileUnLockReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFILEUNLOCKRETURN, "r %d", r); return r; } @@ -1529,15 +1462,13 @@ codes. */ { - TRACE5(UTF::EBorder, UTraceModuleEfsrv::EFileSeek, MODULEUID, Session().Handle(), SubSessionHandle(), aMode, aPos, 0); - + OstTraceExt4(TRACE_BORDER, EFSRV_EFILESEEK1, "sess %x subs %x aMode %x aPos %x", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) aMode, (TUint) aPos); TInt64 newPos = aPos; TPckg pkNewPos(newPos); TInt r = SendReceive(EFsFileSeek|KIpcArgSlot2Desc,TIpcArgs(aPos,aMode,&pkNewPos)); if(KErrNone == r) aPos = I64LOW(newPos); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileSeekReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFILESEEK1RETURN, "r %d", r); return r; } @@ -1559,11 +1490,9 @@ codes. */ { - TRACE3(UTF::EBorder, UTraceModuleEfsrv::EFileFlush, MODULEUID, Session().Handle(), SubSessionHandle(), NULL); - + OstTraceExt3(TRACE_BORDER, EFSRV_EFILEFLUSH1, "sess %x subs %x status %x", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) NULL); TInt r = RSubSessionBase::SendReceive(EFsFileFlush); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileFlushReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFILEFLUSH1RETURN, "r %d", r); return r; } @@ -1585,11 +1514,9 @@ otherwise one of the other system-wide error codes. */ { - TRACE3(UTF::EBorder, UTraceModuleEfsrv::EFileFlush, MODULEUID, Session().Handle(), SubSessionHandle(), &aStatus); - + OstTraceExt3(TRACE_BORDER, EFSRV_EFILEFLUSH2, "sess %x subs %x status %x", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) &aStatus); RSubSessionBase::SendReceive(EFsFileFlush, aStatus); - - TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFileFlushReturn, MODULEUID); + OstTrace0(TRACE_BORDER, EFSRV_EFILEFLUSH2RETURN, ""); } @@ -1605,8 +1532,7 @@ codes. */ { - TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFileSize, MODULEUID, Session().Handle(), SubSessionHandle()); - + OstTraceExt2(TRACE_BORDER, EFSRV_EFILESIZE, "sess %x subs %x", (TUint) Session().Handle(), (TUint) SubSessionHandle()); TInt64 size = aSize; TPckg pkSize(size); TInt r = SendReceive(EFsFileSize|KIpcArgSlot0Desc,TIpcArgs(&pkSize)); @@ -1617,8 +1543,7 @@ if (size > KMaxTInt) return (KErrTooBig); #endif - - TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFileSizeReturn, MODULEUID, r, aSize); + OstTraceExt2(TRACE_BORDER, EFSRV_EFILESIZERETURN, "r %d aSize %d", (TUint) r, (TUint) aSize); return r; } @@ -1650,11 +1575,9 @@ */ { - TRACE4(UTF::EBorder, UTraceModuleEfsrv::EFileSetSize, MODULEUID, Session().Handle(), SubSessionHandle(), aSize, 0); - + OstTraceExt3(TRACE_BORDER, EFSRV_EFILESETSIZE1, "sess %x subs %x aSize %d", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) aSize); TInt r = SendReceive(EFsFileSetSize,TIpcArgs(aSize)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileSetSizeReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFILESETSIZE1RETURN, "r %d", r); return r; } @@ -1675,13 +1598,11 @@ @see KEntryAttNormal */ { - TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFileAtt, MODULEUID, Session().Handle(), SubSessionHandle()); - + OstTraceExt2(TRACE_BORDER, EFSRV_EFILEATT, "sess %x subs %x", (TUint) Session().Handle(), (TUint) SubSessionHandle()); TPtr8 a((TUint8*)&aVal,sizeof(TUint)); TInt r = SendReceive(EFsFileAtt,TIpcArgs(&a)); - - TRACERET2(UTF::EBorder, UTraceModuleEfsrv::EFileAttReturn, MODULEUID, r, aVal); + OstTraceExt2(TRACE_BORDER, EFSRV_EFILEATTRETURN, "r %d aVal %x", (TUint) r, (TUint) aVal); return r; } @@ -1718,13 +1639,11 @@ @panic FSCLIENT 21 if the same attribute bit is set in both bitmasks. */ { - TRACE4(UTF::EBorder, UTraceModuleEfsrv::EFileSetAtt, MODULEUID, Session().Handle(), SubSessionHandle(), aSetAttMask, aClearAttMask); - + OstTraceExt4(TRACE_BORDER, EFSRV_EFILESETATT, "sess %x subs %x aSetAttMask %x aClearAttMask %x", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) aSetAttMask, (TUint) aClearAttMask); __ASSERT_ALWAYS((aSetAttMask&aClearAttMask)==0,Panic(EAttributesIllegal)); TInt r = SendReceive(EFsFileSetAtt,TIpcArgs(aSetAttMask,aClearAttMask)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileSetAttReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFILESETATTRETURN, "r %d", r); return r; } @@ -1741,12 +1660,10 @@ codes. */ { - TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFileModified, MODULEUID, Session().Handle(), SubSessionHandle()); - + OstTraceExt2(TRACE_BORDER, EFSRV_EFILEMODIFIED, "sess %x subs %x", (TUint) Session().Handle(), (TUint) SubSessionHandle()); TPtr8 t((TUint8*)&aTime,sizeof(TTime)); TInt r = SendReceive(EFsFileModified,TIpcArgs(&t)); - - TRACERET3(UTF::EBorder, UTraceModuleEfsrv::EFileModifiedReturn, MODULEUID, r, I64LOW(aTime.Int64()), I64HIGH(aTime.Int64())); + OstTraceExt3(TRACE_BORDER, EFSRV_EFILEMODIFIEDRETURN, "r %d aTime %x:%x ", (TUint) r, (TUint) I64HIGH(aTime.Int64()), (TUint) I64LOW(aTime.Int64())); return r; } @@ -1770,12 +1687,10 @@ codes. */ { - TRACE4(UTF::EBorder, UTraceModuleEfsrv::EFileSetModified, MODULEUID, Session().Handle(), SubSessionHandle(), I64LOW(aTime.Int64()), I64HIGH(aTime.Int64())); - + OstTraceExt4(TRACE_BORDER, EFSRV_EFILESETMODIFIED, "sess %x subs %x aTime %x:%x ", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) I64HIGH(aTime.Int64()), (TUint) I64LOW(aTime.Int64())); TPtrC8 t((TUint8*)&aTime,sizeof(TTime)); TInt r = SendReceive(EFsFileSetModified,TIpcArgs(&t)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileSetModifiedReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFILESETMODIFIEDRETURN, "r %d", r); return r; } @@ -1806,14 +1721,12 @@ @see RFile::SetAtt */ { - TRACE6(UTF::EBorder, UTraceModuleEfsrv::EFileSet, MODULEUID, - Session().Handle(), SubSessionHandle(), I64LOW(aTime.Int64()), I64HIGH(aTime.Int64()), aMask, aVal); - + OstTraceExt4(TRACE_BORDER, EFSRV_EFILESETA, "sess %x subs %x aSetAttMask %x aClearAttMask %x", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) aMask, (TUint) aVal); + OstTraceExt2(TRACE_BORDER, EFSRV_EFILESETB, "aTime %x:%x ", (TUint) I64HIGH(aTime.Int64()), (TUint) I64LOW(aTime.Int64())); __ASSERT_ALWAYS((aVal&aMask)==0,Panic(EAttributesIllegal)); TPtrC8 t((TUint8*)&aTime,sizeof(TTime)); TInt r = SendReceive(EFsFileSet,TIpcArgs(&t,aMask,aVal)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileSetReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFILESETRETURN, "r %d", r); return r; } @@ -1842,13 +1755,11 @@ */ { - TRACE3(UTF::EBorder, UTraceModuleEfsrv::EFileChangeMode, MODULEUID, Session().Handle(), SubSessionHandle(), aNewMode); - + OstTraceExt3(TRACE_BORDER, EFSRV_EFILECHANGEMODE, "sess %x subs %x aNewMode %x", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) aNewMode); if (aNewMode!=EFileShareExclusive && aNewMode!=EFileShareReadersOnly) return(KErrArgument); TInt r = SendReceive(EFsFileChangeMode,TIpcArgs(aNewMode)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileChangeModeReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFILECHANGEMODERETURN, "r %d", r); return r; } @@ -1894,11 +1805,10 @@ */ { - TRACEMULT3(UTF::EBorder, UTraceModuleEfsrv::EFileRename, MODULEUID, Session().Handle(), SubSessionHandle(), aNewName); - + OstTraceExt2(TRACE_BORDER, EFSRV_EFILERENAME, "sess %x subs %x", (TUint) Session().Handle(), (TUint) SubSessionHandle()); + OstTraceData(TRACE_BORDER, EFSRV_EFILERENAME_ENEWNAME, "NewName %S", aNewName.Ptr(), aNewName.Length()<<1); TInt r = SendReceive(EFsFileRename,TIpcArgs(&aNewName)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileRenameReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFILERENAMERETURN, "r %d", r); return r; } @@ -1921,13 +1831,11 @@ @see RFs::Drive */ { - TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFileDrive, MODULEUID, Session().Handle(), SubSessionHandle()); - + OstTraceExt2(TRACE_BORDER, EFSRV_EFILEDRIVE, "sess %x subs %x", (TUint) Session().Handle(), (TUint) SubSessionHandle()); TPckg pki(aDriveNumber); TPckg pkdi(aDriveInfo); TInt r = SendReceive(EFsFileDrive,TIpcArgs(&pki,&pkdi)); - - TRACERET4(UTF::EBorder, UTraceModuleEfsrv::EFileDriveReturn, MODULEUID, r, aDriveInfo.iDriveAtt, aDriveInfo.iMediaAtt, aDriveInfo.iType); + OstTraceExt4(TRACE_BORDER, EFSRV_EFILEDRIVERETURN, "r %d driveAtt %x mediaAtt %x type %x", (TUint) r, (TUint) aDriveInfo.iDriveAtt, (TUint) aDriveInfo.iMediaAtt, (TUint) aDriveInfo.iType); return r; } @@ -1944,12 +1852,10 @@ @see RFs::Unclamp */ { - TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFileClamp, MODULEUID, Session().Handle(), SubSessionHandle()); - + OstTraceExt2(TRACE_BORDER, EFSRV_EFILECLAMP, "sess %x subs %x", (TUint) Session().Handle(), (TUint) SubSessionHandle()); TPckg pkHandle(aHandle); TInt r = SendReceive(EFsFileClamp,TIpcArgs(& pkHandle)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileClampReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFILECLAMPRETURN, "r %d", r); return r; } @@ -1979,9 +1885,8 @@ */ EFSRV_EXPORT_C TInt RFile::BlockMap(SBlockMapInfo& aInfo, TInt64& aStartPos, TInt64 aEndPos, TInt aBlockMapUsage) const { - TRACE7(UTF::EBorder, UTraceModuleEfsrv::EFileBlockMap, MODULEUID, - Session().Handle(), SubSessionHandle(), I64LOW(aStartPos), I64HIGH(aEndPos), I64LOW(aEndPos), I64HIGH(aEndPos), aBlockMapUsage); - + OstTraceExt2(TRACE_BORDER, EFSRV_EFILEBLOCKMAPA, "sess %x subs %x", (TUint) Session().Handle(), (TUint) SubSessionHandle()); + OstTraceExt5(TRACE_BORDER, EFSRV_EFILEBLOCKMAPB, "RFile::BlockMap() aStartPos %x:%x aEndPos %x:%x aBlockMapusage %d", (TUint) I64HIGH(aStartPos), (TUint) I64LOW(aStartPos), (TUint) I64HIGH(aEndPos), (TUint) I64LOW(aEndPos), (TUint) aBlockMapUsage); SBlockMapArgs args; args.iStartPos = aStartPos; args.iEndPos = aEndPos; @@ -1990,8 +1895,7 @@ TInt r = SendReceive(EFsBlockMap, TIpcArgs(&pkInfo, &pkArgs, aBlockMapUsage)); if(r==KErrNone) aStartPos = args.iStartPos; - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileBlockMapReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFILEBLOCKMAPRETURN, "r %d", r); return r; } @@ -2044,11 +1948,12 @@ */ EFSRV_EXPORT_C TInt RFile64::Open(RFs& aFs,const TDesC& aName,TUint aFileMode) { - TRACEMULT3(UTF::EBorder, UTraceModuleEfsrv::EFileOpen, MODULEUID, aFs.Handle(), aFileMode, aName); + OstTraceExt2(TRACE_BORDER, EFSRV_EFILE64OPEN, "sess %x mode %x", (TUint) aFs.Handle(), (TUint) aFileMode); + OstTraceData(TRACE_BORDER, EFSRV_EFILE64OPEN_EFILENAME, "FileName %S", aName.Ptr(), aName.Length()<<1); TInt r = CreateSubSession(aFs,EFsFileOpen,TIpcArgs(&aName,aFileMode|EFileBigFile)); - TRACERET2(UTF::EBorder, UTraceModuleEfsrv::EFileOpenReturn, MODULEUID, r, SubSessionHandle()); + OstTraceExt2(TRACE_BORDER, EFSRV_EFILE64OPENRETURN, "r %d subs %x", (TUint) r, (TUint) SubSessionHandle()); return r; } @@ -2093,11 +1998,10 @@ */ EFSRV_EXPORT_C TInt RFile64::Create(RFs& aFs,const TDesC& aName,TUint aFileMode) { - TRACEMULT3(UTF::EBorder, UTraceModuleEfsrv::EFileCreate, MODULEUID, aFs.Handle(), aFileMode, aName); - + OstTraceExt2(TRACE_BORDER, EFSRV_EFILE64CREATE, "sess %x mode %x", (TUint) aFs.Handle(), (TUint) aFileMode); + OstTraceData(TRACE_BORDER, EFSRV_EFILE64CREATE_EFILENAME, "FileName %S", aName.Ptr(), aName.Length()<<1); TInt r = CreateSubSession(aFs,EFsFileCreate,TIpcArgs(&aName,aFileMode|EFileBigFile)); - - TRACERET2(UTF::EBorder, UTraceModuleEfsrv::EFileCreateReturn, MODULEUID, r, SubSessionHandle()); + OstTraceExt2(TRACE_BORDER, EFSRV_EFILE64CREATERETURN, "r %d subs %x", (TUint) r, (TUint) SubSessionHandle()); return r; } @@ -2148,11 +2052,10 @@ */ EFSRV_EXPORT_C TInt RFile64::Replace(RFs& aFs,const TDesC& aName,TUint aFileMode) { - TRACEMULT3(UTF::EBorder, UTraceModuleEfsrv::EFileReplace, MODULEUID, aFs.Handle(), aFileMode, aName); - + OstTraceExt2(TRACE_BORDER, EFSRV_EFILE64REPLACE, "sess %x mode %x", (TUint) aFs.Handle(), (TUint) aFileMode); + OstTraceData(TRACE_BORDER, EFSRV_EFILE64REPLACE_EFILENAME, "FileName %S", aName.Ptr(), aName.Length()<<1); TInt r = CreateSubSession(aFs,EFsFileReplace,TIpcArgs(&aName,aFileMode|EFileBigFile)); - - TRACERET2(UTF::EBorder, UTraceModuleEfsrv::EFileReplaceReturn, MODULEUID, r, SubSessionHandle()); + OstTraceExt2(TRACE_BORDER, EFSRV_EFILE64REPLACERETURN, "r %d subs %x", (TUint) r, (TUint) SubSessionHandle()); return r; } @@ -2189,9 +2092,12 @@ */ EFSRV_EXPORT_C TInt RFile64::Temp(RFs& aFs,const TDesC& aPath,TFileName& aName,TUint aFileMode) { - TRACEMULT3(UTF::EBorder, UTraceModuleEfsrv::EFileTemp, MODULEUID, aFs.Handle(), aPath, aFileMode); + OstTraceExt2(TRACE_BORDER, EFSRV_EFILE64TEMP, "sess %x aMode %x", (TUint) aFs.Handle(), (TUint) aFileMode); + OstTraceData(TRACE_BORDER, EFSRV_EFILE64TEMP_EDIRNAME, "Dir %S", aPath.Ptr(), aPath.Length()<<1); TInt r = CreateSubSession(aFs,EFsFileTemp,TIpcArgs(&aPath,aFileMode|EFileBigFile,&aName)); - TRACERETMULT3(UTF::EBorder, UTraceModuleEfsrv::EFileTempReturn, MODULEUID, r, SubSessionHandle(), aName); + OstTraceData(TRACE_BORDER, EFSRV_EFILE64TEMP_EFILENAME, "FileName %S", aName.Ptr(), aName.Length()<<1); + OstTraceExt2(TRACE_BORDER, EFSRV_EFILE64TEMPRETURN, "r %d subs %x", (TUint) r, (TUint) SubSessionHandle()); + return r; } @@ -2243,7 +2149,7 @@ else r = KErrArgument; -#ifdef SYMBIAN_FTRACE_ENABLE +#ifdef OST_TRACE_COMPILER_IN_USE TInt handle = NULL; if (aFsHandleIndex == 0) handle = aMsg.Int0(); @@ -2253,31 +2159,27 @@ handle = aMsg.Int2(); else if (aFsHandleIndex == 3) handle = aMsg.Int3(); - TRACE4(UTF::EBorder, UTraceModuleEfsrv::EFileAdoptFromClient, MODULEUID, handle, fileHandle, aFsHandleIndex, aFileHandleIndex); + OstTraceExt4(TRACE_BORDER, EFSRV_EFILE64ADOPTFROMCLIENT, "sess %x subs %x aFsHandleIndex %d aFileHandleIndex %d ", (TUint) handle, (TUint) fileHandle, (TUint) aFsHandleIndex, (TUint) aFileHandleIndex); #endif - if (r != KErrNone) { - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileAdoptFromClientReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFILE64ADOPTFROMCLIENTRETURN1, "r %d", r); return r; } - // Duplicates the file server (RFs) session handle identified by an // existing handle contained in the message slot at index aFsHandleIndex RFs fs; r = fs.Open(aMsg, aFsHandleIndex, KFileServerPolicy); if (r != KErrNone) { - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileAdoptFromClientReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFILE64ADOPTFROMCLIENTRETURN2, "r %d", r); return r; } //return CreateAutoCloseSubSession(fs, EFsFileAdopt, TIpcArgs(fileHandle)); // Slot 1: Indicate Large File Supportis required. r = CreateAutoCloseSubSession(fs, EFsFileAdopt, TIpcArgs(fileHandle, KFileAdopt64)); - - TRACERET3(UTF::EBorder, UTraceModuleEfsrv::EFileAdoptFromClientReturn, MODULEUID, r, Session().Handle(), SubSessionHandle()); - + OstTraceExt3(TRACE_BORDER, EFSRV_EFILE64ADOPTFROMCLIENTRETURN3, "r %d sess %x subs %x", (TUint) r, (TUint) Session().Handle(), (TUint) SubSessionHandle()); return r; } @@ -2311,22 +2213,19 @@ */ EFSRV_EXPORT_C TInt RFile64::AdoptFromServer(TInt aFsHandle, TInt aFileHandle) { - TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFileAdoptFromServer, MODULEUID, aFsHandle, aFileHandle); - + OstTraceExt2(TRACE_BORDER, EFSRV_EFILE64ADOPTFROMSERVER, "sess %x subs %x", (TUint) aFsHandle, (TUint) aFileHandle); RFs fs; TInt r = fs.SetReturnedHandle(aFsHandle, KFileServerPolicy); if (r != KErrNone) { - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileAdoptFromServerReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFILE64ADOPTFROMSERVERRETURN1, "r %d", r); return r; } //return(CreateAutoCloseSubSession(fs, EFsFileAdopt, TIpcArgs(aFileHandle))); // Slot 1: Indicate Large File Supportis required. r = CreateAutoCloseSubSession(fs, EFsFileAdopt, TIpcArgs(aFileHandle, KFileAdopt64)); - - TRACERET3(UTF::EBorder, UTraceModuleEfsrv::EFileAdoptFromServerReturn, MODULEUID, r, Session().Handle(), SubSessionHandle()); - + OstTraceExt3(TRACE_BORDER, EFSRV_EFILE64ADOPTFROMSERVERRETURN2, "r %d sess %x subs %x", (TUint) r, (TUint) Session().Handle(), (TUint) SubSessionHandle()); return r; } @@ -2368,11 +2267,10 @@ TInt fileHandle; TInt r = User::GetTIntParameter(aFileHandleIndex, fileHandle); - TRACE3(UTF::EBorder, UTraceModuleEfsrv::EFileAdoptFromCreator, MODULEUID, fileHandle, aFsHandleIndex, aFileHandleIndex); - + OstTraceExt3(TRACE_BORDER, EFSRV_EFILE64ADOPTFROMCREATOR, "subs %x aFsHandleIndex %d aFileHandleIndex %d", (TUint) fileHandle, (TUint) aFsHandleIndex, (TUint) aFileHandleIndex); if (r != KErrNone) { - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileAdoptFromCreatorReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFILE64ADOPTFROMCREATORRETURN1, "r %d", r); return r; } @@ -2383,16 +2281,14 @@ r = fs.Open(aFsHandleIndex, KFileServerPolicy); if (r != KErrNone) { - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileAdoptFromCreatorReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFILE64ADOPTFROMCREATORRETURN2, "r %d", r); return r; } //return(CreateAutoCloseSubSession(fs, EFsFileAdopt, TIpcArgs(fileHandle))); // Slot 1: Indicate Large File Supportis required. r = CreateAutoCloseSubSession(fs, EFsFileAdopt, TIpcArgs(fileHandle, KFileAdopt64)); - - TRACERET3(UTF::EBorder, UTraceModuleEfsrv::EFileAdoptFromCreatorReturn, MODULEUID, r, Session().Handle(), SubSessionHandle()); - + OstTraceExt3(TRACE_BORDER, EFSRV_EFILE64ADOPTFROMCREATORRETURN3, "r %d sess %x subs %x", (TUint) r, (TUint) Session().Handle(), (TUint) SubSessionHandle()); return r; } @@ -2431,8 +2327,7 @@ */ EFSRV_EXPORT_C TInt RFile64::Read(TInt64 aPos, TDes8& aDes) const { - TRACE5(UTF::EBorder, UTraceModuleEfsrv::EFileRead3, MODULEUID, Session().Handle(), SubSessionHandle(), I64LOW(aPos), I64HIGH(aPos), aDes.MaxLength()); - + OstTraceExt5(TRACE_BORDER, EFSRV_EFILE64READ8, "RFile::Read() sess %x subs %x aPos %x:%x maxdeslen %d", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) I64HIGH(aPos), (TUint) I64LOW(aPos), (TUint) aDes.MaxLength()); __ASSERT_ALWAYS(aPos>=0,Panic(EPosNegative)); TInt r; @@ -2445,9 +2340,7 @@ TPckgC pkPos(aPos); r = SendReceive(EFsFileRead|KIpcArgSlot2Desc,TIpcArgs(&aDes,aDes.MaxLength(),&pkPos)); } - - TRACERET2(UTF::EBorder, UTraceModuleEfsrv::EFileRead3Return, MODULEUID, r, aDes.Length()); - + OstTraceExt2(TRACE_BORDER, EFSRV_EFILE64READ8RETURN, "r %d len %d", (TUint) r, (TUint) aDes.Length()); return r; } @@ -2491,8 +2384,7 @@ */ EFSRV_EXPORT_C void RFile64::Read(TInt64 aPos, TDes8& aDes, TRequestStatus& aStatus) const { - TRACE6(UTF::EBorder, UTraceModuleEfsrv::EFileRead4, MODULEUID, Session().Handle(), SubSessionHandle(), I64LOW(aPos), I64HIGH(aPos), aDes.MaxLength(), &aStatus); - + OstTraceExt5(TRACE_BORDER, EFSRV_EFILE64READ10, "RFile::Read() sess %x subs %x aPos %x:%x maxlen %d", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) I64HIGH(aPos), (TUint) I64LOW(aPos), (TUint) aDes.MaxLength()); __ASSERT_ALWAYS(aPos>=0,Panic(EPosNegative)); if (!(I64HIGH(aPos+1))) { @@ -2503,8 +2395,7 @@ TPckgC pkPos(aPos); RSubSessionBase::SendReceive(EFsFileRead|KIpcArgSlot2Desc,TIpcArgs(&aDes,aDes.MaxLength(),&pkPos),aStatus); } - - TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFileRead4Return, MODULEUID); + OstTrace0(TRACE_BORDER, EFSRV_EFILE64READ10RETURN, ""); } @@ -2550,8 +2441,7 @@ */ EFSRV_EXPORT_C TInt RFile64::Read(TInt64 aPos, TDes8& aDes, TInt aLength) const { - TRACE5(UTF::EBorder, UTraceModuleEfsrv::EFileRead3, MODULEUID, Session().Handle(), SubSessionHandle(), I64LOW(aPos), I64HIGH(aPos), aLength); - + OstTraceExt5(TRACE_BORDER, EFSRV_EFILE64READ15, "RFile::Read() sess %x subs %x aPos %x:%x aLength %d", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) I64HIGH(aPos), (TUint) I64LOW(aPos), (TUint) aLength); __ASSERT_ALWAYS(aPos>=0,Panic(EPosNegative)); if (aLength==0) { @@ -2573,9 +2463,7 @@ TPckgC pkPos(aPos); r = SendReceive(EFsFileRead|KIpcArgSlot2Desc,TIpcArgs(&aDes,aLength,&pkPos)); } - - TRACERET2(UTF::EBorder, UTraceModuleEfsrv::EFileRead3Return, MODULEUID, r, aDes.Length()); - + OstTraceExt2(TRACE_BORDER, EFSRV_EFILE64READ15RETURN, "r %d len %d", (TUint) r, (TUint) aDes.Length()); return r; } @@ -2628,8 +2516,7 @@ */ EFSRV_EXPORT_C void RFile64::Read(TInt64 aPos, TDes8& aDes, TInt aLength,TRequestStatus& aStatus) const { - TRACE6(UTF::EBorder, UTraceModuleEfsrv::EFileRead4, MODULEUID, Session().Handle(), SubSessionHandle(), I64LOW(aPos), I64HIGH(aPos), aLength, &aStatus); - + OstTraceExt5(TRACE_BORDER, EFSRV_EFILE64READ11, "RFile::Read() sess %x subs %x aPos %x:%x aLength %d", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) I64HIGH(aPos), (TUint) I64LOW(aPos), (TUint) aLength); __ASSERT_ALWAYS(aPos>=0,Panic(EPosNegative)); if (aLength==0) { @@ -2654,8 +2541,7 @@ TPckgC pkPos(aPos); RSubSessionBase::SendReceive(EFsFileRead|KIpcArgSlot2Desc,TIpcArgs(&aDes,aLength,&pkPos),aStatus); } - - TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFileRead4Return, MODULEUID); + OstTrace0(TRACE_BORDER, EFSRV_EFILE64READ11RETURN, ""); } @@ -2687,8 +2573,7 @@ */ EFSRV_EXPORT_C TInt RFile64::Write(TInt64 aPos, const TDesC8& aDes) { - TRACE5(UTF::EBorder, UTraceModuleEfsrv::EFileWrite3, MODULEUID, Session().Handle(), SubSessionHandle(), I64LOW(aPos), I64HIGH(aPos), aDes.Length()); - + OstTraceExt5(TRACE_BORDER, EFSRV_EFILE64WRITE13, "RFile::Write() sess %x subs %x aPos %x:%x deslen %d", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) I64HIGH(aPos), (TUint) I64LOW(aPos), (TUint) aDes.Length()); __ASSERT_ALWAYS(aPos>=0,Panic(EPosNegative)); TInt r; @@ -2701,8 +2586,7 @@ TPckgC pkPos(aPos); r = SendReceive(EFsFileWrite|KIpcArgSlot2Desc,TIpcArgs(&aDes,aDes.Length(),&pkPos)); } - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileWrite3Return, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFILE64WRITE13RETURN, "r %d", r); return r; } @@ -2740,8 +2624,7 @@ */ EFSRV_EXPORT_C void RFile64::Write(TInt64 aPos, const TDesC8& aDes,TRequestStatus& aStatus) { - TRACE4(UTF::EBorder, UTraceModuleEfsrv::EFileWrite4, MODULEUID, Session().Handle(), SubSessionHandle(), aDes.Length(), &aStatus); - + OstTraceExt5(TRACE_BORDER, EFSRV_EFILE64WRITE15, "RFile::Write() sess %x subs %x pos %x:%x len %d", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) I64HIGH(aPos), (TUint) I64LOW(aPos), (TUint) aDes.Length()); __ASSERT_ALWAYS(aPos>=0,Panic(EPosNegative)); if (!(I64HIGH(aPos+1))) @@ -2753,8 +2636,7 @@ TPckgC pkPos(aPos); RSubSessionBase::SendReceive(EFsFileWrite|KIpcArgSlot2Desc,TIpcArgs(&aDes,aDes.Length(),&pkPos),aStatus); } - - TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFileWrite4Return, MODULEUID); + OstTrace0(TRACE_BORDER, EFSRV_EFILE64WRITE15RETURN, ""); } @@ -2786,8 +2668,7 @@ */ EFSRV_EXPORT_C TInt RFile64::Write(TInt64 aPos, const TDesC8& aDes,TInt aLength) { - TRACE3(UTF::EBorder, UTraceModuleEfsrv::EFileWrite1, MODULEUID, Session().Handle(), SubSessionHandle(), aLength); - + OstTraceExt5(TRACE_BORDER, EFSRV_EFILE64WRITE7, "RFile::Write() sess %x subs %x aPos %x:%x aLength %d", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) I64HIGH(aPos), (TUint) I64LOW(aPos), (TUint) aLength); __ASSERT_ALWAYS(aPos>=0,Panic(EPosNegative)); TInt r; @@ -2800,8 +2681,7 @@ TPckgC pkPos(aPos); r = SendReceive(EFsFileWrite|KIpcArgSlot2Desc,TIpcArgs(&aDes,aLength,&pkPos)); } - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileWrite1Return, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFILE64WRITE7RETURN, "r %d", r); return r; } @@ -2841,8 +2721,7 @@ */ EFSRV_EXPORT_C void RFile64::Write(TInt64 aPos, const TDesC8& aDes,TInt aLength,TRequestStatus& aStatus) { - TRACE6(UTF::EBorder, UTraceModuleEfsrv::EFileWrite2, MODULEUID, Session().Handle(), SubSessionHandle(), I64LOW(aPos), I64HIGH(aPos), aLength, &aStatus); - + OstTraceExt5(TRACE_BORDER, EFSRV_EFILE64WRITE11, "RFile::Write() sess %x subs %x aPos %x:%x aLength %d", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) I64HIGH(aPos), (TUint) I64LOW(aPos), (TUint) aLength); __ASSERT_ALWAYS(aPos>=0,Panic(EPosNegative)); if (!(I64HIGH(aPos+1))) @@ -2854,8 +2733,7 @@ TPckgC pkPos(aPos); RSubSessionBase::SendReceive(EFsFileWrite|KIpcArgSlot2Desc,TIpcArgs(&aDes,aLength,&pkPos),aStatus); } - - TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFileWrite2Return, MODULEUID); + OstTrace0(TRACE_BORDER, EFSRV_EFILE64WRITE11RETURN, ""); } @@ -2902,13 +2780,11 @@ */ EFSRV_EXPORT_C TInt RFile64::Seek(TSeek aMode, TInt64& aPos) const { - TRACE5(UTF::EBorder, UTraceModuleEfsrv::EFileSeek, MODULEUID, Session().Handle(), SubSessionHandle(), aMode, aPos, 0); - + OstTraceExt5(TRACE_BORDER, EFSRV_EFILE64SEEK2, "RFile::Seek() sess %x subs %x aMode %x aPos %x:%x", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) aMode, (TUint) I64HIGH(aPos), (TUint) I64LOW(aPos)); TPckgC pkOffset(aPos); TPckg pkNewPos(aPos); TInt r = SendReceive(EFsFileSeek|KIpcArgSlot0Desc|KIpcArgSlot2Desc,TIpcArgs(&pkOffset,aMode,&pkNewPos)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileSeekReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFILE64SEEK2RETURN, "r %d", r); return r; } @@ -2930,12 +2806,10 @@ */ EFSRV_EXPORT_C TInt RFile64::Size(TInt64& aSize) const { - TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFileSize2, MODULEUID, Session().Handle(), SubSessionHandle()); - + OstTraceExt2(TRACE_BORDER, EFSRV_EFILE64SIZE2, "sess %x subs %x", (TUint) Session().Handle(), (TUint) SubSessionHandle()); TPckg pkSize(aSize); TInt r = SendReceive(EFsFileSize|KIpcArgSlot0Desc,TIpcArgs(&pkSize)); - - TRACERET3(UTF::EBorder, UTraceModuleEfsrv::EFileSize2Return, MODULEUID, r, I64LOW(aSize), I64HIGH(aSize)); + OstTraceExt3(TRACE_BORDER, EFSRV_EFILE64SIZE2RETURN, "r %d aSize %x:%x", (TUint) r, (TUint) I64HIGH(aSize), (TUint) I64LOW(aSize)); return r; } @@ -2971,12 +2845,10 @@ */ EFSRV_EXPORT_C TInt RFile64::SetSize(TInt64 aSize) { - TRACE4(UTF::EBorder, UTraceModuleEfsrv::EFileSetSize, MODULEUID, Session().Handle(), SubSessionHandle(), I64LOW(aSize), I64HIGH(aSize)); - + OstTraceExt4(TRACE_BORDER, EFSRV_EFILE64SETSIZE2, "sess %x subs %x aSize %x:%x", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) I64HIGH(aSize), (TUint) I64LOW(aSize)); TPckgC pkSize(aSize); TInt r = SendReceive(EFsFileSetSize|KIpcArgSlot0Desc, TIpcArgs(&pkSize)); - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileSetSizeReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFILE64SETSIZE2RETURN, "r %d", r); return r; } @@ -3013,8 +2885,7 @@ */ EFSRV_EXPORT_C TInt RFile64::Lock(TInt64 aPos, TInt64 aLength) const { - TRACE5(UTF::EBorder, UTraceModuleEfsrv::EFileLock, MODULEUID, Session().Handle(), SubSessionHandle(), I64LOW(aPos), I64HIGH(aPos), aLength); - + OstTraceExt5(TRACE_BORDER, EFSRV_EFILE64LOCK, "RFile::Lock() sess %x subs %x aPos %x:%x aLength %d", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) I64HIGH(aPos), (TUint) I64LOW(aPos), (TUint) aLength); __ASSERT_ALWAYS(aPos>=0,Panic(EPosNegative)); TPckgC pkPos(aPos); TPckgC pkLength(aLength); @@ -3029,7 +2900,7 @@ r = SendReceive(EFsFileLock|KIpcArgSlot0Desc,TIpcArgs(&pkPos, I64LOW(aLength))); else r = SendReceive(EFsFileLock|KIpcArgSlot0Desc|KIpcArgSlot1Desc,TIpcArgs(&pkPos, &pkLength)); - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileLockReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFILE64LOCKRETURN, "r %d", r); return r; } @@ -3060,8 +2931,7 @@ */ EFSRV_EXPORT_C TInt RFile64::UnLock(TInt64 aPos, TInt64 aLength) const { - TRACE5(UTF::EBorder, UTraceModuleEfsrv::EFileUnLock, MODULEUID, Session().Handle(), SubSessionHandle(), I64LOW(aPos), I64HIGH(aPos), aLength); - + OstTraceExt5(TRACE_BORDER, EFSRV_EFILE64UNLOCK, "RFile::UnLock() sess %x subs %x aPos %x:%x aLength %d", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) I64HIGH(aPos), (TUint) I64LOW(aPos), (TUint) aLength); __ASSERT_ALWAYS(aPos>=0,Panic(EPosNegative)); TPckgC pkPos(aPos); @@ -3078,7 +2948,7 @@ else r = SendReceive(EFsFileUnLock|KIpcArgSlot0Desc|KIpcArgSlot1Desc,TIpcArgs(&pkPos, &pkLength)); - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileUnLockReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFILE64UNLOCKRETURN, "r %d", r); return r; } @@ -3122,8 +2992,7 @@ */ EFSRV_EXPORT_C TInt RFile64::Read(TUint aPos,TDes8& aDes) const { - TRACE5(UTF::EBorder, UTraceModuleEfsrv::EFileRead3, MODULEUID, Session().Handle(), SubSessionHandle(), aPos, 0, aDes.MaxLength()); - + OstTraceExt4(TRACE_BORDER, EFSRV_EFILE64READ14, "sess %x subs %x aPos %x maxlen %d", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) aPos, (TUint) aDes.MaxLength()); TInt r; if(!(aPos + 1)) { @@ -3135,9 +3004,7 @@ TPckgC pkPos(pos); r = SendReceive(EFsFileRead|KIpcArgSlot2Desc,TIpcArgs(&aDes,aDes.MaxLength(),&pkPos)); } - - TRACERET2(UTF::EBorder, UTraceModuleEfsrv::EFileRead3Return, MODULEUID, r, aDes.Length()); - + OstTraceExt2(TRACE_BORDER, EFSRV_EFILE64READ14RETURN, "r %d len %d", (TUint) r, (TUint) aDes.Length()); return r; } @@ -3186,8 +3053,7 @@ */ EFSRV_EXPORT_C void RFile64::Read(TUint aPos,TDes8& aDes,TRequestStatus& aStatus) const { - TRACE6(UTF::EBorder, UTraceModuleEfsrv::EFileRead4, MODULEUID, Session().Handle(), SubSessionHandle(), aPos, 0, aDes.MaxLength(), &aStatus); - + OstTraceExt4(TRACE_BORDER, EFSRV_EFILE64READ12, "sess %x subs %x aPos %x maxlen %d", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) aPos, (TUint) aDes.MaxLength()); if(!(aPos + 1)) { RSubSessionBase::SendReceive(EFsFileRead,TIpcArgs(&aDes,aDes.MaxLength(),aPos),aStatus); @@ -3198,8 +3064,7 @@ TPckgC pkPos(pos); RSubSessionBase::SendReceive(EFsFileRead|KIpcArgSlot2Desc,TIpcArgs(&aDes,aDes.MaxLength(),&pkPos),aStatus); } - - TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFileRead4Return, MODULEUID); + OstTrace0(TRACE_BORDER, EFSRV_EFILE64READ12RETURN, ""); } @@ -3251,8 +3116,7 @@ */ EFSRV_EXPORT_C TInt RFile64::Read(TUint aPos,TDes8& aDes,TInt aLength) const { - TRACE5(UTF::EBorder, UTraceModuleEfsrv::EFileRead3, MODULEUID, Session().Handle(), SubSessionHandle(), aPos, 0, aLength); - + OstTraceExt4(TRACE_BORDER, EFSRV_EFILE64READ16, "sess %x subs %x aPos %x aLength %d", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) aPos, (TUint) aLength); if (aLength==0) { aDes.Zero(); @@ -3274,9 +3138,7 @@ TPckgC pkPos(pos); r = SendReceive(EFsFileRead|KIpcArgSlot2Desc,TIpcArgs(&aDes,aLength,&pkPos)); } - - TRACERET2(UTF::EBorder, UTraceModuleEfsrv::EFileRead3Return, MODULEUID, r, aDes.Length()); - + OstTraceExt2(TRACE_BORDER, EFSRV_EFILE64READ16RETURN, "r %d len %d", (TUint) r, (TUint) aDes.Length()); return r; } @@ -3335,8 +3197,7 @@ */ EFSRV_EXPORT_C void RFile64::Read(TUint aPos,TDes8& aDes,TInt aLength,TRequestStatus& aStatus) const { - TRACE6(UTF::EBorder, UTraceModuleEfsrv::EFileRead4, MODULEUID, Session().Handle(), SubSessionHandle(), aPos, 0, aLength, &aStatus); - + OstTraceExt4(TRACE_BORDER, EFSRV_EFILE64READ13, "sess %x subs %x aPos %x aLength %d", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) aPos, (TUint) aLength); if (aLength==0) { aDes.Zero(); @@ -3361,8 +3222,7 @@ TPckgC pkPos(pos); RSubSessionBase::SendReceive(EFsFileRead|KIpcArgSlot2Desc,TIpcArgs(&aDes,aLength,&pkPos),aStatus); } - - TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFileRead4Return, MODULEUID); + OstTrace0(TRACE_BORDER, EFSRV_EFILE64READ13RETURN, ""); } @@ -3400,8 +3260,7 @@ */ EFSRV_EXPORT_C TInt RFile64::Write(TUint aPos,const TDesC8& aDes) { - TRACE5(UTF::EBorder, UTraceModuleEfsrv::EFileWrite3, MODULEUID, Session().Handle(), SubSessionHandle(), aPos, 0, aDes.Length()); - + OstTraceExt4(TRACE_BORDER, EFSRV_EFILE64WRITE14, "sess %x subs %x aPos %x len %d", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) aPos, (TUint) aDes.Length()); TInt r; if(!(aPos + 1)) { @@ -3413,8 +3272,7 @@ TPckgC pkPos(pos); r = SendReceive(EFsFileWrite|KIpcArgSlot2Desc,TIpcArgs(&aDes,aDes.Length(),&pkPos)); } - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileWrite3Return, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFILE64WRITE14RETURN, "r %d", r); return r; } @@ -3458,8 +3316,7 @@ */ EFSRV_EXPORT_C void RFile64::Write(TUint aPos,const TDesC8& aDes,TRequestStatus& aStatus) { - TRACE6(UTF::EBorder, UTraceModuleEfsrv::EFileWrite4, MODULEUID, Session().Handle(), SubSessionHandle(), aPos, 0, aDes.Length(), &aStatus); - + OstTraceExt4(TRACE_BORDER, EFSRV_EFILE64WRITE16, "sess %x subs %x pos %x len %d", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) aPos, (TUint) aDes.Length()); if(!(aPos + 1)) { RSubSessionBase::SendReceive(EFsFileWrite,TIpcArgs(&aDes,aDes.Length(),aPos),aStatus); @@ -3470,7 +3327,7 @@ TPckgC pkPos(pos); RSubSessionBase::SendReceive(EFsFileWrite|KIpcArgSlot2Desc,TIpcArgs(&aDes,aDes.Length(),&pkPos),aStatus); } - TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFileWrite4Return, MODULEUID); + OstTrace0(TRACE_BORDER, EFSRV_EFILE64WRITE16RETURN, ""); } @@ -3508,8 +3365,7 @@ */ EFSRV_EXPORT_C TInt RFile64::Write(TUint aPos,const TDesC8& aDes,TInt aLength) { - TRACE3(UTF::EBorder, UTraceModuleEfsrv::EFileWrite1, MODULEUID, Session().Handle(), SubSessionHandle(), aLength); - + OstTraceExt4(TRACE_BORDER, EFSRV_EFILE64WRITE8, "sess %x subs %x aPos %x aLength %d", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) aPos, (TUint) aLength); TInt r; if(!(aPos + 1)) { @@ -3521,8 +3377,7 @@ TPckgC pkPos(pos); r = SendReceive(EFsFileWrite|KIpcArgSlot2Desc,TIpcArgs(&aDes,aLength,&pkPos)); } - - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFileWrite1Return, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFILE64WRITE8RETURN, "r %d", r); return r; } @@ -3569,8 +3424,7 @@ */ EFSRV_EXPORT_C void RFile64::Write(TUint aPos,const TDesC8& aDes,TInt aLength,TRequestStatus& aStatus) { - TRACE6(UTF::EBorder, UTraceModuleEfsrv::EFileWrite2, MODULEUID, Session().Handle(), SubSessionHandle(), aPos, 0, aLength, &aStatus); - + OstTraceExt4(TRACE_BORDER, EFSRV_EFILE64WRITE12, "sess %x subs %x aPos %x len %d", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) aPos, (TUint) aLength); if(!(aPos + 1)) { RSubSessionBase::SendReceive(EFsFileWrite,TIpcArgs(&aDes,aLength,aPos),aStatus); @@ -3581,7 +3435,7 @@ TPckgC pkPos(pos); RSubSessionBase::SendReceive(EFsFileWrite|KIpcArgSlot2Desc,TIpcArgs(&aDes,aLength,&pkPos),aStatus); } - TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFileWrite2Return, MODULEUID); + OstTrace0(TRACE_BORDER, EFSRV_EFILE64WRITE12RETURN, ""); } #else EFSRV_EXPORT_C TInt RFile64::Open(RFs& /*aFs*/,const TDesC& /*aName*/,TUint /*aFileMode*/) diff -r 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/fileserver/sfsrv/cl_fman.cpp --- a/userlibandfileserver/fileserver/sfsrv/cl_fman.cpp Thu May 27 14:17:14 2010 +0300 +++ b/userlibandfileserver/fileserver/sfsrv/cl_fman.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -15,21 +15,10 @@ #include "cl_std.h" -#define RETURNIFERROR(a,b,t) \ - { \ - if ((a=b)!=KErrNone) \ - { \ - if(iStatus) \ - User::RequestComplete(iStatus,a); \ - TInt _t = t; \ - if (_t) {TRACE1(UTF::EBorder, t, MODULEUID, a);} \ - return(a); \ - } \ - } - -#define RETURNIFERRORD(a,b,t) \ - TInt a; \ - RETURNIFERROR(a,b,t) +#ifdef OST_TRACE_COMPILER_IN_USE +#include "cl_fmanTraces.h" +#endif + const TUint KRecurseFlag = 0x40000000; const TUint KScanDownFlag = 0x20000000; @@ -528,14 +517,14 @@ @return Newly created CFileMan object. */ { - TRACE1(UTF::EBorder, UTraceModuleEfsrv::ECFileManNewL1, MODULEUID, aFs.Handle()); + OstTrace1(TRACE_BORDER, EFSRV_ECFILEMANNEWL1, "sess %x", aFs.Handle()); CFileMan* fileMan=new(ELeave) CFileMan(aFs); CleanupStack::PushL(fileMan); fileMan->CFileBase::ConstructL(); CleanupStack::Pop(); - TRACE1(UTF::EBorder, UTraceModuleEfsrv::ECFileManNewL1Return, MODULEUID, fileMan); + OstTrace1(TRACE_BORDER, EFSRV_ECFILEMANNEWL1RETURN, "CFileMan* %x", fileMan); return fileMan; } @@ -552,7 +541,7 @@ @return Newly created CFileMan object. */ { - TRACE2(UTF::EBorder, UTraceModuleEfsrv::ECFileManNewL2, MODULEUID, aFs.Handle(), anObserver); + OstTraceExt2(TRACE_BORDER, EFSRV_ECFILEMANNEWL2, "sess %x anObserver %x", (TUint) aFs.Handle(), (TUint) anObserver); CFileMan* fileMan=new(ELeave) CFileMan(aFs); CleanupStack::PushL(fileMan); @@ -560,7 +549,7 @@ CleanupStack::Pop(); fileMan->SetObserver(anObserver); - TRACE1(UTF::EBorder, UTraceModuleEfsrv::ECFileManNewL2Return, MODULEUID, fileMan); + OstTrace1(TRACE_BORDER, EFSRV_ECFILEMANNEWL2RETURN, "CFileMan* %x", fileMan); return fileMan; } @@ -576,9 +565,9 @@ } CFileMan::~CFileMan() { - TRACE1(UTF::EBorder, UTraceModuleEfsrv::ECFileManDestructor, MODULEUID, this); - - TRACE0(UTF::EBorder, UTraceModuleEfsrv::ECFileManDestructorReturn, MODULEUID); + OstTrace1(TRACE_BORDER, EFSRV_ECFILEMANDESTRUCTOR, "this %x", this); + + OstTrace0(TRACE_BORDER, EFSRV_ECFILEMANDESTRUCTORRETURN, ""); } @@ -589,7 +578,7 @@ @return The action which CFileMan is carrying out. */ { - TRACE1(UTF::EBorder, UTraceModuleEfsrv::ECFileManCurrentAction, MODULEUID, this); + OstTrace1(TRACE_BORDER, EFSRV_ECFILEMANCURRENTACTION, "this %x", this); TAction action = ENone; @@ -628,7 +617,7 @@ Panic(EFManUnknownAction); } - TRACE1(UTF::EBorder, UTraceModuleEfsrv::ECFileManCurrentActionReturn, MODULEUID, action); + OstTrace1(TRACE_BORDER, EFSRV_ECFILEMANCURRENTACTIONRETURN, "action %d", action); return (action); } @@ -646,11 +635,12 @@ the current CFileMan operation */ { - TRACE1(UTF::EBorder, UTraceModuleEfsrv::ECFileManGetCurrentTarget, MODULEUID, this); + OstTrace1(TRACE_BORDER, EFSRV_ECFILEMANGETCURRENTTARGET, "this %x", this); GetSrcAndTrg(iTmpParse, aTrgName); - TRACEMULT1(UTF::EBorder, UTraceModuleEfsrv::ECFileManGetCurrentTargetReturn, MODULEUID, aTrgName); + OstTrace0(TRACE_BORDER, EFSRV_ECFILEMANGETCURRENTTARGETRETURN, ""); + OstTraceData(TRACE_BORDER, EFSRV_ECFILEMANGETCURRENTTARGET_EFILENAME, "FileName %S", aTrgName.Ptr(), aTrgName.Length()<<1); } @@ -667,13 +657,14 @@ CFileMan operation. */ { - TRACE1(UTF::EBorder, UTraceModuleEfsrv::ECFileManGetCurrentSource, MODULEUID, this); + OstTrace1(TRACE_BORDER, EFSRV_ECFILEMANGETCURRENTSOURCE, "this %x", this); TPtrC fullPath(FullPath()); iTmpParse.Set(CurrentEntry().iName, &fullPath, NULL); aSrcName = iTmpParse.FullName(); - TRACEMULT1(UTF::EBorder, UTraceModuleEfsrv::ECFileManGetCurrentSourceReturn, MODULEUID, aSrcName); + OstTrace0(TRACE_BORDER, EFSRV_ECFILEMANGETCURRENTSOURCERETURN, ""); + OstTraceData(TRACE_BORDER, EFSRV_ECFILEMANGETCURRENTSOURCE_EFILENAME, "FileName %S", aSrcName.Ptr(), aSrcName.Length()<<1); } void CFileMan::GetSrcAndTrg(TParse& aSrcName,TFileName& aTrgName) @@ -734,7 +725,7 @@ @return The number of bytes transferred. */ { - TRACE2(UTF::EBorder, UTraceModuleEfsrv::ECFileManBytesTransferredByCopyStep, MODULEUID, this, iBytesTransferred); + OstTraceExt2(TRACE_BORDER, EFSRV_ECFILEMANBYTESTRANSFERREDBYCOPYSTEP, "this %x BytesTransferred %d", (TUint) this, (TUint) iBytesTransferred); return(iBytesTransferred); } @@ -904,8 +895,9 @@ */ { - TRACEMULT8(UTF::EBorder, UTraceModuleEfsrv::ECFileManAttribs1, MODULEUID, - (TUint) this, aName, aSetMask, aClearMask, I64LOW(aTime.Int64()), I64HIGH(aTime.Int64()), aSwitches, (TUint) &aStatus); + OstTraceExt5(TRACE_BORDER, EFSRV_ECFILEMANATTRIBS1A, "this %x aSetMask %x aClearMask %x aSwitches %d status %x", (TUint) this, (TUint) aSetMask, (TUint) aClearMask, (TUint) aSwitches, (TUint) &aStatus); + OstTraceExt2(TRACE_BORDER, EFSRV_ECFILEMANATTRIBS1B, "aTime %x:%x ", (TUint) I64HIGH(aTime.Int64()), (TUint) I64LOW(aTime.Int64())); + OstTraceData(TRACE_BORDER, EFSRV_ECFILEMANATTRIBS1A_EFILEPATH, "FilePath %S", aName.Ptr(), aName.Length()<<1); TInt r; if (iSwitches&KFManBusyFlag) @@ -918,7 +910,8 @@ r = Attribs(aName,aSetMask,aClearMask,aTime,aSwitches); } - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::ECFileManAttribs1Return, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_ECFILEMANATTRIBS1RETURN, "r %d", r); + return r; } @@ -974,8 +967,9 @@ */ { - TRACEMULT7(UTF::EBorder, UTraceModuleEfsrv::ECFileManAttribs2, MODULEUID, - (TUint) this, aName, aSetMask, aClearMask, I64LOW(aTime.Int64()), I64HIGH(aTime.Int64()), aSwitches); + OstTraceExt4(TRACE_BORDER, EFSRV_ECFILEMANATTRIBS2A, "this %x aSetMask %x aClearMask %x aSwitches %x", (TUint) this, (TUint) aSetMask, (TUint) aClearMask, (TUint) aSwitches); + OstTraceExt2(TRACE_BORDER, EFSRV_ECFILEMANATTRIBS2B, "aTime %x:%x ", (TUint) I64HIGH(aTime.Int64()), (TUint) I64LOW(aTime.Int64())); + OstTraceData(TRACE_BORDER, EFSRV_ECFILEMANATTRIBS2A_EFILEPATH, "FilePath %S", aName.Ptr(), aName.Length()<<1); TInt ret; if (iSwitches&KFManBusyFlag) @@ -985,7 +979,15 @@ else { SetFlags(aSwitches&EOverWrite,aSwitches&ERecurse,ETrue,EFalse); - RETURNIFERRORD(r,iFs.Parse(aName,iSrcFile),UTraceModuleEfsrv::ECFileManAttribs2Return); + TInt r; + if ((r = iFs.Parse(aName,iSrcFile)) != KErrNone) + { + if(iStatus) + User::RequestComplete(iStatus,r); + OstTrace1(TRACE_BORDER, EFSRV_ECFILEMANATTRIBS2RETURN1, "r %d", r); + return r; + } + iSetMask=aSetMask; iClearMask=aClearMask; iTime=aTime; @@ -997,7 +999,8 @@ DoSynchronize(r); } - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::ECFileManAttribs2Return, MODULEUID, ret); + OstTrace1(TRACE_BORDER, EFSRV_ECFILEMANATTRIBS2RETURN2, "r %d", ret); + return(ret); } @@ -1037,8 +1040,9 @@ */ { - TRACEMULT5(UTF::EBorder, UTraceModuleEfsrv::ECFileManCopy1, MODULEUID, - (TUint) this, anOld, aNew, aSwitches, (TUint) &aStatus); + OstTraceExt3(TRACE_BORDER, EFSRV_ECFILEMANCOPY1, "this %x aSwitches %x status %x", (TUint) this, (TUint) aSwitches, (TUint) &aStatus); + OstTraceData(TRACE_BORDER, EFSRV_ECFILEMANCOPY1_EOLDNAME, "OldName %S", anOld.Ptr(), anOld.Length()<<1); + OstTraceData(TRACE_BORDER, EFSRV_ECFILEMANCOPY1_ENEWNAME, "NewName %S", aNew.Ptr(), aNew.Length()<<1); TInt r; if (iSwitches&KFManBusyFlag) @@ -1049,7 +1053,8 @@ r = Copy(anOld,aNew,aSwitches); } - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::ECFileManCopy1Return, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_ECFILEMANCOPY1RETURN, "r %d", r); + return(r); } @@ -1089,6 +1094,31 @@ including any directories in the path specified by aNew which do not already exist. +If the source (anOld) is a FILE and the recursive operation is set, +then all the files with the same name as anOld in the source directory +including those in subdirectories will be copied to the destination. + +For example, the initial directory structure is as follows: +C:\dir1\file.txt +C:\dir1\subdirA\file.txt +C:\dir1\subdirB\file.txt + +@code +CFileMan* fm(CFileMan::NewL(iFs)); // Where iFs is an RFs handle +fm->Copy(_L("C:\\dir1\\file.txt"), _L("C:\\dir2\\file.txt"), CFileMan::ERecurse); +// OR without specifying the filename in aNew: +fm->Copy(_L("C:\\dir1\\file.txt"), _L("C:\\dir2\\"), CFileMan::ERecurse); +@endcode + +Because of the recursive behaviour, the final directory structure after +either one of the copy operations above will be as follows: +C:\dir1\file.txt +C:\dir1\subdirA\file.txt +C:\dir1\subdirB\file.txt +C:\dir2\file.txt +C:\dir2\subdirA\file.txt +C:\dir2\subdirB\file.txt + If recursive operation is not set, only the matching files located in the single directory specified in anOld are copied. No intermediate directories will be created; if any directories in @@ -1122,13 +1152,13 @@ 1.2 If there is no file to operate on i.e. if source directory is empty, the function will do nothing and return error code KErrNotFound. - 2. Files can be copied across drives. - - 3. Open files can be copied if they have been opened using - the EFileShareReadersOnly file share mode. - - 4. Read-only, hidden and system files can be copied and - the source file's attributes are preserved in the target file. + 2. Files can be copied across drives. + + 3. Open files can be copied if they have been opened using + the EFileShareReadersOnly file share mode. + + 4. Read-only, hidden and system files can be copied and + the source file's attributes are preserved in the target file. @param anOld Path indicating the file(s) to be copied. Any path components which are not specified here will be @@ -1153,21 +1183,38 @@ */ { - TRACEMULT4(UTF::EBorder, UTraceModuleEfsrv::ECFileManCopy2, MODULEUID, (TUint) this, anOld, aNew, aSwitches); + OstTraceExt2(TRACE_BORDER, EFSRV_ECFILEMANCOPY2, "this %x aSwitches %d", (TUint) this, (TUint) aSwitches); + OstTraceData(TRACE_BORDER, EFSRV_ECFILEMANCOPY2_EOLDNAME, "OldName %S", anOld.Ptr(), anOld.Length()<<1); + OstTraceData(TRACE_BORDER, EFSRV_ECFILEMANCOPY2_ENEWNAME, "NewName %S", aNew.Ptr(), aNew.Length()<<1); if (iSwitches&KFManBusyFlag) { - TRACE1(UTF::EBorder, UTraceModuleEfsrv::ECFileManCopy2Return, MODULEUID, KErrInUse); + OstTrace1(TRACE_BORDER, EFSRV_ECFILEMANCOPY2RETURN1, "r %d", KErrInUse); return(KErrInUse); } SetFlags(aSwitches&EOverWrite,aSwitches&ERecurse,ETrue,EFalse); - RETURNIFERRORD(r,iFs.Parse(anOld,iSrcFile),UTraceModuleEfsrv::ECFileManCopy2Return); - RETURNIFERROR(r,iFs.Parse(aNew,_L("*"),iTrgFile),UTraceModuleEfsrv::ECFileManCopy2Return); + TInt r; + if ((r = iFs.Parse(anOld,iSrcFile)) != KErrNone) + { + if(iStatus) + User::RequestComplete(iStatus,r); + OstTrace1(TRACE_BORDER, EFSRV_ECFILEMANCOPY2RETURN2, "r %d", r); + return r; + } + + if ((r = iFs.Parse(aNew,_L("*"),iTrgFile)) != KErrNone) + { + if(iStatus) + User::RequestComplete(iStatus,r); + OstTrace1(TRACE_BORDER, EFSRV_ECFILEMANCOPY2RETURN3, "r %d", r); + return r; + } + CheckForDirectory(); if((iSwitches&KRecurseFlag) && iTrgFile.DriveAndPath().MatchF(iSrcFile.FullName()) != KErrNotFound) { - TRACE1(UTF::EBorder, UTraceModuleEfsrv::ECFileManCopy2Return, MODULEUID, KErrArgument); + OstTrace1(TRACE_BORDER, EFSRV_ECFILEMANCOPY2RETURN4, "r %d", KErrArgument); return(KErrArgument); } @@ -1178,7 +1225,8 @@ TInt ret=(r==KErrNone) ? iLastError : r; DoSynchronize(r); - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::ECFileManCopy2Return, MODULEUID, ret); + OstTrace1(TRACE_BORDER, EFSRV_ECFILEMANCOPY2RETURN5, "r %d", ret); + return(ret); } @@ -1218,7 +1266,8 @@ @see KNullDesC */ { - TRACEMULT4(UTF::EBorder, UTraceModuleEfsrv::ECFileManDelete1, MODULEUID, (TUint) this, aName, aSwitches, (TUint) &aStatus); + OstTraceExt3(TRACE_BORDER, EFSRV_ECFILEMANDELETE1, "this %x aSwitches %x status %x", (TUint) this, (TUint) aSwitches, (TUint) &aStatus); + OstTraceData(TRACE_BORDER, EFSRV_ECFILEMANDELETE1_EFILEPATH, "FilePath %S", aName.Ptr(), aName.Length()<<1); TInt r; if (iSwitches&KFManBusyFlag) @@ -1231,7 +1280,8 @@ r = Delete(aName,aSwitches); } - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::ECFileManDelete1Return, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_ECFILEMANDELETE1RETURN, "r %d", r); + return(r); } @@ -1278,7 +1328,8 @@ @see KNullDesC */ { - TRACEMULT3(UTF::EBorder, UTraceModuleEfsrv::ECFileManDelete2, MODULEUID, (TUint) this, aName, aSwitches); + OstTraceExt2(TRACE_BORDER, EFSRV_ECFILEMANDELETE2, "this %x aSwitches %d", (TUint) this, (TUint) aSwitches); + OstTraceData(TRACE_BORDER, EFSRV_ECFILEMANDELETE2_EFILEPATH, "FilePath %S", aName.Ptr(), aName.Length()<<1); TInt ret; if (iSwitches&KFManBusyFlag) @@ -1288,7 +1339,15 @@ else { SetFlags(aSwitches&EOverWrite,aSwitches&ERecurse,ETrue,EFalse); - RETURNIFERRORD(r,iFs.Parse(aName,iSrcFile),UTraceModuleEfsrv::ECFileManDelete2Return); + TInt r; + if ((r = iFs.Parse(aName,iSrcFile)) != KErrNone) + { + if(iStatus) + User::RequestComplete(iStatus,r); + OstTrace1(TRACE_BORDER, EFSRV_ECFILEMANDELETE2RETURN1, "() r %d", r); + return r; + } + iAction = EInternalDelete; iMatchEntry=KEntryAttHidden|KEntryAttMatchExclude|KEntryAttDir; // Exclude directories and system files - include hidden files @@ -1298,7 +1357,8 @@ DoSynchronize(r); } - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::ECFileManDelete2Return, MODULEUID, ret); + OstTrace1(TRACE_BORDER, EFSRV_ECFILEMANDELETE2RETURN2, "() r %d", ret); + return(ret); } @@ -1342,8 +1402,9 @@ */ { - TRACEMULT5(UTF::EBorder, UTraceModuleEfsrv::ECFileManMove1, MODULEUID, - (TUint) this, anOld, aNew, aSwitches, (TUint) &aStatus); + OstTraceExt3(TRACE_BORDER, EFSRV_ECFILEMANMOVE1, "this %x aSwitches %x status %x", (TUint) this, (TUint) aSwitches, (TUint) &aStatus); + OstTraceData(TRACE_BORDER, EFSRV_ECFILEMANMOVE1_EOLDNAME, "OldName %S", anOld.Ptr(), anOld.Length()<<1); + OstTraceData(TRACE_BORDER, EFSRV_ECFILEMANMOVE1_ENEWNAME, "NewName %S", aNew.Ptr(), aNew.Length()<<1); TInt r; if (iSwitches&KFManBusyFlag) @@ -1356,7 +1417,8 @@ r = Move(anOld,aNew,aSwitches); } - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::ECFileManMove1Return, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_ECFILEMANMOVE1RETURN, "r %d", r); + return r; } @@ -1393,7 +1455,7 @@ recursively by default and moves both the last directory level and all of its content. Notice that no trailing backslash ("\") implies moving files recursively automatically. -For example, if the directory level "b" contains the files F1,F2 and F3, then: +For example, if the directory level "b" contains the files F1, F2 and F3, then: @code CFileMan* fm(CFileMan::NewL(iFs)); // Where iFs is an RFs handle ... @@ -1421,7 +1483,7 @@ 0 is passed as an argument, the operation behaves the same way as by passing CFileMan::ERecurse flag. -for example: +For example: @code CFileMan* fm(CFileMan::NewL(iFs)); // Where iFs is an RFs handle ... @@ -1436,6 +1498,31 @@ fm->Move(_L("C:\\a\\b"), _L("C:\\x\\y\\"), CFileMan::ERecurse); @endcode +If the source (anOld) is a FILE and the recursive operation is set, +then all the files with the same name as anOld in the source directory +including those in subdirectories will be moved to the destination. + +For example, the initial directory structure is as follows: +C:\src\file.txt +C:\src\subdirA\file.txt +C:\src\subdirB\file.txt + +@code +CFileMan* fm(CFileMan::NewL(iFs)); // Where iFs is an RFs handle +fm->Move(_L("C:\\src\\file.txt"), _L("C:\\dest\\file.txt"), CFileMan::ERecurse); +// OR without specifying the filename in aNew: +fm->Move(_L("C:\\src\\file.txt"), _L("C:\\dest\\"), CFileMan::ERecurse); +@endcode + +Because of the recursive behaviour, the final directory structure after +either one of the move operations above will be as follows: +C:\src\ +C:\src\subdirA\ +C:\src\subdirB\ +C:\dest\file.txt +C:\dest\subdirA\file.txt +C:\dest\subdirB\file.txt + Notes: -# Read-only, hidden and system files can be moved and the source file's @@ -1443,7 +1530,7 @@ be moved. Attempting to move an open file will return an error for that file, as retrieved by CFileBase::GetLastError(). -@param anOld Path indicating the files to be moved. May be either a full path, or +@param anOld Path indicating the directory/files to be moved. May be either a full path, or relative to the session path. Note that if you specify a directory level, then the behaviour of the move operation is sensitive to the presence (or absence) of a trailing backslash ("\") character. Any path components @@ -1471,20 +1558,36 @@ @see CFileBase::GetLastError() */ { - TRACEMULT4(UTF::EBorder, UTraceModuleEfsrv::ECFileManMove2, MODULEUID, - (TUint) this, anOld, aNew, aSwitches); + OstTraceExt2(TRACE_BORDER, EFSRV_ECFILEMANMOVE2, "this %x aSwitches %d", (TUint) this, (TUint) aSwitches); + OstTraceData(TRACE_BORDER, EFSRV_ECFILEMANMOVE2_EOLDNAME, "OldName %S", anOld.Ptr(), anOld.Length()<<1); + OstTraceData(TRACE_BORDER, EFSRV_ECFILEMANMOVE2_ENEWNAME, "NewName %S", aNew.Ptr(), aNew.Length()<<1); if (iSwitches&KFManBusyFlag) { - TRACE1(UTF::EBorder, UTraceModuleEfsrv::ECFileManMove2Return, MODULEUID, KErrInUse); + OstTrace1(TRACE_BORDER, EFSRV_ECFILEMANMOVE2RETURN1, "r %d", KErrInUse); return(KErrInUse); } iNumberOfFilesProcessed = 0; - RETURNIFERRORD(r,iFs.Parse(anOld,iSrcFile),UTraceModuleEfsrv::ECFileManMove2Return); - RETURNIFERROR(r,iFs.Parse(aNew,_L("*"),iTrgFile),UTraceModuleEfsrv::ECFileManMove2Return); + TInt r; + if ((r = iFs.Parse(anOld,iSrcFile)) != KErrNone) + { + if(iStatus) + User::RequestComplete(iStatus,r); + OstTrace1(TRACE_BORDER, EFSRV_ECFILEMANMOVE2RETURN2, "r %d", r); + return r; + } + + if ((r = iFs.Parse(aNew,_L("*"),iTrgFile)) != KErrNone) + { + if(iStatus) + User::RequestComplete(iStatus,r); + OstTrace1(TRACE_BORDER, EFSRV_ECFILEMANMOVE2RETURN3, "r %d", r); + return r; + } + TInt ret = KErrNone; TBool aComplete = EFalse; @@ -1503,7 +1606,7 @@ { User::RequestComplete(iStatus, ret); } - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::ECFileManMove2Return, MODULEUID, ret); + OstTrace1(TRACE_BORDER, EFSRV_ECFILEMANMOVE2RETURN4, "r %d", ret); return(ret); } @@ -1518,7 +1621,8 @@ ret = (r==KErrNone) ? iLastError : r; DoSynchronize(r); - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::ECFileManMove2Return, MODULEUID, ret); + OstTrace1(TRACE_BORDER, EFSRV_ECFILEMANMOVE2RETURN5, "r %d", ret); + return(ret); } @@ -1865,8 +1969,9 @@ */ { - TRACEMULT5(UTF::EBorder, UTraceModuleEfsrv::ECFileManRename1, MODULEUID, - (TUint) this, aName, aNewName, aSwitches, (TUint) &aStatus); + OstTraceExt3(TRACE_BORDER, EFSRV_ECFILEMANRENAME1, "this %x aSwitches %x status %x", (TUint) this, (TUint) aSwitches, (TUint) &aStatus); + OstTraceData(TRACE_BORDER, EFSRV_ECFILEMANRENAME1_EOLDNAME, "OldName %S", aName.Ptr(), aName.Length()<<1); + OstTraceData(TRACE_BORDER, EFSRV_ECFILEMANRENAME1_ENEWNAME, "NewName %S", aNewName.Ptr(), aNewName.Length()<<1); TInt r; if (iSwitches&KFManBusyFlag) @@ -1879,7 +1984,8 @@ r = Rename(aName,aNewName,aSwitches); } - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::ECFileManRename1Return, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_ECFILEMANRENAME1RETURN, "r %d", r); + return(r); } @@ -2045,8 +2151,9 @@ */ { - TRACEMULT4(UTF::EBorder, UTraceModuleEfsrv::ECFileManRename2, MODULEUID, - (TUint) this, aName, aNewName, aSwitches); + OstTraceExt2(TRACE_BORDER, EFSRV_ECFILEMANRENAME2, "this %x aSwitches %d", (TUint) this, (TUint) aSwitches); + OstTraceData(TRACE_BORDER, EFSRV_ECFILEMANRENAME2_EOLDNAME, "OldName %S", aName.Ptr(), aName.Length()<<1); + OstTraceData(TRACE_BORDER, EFSRV_ECFILEMANRENAME2_ENEWNAME, "NewName %S", aNewName.Ptr(), aNewName.Length()<<1); TInt ret; if (iSwitches&KFManBusyFlag) @@ -2056,8 +2163,22 @@ else { SetFlags(aSwitches&EOverWrite,EFalse,ETrue,EFalse); - RETURNIFERRORD(r,iFs.Parse(aName,iSrcFile),UTraceModuleEfsrv::ECFileManRename2Return); - RETURNIFERROR(r,iFs.Parse(aNewName,_L("*"),iTrgFile),UTraceModuleEfsrv::ECFileManRename2Return); + TInt r; + if ((r = iFs.Parse(aName,iSrcFile)) != KErrNone) + { + if(iStatus) + User::RequestComplete(iStatus,r); + OstTrace1(TRACE_BORDER, EFSRV_ECFILEMANRENAME2RETURN1, "r %d", r); + return r; + } + + if ((r = iFs.Parse(aNewName,_L("*"),iTrgFile)) != KErrNone) + { + if(iStatus) + User::RequestComplete(iStatus,r); + OstTrace1(TRACE_BORDER, EFSRV_ECFILEMANRENAME2RETURN2, "r %d", r); + return r; + } iAction = EInternalRename; iMatchEntry=KEntryAttMaskSupported; @@ -2067,7 +2188,8 @@ DoSynchronize(r); } - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::ECFileManRename2Return, MODULEUID, ret); + OstTrace1(TRACE_BORDER, EFSRV_ECFILEMANRENAME2RETURN3, "r %d", ret); + return(ret); } @@ -2097,7 +2219,8 @@ */ { - TRACEMULT3(UTF::EBorder, UTraceModuleEfsrv::ECFileManRmDir1, MODULEUID, (TUint) this, aDirName, (TUint) &aStatus); + OstTraceExt2(TRACE_BORDER, EFSRV_ECFILEMANRMDIR1, "this %x status %x", (TUint) this, (TUint) &aStatus); + OstTraceData(TRACE_BORDER, EFSRV_ECFILEMANRMDIR1_EDIRNAME, "Dir %S", aDirName.Ptr(), aDirName.Length()<<1); TInt r; if (iSwitches&KFManBusyFlag) @@ -2110,7 +2233,8 @@ r = RmDir(aDirName); } - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::ECFileManRmDir1Return, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_ECFILEMANRMDIR1RETURN, "r %d", r); + return r; } @@ -2145,7 +2269,8 @@ */ { - TRACEMULT2(UTF::EBorder, UTraceModuleEfsrv::ECFileManRmDir2, MODULEUID, (TUint) this, aDirName); + OstTrace1(TRACE_BORDER, EFSRV_ECFILEMANRMDIR2, "this %x", (TUint) this); + OstTraceData(TRACE_BORDER, EFSRV_ECFILEMANRMDIR2_EDIRNAME, "Dir %S", aDirName.Ptr(), aDirName.Length()<<1); TInt ret; if (iSwitches&KFManBusyFlag) @@ -2155,7 +2280,15 @@ else { SetFlags(ETrue,ETrue,EFalse,EFalse); - RETURNIFERRORD(r,iFs.Parse(aDirName,iTrgFile),UTraceModuleEfsrv::ECFileManRmDir2Return); + TInt r; + if ((r = iFs.Parse(aDirName,iTrgFile)) != KErrNone) + { + if(iStatus) + User::RequestComplete(iStatus,r); + OstTrace1(TRACE_BORDER, EFSRV_ECFILEMANRMDIR2RETURN1, "r %d", r); + return r; + } + iSrcFile.Set(iTrgFile.DriveAndPath(),NULL,NULL); iAction = EInternalRmDir; iMatchEntry=KEntryAttMaskSupported; @@ -2165,7 +2298,8 @@ ret = (r!=KErrNone) ? iLastError : KErrNone; } - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::ECFileManRmDir2Return, MODULEUID, ret); + OstTrace1(TRACE_BORDER, EFSRV_ECFILEMANRMDIR2RETURN2, "r %d", ret); + return ret; } @@ -2563,8 +2697,8 @@ @capability Dependent If the path for aNew begins with /Resource then Tcb capability is required. */ { - TRACEMULT4(UTF::EBorder, UTraceModuleEfsrv::ECFileManCopy3, MODULEUID, - (TUint) this, anOld.SubSessionHandle(), aNew, aSwitches); + OstTraceExt3(TRACE_BORDER, EFSRV_ECFILEMANCOPY3, "this %x anOldSubs %x aSwitches %x", (TUint) this, (TUint) anOld.SubSessionHandle(), (TUint) aSwitches); + OstTraceData(TRACE_BORDER, EFSRV_ECFILEMANCOPY3_ENEWNAME, "NewName %S", aNew.Ptr(), aNew.Length()<<1); TInt ret; if (iSwitches&KFManBusyFlag) @@ -2586,11 +2720,23 @@ iSwitches|= KCopyFromHandle; TInt r; - RETURNIFERROR(r, iFs.Parse(aNew, iTrgFile),UTraceModuleEfsrv::ECFileManCopy3Return); + if ((r = iFs.Parse(aNew, iTrgFile)) != KErrNone) + { + if(iStatus) + User::RequestComplete(iStatus,r); + OstTrace1(TRACE_BORDER, EFSRV_ECFILEMANCOPY3RETURN1, "r %d", r); + return r; + } // Need to duplicate the RFile handle so that any threads owned // by this process can use it - i.e. the worker thread - RETURNIFERROR(r, iSrcFileHandle.Duplicate(anOld, EOwnerProcess),UTraceModuleEfsrv::ECFileManCopy3Return); + if ((r = iSrcFileHandle.Duplicate(anOld, EOwnerProcess)) != KErrNone) + { + if(iStatus) + User::RequestComplete(iStatus,r); + OstTrace1(TRACE_BORDER, EFSRV_ECFILEMANCOPY3RETURN2, "r %d", r); + return r; + } iAction = EInternalCopyFromHandle; iNumberOfFilesProcessed = 0; @@ -2599,7 +2745,8 @@ DoSynchronize(r); } - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::ECFileManCopy3Return, MODULEUID, ret); + OstTrace1(TRACE_BORDER, EFSRV_ECFILEMANCOPY3RETURN3, "r %d", ret); + return(ret); } @@ -2635,8 +2782,8 @@ @capability Dependent If the path for aNew begins with /Resource then Tcb capability is required. */ { - TRACEMULT5(UTF::EBorder, UTraceModuleEfsrv::ECFileManCopy4, MODULEUID, - (TUint) this, anOld.SubSessionHandle(), aNew, aSwitches, (TUint) &aStatus); + OstTraceExt4(TRACE_BORDER, EFSRV_ECFILEMANCOPY4, "this %x anOldSubs %x aSwitches %dstatus %x", (TUint) this, (TUint) anOld.SubSessionHandle(), (TUint) aSwitches, (TUint) &aStatus); + OstTraceData(TRACE_BORDER, EFSRV_ECFILEMANCOPY4_ENEWNAME, "NewName %S", aNew.Ptr(), aNew.Length()<<1); TInt r; if (iSwitches&KFManBusyFlag) @@ -2649,7 +2796,8 @@ r = Copy(anOld,aNew,aSwitches); } - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::ECFileManCopy4Return, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_ECFILEMANCOPY4RETURN, "r %d", r); + return(r); } @@ -2711,8 +2859,21 @@ { TInt64 rem; #endif - RETURNIFERRORD(r,aSrcFile.Size(rem),EFalse); - RETURNIFERROR(r, aDstFile.SetSize(rem),EFalse); + TInt r; + if ((r = aSrcFile.Size(rem)) != KErrNone) + { + if(iStatus) + User::RequestComplete(iStatus,r); + return r; + } + + + if ((r = aDstFile.SetSize(rem)) != KErrNone) + { + if(iStatus) + User::RequestComplete(iStatus,r); + return r; + } HBufC8* bufPtr = NULL; bufPtr = AllocateBuffer(rem); diff -r 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/fileserver/sfsrv/cl_fmt.cpp --- a/userlibandfileserver/fileserver/sfsrv/cl_fmt.cpp Thu May 27 14:17:14 2010 +0300 +++ b/userlibandfileserver/fileserver/sfsrv/cl_fmt.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -17,6 +17,10 @@ #include "cl_std.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "cl_fmtTraces.h" +#endif + @@ -48,12 +52,14 @@ */ { - TRACEMULT3(UTF::EBorder, UTraceModuleEfsrv::EFormat1Open, MODULEUID, aFs.Handle(), aName, aFormatMode); + OstTraceExt2(TRACE_BORDER, EFSRV_EFORMAT1OPEN, "sess %x aFormatMode %x", (TUint) aFs.Handle(), (TUint) aFormatMode); + OstTraceData(TRACE_BORDER, EFSRV_EFORMAT1OPEN_EDRIVENAME, "DriveName %S", aName.Ptr(), aName.Length()<<1); TPtr8 c((TUint8*)&aCount,sizeof(TUint),sizeof(TUint)); TInt r = CreateSubSession(aFs,EFsFormatOpen,TIpcArgs(&aName,aFormatMode,&c)); - TRACERET3(UTF::EBorder, UTraceModuleEfsrv::EFormatOpen1Return, MODULEUID, r, SubSessionHandle(), aCount); + OstTraceExt3(TRACE_BORDER, EFSRV_EFORMATOPEN1RETURN, "r %d subs %x aCount %d", (TUint) r, (TUint) SubSessionHandle(), (TUint) aCount); + return r; } @@ -86,7 +92,8 @@ @capability DiskAdmin */ { - TRACEMULT4(UTF::EBorder, UTraceModuleEfsrv::EFormat2Open, MODULEUID, aFs.Handle(), aName, aFormatMode, TUint(&aInfo)); + OstTraceExt3(TRACE_BORDER, EFSRV_EFORMAT2OPEN, "sess %x aFormatMode %x aInfo %x", (TUint) aFs.Handle(), (TUint) aFormatMode, (TUint) TUint(&aInfo)); + OstTraceData(TRACE_BORDER, EFSRV_EFORMAT2OPEN_EDRIVENAME, "DriveName %S", aName.Ptr(), aName.Length()<<1); TInt size = sizeof(TUint)+aInfo.Length(); TUint8* buf = new TUint8[size]; @@ -106,7 +113,8 @@ delete[] buf; } - TRACERET3(UTF::EBorder, UTraceModuleEfsrv::EFormatOpen2Return, MODULEUID, r, SubSessionHandle(), aCount); + OstTraceExt3(TRACE_BORDER, EFSRV_EFORMATOPEN2RETURN, "r %d subs %x aCount %d", (TUint) r, (TUint) SubSessionHandle(), (TUint) aCount); + return r; } @@ -122,11 +130,11 @@ it completed successfully or not. */ { - TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFormatClose, MODULEUID, Session().Handle(), SubSessionHandle()); + OstTraceExt2(TRACE_BORDER, EFSRV_EFORMATCLOSE, "sess %x subs %x", (TUint) Session().Handle(), (TUint) SubSessionHandle()); CloseSubSession(EFsFormatSubClose); - TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFormatCloseReturn, MODULEUID); + OstTrace0(TRACE_BORDER, EFSRV_EFORMATCLOSERETURN, ""); } @@ -152,12 +160,13 @@ */ { - TRACE2(UTF::EBorder, UTraceModuleEfsrv::EFormatNext1, MODULEUID, Session().Handle(), SubSessionHandle()); + OstTraceExt2(TRACE_BORDER, EFSRV_EFORMATNEXT1, "sess %x subs %x", (TUint) Session().Handle(), (TUint) SubSessionHandle()); TPckg e(aStep); TInt r = SendReceive(EFsFormatNext,TIpcArgs(&e)); - TRACERET2(UTF::EBorder, UTraceModuleEfsrv::EFormatNext1Return, MODULEUID, r, aStep); + OstTraceExt2(TRACE_BORDER, EFSRV_EFORMATNEXT1RETURN, "r %d aStep %d", (TUint) r, (TUint) aStep); + return r; } @@ -187,9 +196,9 @@ */ { - TRACE3(UTF::EBorder, UTraceModuleEfsrv::EFormatNext2, MODULEUID, Session().Handle(), SubSessionHandle(), &aStatus); + OstTraceExt3(TRACE_BORDER, EFSRV_EFORMATNEXT2, "sess %x subs %x status %x", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) &aStatus); SendReceive(EFsFormatNext,TIpcArgs(&aStep),aStatus); - TRACE0(UTF::EBorder, UTraceModuleEfsrv::EFormatNext2Return, MODULEUID); + OstTrace0(TRACE_BORDER, EFSRV_EFORMATNEXT2RETURN, ""); } diff -r 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/fileserver/sfsrv/cl_main.cpp --- a/userlibandfileserver/fileserver/sfsrv/cl_main.cpp Thu May 27 14:17:14 2010 +0300 +++ b/userlibandfileserver/fileserver/sfsrv/cl_main.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -17,12 +17,16 @@ #include "cl_std.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "cl_mainTraces.h" +#endif + GLDEF_C void Panic(TClientPanic aPanic) // // Panic the current client with a file server client side panic. // { - TRACE1(UTF::EPanic, UTraceModuleEfsrv::EPanic, MODULEUID, aPanic); + OstTrace1(TRACE_PANIC, EFSRV_EPANIC, "%d", aPanic); User::Panic(_L("FSCLIENT panic"),aPanic); } diff -r 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/fileserver/sfsrv/cl_plugin.cpp --- a/userlibandfileserver/fileserver/sfsrv/cl_plugin.cpp Thu May 27 14:17:14 2010 +0300 +++ b/userlibandfileserver/fileserver/sfsrv/cl_plugin.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -17,6 +17,10 @@ #include "cl_std.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "cl_pluginTraces.h" +#endif + EXPORT_C TInt RFs::AddPlugin(const TDesC& aFileName) const /** @@ -31,7 +35,8 @@ @capability DiskAdmin */ { - TRACEMULT2(UTF::EBorder, UTraceModuleEfsrv::EFsAddPlugin, MODULEUID, Handle(), aFileName); + OstTrace1(TRACE_BORDER, EFSRV_EFSADDPLUGIN, "sess %x", Handle()); + OstTraceData(TRACE_BORDER, EFSRV_EFSADDPLUGIN_EFILENAME, "FileName %S", aFileName.Ptr(), aFileName.Length()<<1); RLoader loader; TInt r = loader.Connect(); @@ -41,7 +46,8 @@ loader.Close(); } - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsAddPluginReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSADDPLUGINRETURN, "r %d", r); + return r; } @@ -60,11 +66,13 @@ @capability DiskAdmin */ { - TRACEMULT2(UTF::EBorder, UTraceModuleEfsrv::EFsRemovePlugin, MODULEUID, Handle(), aPluginName); + OstTrace1(TRACE_BORDER, EFSRV_EFSREMOVEPLUGIN, "sess %x", Handle()); + OstTraceData(TRACE_BORDER, EFSRV_EFSREMOVEPLUGIN_EPLUGINNAME, "PluginName %S", aPluginName.Ptr(), aPluginName.Length()<<1); TInt r = SendReceive(EFsRemovePlugin,TIpcArgs(&aPluginName)); - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsRemovePluginReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSREMOVEPLUGINRETURN, "r %d", r); + return r; } @@ -95,11 +103,13 @@ @capability DiskAdmin */ { - TRACEMULT2(UTF::EBorder, UTraceModuleEfsrv::EFsMountPlugin1, MODULEUID, Handle(), aPluginName); + OstTrace1(TRACE_BORDER, EFSRV_EFSMOUNTPLUGIN1, "sess %x", Handle()); + OstTraceData(TRACE_BORDER, EFSRV_EFSMOUNTPLUGIN1_EPLUGINNAME, "PluginName %S", aPluginName.Ptr(), aPluginName.Length()<<1); TInt r = SendReceive(EFsMountPlugin,TIpcArgs(&aPluginName,KPluginAutoAttach,KPluginAutoLocate)); - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsMountPlugin1Return, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSMOUNTPLUGIN1RETURN, "r %d", r); + return r; } @@ -131,11 +141,13 @@ @capability DiskAdmin */ { - TRACEMULT3(UTF::EBorder, UTraceModuleEfsrv::EFsMountPlugin2, MODULEUID, Handle(), aPluginName, aDrive); + OstTraceExt2(TRACE_BORDER, EFSRV_EFSMOUNTPLUGIN2, "sess %x aDrive %d", (TUint) Handle(), (TUint) aDrive); + OstTraceData(TRACE_BORDER, EFSRV_EFSMOUNTPLUGIN2_EPLUGINNAME, "PluginName %S", aPluginName.Ptr(), aPluginName.Length()<<1); TInt r = SendReceive(EFsMountPlugin,TIpcArgs(&aPluginName,aDrive,KPluginAutoLocate)); - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsMountPlugin2Return, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSMOUNTPLUGIN2RETURN, "r %d", r); + return r; } @@ -175,11 +187,13 @@ @capability DiskAdmin */ { - TRACEMULT4(UTF::EBorder, UTraceModuleEfsrv::EFsMountPlugin3, MODULEUID, Handle(), aPluginName, aDrive, aPos); + OstTraceExt3(TRACE_BORDER, EFSRV_EFSMOUNTPLUGIN3, "sess %x aDrive %d aPos %x", (TUint) Handle(), (TUint) aDrive, (TUint) aPos); + OstTraceData(TRACE_BORDER, EFSRV_EFSMOUNTPLUGIN3_EPLUGINNAME, "PluginName %S", aPluginName.Ptr(), aPluginName.Length()<<1); TInt r = SendReceive(EFsMountPlugin,TIpcArgs(&aPluginName,aDrive,aPos)); - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsMountPlugin3Return, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSMOUNTPLUGIN3RETURN, "r %d", r); + return r; } @@ -200,11 +214,13 @@ @capability DiskAdmin */ { - TRACEMULT2(UTF::EBorder, UTraceModuleEfsrv::EFsDismountPlugin1, MODULEUID, Handle(), aPluginName); + OstTrace1(TRACE_BORDER, EFSRV_EFSDISMOUNTPLUGIN1, "sess %x", Handle()); + OstTraceData(TRACE_BORDER, EFSRV_EFSDISMOUNTPLUGIN1_EPLUGINNAME, "PluginName %S", aPluginName.Ptr(), aPluginName.Length()<<1); TInt r = SendReceive(EFsDismountPlugin,TIpcArgs(&aPluginName,KPluginAutoAttach,KPluginAutoLocate)); - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsDismountPlugin1Return, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSDISMOUNTPLUGIN1RETURN, "r %d", r); + return r; } @@ -233,11 +249,13 @@ @capability DiskAdmin */ { - TRACEMULT3(UTF::EBorder, UTraceModuleEfsrv::EFsDismountPlugin2, MODULEUID, Handle(), aPluginName, aDrive); + OstTraceExt2(TRACE_BORDER, EFSRV_EFSDISMOUNTPLUGIN2, "sess %x aDrive %d", (TUint) Handle(), (TUint) aDrive); + OstTraceData(TRACE_BORDER, EFSRV_EFSDISMOUNTPLUGIN2_EPLUGINNAME, "PluginName %S", aPluginName.Ptr(), aPluginName.Length()<<1); TInt r = SendReceive(EFsDismountPlugin,TIpcArgs(&aPluginName,aDrive,KPluginAutoLocate)); - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsDismountPlugin2Return, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSDISMOUNTPLUGIN2RETURN, "r %d", r); + return r; } @@ -269,11 +287,13 @@ @capability DiskAdmin */ { - TRACEMULT4(UTF::EBorder, UTraceModuleEfsrv::EFsDismountPlugin3, MODULEUID, Handle(), aPluginName, aDrive, aPos); + OstTraceExt3(TRACE_BORDER, EFSRV_EFSDISMOUNTPLUGIN3, "sess %x aDrive %d aPos %x", (TUint) Handle(), (TUint) aDrive, (TUint) aPos); + OstTraceData(TRACE_BORDER, EFSRV_EFSDISMOUNTPLUGIN3_EPLUGINNAME, "PluginName %S", aPluginName.Ptr(), aPluginName.Length()<<1); TInt r = SendReceive(EFsDismountPlugin,TIpcArgs(&aPluginName,aDrive,aPos)); - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EFsDismountPlugin3Return, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EFSDISMOUNTPLUGIN3RETURN, "r %d", r); + return r; } @@ -293,11 +313,14 @@ KErrNotFound if the plugin name is not found; */ { - TRACE3(UTF::EBorder, UTraceModuleEfsrv::EFsPluginName, MODULEUID, Handle(), aDrive, aPos); + OstTraceExt3(TRACE_BORDER, EFSRV_EFSPLUGINNAME, "sess %x aDrive %d aPos %x", (TUint) Handle(), (TUint) aDrive, (TUint) aPos); TInt r = SendReceive(EFsPluginName,TIpcArgs(&aPluginName,aDrive,aPos)); - TRACERETMULT2(UTF::EBorder, UTraceModuleEfsrv::EFsPluginName, MODULEUID, r, aPluginName); + OstTraceData(TRACE_BORDER, EFSRV_EFSPLUGINNAME_EPLUGINNAME, "PluginName %S", aPluginName.Ptr(), aPluginName.Length()<<1); + + OstTrace1(TRACE_BORDER, EFSRV_EFSPLUGINNAMERETURN, "r %d", r); + return r; } @@ -313,11 +336,12 @@ */ { - TRACE2(UTF::EBorder, UTraceModuleEfsrv::EPluginOpen, MODULEUID, aFs.Handle(), aPos); + OstTraceExt2(TRACE_BORDER, EFSRV_EPLUGINOPEN, "sess %x aPos %x", (TUint) aFs.Handle(), (TUint) aPos); TInt r = CreateSubSession(aFs,EFsPluginOpen,TIpcArgs(aPos,0,0)); - TRACERET2(UTF::EBorder, UTraceModuleEfsrv::EPluginOpenReturn, MODULEUID, r, SubSessionHandle()); + OstTraceExt2(TRACE_BORDER, EFSRV_EPLUGINOPENRETURN, "r %d subs %x", (TUint) r, (TUint) SubSessionHandle()); + return r; } @@ -328,11 +352,11 @@ Closes a plugin */ { - TRACE2(UTF::EBorder, UTraceModuleEfsrv::EPluginClose, MODULEUID, Session().Handle(), SubSessionHandle()); + OstTraceExt2(TRACE_BORDER, EFSRV_EPLUGINCLOSE, "sess %x subs %x", (TUint) Session().Handle(), (TUint) SubSessionHandle()); CloseSubSession(EFsPluginSubClose); - TRACE0(UTF::EBorder, UTraceModuleEfsrv::EPluginCloseReturn, MODULEUID); + OstTrace0(TRACE_BORDER, EFSRV_EPLUGINCLOSERETURN, ""); } EXPORT_C void RPlugin::DoRequest(TInt aReqNo, TRequestStatus& aStatus) const @@ -345,12 +369,12 @@ @param aStatus: status of the request */ { - TRACE4(UTF::EBorder, UTraceModuleEfsrv::EPluginDoRequest1, MODULEUID, Session().Handle(), SubSessionHandle(), aReqNo, &aStatus); + OstTraceExt4(TRACE_BORDER, EFSRV_EPLUGINDOREQUEST1, "sess %x subs %x aReqNo %d status %x", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) aReqNo, (TUint) &aStatus); aStatus=KRequestPending; SendReceive(EFsPluginDoRequest, TIpcArgs(aReqNo, NULL, NULL), aStatus); - TRACE0(UTF::EBorder, UTraceModuleEfsrv::EPluginDoRequest1Return, MODULEUID); + OstTrace0(TRACE_BORDER, EFSRV_EPLUGINDOREQUEST1RETURN, ""); } EXPORT_C void RPlugin::DoRequest(TInt aReqNo, TRequestStatus& aStatus, TDes8& a1) const @@ -364,12 +388,12 @@ @param a1: returning value from plugin */ { - TRACE5(UTF::EBorder, UTraceModuleEfsrv::EPluginDoRequest2, MODULEUID, Session().Handle(), SubSessionHandle(), aReqNo, &aStatus, &a1); + OstTraceExt5(TRACE_BORDER, EFSRV_EPLUGINDOREQUEST2, "sess %x subs %x aReqNo %d status %x a1 %x", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) aReqNo, (TUint) &aStatus, (TUint) &a1); aStatus=KRequestPending; SendReceive(EFsPluginDoRequest, TIpcArgs(aReqNo, &a1, NULL), aStatus); - TRACE0(UTF::EBorder, UTraceModuleEfsrv::EPluginDoRequest2Return, MODULEUID); + OstTrace0(TRACE_BORDER, EFSRV_EPLUGINDOREQUEST2RETURN, ""); } EXPORT_C void RPlugin::DoRequest(TInt aReqNo, TRequestStatus& aStatus, TDes8& a1, TDes8& a2) const @@ -382,12 +406,12 @@ @param a2: 2nd returning value from plugin */ { - TRACE6(UTF::EBorder, UTraceModuleEfsrv::EPluginDoRequest3, MODULEUID, Session().Handle(), SubSessionHandle(), aReqNo, &aStatus, &a1, &a2); + OstTraceExt5(TRACE_BORDER, EFSRV_EPLUGINDOREQUEST3, "sess %x subs %x aReqNo %d a1 %x a2 %x", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) aReqNo, (TUint) &a1, (TUint) &a2); aStatus=KRequestPending; SendReceive(EFsPluginDoRequest, TIpcArgs(aReqNo, &a1, &a2), aStatus); - TRACE0(UTF::EBorder, UTraceModuleEfsrv::EPluginDoRequest3Return, MODULEUID); + OstTrace0(TRACE_BORDER, EFSRV_EPLUGINDOREQUEST3RETURN, ""); } EXPORT_C TInt RPlugin::DoControl(TInt aFunction) const @@ -399,11 +423,12 @@ @param aFunction: The operation to be handled */ { - TRACE3(UTF::EBorder, UTraceModuleEfsrv::EPluginDoControl1, MODULEUID, Session().Handle(), SubSessionHandle(), aFunction); + OstTraceExt3(TRACE_BORDER, EFSRV_EPLUGINDOCONTROL1, "sess %x subs %x aFunction %d", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) aFunction); TInt r = SendReceive(EFsPluginDoControl,TIpcArgs(aFunction,0,0)); - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EPluginDoControl1Return, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EPLUGINDOCONTROL1RETURN, "r %d", r); + return r; } @@ -417,11 +442,12 @@ @param a1: returned buffer from plugin on completion of the request */ { - TRACE4(UTF::EBorder, UTraceModuleEfsrv::EPluginDoControl2, MODULEUID, Session().Handle(), SubSessionHandle(), aFunction, &a1); + OstTraceExt4(TRACE_BORDER, EFSRV_EPLUGINDOCONTROL2, "sess %x subs %x aFunction %d a1 %x", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) aFunction, (TUint) &a1); TInt r = SendReceive(EFsPluginDoControl,TIpcArgs(aFunction,&a1,0)); - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EPluginDoControl2Return, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EPLUGINDOCONTROL2RETURN, "r %d", r); + return r; } @@ -436,11 +462,12 @@ @param a2: 2nd returned buffer from plugin on completion of the request */ { - TRACE5(UTF::EBorder, UTraceModuleEfsrv::EPluginDoControl3, MODULEUID, Session().Handle(), SubSessionHandle(), aFunction, &a1, &a2); + OstTraceExt5(TRACE_BORDER, EFSRV_EPLUGINDOCONTROL3, "sess %x subs %x aFunction %d a1 %x a2 %x", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) aFunction, (TUint) &a1, (TUint) &a2); TInt r = SendReceive(EFsPluginDoControl,TIpcArgs(aFunction,&a1,&a2)); - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::EPluginDoControl3Return, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_EPLUGINDOCONTROL3RETURN, "r %d", r); + return r; } @@ -453,10 +480,10 @@ @param aReqMask: the bit mask for the operation to be cancelled */ { - TRACE3(UTF::EBorder, UTraceModuleEfsrv::EPluginDoCancel, MODULEUID, Session().Handle(), SubSessionHandle(), aReqMask); + OstTraceExt3(TRACE_BORDER, EFSRV_EPLUGINDOCANCEL, "sess %x subs %x aReqMask %x", (TUint) Session().Handle(), (TUint) SubSessionHandle(), (TUint) aReqMask); SendReceive(EFsPluginDoCancel,TIpcArgs(KMaxTInt,aReqMask,0)); - TRACE0(UTF::EBorder, UTraceModuleEfsrv::EPluginDoCancelReturn, MODULEUID); + OstTrace0(TRACE_BORDER, EFSRV_EPLUGINDOCANCELRETURN, ""); } diff -r 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/fileserver/sfsrv/cl_scan.cpp --- a/userlibandfileserver/fileserver/sfsrv/cl_scan.cpp Thu May 27 14:17:14 2010 +0300 +++ b/userlibandfileserver/fileserver/sfsrv/cl_scan.cpp Fri Jun 11 15:02:23 2010 +0300 @@ -16,6 +16,10 @@ #include "cl_std.h" #include "cl_scan.h" +#ifdef OST_TRACE_COMPILER_IN_USE +#include "cl_scanTraces.h" +#endif + const TInt KDirStackGranularity=8; /** Replace long names in path and filename with their sohrter version (if exists). Optionally appends @@ -115,13 +119,13 @@ @return A pointer to the new directory scan object. */ { - TRACE1(UTF::EBorder, UTraceModuleEfsrv::ECDirScanNewLC, MODULEUID, aFs.Handle()); + OstTrace1(TRACE_BORDER, EFSRV_ECDIRSCANNEWLC, "sess %x", aFs.Handle()); CDirScan* scan=new(ELeave) CDirScan(aFs); CleanupStack::PushL(scan); scan->iStack=CDirStack::NewL(); - TRACE1(UTF::EBorder, UTraceModuleEfsrv::ECDirScanNewLCReturn, MODULEUID, scan); + OstTrace1(TRACE_BORDER, EFSRV_ECDIRSCANNEWLCRETURN, "CDirScan* %x", scan); return scan; } @@ -137,12 +141,12 @@ @return A pointer to the new directory scan object. */ { - TRACE1(UTF::EBorder, UTraceModuleEfsrv::ECDirScanNewL, MODULEUID, aFs.Handle()); + OstTrace1(TRACE_BORDER, EFSRV_ECDIRSCANNEWL, "sess %x", aFs.Handle()); CDirScan* scan=CDirScan::NewLC(aFs); CleanupStack::Pop(); - TRACE1(UTF::EBorder, UTraceModuleEfsrv::ECDirScanNewLReturn, MODULEUID, scan); + OstTrace1(TRACE_BORDER, EFSRV_ECDIRSCANNEWLRETURN, "CDirScan* %x", scan); return scan; } @@ -156,11 +160,11 @@ Frees all resources owned by the object, prior to its destruction. */ { - TRACE1(UTF::EBorder, UTraceModuleEfsrv::ECDirScanDestructor, MODULEUID, this); + OstTrace1(TRACE_BORDER, EFSRV_ECDIRSCANDESTRUCTOR, "this %x", this); delete iStack; - TRACE0(UTF::EBorder, UTraceModuleEfsrv::ECDirScanDestructorReturn, MODULEUID); + OstTrace0(TRACE_BORDER, EFSRV_ECDIRSCANDESTRUCTORRETURN, ""); } @@ -214,13 +218,13 @@ @param aScanDir The direction of the scan. The default is downwards. */ { - TRACEMULT5(UTF::EBorder, UTraceModuleEfsrv::ECDirScanSetScanDataL, MODULEUID, (TUint) - this, aMatchName, anEntryAttMask, anEntrySortKey, (TUint) aScanDir); + OstTraceExt4(TRACE_BORDER, EFSRV_ECDIRSCANSETSCANDATAL, "this %x anEntryAttMask %x anEntrySortKey %d aScanDir %d", (TUint) this, (TUint) anEntryAttMask, (TUint) anEntrySortKey, (TUint) aScanDir); + OstTraceData(TRACE_BORDER, EFSRV_ECDIRSCANSETSCANDATAL_EFILEPATH, "FilePath %S", aMatchName.Ptr(), aMatchName.Length()<<1); TInt r = Fs().Parse(aMatchName,iFullPath); if (r != KErrNone) { - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::ECDirScanSetScanDataLReturn, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_ECDIRSCANSETSCANDATALRETURN1, "r %d", r); User::Leave(r); } @@ -234,7 +238,7 @@ if (aScanDir==EScanDownTree) iFullPath.PopDir(); - TRACE1(UTF::EBorder, UTraceModuleEfsrv::ECDirScanSetScanDataLReturn, MODULEUID, KErrNone); + OstTrace1(TRACE_BORDER, EFSRV_ECDIRSCANSETSCANDATALRETURN2, "r %d", KErrNone); } void CDirScan::UpdateAbbreviatedPath() @@ -278,15 +282,14 @@ no more directories in the structure. */ { - TRACE1(UTF::EBorder, UTraceModuleEfsrv::ECDirScanNextL, MODULEUID, this); + OstTrace1(TRACE_BORDER, EFSRV_ECDIRSCANNEXTL, "this %x", this); if (iScanDir==EScanUpTree) ScanUpTreeL(aDirEntries); else ScanDownTreeL(aDirEntries); - TRACE2(UTF::EBorder, UTraceModuleEfsrv::ECDirScanNextLReturn, MODULEUID, - KErrNone, aDirEntries ? (*aDirEntries).Count() : 0); + OstTraceExt2(TRACE_BORDER, EFSRV_ECDIRSCANNEXTLRETURN, "r %d DirEntries %d", (TUint) KErrNone, (TUint) aDirEntries ? (*aDirEntries).Count() : 0); } void CDirScan::ScanUpTreeL(CDir*& aDirEntries) @@ -337,7 +340,7 @@ } if (r != KErrNone) { - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::ECDirScanLeave, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_ECDIRSCANLEAVE1, "r %d", r); User::LeaveIfError(r); } @@ -355,7 +358,7 @@ else if (r != KErrNone) { iScanning = EFalse; - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::ECDirScanLeave, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_ECDIRSCANLEAVE2, "r %d", r); User::Leave(r); } @@ -393,7 +396,7 @@ TInt r = Fs().GetDir(iFullPath.FullName(),iEntryAttMask,iEntrySortMask,aDirEntries); if (r != KErrNone) { - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::ECDirScanLeave, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_ECDIRSCANLEAVE3, "r %d", r); User::Leave(r); } } @@ -425,7 +428,7 @@ r=iFullPath.AddDir(dirName); if (r==KErrGeneral) // Adding dirName makes iFullPath>256 characters { - TRACE1(UTF::EBorder, UTraceModuleEfsrv::ECDirScanLeave, MODULEUID, KErrTooBig); + OstTrace1(TRACE_BORDER, EFSRV_ECDIRSCANLEAVE4, "r %d", KErrTooBig); User::Leave(KErrTooBig); } @@ -447,7 +450,7 @@ iEntrySortMask,dirList); if (r != KErrNone) { - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::ECDirScanLeave, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_ECDIRSCANLEAVE5, "r %d", r); User::Leave(r); } iStack->PushL(*dirList); @@ -464,7 +467,7 @@ else { iScanning = EFalse; - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::ECDirScanLeave, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_ECDIRSCANLEAVE6, "r %d", r); User::Leave(r); } } @@ -568,7 +571,7 @@ if (r!=KErrNone) { delete nextLevel; - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::ECDirScanLeave, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_ECDIRSCANLEAVE7, "r %d", r); User::Leave(r); } } @@ -706,7 +709,7 @@ TInt r = iFs->GetOpenFileList(iScanPos,iEntryListPos,theId,array); if (r != KErrNone) { - TRACERET1(UTF::EBorder, UTraceModuleEfsrv::ECDirScanLeave, MODULEUID, r); + OstTrace1(TRACE_BORDER, EFSRV_ECDIRSCANLEAVE8, "r %d", r); User::Leave(r); } TInt count=array.Count(); diff -r 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/fileserver/sfsrv/cl_std.h --- a/userlibandfileserver/fileserver/sfsrv/cl_std.h Thu May 27 14:17:14 2010 +0300 +++ b/userlibandfileserver/fileserver/sfsrv/cl_std.h Fri Jun 11 15:02:23 2010 +0300 @@ -26,7 +26,6 @@ #include #include #include -#include #include "f32trace.h" enum TClientPanic diff -r 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/fileserver/sfsrv/efsrv.mmh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/userlibandfileserver/fileserver/sfsrv/efsrv.mmh Fri Jun 11 15:02:23 2010 +0300 @@ -0,0 +1,63 @@ +// Copyright (c) 1996-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of the License "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// f32\group\efsrv.mmp +// efsrv.dll File Server client-side library +// +// + +/** + @file +*/ + + + +USERINCLUDE ../ftrace + +USERINCLUDE ../sfsrv/traces + +SOURCEPATH ../sfsrv +SOURCE cl_cdir.cpp cl_cli.cpp cl_debug.cpp cl_dir.cpp +SOURCE cl_drive.cpp cl_entry.cpp cl_file.cpp cl_find.cpp +SOURCE cl_fman.cpp cl_fmt.cpp cl_fraw.cpp cl_ftext.cpp +SOURCE cl_main.cpp cl_parse.cpp cl_scan.cpp cl_insecure.cpp +SOURCE cl_plugin.cpp cl_blockmap.cpp cl_clamp.cpp +SOURCE cl_shim.cpp +SOURCE cl_notification.cpp +SOURCEPATH ../group +DOCUMENT release.txt + +TARGETTYPE dll + +DEFFILE efsrv.def + +USERINCLUDE ../inc +#ifdef SYMBIAN_OLD_EXPORT_LOCATION +SYSTEMINCLUDE ../inc +#endif +OS_LAYER_SYSTEMINCLUDE_SYMBIAN + +LIBRARY euser.lib hal.lib + +START WINS +BASEADDRESS 0x66000000 +END + +UID 0x1000008d 0x100039e4 +VENDORID 0x70000001 +CAPABILITY All + +unpagedcode + +SMPSAFE + diff -r 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/fileserver/sfsrv/efsrv.mmp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/userlibandfileserver/fileserver/sfsrv/efsrv.mmp Fri Jun 11 15:02:23 2010 +0300 @@ -0,0 +1,35 @@ +// Copyright (c) 1996-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of the License "Eclipse Public License v1.0" +// which accompanies this distribution, and is available +// at the URL "http://www.eclipse.org/legal/epl-v10.html". +// +// Initial Contributors: +// Nokia Corporation - initial contribution. +// +// Contributors: +// +// Description: +// f32/sfsrv/efsrv.mmp +// efsrv.dll File Server client-side library +// +// + +/** + @file +*/ + + +TARGET efsrv.dll + +#include "f32.mmh" // Generic definitions for the whole f32 component + +// By default, tracepoints are compiled in to UDEB version only +#ifdef SYMBIAN_TRACE_SYSTEM_INCLUDE + macro SYMBIAN_FTRACE_ENABLE_UDEB +// macro SYMBIAN_FTRACE_ENABLE_UREL +#endif + + +#include "efsrv.mmh" diff -r 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/fileserver/sfsrv/traces/OstTraceDefinitions.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/userlibandfileserver/fileserver/sfsrv/traces/OstTraceDefinitions.h Fri Jun 11 15:02:23 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 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/fileserver/sfsrv/traces/fixed_id.definitions --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/userlibandfileserver/fileserver/sfsrv/traces/fixed_id.definitions Fri Jun 11 15:02:23 2010 +0300 @@ -0,0 +1,646 @@ +#Fixed group and trace id definitions. If this file is removed, the identifiers are rebuilt. +[GROUP]TRACE_BORDER=0x40 +[GROUP]TRACE_PANIC=0x41 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECDIRSCANDESTRUCTOR=0x273 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECDIRSCANDESTRUCTORRETURN=0x274 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECDIRSCANLEAVE1=0x27b +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECDIRSCANLEAVE2=0x27c +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECDIRSCANLEAVE3=0x27d +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECDIRSCANLEAVE4=0x27e +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECDIRSCANLEAVE5=0x27f +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECDIRSCANLEAVE6=0x280 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECDIRSCANLEAVE7=0x281 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECDIRSCANLEAVE8=0x282 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECDIRSCANNEWL=0x271 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECDIRSCANNEWLC=0x26f +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECDIRSCANNEWLCRETURN=0x270 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECDIRSCANNEWLRETURN=0x272 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECDIRSCANNEXTL=0x279 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECDIRSCANNEXTLRETURN=0x27a +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECDIRSCANSETSCANDATAL=0x275 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECDIRSCANSETSCANDATALRETURN1=0x277 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECDIRSCANSETSCANDATALRETURN2=0x278 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECDIRSCANSETSCANDATAL_EFILEPATH=0x276 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANATTRIBS1A=0x1f5 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANATTRIBS1A_EFILEPATH=0x1f7 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANATTRIBS1B=0x1f6 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANATTRIBS1RETURN=0x1f8 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANATTRIBS2A=0x1f9 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANATTRIBS2A_EFILEPATH=0x1fb +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANATTRIBS2B=0x1fa +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANATTRIBS2RETURN1=0x1fc +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANATTRIBS2RETURN2=0x1fd +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANBYTESTRANSFERREDBYCOPYSTEP=0x1f4 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANCOPY1=0x1fe +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANCOPY1RETURN=0x201 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANCOPY1_ENEWNAME=0x200 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANCOPY1_EOLDNAME=0x1ff +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANCOPY2=0x202 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANCOPY2RETURN1=0x205 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANCOPY2RETURN2=0x206 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANCOPY2RETURN3=0x207 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANCOPY2RETURN4=0x208 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANCOPY2RETURN5=0x209 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANCOPY2_ENEWNAME=0x204 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANCOPY2_EOLDNAME=0x203 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANCOPY3=0x22e +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANCOPY3RETURN1=0x230 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANCOPY3RETURN2=0x231 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANCOPY3RETURN3=0x232 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANCOPY3_ENEWNAME=0x22f +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANCOPY4=0x233 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANCOPY4RETURN=0x235 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANCOPY4_ENEWNAME=0x234 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANCURRENTACTION=0x1ec +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANCURRENTACTIONRETURN=0x1ed +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANDELETE1=0x20a +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANDELETE1RETURN=0x20c +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANDELETE1_EFILEPATH=0x20b +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANDELETE2=0x20d +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANDELETE2RETURN1=0x20f +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANDELETE2RETURN2=0x210 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANDELETE2_EFILEPATH=0x20e +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANDESTRUCTOR=0x1ea +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANDESTRUCTORRETURN=0x1eb +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANGETCURRENTSOURCE=0x1f1 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANGETCURRENTSOURCERETURN=0x1f2 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANGETCURRENTSOURCE_EFILENAME=0x1f3 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANGETCURRENTTARGET=0x1ee +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANGETCURRENTTARGETRETURN=0x1ef +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANGETCURRENTTARGET_EFILENAME=0x1f0 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANMOVE1=0x211 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANMOVE1RETURN=0x214 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANMOVE1_ENEWNAME=0x213 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANMOVE1_EOLDNAME=0x212 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANMOVE2=0x215 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANMOVE2RETURN1=0x218 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANMOVE2RETURN2=0x219 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANMOVE2RETURN3=0x21a +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANMOVE2RETURN4=0x21b +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANMOVE2RETURN5=0x21c +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANMOVE2_ENEWNAME=0x217 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANMOVE2_EOLDNAME=0x216 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANNEWL1=0x1e6 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANNEWL1RETURN=0x1e7 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANNEWL2=0x1e8 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANNEWL2RETURN=0x1e9 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANRENAME1=0x21d +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANRENAME1RETURN=0x220 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANRENAME1_ENEWNAME=0x21f +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANRENAME1_EOLDNAME=0x21e +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANRENAME2=0x221 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANRENAME2RETURN1=0x224 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANRENAME2RETURN2=0x225 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANRENAME2RETURN3=0x226 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANRENAME2_ENEWNAME=0x223 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANRENAME2_EOLDNAME=0x222 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANRMDIR1=0x227 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANRMDIR1RETURN=0x229 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANRMDIR1_EDIRNAME=0x228 +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANRMDIR2=0x22a +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANRMDIR2RETURN1=0x22c +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANRMDIR2RETURN2=0x22d +[TRACE]TRACE_BORDER[0x40]_EFSRV_ECFILEMANRMDIR2_EDIRNAME=0x22b +[TRACE]TRACE_BORDER[0x40]_EFSRV_EDIRCLOSE=0x124 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EDIRCLOSERETURN=0x125 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EDIROPEN1=0x11e +[TRACE]TRACE_BORDER[0x40]_EFSRV_EDIROPEN1RETURN=0x120 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EDIROPEN1_EDIRNAME=0x11f +[TRACE]TRACE_BORDER[0x40]_EFSRV_EDIROPEN2=0x121 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EDIROPEN2RETURN=0x123 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EDIROPEN2_EDIRNAME=0x122 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EDIRREAD1=0x126 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EDIRREAD1RETURN=0x127 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EDIRREAD2=0x128 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EDIRREAD2RETURN=0x129 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EDIRREAD3=0x12a +[TRACE]TRACE_BORDER[0x40]_EFSRV_EDIRREAD3RETURN=0x12b +[TRACE]TRACE_BORDER[0x40]_EFSRV_EDIRREAD4=0x12c +[TRACE]TRACE_BORDER[0x40]_EFSRV_EDIRREAD4RETURN=0x12d +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64ADOPTFROMCLIENT=0x1b1 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64ADOPTFROMCLIENTRETURN1=0x1b2 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64ADOPTFROMCLIENTRETURN2=0x1b3 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64ADOPTFROMCLIENTRETURN3=0x1b4 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64ADOPTFROMCREATOR=0x1b8 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64ADOPTFROMCREATORRETURN1=0x1b9 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64ADOPTFROMCREATORRETURN2=0x1ba +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64ADOPTFROMCREATORRETURN3=0x1bb +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64ADOPTFROMSERVER=0x1b5 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64ADOPTFROMSERVERRETURN1=0x1b6 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64ADOPTFROMSERVERRETURN2=0x1b7 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64CREATE=0x1a7 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64CREATERETURN=0x1a9 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64CREATE_EFILENAME=0x1a8 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64LOCK=0x1d2 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64LOCKRETURN=0x1d3 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64OPEN=0x1a4 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64OPENRETURN=0x1a6 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64OPEN_EFILENAME=0x1a5 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64READ10=0x1be +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64READ10RETURN=0x1bf +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64READ11=0x1c2 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64READ11RETURN=0x1c3 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64READ12=0x1d8 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64READ12RETURN=0x1d9 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64READ13=0x1dc +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64READ13RETURN=0x1dd +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64READ14=0x1d6 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64READ14RETURN=0x1d7 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64READ15=0x1c0 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64READ15RETURN=0x1c1 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64READ16=0x1da +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64READ16RETURN=0x1db +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64READ8=0x1bc +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64READ8RETURN=0x1bd +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64REPLACE=0x1aa +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64REPLACERETURN=0x1ac +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64REPLACE_EFILENAME=0x1ab +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64SEEK2=0x1cc +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64SEEK2RETURN=0x1cd +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64SETSIZE2=0x1d0 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64SETSIZE2RETURN=0x1d1 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64SIZE2=0x1ce +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64SIZE2RETURN=0x1cf +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64TEMP=0x1ad +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64TEMPRETURN=0x1b0 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64TEMP_EDIRNAME=0x1ae +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64TEMP_EFILENAME=0x1af +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64UNLOCK=0x1d4 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64UNLOCKRETURN=0x1d5 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64WRITE11=0x1ca +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64WRITE11RETURN=0x1cb +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64WRITE12=0x1e4 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64WRITE12RETURN=0x1e5 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64WRITE13=0x1c4 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64WRITE13RETURN=0x1c5 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64WRITE14=0x1de +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64WRITE14RETURN=0x1df +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64WRITE15=0x1c6 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64WRITE15RETURN=0x1c7 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64WRITE16=0x1e0 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64WRITE16RETURN=0x1e1 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64WRITE7=0x1c8 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64WRITE7RETURN=0x1c9 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64WRITE8=0x1e2 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILE64WRITE8RETURN=0x1e3 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEADOPT=0x12e +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEADOPTFROMCLIENT=0x135 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEADOPTFROMCLIENTRETURN1=0x136 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEADOPTFROMCLIENTRETURN2=0x137 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEADOPTFROMCLIENTRETURN3=0x138 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEADOPTFROMCREATOR=0x139 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEADOPTFROMCREATORRETURN1=0x13a +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEADOPTFROMCREATORRETURN2=0x13b +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEADOPTFROMCREATORRETURN3=0x13c +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEADOPTFROMSERVER=0x132 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEADOPTFROMSERVERRETURN1=0x133 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEADOPTFROMSERVERRETURN2=0x134 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEADOPTRETURN1=0x12f +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEADOPTRETURN2=0x130 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEADOPTRETURN3=0x131 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEATT=0x18d +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEATTRETURN=0x18e +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEBLOCKMAPA=0x1a1 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEBLOCKMAPB=0x1a2 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEBLOCKMAPRETURN=0x1a3 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILECHANGEMODE=0x198 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILECHANGEMODERETURN=0x199 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILECLAMP=0x19f +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILECLAMPRETURN=0x1a0 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILECLOSE=0x153 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILECLOSERETURN=0x154 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILECREATE=0x155 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILECREATERETURN=0x157 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILECREATE_EFILENAME=0x156 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEDRIVE=0x19d +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEDRIVERETURN=0x19e +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEDUPLICATE=0x13d +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEDUPLICATERETURN1=0x13e +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEDUPLICATERETURN2=0x13f +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEDUPLICATERETURN3=0x140 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEFLUSH1=0x185 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEFLUSH1RETURN=0x186 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEFLUSH2=0x187 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEFLUSH2RETURN=0x188 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEFULLNAME=0x14d +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEFULLNAMERETURN=0x14f +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEFULLNAME_EFILENAME=0x14e +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEGETNAME=0x14a +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEGETNAMERETURN=0x14c +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEGETNAME_EFILENAME=0x14b +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILELOCK=0x17f +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILELOCKRETURN=0x180 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEMODIFIED=0x191 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEMODIFIEDRETURN=0x192 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEOPEN=0x150 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEOPENRETURN=0x152 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEOPEN_EFILENAME=0x151 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEREAD1=0x15f +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEREAD1RETURN=0x160 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEREAD2=0x161 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEREAD2RETURN=0x162 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEREAD3=0x167 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEREAD3RETURN=0x168 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEREAD4=0x169 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEREAD4RETURN=0x16a +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEREAD5=0x163 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEREAD5RETURN=0x164 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEREAD6=0x165 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEREAD6RETURN=0x166 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEREAD7=0x16b +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEREAD7RETURN=0x16c +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEREAD9=0x16d +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEREAD9RETURN=0x16e +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILERENAME=0x19a +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILERENAMERETURN=0x19c +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILERENAME_ENEWNAME=0x19b +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEREPLACE=0x158 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEREPLACERETURN=0x15a +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEREPLACE_EFILENAME=0x159 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILESEEK1=0x183 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILESEEK1RETURN=0x184 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILESETA=0x195 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILESETATT=0x18f +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILESETATTRETURN=0x190 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILESETB=0x196 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILESETMODIFIED=0x193 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILESETMODIFIEDRETURN=0x194 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILESETRETURN=0x197 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILESETSIZE1=0x18b +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILESETSIZE1RETURN=0x18c +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILESIZE=0x189 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILESIZERETURN=0x18a +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILETEMP=0x15b +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILETEMPRETURN=0x15e +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILETEMP_EDIRNAME=0x15c +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILETEMP_EFILENAME=0x15d +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILETRANSFERTOCLIENT=0x144 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILETRANSFERTOCLIENTRETURN1=0x145 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILETRANSFERTOCLIENTRETURN2=0x146 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILETRANSFERTOCLIENTRETURN3=0x147 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILETRANSFERTOPROCESS=0x148 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILETRANSFERTOPROCESSRETURN=0x149 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILETRANSFERTOSERVER=0x141 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILETRANSFERTOSERVERRETURN1=0x142 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILETRANSFERTOSERVERRETURN2=0x143 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEUNLOCK=0x181 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEUNLOCKRETURN=0x182 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEWRITE1=0x16f +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEWRITE10=0x17d +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEWRITE10RETURN=0x17e +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEWRITE1RETURN=0x170 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEWRITE2=0x171 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEWRITE2RETURN=0x172 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEWRITE3=0x177 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEWRITE3RETURN=0x178 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEWRITE4=0x179 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEWRITE4RETURN=0x17a +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEWRITE5=0x173 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEWRITE5RETURN=0x174 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEWRITE6=0x17b +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEWRITE6RETURN=0x17c +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEWRITE9=0x175 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFILEWRITE9RETURN=0x176 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFORMAT1OPEN=0x236 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFORMAT1OPEN_EDRIVENAME=0x237 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFORMAT2OPEN=0x239 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFORMAT2OPEN_EDRIVENAME=0x23a +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFORMATCLOSE=0x23c +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFORMATCLOSERETURN=0x23d +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFORMATNEXT1=0x23e +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFORMATNEXT1RETURN=0x23f +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFORMATNEXT2=0x240 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFORMATNEXT2RETURN=0x241 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFORMATOPEN1RETURN=0x238 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFORMATOPEN2RETURN=0x23b +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSADDCOMPOSITEMOUNT=0xfe +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSADDCOMPOSITEMOUNTRETURN=0x100 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSADDCOMPOSITEMOUNT_EFILESYSTEMNAME=0xff +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSADDEXTENSION=0x3b +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSADDEXTENSIONRETURN=0x3d +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSADDEXTENSION_EEXTENSIONNAME=0x3c +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSADDFILESYSTEM=0x17 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSADDFILESYSTEMRETURN=0x19 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSADDFILESYSTEM_EFILENAME=0x18 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSADDPLUGIN=0x242 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSADDPLUGINRETURN=0x244 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSADDPLUGIN_EFILENAME=0x243 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSALLOWDISMOUNT=0x10d +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSALLOWDISMOUNTRETURN=0x10e +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSATT=0xa0 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSATTRETURN=0xa2 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSATT_EFILENAME=0xa1 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSCHECKDISK=0xc1 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSCHECKDISKRETURN=0xc3 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSCHECKDISK_EDIRNAME=0xc2 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSCLEARPASSWORD=0xec +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSCLEARPASSWORDRETURN=0xed +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSCLOSE=0x11c +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSCLOSERETURN=0x11d +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSCONNECT=0xc +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSCONNECTRETURN=0xd +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSCREATEPRIVATEPATH=0x13 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSCREATEPRIVATEPATHRETURN=0x14 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSDELETE=0x95 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSDELETERETURN=0x97 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSDELETE_EFILENAME=0x96 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSDISMOUNTEXTENSION=0x41 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSDISMOUNTEXTENSIONRETURN=0x43 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSDISMOUNTEXTENSION_EEXTENSIONNAME=0x42 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSDISMOUNTFILESYSTEM=0x32 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSDISMOUNTFILESYSTEMRETURN=0x34 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSDISMOUNTFILESYSTEM_EFILESYSTEMNAME=0x33 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSDISMOUNTPLUGIN1=0x251 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSDISMOUNTPLUGIN1RETURN=0x253 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSDISMOUNTPLUGIN1_EPLUGINNAME=0x252 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSDISMOUNTPLUGIN2=0x254 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSDISMOUNTPLUGIN2RETURN=0x256 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSDISMOUNTPLUGIN2_EPLUGINNAME=0x255 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSDISMOUNTPLUGIN3=0x257 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSDISMOUNTPLUGIN3RETURN=0x259 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSDISMOUNTPLUGIN3_EPLUGINNAME=0x258 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSDRIVE=0x5f +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSDRIVELIST1=0x5b +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSDRIVELIST1RETURN=0x5c +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSDRIVELIST2=0x5d +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSDRIVELIST2RETURN=0x5e +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSDRIVERETURN=0x60 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSDRIVETOCHAR=0x1 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSDRIVETOCHARRETURN=0x2 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSENTRY=0xac +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSENTRYRETURN=0xae +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSENTRY_EFILENAME=0xad +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSERASEPASSWORD=0xee +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSERASEPASSWORDRETURN=0xef +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSEXTENSIONNAME=0x47 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSEXTENSIONNAMERETURN=0x49 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSEXTENSIONNAME_EEXTENSIONNAME=0x48 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSFILESYSTEMNAME=0x35 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSFILESYSTEMNAMERETURN=0x37 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSFILESYSTEMNAME_EFILESYSTEMNAME=0x36 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSFILESYSTEMNAME_ESUPPORTEDFILESYSTEMNAME=0x39 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSFILESYSTEMSUBTYPE=0x119 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSFILESYSTEMSUBTYPERETURN=0x11b +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSFILESYSTEMSUBTYPE_EFILESYSTEMNAME=0x11a +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSFINALISEDRIVE=0xf5 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSFINALISEDRIVERETURN=0xf6 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSFINALISEDRIVES=0xf7 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSFINALISEDRIVESRETURN1=0xf8 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSFINALISEDRIVESRETURN2=0xf9 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSGETDIR1=0x85 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSGETDIR1RETURN=0x87 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSGETDIR1_EDIRNAME=0x86 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSGETDIR2=0x88 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSGETDIR2RETURN=0x8a +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSGETDIR2_EDIRNAME=0x89 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSGETDIR3=0x8b +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSGETDIR3RETURN=0x8d +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSGETDIR3_EDIRNAME=0x8c +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSGETDRIVENAME=0xe2 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSGETDRIVENAMERETURN=0xe4 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSGETDRIVENAME_EDRIVENAME=0xe3 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSGETLONGNAME=0xcb +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSGETLONGNAMERETURN=0xce +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSGETLONGNAME_ELONGNAME=0xcd +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSGETLONGNAME_ESHORTNAME=0xcc +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSGETMEDIASERIALNUMBER=0x73 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSGETMEDIASERIALNUMBERRETURN=0x74 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSGETMEDIASERIALNUMBER_ESERIALNUMBER=0x75 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSGETNOTIFYUSER=0xd2 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSGETNOTIFYUSERRETURN=0xd3 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSGETRESERVEACCESS=0x103 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSGETRESERVEACCESSRETURN=0x104 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSGETSHORTNAME=0xc7 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSGETSHORTNAMERETURN=0xca +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSGETSHORTNAME_ELONGNAME=0xc8 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSGETSHORTNAME_ESHORTNAME=0xc9 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSGETSYSTEMDRIVE=0x5 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSGETSYSTEMDRIVECHAR=0x8 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSGETSYSTEMDRIVECHARRETURN=0x9 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSGETSYSTEMDRIVERETURN1=0x6 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSGETSYSTEMDRIVERETURN2=0x7 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSINITIALISEPROPERTIESFILE=0x113 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSINITIALISEPROPERTIESFILERETURN=0x114 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSISFILEINROM=0xd6 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSISFILEINROMRETURN=0xd8 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSISFILEINROM_EFILENAME=0xd7 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSISFILEOPEN=0xcf +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSISFILEOPENRETURN=0xd1 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSISFILEOPEN_EFILENAME=0xd0 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSISROMADDRESS=0x3 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSISROMADDRESSRETURN=0x4 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSISVALIDNAME1=0xd9 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSISVALIDNAME1RETURN=0xdb +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSISVALIDNAME1_EFILENAME=0xda +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSISVALIDNAME2=0xdc +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSISVALIDNAME2RETURN=0xde +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSISVALIDNAME2_EFILENAME=0xdd +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSISVALIDNAME3=0xdf +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSISVALIDNAME3RETURN=0xe1 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSISVALIDNAME3_EFILENAME=0xe0 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSLOCKDRIVE=0xe8 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSLOCKDRIVERETURN=0xe9 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSMKDIR=0x7c +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSMKDIRALL=0x7f +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSMKDIRALLRETURN=0x81 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSMKDIRALL_EDIRNAME=0x80 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSMKDIRRETURN=0x7e +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSMKDIR_EDIRNAME=0x7d +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSMODIFIED=0xa6 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSMODIFIEDRETURN=0xa8 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSMODIFIED_EFILENAME=0xa7 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSMOUNTEXTENSION=0x3e +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSMOUNTEXTENSIONRETURN=0x40 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSMOUNTEXTENSION_EEXTENSIONNAME=0x3f +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSMOUNTFILESYSTEM1=0x1d +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSMOUNTFILESYSTEM1RETURN=0x1f +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSMOUNTFILESYSTEM1_EFILESYSTEMNAME=0x1e +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSMOUNTFILESYSTEM2=0x20 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSMOUNTFILESYSTEM2RETURN=0x22 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSMOUNTFILESYSTEM2_EFILESYSTEMNAME=0x21 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSMOUNTFILESYSTEM3=0x23 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSMOUNTFILESYSTEM3RETURN=0x26 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSMOUNTFILESYSTEM3_EEXTENSIONNAME=0x24 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSMOUNTFILESYSTEM3_EFILESYSTEMNAME=0x25 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSMOUNTFILESYSTEM4=0x27 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSMOUNTFILESYSTEM4RETURN=0x2a +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSMOUNTFILESYSTEM4_EEXTENSIONNAME=0x29 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSMOUNTFILESYSTEM4_EFILESYSTEMNAME=0x28 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSMOUNTFILESYSTEMANDSCAN1=0x2b +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSMOUNTFILESYSTEMANDSCAN1RETURN=0x2d +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSMOUNTFILESYSTEMANDSCAN1_EFILESYSTEMNAME=0x2c +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSMOUNTFILESYSTEMANDSCAN2=0x2e +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSMOUNTFILESYSTEMANDSCAN2RETURN=0x31 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSMOUNTFILESYSTEMANDSCAN2_EEXTENSIONNAME=0x30 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSMOUNTFILESYSTEMANDSCAN2_EFILESYSTEMNAME=0x2f +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSMOUNTPLUGIN1=0x248 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSMOUNTPLUGIN1RETURN=0x24a +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSMOUNTPLUGIN1_EPLUGINNAME=0x249 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSMOUNTPLUGIN2=0x24b +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSMOUNTPLUGIN2RETURN=0x24d +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSMOUNTPLUGIN2_EPLUGINNAME=0x24c +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSMOUNTPLUGIN3=0x24e +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSMOUNTPLUGIN3RETURN=0x250 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSMOUNTPLUGIN3_EPLUGINNAME=0x24f +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSNOTIFYCHANGE1=0x4c +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSNOTIFYCHANGE1RETURN=0x4d +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSNOTIFYCHANGE2=0x4e +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSNOTIFYCHANGE2RETURN=0x50 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSNOTIFYCHANGE2_EDIRNAME=0x4f +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSNOTIFYCHANGECANCEL1=0x51 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSNOTIFYCHANGECANCEL1RETURN=0x52 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSNOTIFYCHANGECANCEL2=0x53 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSNOTIFYCHANGECANCEL2RETURN=0x54 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSNOTIFYDISKSPACE=0x55 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSNOTIFYDISKSPACECANCEL1=0x57 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSNOTIFYDISKSPACECANCEL1RETURN=0x58 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSNOTIFYDISKSPACECANCEL2=0x59 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSNOTIFYDISKSPACECANCEL2RETURN=0x5a +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSNOTIFYDISKSPACERETURN=0x56 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSNOTIFYDISMOUNT=0x107 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSNOTIFYDISMOUNTCANCEL1=0x109 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSNOTIFYDISMOUNTCANCEL1RETURN=0x10a +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSNOTIFYDISMOUNTCANCEL2=0x10b +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSNOTIFYDISMOUNTCANCEL2RETURN=0x10c +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSNOTIFYDISMOUNTRETURN=0x108 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSPARSE1=0x8e +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSPARSE1RETURN=0x90 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSPARSE1_EFILEPATH=0x8f +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSPARSE2=0x91 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSPARSE2RETURN=0x94 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSPARSE2_EFILENAME=0x92 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSPARSE2_ERELATED=0x93 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSPLUGINNAME=0x25a +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSPLUGINNAMERETURN=0x25c +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSPLUGINNAME_EPLUGINNAME=0x25b +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSPRIVATEPATH=0x10 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSPRIVATEPATHRETURN=0x12 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSPRIVATEPATH_EDIRNAME=0x11 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSQUERYVOLUMEINFOEXT=0x115 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSQUERYVOLUMEINFOEXTRETURN=0x116 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSREADFILESECTION=0xb2 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSREADFILESECTIONRETURN1=0xb4 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSREADFILESECTIONRETURN2=0xb5 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSREADFILESECTIONRETURN3=0xb6 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSREADFILESECTION_EFILENAME=0xb3 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSREADFILESECTION_RESERVED=0xb7 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSREADFILESECTION_RESERVED_EFILENAME=0xb8 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSREADFILESECTION_RESERVED_RETURN1=0xb9 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSREADFILESECTION_RESERVED_RETURN2=0xba +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSREALNAME=0x6f +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSREALNAMERETURN=0x72 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSREALNAME_EFILENAME1=0x70 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSREALNAME_EFILENAME2=0x71 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSRELEASERESERVEACCESS=0x105 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSRELEASERESERVEACCESSRETURN=0x106 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSREMOUNTDRIVE=0x4a +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSREMOUNTDRIVERETURN=0x4b +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSREMOVEEXTENSION=0x44 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSREMOVEEXTENSIONRETURN=0x46 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSREMOVEEXTENSION_EEXTENSIONNAME=0x45 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSREMOVEFILESYSTEM=0x1a +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSREMOVEFILESYSTEMRETURN=0x1c +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSREMOVEFILESYSTEM_EFILESYSTEMNAME=0x1b +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSREMOVEPLUGIN=0x245 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSREMOVEPLUGINRETURN=0x247 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSREMOVEPLUGIN_EPLUGINNAME=0x246 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSRENAME=0x98 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSRENAMERETURN=0x9b +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSRENAME_ENEWNAME=0x9a +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSRENAME_EOLDNAME=0x99 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSREPLACE=0x9c +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSREPLACERETURN=0x9f +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSREPLACE_ENEWNAME=0x9e +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSREPLACE_EOLDNAME=0x9d +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSRESERVEDRIVESPACE=0x101 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSRESERVEDRIVESPACERETURN=0x102 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSRESOURCECOUNT=0xbf +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSRESOURCECOUNTMARKEND=0xbd +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSRESOURCECOUNTMARKENDRETURN=0xbe +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSRESOURCECOUNTMARKSTART=0xbb +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSRESOURCECOUNTMARKSTARTRETURN=0xbc +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSRESOURCECOUNTRETURN=0xc0 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSRMDIR=0x82 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSRMDIRRETURN=0x84 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSRMDIR_EDIRNAME=0x83 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSCANDRIVE=0xc4 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSCANDRIVERETURN=0xc6 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSCANDRIVE_EDIRNAME=0xc5 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSESSIONPATH=0x76 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSESSIONPATHRETURN=0x77 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSESSIONPATH_EDIRNAME=0x78 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSETATT=0xa3 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSETATTRETURN=0xa5 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSETATT_EFILENAME=0xa4 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSETDRIVENAME=0xe5 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSETDRIVENAMERETURN=0xe7 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSETDRIVENAME_EDRIVENAME=0xe6 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSETENTRY=0xaf +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSETENTRYRETURN=0xb1 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSETENTRY_EFILENAME=0xb0 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSETLOCALDRIVEMAPPING=0xf2 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSETLOCALDRIVEMAPPINGRETURN=0xf4 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSETLOCALDRIVEMAPPING_ELOCALDRIVEMAPPING=0xf3 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSETMODIFIED=0xa9 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSETMODIFIEDRETURN=0xab +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSETMODIFIED_EFILENAME=0xaa +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSETNOTIFYCHANGE=0x111 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSETNOTIFYCHANGERETURN=0x112 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSETNOTIFYUSER=0xd4 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSETNOTIFYUSERRETURN=0xd5 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSETSESSIONPATH=0x79 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSETSESSIONPATHRETURN=0x7b +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSETSESSIONPATH_EDIRNAME=0x7a +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSETSESSIONTOPRIVATE=0xe +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSETSESSIONTOPRIVATERETURN=0xf +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSETSTARTUPCONFIGURATION=0x10f +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSETSTARTUPCONFIGURATIONRETURN=0x110 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSETSUBST=0x6c +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSETSUBSTRETURN=0x6e +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSETSUBST_EDIRNAME=0x6d +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSETSYSTEMDRIVE=0xa +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSETSYSTEMDRIVERETURN=0xb +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSETVOLUMELABEL=0x66 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSETVOLUMELABELRETURN=0x68 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSETVOLUMELABEL_EVOLUMENAME=0x67 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSTARTUPINITCOMPLETE=0xf0 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSTARTUPINITCOMPLETERETURN=0xf1 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSUBST=0x69 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSUBSTRETURN=0x6b +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSUBST_EDIRNAME=0x6a +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSUPPORTEDFILESYSTEMNAME=0x38 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSUPPORTEDFILESYSTEMNAMERETURN=0x3a +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSWAPFILESYSTEM=0xfa +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSWAPFILESYSTEMRETURN=0xfd +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSWAPFILESYSTEM_ENEWNAME=0xfc +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSSWAPFILESYSTEM_EOLDNAME=0xfb +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSUNLOCKDRIVE=0xea +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSUNLOCKDRIVERETURN=0xeb +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSVERSION=0x15 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSVERSIONRETURN=0x16 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSVOLUME1=0x61 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSVOLUME1RETURNA=0x62 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSVOLUME1RETURNB=0x63 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSVOLUME2=0x64 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSVOLUME2RETURN=0x65 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSVOLUMEIOPARAM=0x117 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EFSVOLUMEIOPARAMRETURN=0x118 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EPLUGINCLOSE=0x25f +[TRACE]TRACE_BORDER[0x40]_EFSRV_EPLUGINCLOSERETURN=0x260 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EPLUGINDOCANCEL=0x26d +[TRACE]TRACE_BORDER[0x40]_EFSRV_EPLUGINDOCANCELRETURN=0x26e +[TRACE]TRACE_BORDER[0x40]_EFSRV_EPLUGINDOCONTROL1=0x267 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EPLUGINDOCONTROL1RETURN=0x268 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EPLUGINDOCONTROL2=0x269 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EPLUGINDOCONTROL2RETURN=0x26a +[TRACE]TRACE_BORDER[0x40]_EFSRV_EPLUGINDOCONTROL3=0x26b +[TRACE]TRACE_BORDER[0x40]_EFSRV_EPLUGINDOCONTROL3RETURN=0x26c +[TRACE]TRACE_BORDER[0x40]_EFSRV_EPLUGINDOREQUEST1=0x261 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EPLUGINDOREQUEST1RETURN=0x262 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EPLUGINDOREQUEST2=0x263 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EPLUGINDOREQUEST2RETURN=0x264 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EPLUGINDOREQUEST3=0x265 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EPLUGINDOREQUEST3RETURN=0x266 +[TRACE]TRACE_BORDER[0x40]_EFSRV_EPLUGINOPEN=0x25d +[TRACE]TRACE_BORDER[0x40]_EFSRV_EPLUGINOPENRETURN=0x25e +[TRACE]TRACE_PANIC[0x41]_EFSRV_EPANIC=0x1 diff -r 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/fileserver/shostmassstorage/base_f32_shostmassstorage.mrp --- a/userlibandfileserver/fileserver/shostmassstorage/base_f32_shostmassstorage.mrp Thu May 27 14:17:14 2010 +0300 +++ b/userlibandfileserver/fileserver/shostmassstorage/base_f32_shostmassstorage.mrp Fri Jun 11 15:02:23 2010 +0300 @@ -1,18 +1,3 @@ -# -# 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 "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: -# # component name "USB Host Mass Storage Server" component base_f32_shostmassstorage diff -r 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/fileserver/shostmassstorage/client/hostmsclient.mmp --- a/userlibandfileserver/fileserver/shostmassstorage/client/hostmsclient.mmp Thu May 27 14:17:14 2010 +0300 +++ b/userlibandfileserver/fileserver/shostmassstorage/client/hostmsclient.mmp Fri Jun 11 15:02:23 2010 +0300 @@ -1,4 +1,4 @@ -// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). +// Copyright (c) 2008-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" @@ -30,7 +30,7 @@ LIBRARY efsrv.lib euser.lib hal.lib usbdescriptors.lib usbdi_utils.lib -CAPABILITY ALL +CAPABILITY TCB ProtServ DiskAdmin AllFiles PowerMgmt CommDD NetworkControl WriteDeviceData //MACRO _USBMS_DEBUG_PRINT_ diff -r 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/fileserver/shostmassstorage/server/hostmsserver.mmp --- a/userlibandfileserver/fileserver/shostmassstorage/server/hostmsserver.mmp Thu May 27 14:17:14 2010 +0300 +++ b/userlibandfileserver/fileserver/shostmassstorage/server/hostmsserver.mmp Fri Jun 11 15:02:23 2010 +0300 @@ -1,4 +1,4 @@ -// Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). +// Copyright (c) 2008-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" @@ -62,7 +62,7 @@ BASEADDRESS 0x61000000 END -CAPABILITY ALL -Tcb +CAPABILITY AllFiles CommDD UID 0 0x10286A83 diff -r 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/fileserver/smassstorage/base_f32_smassstorage.mrp --- a/userlibandfileserver/fileserver/smassstorage/base_f32_smassstorage.mrp Thu May 27 14:17:14 2010 +0300 +++ b/userlibandfileserver/fileserver/smassstorage/base_f32_smassstorage.mrp Fri Jun 11 15:02:23 2010 +0300 @@ -1,18 +1,3 @@ -# -# 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 "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: -# # component name "USB Mass Storage File System" component base_f32_smassstorage diff -r 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/fileserver/srofs/base_f32_srofs.mrp --- a/userlibandfileserver/fileserver/srofs/base_f32_srofs.mrp Thu May 27 14:17:14 2010 +0300 +++ b/userlibandfileserver/fileserver/srofs/base_f32_srofs.mrp Fri Jun 11 15:02:23 2010 +0300 @@ -1,18 +1,3 @@ -# -# 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 "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: -# # component name "ROFS File System" component base_f32_srofs diff -r 95f71bcdcdb7 -r 657f875b013e userlibandfileserver/fileserver/srom/base_f32_srom.mrp --- a/userlibandfileserver/fileserver/srom/base_f32_srom.mrp Thu May 27 14:17:14 2010 +0300 +++ b/userlibandfileserver/fileserver/srom/base_f32_srom.mrp Fri Jun 11 15:02:23 2010 +0300 @@ -1,18 +1,3 @@ -# -# 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 "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: -# # component name "ROM File System" component base_f32_srom