Catchup to latest Symbian^4 GCC_SURGE
authorWilliam Roberts <williamr@symbian.org>
Thu, 22 Jul 2010 16:45:41 +0100
branchGCC_SURGE
changeset 49 00076e39386f
parent 38 61516c5786af (current diff)
parent 45 c6215323ad55 (diff)
Catchup to latest Symbian^4
sysstatemgmt/systemstarter/documentation/9.4/SysStart.mdl
sysstatemgmt/systemstarter/documentation/9.5/SystemStarter.EAP
sysstatemgmt/systemstatemgr/test/testapps/inc/ssmtestappsucessfulafterretry.h
sysstatemgmt/systemstatemgr/test/testapps/src/ssmtestappsucessfulafterretry.rss
sysstatemgmt/systemstatemgr/test/testapps/src/ssmtestappsucessfulafterretry_reg.rss
sysstatemgmt/tsrc/public/basic/MT_SysLangUtil/MT_SysLangUtil.cpp
sysstatemgmt/tsrc/public/basic/MT_SysLangUtil/MT_SysLangUtil.h
sysstatemgmt/tsrc/public/basic/MT_SysLangUtil/MT_SysLangUtil_DllMain.cpp
--- a/accessoryservices/accessoryserver/group/AccServer.mmp	Wed Jun 23 22:58:50 2010 +0100
+++ b/accessoryservices/accessoryserver/group/AccServer.mmp	Thu Jul 22 16:45:41 2010 +0100
@@ -59,7 +59,6 @@
 
 USERINCLUDE         ../inc/Common
 USERINCLUDE         ../inc/Server
-USERINCLUDE         ../inc/ChargerContext
 
 // System include macro Starter P&S keys
 OS_LAYER_SYSTEMINCLUDE
@@ -77,7 +76,6 @@
 LIBRARY	            hwrmlightclient.lib // Used by accessory settings.
 LIBRARY	            efsrv.lib	// Used by accessory settings 
 LIBRARY             accpolicydb.lib
-LIBRARY             accchargercontext.lib
 #ifdef RD_TSP_CLIENT_MAPPER
 LIBRARY             tspclientmapper.lib
 #endif // RD_TSP_CLIENT_MAPPER
--- a/accessoryservices/accessoryserver/group/bld.inf	Wed Jun 23 22:58:50 2010 +0100
+++ b/accessoryservices/accessoryserver/group/bld.inf	Thu Jul 22 16:45:41 2010 +0100
@@ -54,7 +54,6 @@
 AccAudioControl.mmp
 ASYComms.mmp
 ASYProxy.mmp
-AccChargerContext.mmp
 accpolaudiodevicetopology.mmp
 
 // End of File
--- a/accessoryservices/accessoryserver/inc/Server/AccSrvConnectionController.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/accessoryservices/accessoryserver/inc/Server/AccSrvConnectionController.h	Thu Jul 22 16:45:41 2010 +0100
@@ -43,7 +43,6 @@
 class CAccSrvASYProxyHandler;
 class CAccSrvSettingsHandler;
 class CAccSrvWiredConnectionPublisher;
-class CAccSrvChargingContextController;
 
 // CLASS DECLARATION
 
@@ -387,7 +386,6 @@
         CAccSrvModeHandler*                     iModeHandler;            //Owned
         CAccSrvASYProxyHandler*                 iASYProxyHandler;        //Owned
         CAccSrvSettingsHandler*                 iSettingsHandler;        //Owned
-        CAccSrvChargingContextController*       iChargingContextController; //Owned
         RPointerArray<CAccSrvConnectionHandler> iConnectionHandler;      //Owned
 
 	    TUint32                                 iInformationNoteUID;	  
--- a/accessoryservices/accessoryserver/rom/AccServer.iby	Wed Jun 23 22:58:50 2010 +0100
+++ b/accessoryservices/accessoryserver/rom/AccServer.iby	Thu Jul 22 16:45:41 2010 +0100
@@ -32,7 +32,6 @@
 file=ABI_DIR\BUILD_DIR\AsyComms.dll                     SHARED_LIB_DIR\AsyComms.dll
 file=ABI_DIR\BUILD_DIR\AsyProxy.dll                     SHARED_LIB_DIR\AsyProxy.dll
 file=ABI_DIR\BUILD_DIR\accsrvutil.dll                   SHARED_LIB_DIR\accsrvutil.dll
-file=ABI_DIR\BUILD_DIR\AccChargerContext.dll            SHARED_LIB_DIR\AccChargerContext.dll
 file=ABI_DIR\BUILD_DIR\accpolaudiodevicetopology.dll	SHARED_LIB_DIR\accpolaudiodevicetopology.dll
 
 data=ZPRIVATE\100012A5\policy\10205030.spd              \private\100012A5\policy\10205030.spd
--- a/accessoryservices/accessoryserver/src/ASYProxy/ASYProxyCommandObserver.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/accessoryservices/accessoryserver/src/ASYProxy/ASYProxyCommandObserver.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -181,25 +181,28 @@
     {
     COM_TRACE_( "[AccFW:AsyProxy] CASYProxyCommandObserver::DoCancel()" );
 
-    iAsyProxyCommsSrvc->iAsyComms.CancelNotifyProcessCommand();
-
-    if ( !iInDestructionPhase )
+    if ( iAsyProxyCommsSrvc )
         {
-        COM_TRACE_( "[AccFW:AsyProxy] Proxy Command Observation is Cancelled while Destruction is not in Progress" );
-    #ifdef _DEBUG
-        TRAPD( errUpdate, iAsyProxyCommsSrvc->UpdateAsyCommsStackL() );
-        TRAPD( errCreate, iAsyProxyCommsSrvc->CreateAsyCommandHandlerL( this ) );
+        iAsyProxyCommsSrvc->iAsyComms.CancelNotifyProcessCommand();
+    
+        if ( !iInDestructionPhase )
+            {
+            COM_TRACE_( "[AccFW:AsyProxy] Proxy Command Observation is Cancelled while Destruction is not in Progress" );
+        #ifdef _DEBUG
+            TRAPD( errUpdate, iAsyProxyCommsSrvc->UpdateAsyCommsStackL() );
+            TRAPD( errCreate, iAsyProxyCommsSrvc->CreateAsyCommandHandlerL( this ) );
+            
+            COM_TRACE_1( "[AccFW:AsyProxy] CASYProxyCommandObserver::DoCancel - errUpdate == %d", errUpdate );
+            COM_TRACE_1( "[AccFW:AsyProxy] CASYProxyCommandObserver::DoCancel - errCreate == %d", errCreate );
+        #else
+            TRAP_IGNORE( iAsyProxyCommsSrvc->UpdateAsyCommsStackL() );
+            TRAP_IGNORE( iAsyProxyCommsSrvc->CreateAsyCommandHandlerL( this ) );
+        #endif
+            }
         
-        COM_TRACE_1( "[AccFW:AsyProxy] CASYProxyCommandObserver::DoCancel - errUpdate == %d", errUpdate );
-        COM_TRACE_1( "[AccFW:AsyProxy] CASYProxyCommandObserver::DoCancel - errCreate == %d", errCreate );
-    #else
-        TRAP_IGNORE( iAsyProxyCommsSrvc->UpdateAsyCommsStackL() );
-        TRAP_IGNORE( iAsyProxyCommsSrvc->CreateAsyCommandHandlerL( this ) );
-    #endif
+        iAsyProxyCommsSrvc->Destroy( KErrNotFound ); // Transaction Id is not known know
         }
-    
-    iAsyProxyCommsSrvc->Destroy( KErrNotFound ); // Transaction Id is not known know
-
+        
     COM_TRACE_( "[AccFW:AsyProxy] CASYProxyCommandObserver::DoCancel - return void" );
     }
 
--- a/accessoryservices/accessoryserver/src/ASYProxy/ASYProxyCommsService.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/accessoryservices/accessoryserver/src/ASYProxy/ASYProxyCommsService.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -99,7 +99,7 @@
     // Zero handler needs CASYProxyCommsStack just to get simple Active Object
     //  because CActiveScheduler will be start later in any way
 
-    CASYProxyCommandObserver* iZeroObserver = CASYProxyCommandObserver::NewL( NULL );
+    iZeroObserver = CASYProxyCommandObserver::NewL( NULL );
 
     COM_TRACE_( "[AccFW:AsyProxy] CASYProxyCommsService::ConstructL - return void" );
     }
@@ -148,7 +148,11 @@
         delete iAsyProxyCommsStack;
         iAsyProxyCommsStack = 0;
         }
-
+    if ( iZeroObserver )
+        {
+        delete iZeroObserver;
+        }
+    
     COM_TRACE_( "[AccFW:AsyProxy] CASYProxyCommsService::~CASYProxyCommsService" );
     }
 
--- a/accessoryservices/accessoryserver/src/Policy/AccPolAccessoryPolicy.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/accessoryservices/accessoryserver/src/Policy/AccPolAccessoryPolicy.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -35,7 +35,11 @@
 
 // CONSTANTS
 
+#ifdef FF_AUTOMOTIVESTACK
+const TInt KAccMaxRules = 8;
+#else
 const TInt KAccMaxRules = 7;
+#endif
 
 const TInt  KAccConfigMaxCapabilityGroups = 64;
 const TInt  KAccGidIntBuf                 = 100;
@@ -387,6 +391,9 @@
      {KPCWired,     KAccMonoAudio},
      {KPCBluetooth, KAccStereoAudio},
      {KPCBluetooth, KAccMonoAudio},
+#ifdef FF_AUTOMOTIVESTACK	 
+	 {KPCUSB,   	KAccStereoAudio},
+#endif
      {KPCWired,     0},
      {KPCBluetooth, 0}
     };
@@ -466,7 +473,11 @@
             }
         }
     else if ( gID.PhysicalConnectionCaps( KPCWired ) ||
-              gID.PhysicalConnectionCaps( KPCHDMI ) )
+              gID.PhysicalConnectionCaps( KPCHDMI )
+#ifdef FF_AUTOMOTIVESTACK
+			  || gID.PhysicalConnectionCaps ( KPCUSB )
+#endif
+			)
         {
         if( gID.DeviceTypeCaps( KDTHeadset ) )
             {
--- a/accessoryservices/accessoryserver/src/Server/AccSrvConnectionController.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/accessoryservices/accessoryserver/src/Server/AccSrvConnectionController.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -30,7 +30,6 @@
 #include "AccPolGenericIDAccessor.h"
 #include "AccSrvSettingsHandler.h"
 #include "AccPolSubblockNameArrayAccessor.h"
-#include "AccSrvChargingContextController.h"
 #include <AccConfigFileParser.h>
 #include <s32mem.h>
 #include "AccSrvWiredConnectionPublisher.h"
@@ -101,12 +100,6 @@
     iASYProxyHandler         = CAccSrvASYProxyHandler::NewL( this );
     iSettingsHandler         = CAccSrvSettingsHandler::NewL( this, *aServerModel, iPolicy );
     iWiredConnPublisher      = CAccSrvWiredConnectionPublisher::NewL();
-    TRAPD( err, iChargingContextController = CAccSrvChargingContextController::NewL() );
-    if ( err != KErrNone ) // Server does not need to die on charging context fail.
-        {
-        COM_TRACE_1( "[AccFW:AccServer] CAccSrvConnectionController::ConstructL - CAccSrvChargingContextController err %d", err );
-        iChargingContextController = NULL;
-        }
 
     COM_TRACE_( "[AccFW:AccServer] CAccSrvConnectionController::ConstructL - return void" );
     }
@@ -167,11 +160,6 @@
         delete iSettingsHandler;
         }
     
-    if( NULL != iChargingContextController )
-        {
-        delete iChargingContextController;
-        }
-
     delete iWiredConnPublisher;
 
     // Handlers must be deleted after iPolicy and iASYProxyHandler
@@ -850,22 +838,37 @@
     TAccPolAccessoryMode accMode;
 
     iServerModel->CurrentConnectionStatusL( genericIDArray );
-
-    if( (EFalse == aAudioOutputStatus) && (KErrUnknown != aDbId) ) 
-        { 
-        TInt index( TAccPolGenericIDArrayAccessor::FindWithUniqueIDL( 
-                genericIDArray, aDbId) ); 
-				if(KErrNotFound != index)
-					{
-        	TAccPolGenericIDArrayAccessor::RemoveIndexFromGenericIDArray(genericIDArray, index); 
-        	}
+    
+    TUint count;
+    TBool isHDMIConnected = EFalse;
+    
+    count = genericIDArray.Count();
+    if((1 < count) && (EFalse == aAudioOutputStatus) && (KErrUnknown != aDbId))
+        {
+        for(TInt i( 0 ); i < count; ++i)
+            {
+            if(genericIDArray.GetGenericIDL(i).PhysicalConnectionCaps() & KPCHDMI)
+                {
+                isHDMIConnected = ETrue;
+                break;
+                }        
+            }
+        }
+    
+    if(isHDMIConnected)
+        {
+        accMode = iServerModel->AccessoryMode();
+        }    
+    else
+        {
+        accMode = iPolicy->ResolveAccessoryModeL( genericIDArray, 
+                                                  aDbId, 
+                                                  aAudioOutputStatus, 
+                                                  iServerModel->AccessoryMode(), 
+                                                  iServerModel->UniqueID() );
         }
 
-    accMode = iPolicy->ResolveAccessoryModeL( genericIDArray, 
-                                              aDbId, 
-                                              aAudioOutputStatus, 
-                                              iServerModel->AccessoryMode(), 
-                                              iServerModel->UniqueID() );
+    
 
     if( iServerModel->SetAccessoryMode( accMode, aDbId ) ) //Store accessory mode
         {
--- a/accessoryservices/accessoryserver/tsrc/public/basic/AccessoryTestControl/AccessoryTestControlPlugin/inc/TfAccessoryTestControlTypes.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/accessoryservices/accessoryserver/tsrc/public/basic/AccessoryTestControl/AccessoryTestControlPlugin/inc/TfAccessoryTestControlTypes.h	Thu Jul 22 16:45:41 2010 +0100
@@ -206,7 +206,10 @@
     ETFAsyConnectOpenCable3Poles,
     ETFAsyConnUSB,
     ETFAsyConnUSB2,
-    ETFAsyConnHDMI
+    ETFAsyConnHDMI,    
+#ifdef FF_AUTOMOTIVESTACK
+    ETFAsyRTPStreamingConn
+#endif
     };
 
 
--- a/accessoryservices/accessoryserver/tsrc/public/basic/AccessoryTestControl/AccessoryTestControlPlugin/src/TfAccessoryTestControlPlugin.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/accessoryservices/accessoryserver/tsrc/public/basic/AccessoryTestControl/AccessoryTestControlPlugin/src/TfAccessoryTestControlPlugin.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -26,7 +26,9 @@
 #include "CtfAccessoryTestCaseControl.h"
 #include <AccPolProprietaryNameValuePairs.h>
 
-
+#ifdef FF_AUTOMOTIVESTACK
+#include <autoaudiopskeys.h>
+#endif
 
 //M10703 KAccAudioOutConnector
 
@@ -43,6 +45,9 @@
 static void PolicyModuleTestSuiteL( CTFATestSuite* aSuite );
 static void UsbObjectModuleTestSuiteL( CTFATestSuite* aSuite );
 static void HdmiObjectModuleTestSuiteL( CTFATestSuite* aSuite );
+#ifdef FF_AUTOMOTIVESTACK
+static void AutoAudioAsyModuleTestSuiteL( CTFATestSuite* aSuite );
+#endif
 
 //
 // [M10101] [[AccServer] Open And Close Accessory Connection]
@@ -2626,7 +2631,86 @@
     { ETFCheckHdmiObject, 0, EAccPolHdmiVideoFormatObject,       0, 0, 0, 11306, ETFAsyNone, ReqAccRequestNone, KErrNone, 0},
     };
 
+#ifdef FF_AUTOMOTIVESTACK
+/************************                                             ****************************/
+/************************  AutoAudio ASY related testcases ****************************/
+/************************                                             ****************************/
 
+//
+// [M11401] AccServer [ Connect RTP streaming device ]
+//
+
+const TTFAccessoryTestCaseStateControl KTFConnectRTPStreamingDeviceStates[]=
+    {
+    { ETFAccessorySingleConnection_Open,        0, 0, 0,     0,                         0, 11401, ETFAsyNone,     ReqAccRequestNone,              KErrNone, 0},
+    { ETFAccessoryNotifyNewAccessoryConnected,  0, 0, 0,     0,                         0, 11401, ETFAsyNone,     ReqAccRequestNone,              KErrNone, 1000000},
+    { ETFConnectWiredAccessory,                 0, EAudioConnectionStatusUnidirectional, 0,     0,           0, 11401, ETFAsyRTPStreamingConn, ReqAccRequestNone,              KErrNone, 2000000},
+    { ETFFindAndCheckRequest,                   0, 0, 0,     0,                         0, 11401, ETFAsyNone,     ReqNotifyNewAccessoryConnected, KErrNone, 0},
+    { ETFCheckCapability,                       0, 0, ETrue, KAccAudioOutputType,       0, 11401, ETFAsyNone,     ReqAccRequestNone,              KErrNone, 0},
+    { ETFCheckCapability,                       0, 0, ETrue, KAccStereoAudio,           0, 11401, ETFAsyNone,     ReqAccRequestNone,              KErrNone, 0},
+    { ETFCheckCapability,                       0, 0, ETrue, KAccIntegratedAudioOutput, 0, 11401, ETFAsyNone,     ReqAccRequestNone,              KErrNone, 0},
+    { ETFCheckCapability,                       0, 0, ETrue, KAccRTPStreaming,          0, 11401, ETFAsyNone,     ReqAccRequestNone,              KErrNone, 0},
+    { ETFAccessoryNotifyAccessoryDisconnected,  0, 0, 0,     0,                         0, 11401, ETFAsyNone,     ReqAccRequestNone,              KErrNone, 2000000},
+    { ETFDisconnectWiredAccessory,              0, EAudioConnectionStatusNone, 0,     0,                     0, 11401, ETFAsyRTPStreamingConn,     ReqAccRequestNone,              KErrNone, 2000000},
+    { ETFFindAndCheckRequest,                   0, 0, 0,     0,                         0, 11401, ETFAsyNone,     ReqNotifyAccessoryDisconnected, KErrNone, 0},
+
+    { ETFClearStack,                            0, 0, 0,     0,                         0, 11401, ETFAsyNone,             ReqAccRequestNone,              KErrNone, 0},
+        
+    { ETFAccessorySingleConnection_Close,       0, 0, 0,     0,                         0, 11401, ETFAsyNone,     ReqAccRequestNone,              KErrNone, 0},
+    };
+
+//
+// [M11402] [[AccServer] [RTP Streaming device Accessory Mode]
+//
+const TTFAccessoryTestCaseStateControl KTFRTPStreamingAccessoryModeStates[]=
+    {
+    { ETFAccessoryMode_Open,                 0, 0,         0, 0,          0, 11402, ETFAsyNone,          ReqAccRequestNone,             KErrNone, 1000000},
+    { ETFAccessoryNotifyAccessoryModeChanged,0, 0,         0, 0,          0, 11402, ETFAsyNone,          ReqAccRequestNone,             KErrNone, 1000000},
+    { ETFConnectWiredAccessory,              0, EAudioConnectionStatusUnidirectional, 0, 0,    0, 11402, ETFAsyRTPStreamingConn, ReqAccRequestNone,              KErrNone, 2000000},
+    { ETFFindAndCheckRequest,                0, 3,         0, 0,          0, 11402, ETFAsyNone,          ReqNotifyAccessoryModeChanged, KErrNone, 1000000},
+    { ETFClearStack,                         0, 0,         0, 0,          0, 11402, ETFAsyNone,          ReqAccRequestNone,             KErrNone, 1000000},
+    { ETFDisconnectWiredAccessory,           0, EAudioConnectionStatusNone, 0,     0,          0, 11402, ETFAsyRTPStreamingConn,     ReqAccRequestNone,              KErrNone, 2000000},
+    { ETFAccessoryMode_Close,                0, 0,         0, 0,          0, 11402, ETFAsyNone,          ReqAccRequestNone,             KErrNone, 1000000},
+    };
+
+//
+// [M11403] AccServer [ Improper publish of RTP Streaming status ]
+//
+const TTFAccessoryTestCaseStateControl KTFConnectRTPStreamingDeviceStates1[]=
+    {
+    { ETFAccessorySingleConnection_Open,        0, 0, 0,     0,                         0, 11403, ETFAsyNone,     ReqAccRequestNone,              KErrNone, 0},
+    { ETFAccessoryNotifyNewAccessoryConnected,  0, 0, 0,     0,                         0, 11403, ETFAsyNone,     ReqAccRequestNone,              KErrNone, 1000000},
+    { ETFConnectWiredAccessory,                 0, EAudioConnectionStatusNone, 0,     0,           0, 11403, ETFAsyRTPStreamingConn, ReqAccRequestNone,              KErrNone, 2000000},
+    { ETFFindAndCheckRequest,                   0, 0, 0,     0,                         0, 11403, ETFAsyNone,     ReqNotifyNewAccessoryConnected, KErrNone, 0},        
+    { ETFConnectWiredAccessory,                 0, EAudioConnectionStatusBidirectional, 0,     0,           0, 11403, ETFAsyRTPStreamingConn, ReqAccRequestNone,              KErrNone, 2000000},            
+    { ETFFindAndCheckRequest,                   0, 0, 0,     0,                         0, 11403, ETFAsyNone,     ReqNotifyNewAccessoryConnected, KErrNone, 0},
+    { ETFCancelNotifyNewAccessoryConnected,     0, 0, 0,     0,                         0, 11403, ETFAsyNone,          ReqAccRequestNone,              KErrNone, 0},
+
+    { ETFClearStack,                            0, 0, 0,     0,                         0, 11403, ETFAsyNone,             ReqAccRequestNone,              KErrNone, 0},
+        
+    { ETFAccessorySingleConnection_Close,       0, 0, 0,     0,                         0, 11403, ETFAsyNone,     ReqAccRequestNone,              KErrNone, 0},
+    };
+
+//
+// [M11404] AccServer [ Publish Improper And Connect RTP streaming device ]
+//
+const TTFAccessoryTestCaseStateControl KTFConnectRTPStreamingDeviceStates2[]=
+    {
+    { ETFAccessorySingleConnection_Open,        0, 0, 0,     0,                         0, 11404, ETFAsyNone,     ReqAccRequestNone,              KErrNone, 0},
+    { ETFAccessoryNotifyNewAccessoryConnected,  0, 0, 0,     0,                         0, 11404, ETFAsyNone,     ReqAccRequestNone,              KErrNone, 1000000},
+    { ETFConnectWiredAccessory,                 0, EAudioConnectionStatusBidirectional, 0,     0,           0, 11404, ETFAsyRTPStreamingConn, ReqAccRequestNone,              KErrNone, 2000000},            
+    { ETFConnectWiredAccessory,                 0, EAudioConnectionStatusUnidirectional, 0,     0,           0, 11404, ETFAsyRTPStreamingConn, ReqAccRequestNone,              KErrNone, 3000000},        
+    { ETFFindAndCheckRequest,                   0, 0, 0,     0,                         0, 11404, ETFAsyNone,     ReqNotifyNewAccessoryConnected, KErrNone, 0},
+    { ETFAccessoryNotifyAccessoryDisconnected,  0, 0, 0,     0,                         0, 11404, ETFAsyNone,     ReqAccRequestNone,              KErrNone, 2000000},
+    { ETFDisconnectWiredAccessory,              0, EAudioConnectionStatusNone, 0,     0,                     0, 11404, ETFAsyRTPStreamingConn,     ReqAccRequestNone,              KErrNone, 2000000},
+    { ETFFindAndCheckRequest,                   0, 0, 0,     0,                         0, 11404, ETFAsyNone,     ReqNotifyAccessoryDisconnected, KErrNone, 0},
+
+    { ETFClearStack,                            0, 0, 0,     0,                         0, 11404, ETFAsyNone,             ReqAccRequestNone,              KErrNone, 0},
+        
+    { ETFAccessorySingleConnection_Close,       0, 0, 0,     0,                         0, 11404, ETFAsyNone,     ReqAccRequestNone,              KErrNone, 0},
+    };
+
+#endif // FF_AUTOMOTIVESTACK
 /*****************************             *********************************/
 /*****************************  End Tests  *********************************/
 /*****************************             *********************************/
@@ -2675,6 +2759,10 @@
             TF_ADD_TEST_SUITE_FUNCTION_L( _L( "Policy Tests" ),                     PolicyModuleTestSuiteL );
             TF_ADD_TEST_SUITE_FUNCTION_L( _L( "USB Object Tests" ),                 UsbObjectModuleTestSuiteL );
             TF_ADD_TEST_SUITE_FUNCTION_L( _L( "HDMI Object Tests" ),                HdmiObjectModuleTestSuiteL );
+#ifdef FF_AUTOMOTIVESTACK
+            TF_ADD_TEST_SUITE_FUNCTION_L( _L( "AutoAudio ASY Tests" ),              AutoAudioAsyModuleTestSuiteL );
+#endif
+            
         TF_END_TEST_SUITE();
     TF_END_TEST_DECLARATION();
     }
@@ -2855,6 +2943,14 @@
     TF_ACCESSORY_SERVER_CONTROL_TEST_CASE_L( 11304, KTFGetHDMIVideoFormatStates );
     TF_ACCESSORY_SERVER_CONTROL_TEST_CASE_L( 11305, KTFNotifyHDMIVideoFormatChangedStates );
     TF_ACCESSORY_SERVER_CONTROL_TEST_CASE_L( 11306, KTCheckHdmiObjectsStates );
+
+/************************  AutoAudio related testcases (RTPStreaming) ****************************/
+#ifdef FF_AUTOMOTIVESTACK
+    TF_ACCESSORY_SERVER_CONTROL_TEST_CASE_L( 11401, KTFConnectRTPStreamingDeviceStates );
+    TF_ACCESSORY_SERVER_CONTROL_TEST_CASE_L( 11402, KTFRTPStreamingAccessoryModeStates );
+    TF_ACCESSORY_SERVER_CONTROL_TEST_CASE_L( 11403, KTFConnectRTPStreamingDeviceStates1 );
+    TF_ACCESSORY_SERVER_CONTROL_TEST_CASE_L( 11404, KTFConnectRTPStreamingDeviceStates2 );
+#endif 
     
     TF_END_STUB_TEST_CASES();
     }
@@ -3068,5 +3164,16 @@
     TF_ADD_TEST_CASE_L( 11306, _L( "[M11306] [[AccServer] Check HDMI objects] "));
 }
 
+#ifdef FF_AUTOMOTIVESTACK
+static void AutoAudioAsyModuleTestSuiteL( CTFATestSuite* aSuite )
+    {
+    TF_INIT_TEST_SUITE_FUNCTION( aSuite );
+    TF_ADD_TEST_CASE_L( 11401, _L( "[M11401] [[AccServer] Connect RTP Streaming device] "));
+    TF_ADD_TEST_CASE_L( 11402, _L( "[M11402] [[AccServer] RTP Streaming device Accessory Mode] "));
+    TF_ADD_TEST_CASE_L( 11403, _L( "[M11403] [[AccServer] Improper publish of RTP Streaming status] "));
+    TF_ADD_TEST_CASE_L( 11404, _L( "[M11404] [[AccServer] Publish Improper And Connect RTP streaming device] "));
+    }
+#endif
+
 // End of File
 
--- a/accessoryservices/accessoryserver/tsrc/public/basic/Stubs/AsyStub/group/AsyStub.mmp	Wed Jun 23 22:58:50 2010 +0100
+++ b/accessoryservices/accessoryserver/tsrc/public/basic/Stubs/AsyStub/group/AsyStub.mmp	Thu Jul 22 16:45:41 2010 +0100
@@ -40,7 +40,7 @@
 // System include macro
 OS_LAYER_SYSTEMINCLUDE
 SYSTEMINCLUDE   ../../../AccessoryTestControl/dsytfcore/inc
-
+SYSTEMINCLUDE   ../../../../../../../../inc
 // The resource name should be same as the second UID above
 
 SOURCEPATH      ../data
--- a/accessoryservices/accessoryserver/tsrc/public/basic/Stubs/AsyStub/src/AsyStubService.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/accessoryservices/accessoryserver/tsrc/public/basic/Stubs/AsyStub/src/AsyStubService.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -27,6 +27,10 @@
 #include <accpolobjecttypes.h>
 #include <s32mem.h>
 #include <accpolhdmiobjectcon.h>
+#include <accessoryservicesinternalpskeys.h>
+#ifdef FF_AUTOMOTIVESTACK
+#include <autoaudiopskeys.h>
+#endif
 
 // ----------------------------------------------------------------------------------
 // CASYStubService::CASYStubService() 
@@ -850,6 +854,20 @@
 
             break;
             }
+#ifdef FF_AUTOMOTIVESTACK           
+        case ETFAsyRTPStreamingConn:
+            {
+            RProperty property;          
+            CleanupClosePushL ( property );
+            COMPONENT_TRACE( ( _L( "ASYSTUB - CTFTestControlObserver::Service - Attaching to RTP streaming key" ) ) );
+            User::LeaveIfError ( property.Attach ( KPSUidAccessoryServices, KPSAutoKeyRTPStreamingConnectionStatus ) );
+            COMPONENT_TRACE( ( _L( "ASYSTUB - CTFTestControlObserver::Service - publishing to RTP streaming key" ) ) );                        
+            User::LeaveIfError ( property.Set ( aParam1 ) );
+            CleanupStack::PopAndDestroy (); // property
+            }
+            break;
+#endif
+            
         default:
 
             COMPONENT_TRACE( ( _L( "ASYSTUB - CASYStubService::Service - Subscribe destination is WIRELESS ASY" ) ) );
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/accessoryservices/autoaudioasy/data/2002F9A3.rss	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,47 @@
+/*
+* 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".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Resource definitions for project autoaudioasy
+*
+*/
+#include <ecom/registryinfov2.rh>
+#include "AsyServiceUids.h"
+
+// Declares info for two implementations
+RESOURCE REGISTRY_INFO autoaudioasy
+    {
+    // UID for the DLL.
+    resource_format_version = RESOURCE_FORMAT_VERSION_2;
+    dll_uid = 0x2002F9A3;
+    interfaces = 
+        {
+        INTERFACE_INFO
+            {
+            // UID of interface that is implemented
+            interface_uid = KACCESSORYPLUGINAPIUID;
+            implementations = 
+                {
+                IMPLEMENTATION_INFO
+                    {
+                    implementation_uid = 0x2002F9A4;
+                    version_no         = 1;
+                    display_name       = "0x2002F9A3";
+                    default_data       = KACCESSORYPLUGINAPIMAINSERVICE;
+                    opaque_data        = "autoaudioasy";
+                    rom_only           = 1;
+                    }
+                };
+            }
+        };
+    }
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/accessoryservices/autoaudioasy/group/autoaudioasy.mmp	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,58 @@
+/*
+* 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".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Project definition file for project usbaudioasy
+*
+*/
+
+#include <platform_paths.hrh>
+
+TARGET          autoaudioasy.dll
+TARGETTYPE      PLUGIN
+VENDORID        VID_DEFAULT
+
+// ECom Dll recognition UID followed by the unique UID for this dll
+UID             0x10009D8D 0x2002F9A3
+
+CAPABILITY      CAP_ECOM_PLUGIN 
+
+SOURCEPATH      ../src
+SOURCE          autoaudioasyproxy.cpp
+SOURCE          cautoaudioasymainservicebase.cpp
+SOURCE          cautoaudioasypropertyobserver.cpp
+SOURCE          cautoaudioasyservice.cpp
+
+USERINCLUDE     ../inc
+
+SYSTEMINCLUDE 	../../../inc
+OS_LAYER_SYSTEMINCLUDE
+
+// The resource name should be same as the second UID above
+SOURCEPATH      ../data
+START RESOURCE  2002F9A3.rss
+TARGET          autoaudioasy.rsc
+END
+
+LIBRARY euser.lib 
+LIBRARY estor.lib
+LIBRARY	ASYProxy.lib
+LIBRARY	accclient.lib
+LIBRARY	acccontrol.lib
+LIBRARY	accpolicy.lib
+LIBRARY	accpolcom.lib
+LIBRARY	accsrvutil.lib
+
+MACRO             API_TRACE_FLAG
+MACRO             COMPONENT_TRACE_FLAG
+
+SMPSAFE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/accessoryservices/autoaudioasy/group/bld.inf	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "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:  Build information file for project AUTO Audio ASY
+*
+*/
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_MMPFILES
+../group/autoaudioasy.mmp
+
+PRJ_TESTMMPFILES
+
+PRJ_EXPORTS
+../rom/autoaudioasy.iby   CORE_OS_LAYER_IBY_EXPORT_PATH(autoaudioasy.iby)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/accessoryservices/autoaudioasy/inc/acc_debug.h	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,258 @@
+/*
+* 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".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Macro definitions for tracing and debugging purposes.
+*
+*/
+
+
+#ifndef ACC_DEBUG_H
+#define ACC_DEBUG_H
+
+#ifdef _DEBUG
+
+// INCLUDES
+#include <e32svr.h>
+
+// CONSTANTS
+_LIT( KComponent, "[AccFW:Component]" );
+_LIT( KThisFile,  "[AccFW:Component] - Trace this file: %s, line: %d, compiled: %s %s" );
+_LIT( KAssertion, "[AccFW:Component] - Assertion failed: File: %s, line: %d, compiled: %s %s" );
+_LIT( KPanic,     "[AccFW:Component] - Panic occurred: File: %s, line: %d, compiled: %s %s" );
+_LIT( KMystic,    "[AccFW:Component] - Mystic failure: File: %s, line: %d, compiled: %s %s" );
+_LIT8( KDATE, __DATE__ );
+_LIT8( KTIME, __TIME__ );
+
+const TInt KTraceMaxSize = 256;
+
+// DATA TYPES
+enum TTraceType
+    {
+    ETraceInit,
+    ETraceAssert,
+    ETracePanic
+    };
+
+// INLINE FUNCTIONS
+
+    // -----------------------------------------------------------------------------
+    // ThisFileFunc
+    // -----------------------------------------------------------------------------
+    inline void ThisFileFunc( const TDesC8& aFile,
+                              TInt aLine,
+                              TTraceType aType = ETraceInit )
+        {
+        HBufC* fileBuf = HBufC::New( aFile.Length() + 1 );
+        HBufC* dateBuf = HBufC::New( 32 );
+        HBufC* timeBuf = HBufC::New( 32 );
+
+        if ( fileBuf != NULL && dateBuf != NULL && timeBuf != NULL )
+            {
+            fileBuf->Des().Copy( aFile );
+            timeBuf->Des().Copy( KTIME );
+            dateBuf->Des().Copy( KDATE );
+
+            if ( aType == ETraceInit )
+                {
+                RDebug::Print( KThisFile,
+                               fileBuf->Des().PtrZ(),
+                               aLine,
+                               dateBuf->Des().PtrZ(),
+                               timeBuf->Des().PtrZ() );
+                }
+
+            else if ( aType == ETraceAssert )
+                {
+                RDebug::Print( KAssertion,
+                               fileBuf->Des().PtrZ(),
+                               aLine,
+                               dateBuf->Des().PtrZ(),
+                               timeBuf->Des().PtrZ() );
+                }
+
+            else if ( aType == ETracePanic )
+                {
+                RDebug::Print( KPanic,
+                               fileBuf->Des().PtrZ(),
+                               aLine,
+                               dateBuf->Des().PtrZ(),
+                               timeBuf->Des().PtrZ() );
+                }
+
+            else
+                {
+                RDebug::Print( KMystic,
+                               fileBuf->Des().PtrZ(),
+                               aLine,
+                               dateBuf->Des().PtrZ(),
+                               timeBuf->Des().PtrZ() );
+                }
+            }
+
+        else
+            {
+            RDebug::Print( _L( "Assertion and memory allocation failed!" ) );
+            }
+
+        delete fileBuf;
+        delete dateBuf;
+        delete timeBuf;
+        }
+
+    // -----------------------------------------------------------------------------
+    // TraceAssertFunc
+    // -----------------------------------------------------------------------------
+    inline void TraceAssertFunc( const TDesC8& aFile, TInt aLine )
+        {
+        ThisFileFunc( aFile, aLine, ETraceAssert );
+        }
+
+    // -----------------------------------------------------------------------------
+    // TracePanicFunc
+    // -----------------------------------------------------------------------------
+    inline void TracePanicFunc( const TDesC8& aFile, TInt aLine )
+        {
+        ThisFileFunc( aFile, aLine, ETracePanic );
+        User::Panic( KComponent, KErrGeneral );
+        }
+
+// MACROS
+    #define PANIC_IF_FALSE( a ) if ( !( a ) )\
+            TracePanicFunc( TPtrC8( ( TText8* ) __FILE__), __LINE__ )
+
+    #define PANIC_IF_TRUE( a ) if ( ( a ) )\
+            TracePanicFunc( TPtrC8( ( TText8* ) __FILE__), __LINE__ )
+
+    #define PANIC_ALWAYS\
+            TracePanicFunc( TPtrC8( ( TText8* ) __FILE__), __LINE__ )
+
+    // -----------------------------------------------------------------------------
+    // COMPONENT_TRACE_FLAG
+    // -----------------------------------------------------------------------------
+    #ifdef COMPONENT_TRACE_FLAG
+
+        #define COMPONENT_TRACE_THIS_FILE\
+            ThisFileFunc( TPtrC8( ( TText8* ) __FILE__), __LINE__ )
+
+        #define COM_TRACE_( AAA ) do\
+            { _LIT( logStr, AAA ); RDebug::Print( logStr ); } while ( 0 )
+
+        #define COM_TRACE_1( AAA, BBB ) do\
+             { _LIT( logStr, AAA ); RDebug::Print( logStr, BBB ); } while ( 0 )
+
+        #define COM_TRACE_2( AAA, BBB, CCC ) do\
+             { _LIT( logStr, AAA ); RDebug::Print( logStr, BBB, CCC ); } while ( 0 )
+
+        #define COM_TRACE_3( AAA, BBB, CCC, DDD ) do\
+             { _LIT( logStr, AAA ); RDebug::Print( logStr, BBB, CCC, DDD ); } while ( 0 )
+
+        #define COM_TRACE_4( AAA, BBB, CCC, DDD, EEE ) do\
+             { _LIT( logStr, AAA ); RDebug::Print( logStr, BBB, CCC, DDD, EEE ); } while ( 0 )
+
+        #define COM_TRACE_RAW_( AAA ) do\
+            { RDebug::RawPrint( AAA ); } while ( 0 )
+            
+        #define COM_TRACE_RAW_1( AAA, BBB ) do\
+             { _LIT( logStr, AAA ); TBuf<KTraceMaxSize> buffer; buffer.Append( logStr ); buffer.Append( BBB );\
+             RDebug::RawPrint( buffer ); } while ( 0 )
+        
+    #else
+
+        #define COMPONENT_TRACE_THIS_FILE
+
+        #define COM_TRACE_( AAA )
+        #define COM_TRACE_1( AAA, BBB )
+        #define COM_TRACE_2( AAA, BBB, CCC )
+        #define COM_TRACE_3( AAA, BBB, CCC, DDD )
+        #define COM_TRACE_4( AAA, BBB, CCC, DDD, EEE )
+        #define COM_TRACE_RAW_( AAA )
+        #define COM_TRACE_RAW_1( AAA, BBB )
+
+    #endif // COMPONENT_TRACE_FLAG
+
+    #define TRACE_ASSERT( a ) if ( !( a ) )\
+            TraceAssertFunc( TPtrC8( ( TText8* ) __FILE__), __LINE__ )
+
+    #define TRACE_ASSERT_RETURN( a ) if ( !( ( a ) == KErrNone ) )\
+            TraceAssertFunc( TPtrC8( ( TText8* ) __FILE__), __LINE__ )
+
+    #define TRACE_ASSERT_ALWAYS\
+            TraceAssertFunc( TPtrC8( ( TText8* ) __FILE__ ), __LINE__ )
+
+    // -----------------------------------------------------------------------------
+    // API_TRACE_FLAG
+    // -----------------------------------------------------------------------------
+    #ifdef API_TRACE_FLAG
+
+        #define API_TRACE_( AAA ) do\
+            { _LIT( logStr, AAA ); RDebug::Print( logStr ); } while ( 0 )
+
+        #define API_TRACE_1( AAA, BBB ) do\
+             { _LIT( logStr, AAA ); RDebug::Print( logStr, BBB ); } while ( 0 )
+
+        #define API_TRACE_2( AAA, BBB, CCC ) do\
+             { _LIT( logStr, AAA ); RDebug::Print( logStr, BBB, CCC ); } while ( 0 )
+
+        #define API_TRACE_3( AAA, BBB, CCC, DDD ) do\
+             { _LIT( logStr, AAA ); RDebug::Print( logStr, BBB, CCC, DDD ); } while ( 0 )
+
+        #define API_TRACE_4( AAA, BBB, CCC, DDD, EEE ) do\
+             { _LIT( logStr, AAA ); RDebug::Print( logStr, BBB, CCC, DDD, EEE ); } while ( 0 )
+             
+        #define API_TRACE_RAW_1( AAA, BBB ) do\
+             { _LIT( logStr, AAA ); TBuf<KTraceMaxSize> buffer; buffer.Append( logStr ); buffer.Append( BBB );\
+             RDebug::RawPrint( buffer ); } while ( 0 )
+
+    #else
+
+        #define API_TRACE_( AAA )
+        #define API_TRACE_1( AAA, BBB )
+        #define API_TRACE_2( AAA, BBB, CCC )
+        #define API_TRACE_3( AAA, BBB, CCC, DDD )
+        #define API_TRACE_4( AAA, BBB, CCC, DDD, EEE )
+        #define API_TRACE_RAW_1( AAA, BBB )
+
+    #endif // API_TRACE_FLAG
+
+#else // _DEBUG
+
+    #define TRACE_ASSERT( a )
+    #define TRACE_ASSERT_RETURN( a ) a
+    #define TRACE_ASSERT_ALWAYS
+
+    #define COM_TRACE_( AAA )
+    #define COM_TRACE_1( AAA, BBB )
+    #define COM_TRACE_2( AAA, BBB, CCC )
+    #define COM_TRACE_3( AAA, BBB, CCC, DDD )
+    #define COM_TRACE_4( AAA, BBB, CCC, DDD, EEE )
+    #define COM_TRACE_RAW_( AAA )
+    #define COM_TRACE_RAW_1( AAA, BBB )
+
+    #define API_TRACE_( AAA )
+    #define API_TRACE_1( AAA, BBB )
+    #define API_TRACE_2( AAA, BBB, CCC )
+    #define API_TRACE_3( AAA, BBB, CCC, DDD )
+    #define API_TRACE_4( AAA, BBB, CCC, DDD, EEE )
+    #define API_TRACE_RAW_1( AAA, BBB )
+
+    #define COMPONENT_TRACE_THIS_FILE
+
+    #define PANIC_IF_FALSE( a )
+    #define PANIC_IF_TRUE( a )
+    #define PANIC_ALWAYS
+
+#endif // _DEBUG
+
+#endif // ACC_DEBUG_H
+
+// End of File
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/accessoryservices/autoaudioasy/inc/cautoaudioasymainservicebase.h	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,57 @@
+/*
+* 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".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Header file for autoaudioasy main service
+*
+*/
+
+#ifndef CAUTOAUDIOASYMAINSERVICEBASE_H_
+#define CAUTOAUDIOASYMAINSERVICEBASE_H_
+
+#include <asymainservicebase.h>
+
+//Forward declarations
+class CAutoAudioAsyService;
+
+
+/**
+ *  Creates ASY main service
+ */
+NONSHARABLE_CLASS(CAutoAudioAsyMainServiceBase): public CASYMainServiceBase
+    {
+public:  // Constructors and destructor
+        
+    static CAutoAudioAsyMainServiceBase* NewL ();
+    virtual ~CAutoAudioAsyMainServiceBase ();
+
+public: // From CASYMainServiceBase
+                
+    TInt StartL();
+
+private: // Functions
+
+    CAutoAudioAsyMainServiceBase (); 
+    void ConstructL ();
+	
+	void InitPSAutoAudioL ();
+
+private: //Data
+
+    /**
+     * Handle to service class.
+     * Own.
+     */
+    CAutoAudioAsyService* iService;
+    };
+
+#endif // CAUTOAUDIOASYMAINSERVICEBASE_H_
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/accessoryservices/autoaudioasy/inc/cautoaudioasypropertyobserver.h	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,70 @@
+/*
+* 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".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Header file for property observer
+*
+*/
+#ifndef CAUTOAUDIOASYPROPERTYOBSERVER_H__
+#define CAUTOAUDIOASYPROPERTYOBSERVER_H__
+
+#include <e32base.h>
+#include <e32property.h>
+
+class MAutoAudioAsyPropertyListener;
+
+/**
+ * This class follows PS key (informs when RTP streaming is enabled or disabled).
+ */
+NONSHARABLE_CLASS(CAutoAudioAsyPropertyObserver): public CActive
+    {
+public:
+    /**
+     * Two-phase constructor
+     */
+    static CAutoAudioAsyPropertyObserver* NewL ( TUid aCategory, TUint aKey, MAutoAudioAsyPropertyListener& aListener ); 
+    virtual ~CAutoAudioAsyPropertyObserver ();
+
+protected:
+    // CActive
+    void DoCancel ();
+    void RunL ();
+    TInt RunError ( TInt aError );
+
+private:
+    CAutoAudioAsyPropertyObserver ( TUid aCategory, TUint aKey, MAutoAudioAsyPropertyListener& aListener );
+
+private:
+    /**
+     * Handle to P&S property.
+     * Own.
+     */
+    RProperty iProperty;
+
+    /**
+     * The UID of the property we are listening for
+     */
+    TUid iCategory;
+
+    /**
+     * The key we are listening for
+     */
+    TUint iKey;
+
+    /**
+     * Reference to listener class.
+     * Now own.
+     */
+    MAutoAudioAsyPropertyListener& iListener;
+    };
+
+#endif // CAUTOAUDIOASYPROPERTYOBSERVER_H__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/accessoryservices/autoaudioasy/inc/cautoaudioasyservice.h	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,126 @@
+/*
+* 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".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  This class handles connect and disconnect to AccFw.
+*
+*/
+
+#ifndef C_AUTOAUDIOASYSERVICE_H__
+#define C_AUTOAUDIOASYSERVICE_H__
+
+#include <accessoryserver.h>
+#include <accessorycontrol.h>
+#include <accpolgenericid.h>
+#include <accpolgenericidarray.h>
+
+#include "mautoaudioasypropertylistener.h"
+
+class CAutoAudioAsyPropertyObserver;
+
+
+/**
+ * This class will notification for enabling/disabling RTP streaming channel
+   and handles connect and disconnect to AccFW.
+ */
+NONSHARABLE_CLASS(CAutoAudioAsyService): public CActive,
+										 public MAutoAudioAsyPropertyListener
+    {
+public:
+    /**
+     * Two-phased constructor
+     */
+    static CAutoAudioAsyService* NewL ();
+
+    virtual ~CAutoAudioAsyService ();    
+
+	/**
+    * Starts ASY service
+    */
+	void StartL ();
+	
+    /**
+     * Free resources on disconnect or on error
+     */
+    void FreeResources ();
+
+    /**
+     * @param aPS Handle to the property
+     * @param aUid The Uid of the property
+     * @param aKey The property key
+     * @param aStatus The property change status
+     * @return void
+     */
+    void PropertyChange ( RProperty& aPS, TUid aUid, TUint aKey, TInt aStatus );
+
+protected:
+
+    // CActive
+    void DoCancel ();
+    void RunL ();
+    TInt RunError ( TInt aError );
+
+private: //methods
+
+    CAutoAudioAsyService ();
+
+    void ConstructL ();
+    void ConnectAccessoryL ();
+    void AccessoryDisconnected ();
+
+private: //data
+    /**
+     * State of the service class.
+     */
+    enum TServiceState
+        {
+        EServiceStateIdle,
+        EServiceStateConnecting,
+        EServiceStateConnected
+        };
+
+    /**
+     * Handle to accessory server
+     * Own.
+     */
+    RAccessoryServer  iAccessoryServer;
+
+    /**
+     * Handle to accessory control
+     * Own.
+     */
+    RAccessoryControl iAccessoryControl;
+
+    /**
+     * Generic id header
+     */
+    TAccPolGIDHeader  iGenericIDHeader;
+
+    /**
+     * State of the service class
+     */
+    TServiceState iState;
+
+    /**
+     * Generic id
+     * Own.
+     */
+    CAccConGenericID* iGenericId;
+
+    /**
+     * Observer that receives notifications about RTP Channel
+     * Own.
+     */
+    CAutoAudioAsyPropertyObserver* iPropertyObserver;
+    };
+
+#endif // C_AUTOAUDIOASYSERVICE_H__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/accessoryservices/autoaudioasy/inc/mautoaudioasypropertylistener.h	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,41 @@
+/*
+* 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".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Notify service class about property changes.
+*
+*/
+
+#ifndef MAUTOAUDIOASYPROPERTYLISTENER_H
+#define MAUTOAUDIOASYPROPERTYLISTENER_H
+
+#include <e32property.h>
+
+/**
+ * Methods needed to handle Publish & Subscribe property changes.
+ */
+class MAutoAudioAsyPropertyListener
+    {
+public:
+    /**
+     *
+     * @param aProperty Handle to the property
+     * @param aCategory The Uid of the property
+     * @param aKey The property key
+     * @param aStatus The property change status
+     * @return void
+     */
+    virtual void PropertyChange ( RProperty& aProperty, TUid aCategory,
+        TUint aKey, TInt aStatus ) = 0;
+    };
+
+#endif // MAUTOAUDIOASYPROPERTYLISTENER_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/accessoryservices/autoaudioasy/rom/autoaudioasy.iby	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +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".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Image description file for project Autoaudio ASY
+*
+*/
+
+
+#ifndef AUTOAUDIOASY_IBY__
+#define AUTOAUDIOASY_IBY__
+
+ECOM_PLUGIN ( autoaudioasy.dll, 2002F9A3.rsc )
+
+#endif
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/accessoryservices/autoaudioasy/src/autoaudioasyproxy.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,39 @@
+/*
+* 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".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Implementations for autoaudioasy
+*
+*/
+
+#include <e32std.h>
+#include <ecom/implementationproxy.h>
+
+#include "cautoaudioasymainservicebase.h"
+
+// Map the interface implementation UIDs to implementation factory functions
+const TImplementationProxy ImplementationTable[] =
+    {
+    {{0x2002F9A4}, (TProxyNewLPtr) CAutoAudioAsyMainServiceBase::NewL}
+    };
+
+//
+// ---------------------------------------------------------
+// TImplementationProxy* ImplementationGroupProxy( TInt&)
+// ---------------------------------------------------------
+//  
+// Exported proxy for instantiation method resolution.
+EXPORT_C const TImplementationProxy* ImplementationGroupProxy( TInt& aTableCount )
+    {
+    aTableCount = sizeof(ImplementationTable) / sizeof(TImplementationProxy);
+    return ImplementationTable;
+    }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/accessoryservices/autoaudioasy/src/cautoaudioasymainservicebase.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,104 @@
+/*
+* 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".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Service base for autoaudioasy
+*
+*/
+// global headers
+#include <accessoryservicesinternalpskeys.h>
+#include <autoaudiopskeys.h>
+
+// local headers
+#include "cautoaudioasymainservicebase.h"
+#include "cautoaudioasyservice.h"
+#include "acc_debug.h"
+
+
+_LIT_SECURITY_POLICY_C1(KPSAutoAudioReadPolicy, ECapabilityReadDeviceData);
+_LIT_SECURITY_POLICY_C1(KPSAutoAudioWritePolicy, ECapabilityWriteDeviceData);
+
+// ----------------------------------------------------------------------------------
+// CAutoAudioAsyMainServiceBase::CAutoAudioAsyMainServiceBase ()
+// ----------------------------------------------------------------------------------
+CAutoAudioAsyMainServiceBase::CAutoAudioAsyMainServiceBase ()
+    {
+    COM_TRACE_ ( "[AccFW:AutoAudioAsy] CAutoAudioAsyMainServiceBase::CAutoAudioAsyMainServiceBase()");
+    }
+
+// ----------------------------------------------------------------------------------
+// CAutoAudioAsyMainServiceBase::NewL ()
+// ----------------------------------------------------------------------------------
+CAutoAudioAsyMainServiceBase* CAutoAudioAsyMainServiceBase::NewL ()
+    {
+    CAutoAudioAsyMainServiceBase* self = new ( ELeave ) CAutoAudioAsyMainServiceBase ();
+    CleanupStack::PushL ( self );
+    self->ConstructL ();
+    CleanupStack::Pop ( self );
+    return self;
+    }
+
+void CAutoAudioAsyMainServiceBase::ConstructL ()
+    {
+    iService = CAutoAudioAsyService::NewL ();
+    }
+
+// ----------------------------------------------------------------------------------
+// CAutoAudioAsyMainServiceBase::~CAutoAudioAsyMainServiceBase ()
+// ----------------------------------------------------------------------------------
+CAutoAudioAsyMainServiceBase::~CAutoAudioAsyMainServiceBase ()
+    {
+    COM_TRACE_ ( "[AccFW:AutoAudioAsy] CAutoAudioAsyMainServiceBase::~CAutoAudioAsyMainServiceBase" );
+    delete iService;	
+	RProperty::Delete ( KPSUidAccessoryServices, KPSAutoKeyRTPStreamingConnectionStatus );
+    }
+
+// ----------------------------------------------------------------------------------
+// CAutoAudioAsyMainServiceBase::StartL ()
+// In this method we define & start listening for property changes
+// ----------------------------------------------------------------------------------
+TInt CAutoAudioAsyMainServiceBase::StartL ()
+	{
+    COM_TRACE_ ( "[AccFW:AutoAudioAsy] CAutoAudioAsyMainServiceBase::StartL" );
+	InitPSAutoAudioL ();
+	
+	iService->StartL ();
+	
+	Signal ();
+    
+	return KErrNone;
+	}
+	
+// ----------------------------------------------------------------------------------
+// CAutoAudioAsyMainServiceBase::InitPSAutoAudioL ()
+// In this method we define and intialise P&S keys
+// ----------------------------------------------------------------------------------
+void CAutoAudioAsyMainServiceBase::InitPSAutoAudioL ()
+	{
+    COM_TRACE_ ( "[AccFW:AutoAudioAsy] CAutoAudioAsyMainServiceBase::InitPSAutoAudioL" );
+	TInt ret = RProperty::Define ( KPSUidAccessoryServices,
+				KPSAutoKeyRTPStreamingConnectionStatus, RProperty::EInt,				
+				KPSAutoAudioReadPolicy, KPSAutoAudioWritePolicy );
+
+	if ( ret != KErrNone )
+		{
+		COM_TRACE_1 ( "[AccFW:AutoAudioAsy] CAutoAudioAsyMainServiceBase::InitPSAutoAudioL RTP Streaming Property Define failed with %d", ret );
+        User::Leave ( ret );
+		}
+	
+	ret = RProperty::Set ( KPSUidAccessoryServices, KPSAutoKeyRTPStreamingConnectionStatus, EAudioConnectionStatusNone );
+	if ( ret != KErrNone )
+	    {
+        COM_TRACE_1 ( "[AccFW:AutoAudioAsy] CAutoAudioAsyMainServiceBase::InitPSAutoAudioL RTP Streaming key init failed with %d", ret );
+        User::Leave ( ret );
+	    }
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/accessoryservices/autoaudioasy/src/cautoaudioasypropertyobserver.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,92 @@
+/*
+* 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".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Notify service class about connection state.
+*
+*/
+
+#include "cautoaudioasypropertyobserver.h" 
+#include "autoaudiopskeys.h"
+#include "mautoaudioasypropertylistener.h"
+
+#include "acc_debug.h"
+
+// ---------------------------------------------------------------------------
+// CAutoAudioAsyPropertyObserver::NewL
+// ---------------------------------------------------------------------------
+CAutoAudioAsyPropertyObserver* CAutoAudioAsyPropertyObserver::NewL ( TUid aCategory, TUint aKey,
+        MAutoAudioAsyPropertyListener& aListener )
+	{
+    COM_TRACE_1 ( "[AccFW:AutoAudioAsy] CAutoAudioAsyPropertyObserver::NewL(), key- %d", aKey );
+    return new ( ELeave ) CAutoAudioAsyPropertyObserver ( aCategory, aKey, aListener );
+	}
+
+// ---------------------------------------------------------------------------
+// CAutoAudioAsyPropertyObserver::CAutoAudioAsyPropertyObserver
+// ---------------------------------------------------------------------------
+CAutoAudioAsyPropertyObserver::CAutoAudioAsyPropertyObserver ( TUid aCategory, TUint aKey,
+        MAutoAudioAsyPropertyListener& aListener ):
+    CActive ( EPriorityStandard ),
+    iCategory ( aCategory ), iKey ( aKey ), iListener ( aListener )
+    {
+    CActiveScheduler::Add ( this );    
+    iProperty.Attach ( iCategory, iKey );
+    iProperty.Subscribe ( iStatus );
+    SetActive ();
+    }
+
+// ---------------------------------------------------------------------------
+// CAutoAudioAsyPropertyObserver::~CAutoAudioAsyPropertyObserver
+// ---------------------------------------------------------------------------
+CAutoAudioAsyPropertyObserver::~CAutoAudioAsyPropertyObserver ()
+    {
+    COM_TRACE_ ( "[AccFW:AutoAudioAsy] CAutoAudioAsyPropertyObserver::~CAutoAudioAsyPropertyObserver");
+    Cancel ();
+    iProperty.Close ();
+    }
+
+// ---------------------------------------------------------------------------
+// CAutoAudioAsyPropertyObserver::RunL
+// ---------------------------------------------------------------------------
+void CAutoAudioAsyPropertyObserver::RunL ()
+    {                      
+    COM_TRACE_ ( "AccFW:AutoAudioAsy] CAutoAudioAsyPropertyObserver::RunL");
+
+    TInt status = iStatus.Int ();
+    COM_TRACE_3 ( "[AccFW:AutoAudioAsy] key 0x%08x/%u changed, status %d", iCategory.iUid, iKey, status );
+    // Subscribe for the next change BEFORE invoking the listener to make sure
+    // that we never miss any property changes.
+    iProperty.Subscribe ( iStatus );
+    SetActive ();
+
+    // Notify the listener
+    iListener.PropertyChange ( iProperty, iCategory, iKey, status );
+    }
+
+// ---------------------------------------------------------------------------
+// CAutoAudioAsyPropertyObserver::DoCancel
+// ---------------------------------------------------------------------------
+void CAutoAudioAsyPropertyObserver::DoCancel ()
+    {
+    COM_TRACE_ ( "[AccFW:AutoAudioAsy] CAutoAudioAsyPropertyObserver::DoCancel" );
+    iProperty.Cancel ();
+    }    
+
+// ---------------------------------------------------------------------------
+// CAutoAudioAsyPropertyObserver::RunError
+// ---------------------------------------------------------------------------
+TInt CAutoAudioAsyPropertyObserver::RunError ( TInt /* aError */ )
+	{
+    COM_TRACE_ ( "[AccFW:AutoAudioAsy] CAutoAudioAsyPropertyObserver::RunError" );
+    return KErrNone;
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/accessoryservices/autoaudioasy/src/cautoaudioasyservice.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,273 @@
+/*
+* 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".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  This class handles connect and disconnect to AccFw.
+*
+*/
+
+#include <acccongenericid.h>
+#include <accpolobjectcon.h>
+#include <accpolnamevaluerecord.h>
+#include <accconfigfileparser.h>
+#include <accpolcommonnamevaluepairs.h>
+#include <accessoryservicesinternalpskeys.h>
+#include <autoaudiopskeys.h>
+
+#include "cautoaudioasyservice.h"
+#include "cautoaudioasypropertyobserver.h"
+#include "acc_debug.h"
+
+#define SET_STATE(state) (iState=state)
+ 
+// ----------------------------------------------------------------------------------
+// CAutoAudioAsyService::CAutoAudioAsyService() 
+// ----------------------------------------------------------------------------------
+CAutoAudioAsyService::CAutoAudioAsyService ()
+	: CActive ( EPriorityStandard )
+    {
+    CActiveScheduler::Add ( this );
+    }
+
+// ----------------------------------------------------------------------------------
+// CAutoAudioAsyService::NewL ()
+// ----------------------------------------------------------------------------------
+CAutoAudioAsyService* CAutoAudioAsyService::NewL ()
+    {
+    COM_TRACE_ ( "[AccFW:AutoAudioAsy] CAutoAudioAsyService::NewL" );
+    CAutoAudioAsyService* self = new ( ELeave ) CAutoAudioAsyService ();
+    CleanupStack::PushL ( self );
+    self->ConstructL ();
+    CleanupStack::Pop ( self );
+    return self;
+    }
+
+// ----------------------------------------------------------------------------------
+// CAutoAudioAsyService::ConstructL ()
+// ----------------------------------------------------------------------------------
+void CAutoAudioAsyService::ConstructL ()
+    {
+    COM_TRACE_ ( "[AccFW:AutoAudioAsy] CAutoAudioAsyService::ConstructL" );
+    User::LeaveIfError ( iAccessoryServer.Connect () );
+    User::LeaveIfError ( iAccessoryControl.CreateSubSession ( iAccessoryServer ) );
+    SET_STATE ( EServiceStateIdle );	
+    }
+
+// ----------------------------------------------------------------------------------
+// CAutoAudioAsyService::~CAutoAudioAsyService()
+// ----------------------------------------------------------------------------------
+CAutoAudioAsyService::~CAutoAudioAsyService ()
+    {
+    COM_TRACE_ ( "[AccFW:AutoAudioAsy] CAutoAudioAsyService::~CAutoAudioAsyService" );
+    Cancel ();
+	
+	delete iPropertyObserver;
+    iAccessoryControl.CloseSubSession ();
+    iAccessoryServer.Close ();
+    
+	FreeResources ();
+    }
+	
+void CAutoAudioAsyService::StartL ()
+	{
+    COM_TRACE_ ( "[AccFW:AutoAudioAsy] CAutoAudioAsyService::StartL" );
+	iPropertyObserver = CAutoAudioAsyPropertyObserver::NewL ( KPSUidAccessoryServices, KPSAutoKeyRTPStreamingConnectionStatus, *this );
+	}
+
+// ----------------------------------------------------------------------------------
+// CAutoAudioAsyService::PropertyChange ()
+// Defined in MAutoAudioAsyPropertyListener interface.
+// Receives notifications about RTP Streaming channel property changes. Property changes occur
+// when accessory is connected or disconnected or headunit attached or detached
+// ----------------------------------------------------------------------------------
+void CAutoAudioAsyService::PropertyChange ( RProperty& aProperty, TUid aUid, TUint aKey, TInt aStatus )
+    {
+    COM_TRACE_ ( "[AccFW:AutoAudioAsy] CAutoAudioAsyService::PropertyChange" );
+
+    TInt propValue;
+    TInt status = aProperty.Get ( propValue );
+    COM_TRACE_1 ( "[AccFW:AutoAudioAsy] CAutoAudioAsyService::PropertyChange -- request property value %d", propValue );
+    
+    if ( aUid == KPSUidAccessoryServices && aKey == KPSAutoKeyRTPStreamingConnectionStatus )
+        {
+        // Check if audio accessory has been connected
+        if ( ( status == KErrNone ) && ( aStatus == KErrNone ) )
+            {
+			if ( propValue == EAudioConnectionStatusUnidirectional ) // Current release supports only UniDirectional, so other key values ignored.
+				{
+				TInt err;
+				switch ( iState )
+					{
+					case EServiceStateIdle:
+						TRAP ( err, ConnectAccessoryL () );
+						if ( err != KErrNone )
+							{
+							COM_TRACE_1 ("[AccFW:AutoAudioAsy] ConnectAccessoryL error %d", err );
+							FreeResources (); // switch to EServiceStateIdle							
+							}
+						break;
+						
+					case EServiceStateConnecting:
+					case EServiceStateConnected:
+						// Nothing to do
+						break;
+					}
+				return;
+				}
+            }
+			
+        // Otherwise assume that it's disconnected
+        AccessoryDisconnected ();
+        }
+    }
+
+// ----------------------------------------------------------------------------------
+// CAutoAudioAsyService::AccessoryDisconnected ()
+// Called when a disconnect notification is received
+// ----------------------------------------------------------------------------------
+void CAutoAudioAsyService::AccessoryDisconnected ()
+    {
+    COM_TRACE_ ( "[AccFW:AutoAudioAsy] CAutoAudioAsyService::AccessoryDisconnected" );
+    TRequestStatus status;
+    switch ( iState )
+        {
+        case EServiceStateConnected:
+            iAccessoryControl.DisconnectAccessory ( status, iGenericId->GenericID () );
+            User::WaitForRequest ( status );
+            FreeResources (); // sets state to EServiceStateIdle
+            break;
+
+        case EServiceStateConnecting:
+            Cancel ();
+            break;
+
+        default:
+            // nothing to do in this case
+            break;
+        }
+    }
+
+// ----------------------------------------------------------------------------------
+// CAutoAudioAsyService::ConnectAccessoryL ()
+// Notifies the accessory server and switches to EServiceStateConnecting state.
+// ----------------------------------------------------------------------------------
+void CAutoAudioAsyService::ConnectAccessoryL ()
+    {
+    COM_TRACE_ ( "[AccFW:AutoAudioAsy] CAutoAudioAsyService::ConnectAccessoryL" );
+
+    RArray<TAccPolNameValueRecord> nameValueArray;
+    CleanupClosePushL ( nameValueArray );
+
+    // Set GenericID header
+    COM_TRACE_ ( "[AccFW:AutoAudioAsy] Set generic header" );
+    iGenericIDHeader.iAccessoryDeviceType   = KDTCarKit;
+    iGenericIDHeader.iPhysicalConnection    = KPCUSB;
+    iGenericIDHeader.iApplicationProtocol   = 0x0;
+    iGenericIDHeader.iCapabilitiesSubblocks = KSBAudioSubblock;
+    iGenericIDHeader.iHWDeviceID            = 0x0;
+    iGenericIDHeader.iHWModelID				= KNullDesC;
+
+    iGenericId = CAccConGenericID::NewL ();
+
+    COM_TRACE_ ( "[AccFW:AutoAudioAsy] Set capabilities" );
+    
+    // Set "Audio Output Type" capability
+	COM_TRACE_ ( "[AccFW:AutoAudioAsy] KAccAudioOutputType " );
+    nameValueArray.AppendL ( TAccPolNameValueRecord ( KAccAudioOutputType,
+        EAccAudioOutPutTypePublic, EAPVInt, EAPVPolicy ) );
+
+    // Set "Audio stereo" capability
+	COM_TRACE_ ( "[AccFW:AutoAudioAsy] KAccStereoAudio " );
+	nameValueArray.AppendL ( TAccPolNameValueRecord ( KAccStereoAudio ) );
+
+    // Set "Integrated audio output"
+	COM_TRACE_ ( "[AccFW:AutoAudioAsy] KAccIntegratedAudioOutput " );
+	nameValueArray.AppendL ( TAccPolNameValueRecord ( KAccIntegratedAudioOutput ) );
+
+	// Set "RTP streaming"
+	COM_TRACE_ ( "[AccFW:AutoAudioAsy] KAccRTPStreaming " );
+	nameValueArray.AppendL ( TAccPolNameValueRecord ( KAccRTPStreaming ) );
+
+    // Make generic id
+    CAccConfigFileParser* accConfigFileParser = CAccConfigFileParser::NewL ( KNullDesC );
+    CleanupStack::PushL ( accConfigFileParser );
+    accConfigFileParser->ParseGenericIDL ( iGenericId, iGenericIDHeader, nameValueArray );
+
+    // Connect accessory
+    COM_TRACE_ ( "[AccFW:AutoAudioAsy] Connecting accessory..." );
+    iAccessoryControl.ConnectAccessory ( iStatus, iGenericId, EFalse );
+    SET_STATE ( EServiceStateConnecting );
+    SetActive ();
+
+    CleanupStack::PopAndDestroy ( accConfigFileParser );
+    CleanupStack::PopAndDestroy ( &nameValueArray );
+    }    
+
+// ----------------------------------------------------------------------------------
+// CActive methods
+// ----------------------------------------------------------------------------------
+void CAutoAudioAsyService::DoCancel ()
+    {
+    COM_TRACE_ ( "[AccFW:AutoAudioAsy] CAutoAudioAsyService::DoCancel" );
+    iAccessoryControl.CancelConnectAccessory ();
+    FreeResources ();
+    }
+
+TInt CAutoAudioAsyService::RunError ( TInt /*aError*/ )
+    {
+    COM_TRACE_ ( "[AccFW:AutoAudioAsy] CAutoAudioAsyService::RunError" );
+    return KErrNone;
+    }
+
+void CAutoAudioAsyService::RunL ()
+    {
+    COM_TRACE_ ( "[AccFW:AutoAudioAsy] CAutoAudioAsyService::RunL" );
+	TInt retVal ( iStatus.Int () );
+	COM_TRACE_1 ( "[AccFW:AutoAudioAsy] Connected with return value %d", retVal );
+	
+    if ( KErrNone == retVal )
+		{
+			switch ( iState )
+			{
+			case EServiceStateConnecting:				
+				SET_STATE ( EServiceStateConnected );
+				break;
+			
+			case EServiceStateIdle:
+			case EServiceStateConnected:
+			default:
+				COM_TRACE_ ( "State machine broken" );
+				break;
+			}
+		}
+	else
+		{
+		COM_TRACE_ ( "[AccFW:AutoAudioAsy] Accessory Server failed to accept connection, freeing up resources" );		
+		FreeResources ();
+		}
+	}	
+	
+// ----------------------------------------------------------------------------------
+// Frees resources and set state to EServiceStateIdle
+// ----------------------------------------------------------------------------------
+void CAutoAudioAsyService::FreeResources ()
+    {
+    COM_TRACE_ ( "[AccFW:AutoAudioAsy] CAutoAudioAsyService::FreeResources" );
+
+    if ( iState != EServiceStateIdle )
+        {
+        SET_STATE ( EServiceStateIdle );
+        }
+
+    delete iGenericId;
+    iGenericId = NULL;
+    }
--- a/accessoryservices/group/bld.inf	Wed Jun 23 22:58:50 2010 +0100
+++ b/accessoryservices/group/bld.inf	Thu Jul 22 16:45:41 2010 +0100
@@ -26,9 +26,13 @@
 #include "../accessoryremotecontrol/group/bld.inf"
 #include "../accessoryserver/group/bld.inf"
 #include "../pluggeddisplay/group/bld.inf"
+#include "../remotecontrolfw/group/bld.inf"
 #include "../headsetstatusapi/Group/bld.inf"
 #include "../tspclientmapper/group/bld.inf"
 #include "../gid_pc_tool/group/bld.inf"
+#ifdef FF_AUTOMOTIVESTACK
+#include "../autoaudioasy/group/bld.inf"
+#endif
 
 PRJ_TESTMMPFILES
 
--- a/accessoryservices/pluggeddisplay/edidparser/bwins/edidparseru.def	Wed Jun 23 22:58:50 2010 +0100
+++ b/accessoryservices/pluggeddisplay/edidparser/bwins/edidparseru.def	Thu Jul 22 16:45:41 2010 +0100
@@ -55,4 +55,6 @@
 	?GetInterlacedVideoLatency@CCea861EdidParser@@QAEEXZ @ 54 NONAME ; unsigned char CCea861EdidParser::GetInterlacedVideoLatency(void)
 	?GetStandardTimings@CEdidParserBase@@QAEEH@Z @ 55 NONAME ; unsigned char CEdidParserBase::GetStandardTimings(int)
 	?HasIEEERegistration@CCea861EdidParser@@QAEHXZ @ 56 NONAME ; int CCea861EdidParser::HasIEEERegistration(void)
+	?UpdateCea861ExtensionL@CEdidParserBase@@QAEXHPAVCCea861EdidParser@@@Z @ 57 NONAME ; void CEdidParserBase::UpdateCea861ExtensionL(int, class CCea861EdidParser *)
+	?UpdateRawDataL@CEdidParserBase@@QAEXABVTDesC8@@@Z @ 58 NONAME ; void CEdidParserBase::UpdateRawDataL(class TDesC8 const &)
 
--- a/accessoryservices/pluggeddisplay/edidparser/eabi/edidparseru.def	Wed Jun 23 22:58:50 2010 +0100
+++ b/accessoryservices/pluggeddisplay/edidparser/eabi/edidparseru.def	Thu Jul 22 16:45:41 2010 +0100
@@ -57,4 +57,6 @@
 	_ZTV17CCea861EdidParser @ 56 NONAME ; #<VT>#
 	_ZN15CEdidParserBase18GetStandardTimingsEi @ 57 NONAME
 	_ZN17CCea861EdidParser19HasIEEERegistrationEv @ 58 NONAME
+	_ZN15CEdidParserBase14UpdateRawDataLERK6TDesC8 @ 59 NONAME
+	_ZN15CEdidParserBase22UpdateCea861ExtensionLEiP17CCea861EdidParser @ 60 NONAME
 
--- a/accessoryservices/pluggeddisplay/edidparser/inc/edidparserbase.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/accessoryservices/pluggeddisplay/edidparser/inc/edidparserbase.h	Thu Jul 22 16:45:41 2010 +0100
@@ -378,6 +378,9 @@
      */
     IMPORT_C TUint8 GetChecksum();
 
+	IMPORT_C void UpdateRawDataL( const TDesC8& aBinaryData );
+	IMPORT_C void UpdateCea861ExtensionL( TInt aNumber, CCea861EdidParser* aParser );
+
 private:
 
     /**
@@ -558,6 +561,7 @@
      HBufC8*         iRawData;                  // Raw data that contains all EDID data
      TUint           iNumberOfExtensionBlocks;  // Number of extensionblocks for this base edid block
      TExtDataBlock   iExtensionData;            // Extension data
+     TInt            iRawdataLength;            // Raw data length
     };
 
 #endif // C_CEDIDPARSERBASE_H
--- a/accessoryservices/pluggeddisplay/edidparser/src/cea861edidparser.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/accessoryservices/pluggeddisplay/edidparser/src/cea861edidparser.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -1479,6 +1479,7 @@
         {
         case 0:
             //reserved
+            ReadUnknownTagCode( aData, aIndex, L1 );
             break;
         case 1:
             ReadCea861ShortAudioDataBlockL( aData, aIndex, L1 );
@@ -1535,6 +1536,7 @@
     const TInt8 aLen )
     {
     FUNC_LOG;
+    TBool first = EFalse;
 
     iAudioDataBlockSupported = ETrue;
 
@@ -1542,6 +1544,8 @@
         {
         iParsedInfo->iShortAudioDescriptors
             = new ( ELeave ) TCEA861AudioDataBlock();
+		first = ETrue;
+		iParsedInfo->iShortAudioDescriptors->iNext = 0;
         }
     TCEA861AudioDataBlock* cur = iParsedInfo->iShortAudioDescriptors;
 
@@ -1550,8 +1554,8 @@
         cur = cur->iNext; // jump to the end
         }
 
-    TBool first = ETrue;
-    for( int i = 0; i < aLen; i++ )
+	TInt i = 0;
+	while (i < aLen)
         {
         // read aLen-amount of short video descriptors
 
@@ -1594,20 +1598,20 @@
     {
     FUNC_LOG;
 
-    TBool first = ETrue;
+    TBool first = EFalse;
     iVideoDataBlockSupported = ETrue;
     if( !iParsedInfo->iShortVideoDescriptors ) // linked list
         {
         iParsedInfo->iShortVideoDescriptors
             = new ( ELeave ) TCEA861VideoDataBlock();
         iParsedInfo->iShortVideoDescriptors->iNext = 0; // make sure there are no stray pointers
+        first = ETrue;
         }
 
     TCEA861VideoDataBlock* cur = iParsedInfo->iShortVideoDescriptors;
     while( cur->iNext != 0 )
         {
         cur = cur->iNext; // jump to the end
-        first = EFalse; // there is already some links, so set first to false
         }
 
     for( int i = 0; i < aLen; i++ )
@@ -1673,11 +1677,13 @@
 
     aLen -= 3; // this is needed: Vendor specific payload length = L4-3bytes
 
-    TBool first = ETrue;
+    TBool first = EFalse;
     if( iParsedInfo->iVendorSpecificData->iVendorSpecificPayloadStart == 0 )
         {
         iParsedInfo->iVendorSpecificData->iVendorSpecificPayloadStart
             = new ( ELeave ) TCEA861VendorSpecificDataBlockPayload();
+		iParsedInfo->iVendorSpecificData->iVendorSpecificPayloadStart->iNext = 0;
+		first = ETrue;
         }
     TCEA861VendorSpecificDataBlockPayload* cur =
         iParsedInfo->iVendorSpecificData->iVendorSpecificPayloadStart;
@@ -1756,6 +1762,7 @@
     const TInt8 aLen )
     {
     FUNC_LOG;
+	TBool first = EFalse;
 
     aIndex++; // jump to the extended tag code (aLen is the length from extended tag to the end)
 
@@ -1763,13 +1770,12 @@
         {
         iParsedInfo->iVideoCapabilityDataBlock
             = new ( ELeave ) TCEA861VideoCapabilityDataBlock();
+		first = ETrue;
         }
     TCEA861VideoCapabilityDataBlock* cur =
         iParsedInfo->iVideoCapabilityDataBlock;
-    TBool first = ETrue;
     while( cur->iNext != 0 )
         {
-        first = EFalse;
         cur = cur->iNext;
         }
 
--- a/accessoryservices/pluggeddisplay/edidparser/src/edidparserbase.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/accessoryservices/pluggeddisplay/edidparser/src/edidparserbase.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -52,8 +52,10 @@
 
     // Make a copy of base EDID data
     Mem::Copy( &iBaseEdidData, rawPtr.Ptr(), KEdidParserSizeOfEdidBlock );
-    
-    TRACE_EDID_DATA( *this );
+
+	iRawdataLength = aBinaryData.Length();
+	
+    //TRACE_EDID_DATA( *this );
     }
 
 // ---------------------------------------------------------------------------
@@ -761,6 +763,51 @@
     return parser;
     }
 
+EXPORT_C void CEdidParserBase::UpdateRawDataL( const TDesC8& aBinaryData )
+	{
+	FUNC_LOG;
+
+	if ( iRawData )
+		{
+		iRawData = iRawData->ReAllocL( iRawdataLength + aBinaryData.Length() );
+		
+		TPtr8 rawPtr = iRawData->Des();
+		rawPtr.Append( aBinaryData );		
+		}
+	else
+		{
+	    iRawData = HBufC8::NewL( aBinaryData.Length() );
+	    TPtr8 rawPtr = iRawData->Des();
+	    rawPtr.Copy( aBinaryData );
+		}	
+
+	iRawdataLength = iRawdataLength + aBinaryData.Length();
+	}
+
+EXPORT_C void CEdidParserBase::UpdateCea861ExtensionL( TInt aNumber, CCea861EdidParser* aParser )
+	{
+	FUNC_LOG;
+
+    TInt ext = GetExtensionType( aNumber );
+    switch( ext )
+        {
+        case ECea861Ext:
+            {
+            // CEA 861 extension
+			if( aParser )
+				{
+				aParser->ParseExtensionBlockL( iExtensionData );
+				}
+            break;
+            }
+        default:
+            {
+            // Not supported
+            break;
+            }
+        }
+	}
+
 // ---------------------------------------------------------------------------
 // CEdidParserBase::GetChecksum
 // ---------------------------------------------------------------------------
--- a/accessoryservices/pluggeddisplay/pluggeddisplayengine/inc/compositecablestateconnected.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/accessoryservices/pluggeddisplay/pluggeddisplayengine/inc/compositecablestateconnected.h	Thu Jul 22 16:45:41 2010 +0100
@@ -308,6 +308,7 @@
     CCentralRepositoryWatch* iCRWatchForAspectRatio;
     CCentralRepositoryWatch* iCRWatchForFlickerFilter;
     CCentralRepositoryWatch* iCRWatchForTvSystem;
+	CCentralRepositoryWatch* iCRWatchForVOverScan;
 
     /**
      * TV Out Configurer.
--- a/accessoryservices/pluggeddisplay/pluggeddisplayengine/inc/edidhandler.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/accessoryservices/pluggeddisplay/pluggeddisplayengine/inc/edidhandler.h	Thu Jul 22 16:45:41 2010 +0100
@@ -173,6 +173,16 @@
      */
     TInt GetHdcpSupportStatus( TBool& aHdcpSupport ) const;
 
+    /**
+     * Update overscan values from cenrep.
+     * 
+     * @param None.
+     * @return None.
+     */
+    TBool UpdateOverscanValues();
+    
+	void GetCurrentOverscanValue( TInt& aHOverscan, TInt& aVOverscan );
+
 private:
 
     /**
@@ -347,14 +357,6 @@
      */
     void CalculateOverscan( TPoint& aTLCorner, TPoint& aBRCorner ) const;
     
-    /**
-     * Update overscan values from cenrep.
-     * 
-     * @param None.
-     * @return None.
-     */
-    void UpdateOverscanValues();
-    
 	/**
 	 * Filter out the unsupported TV configurations.
 	 * 
@@ -411,6 +413,12 @@
     
     // Request ID
     TRequestTypeID iRequestID;
+
+	// Number of extensions to read
+	TInt inbrOfExtensions;
+
+	// Current EDID block
+	TInt iCurrentBlock;
     };
 
 #endif // C_EDIDHANDLER_H
--- a/accessoryservices/pluggeddisplay/pluggeddisplayengine/inc/hdmicablestateconnected.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/accessoryservices/pluggeddisplay/pluggeddisplayengine/inc/hdmicablestateconnected.h	Thu Jul 22 16:45:41 2010 +0100
@@ -21,6 +21,7 @@
 
 
 #include "multifinitestatemachine.h"
+#include "centralrepositorywatch.h" 
 
 
 class CEDIDHandler;
@@ -40,7 +41,7 @@
  *  @lib none.
  *  @since TB 9.2
  */
-NONSHARABLE_CLASS( CHDMICableStateConnected ): public CBase, public MFSMState
+NONSHARABLE_CLASS( CHDMICableStateConnected ): public CBase, public MFSMState, public MCentralRepositoryObserver
     {
 
 
@@ -152,6 +153,41 @@
     
 protected:
 
+// from base class MCentralRepositoryObserver
+
+    
+    /**
+     * Function is called by watcher every time when key value has changed
+     * in CR.
+     *
+     * @since TB 9.2
+     * @param aRepositoryId Changed repository. 
+     * @param aRepositoryId Changed key. 
+     * @return none
+     */
+    virtual void CentRepKeyChanged(
+            TUid    aRepositoryId,
+            TUint32 aId );
+
+    /**
+     * Function is called by property watcher when reading the integer property's
+     * current value fails.
+     *
+     * @since TB 9.2
+     * @param aRepositoryId Changed repository. 
+     * @param aRepositoryId Changed key. 
+     * @param aError Error code:
+     *      KErrAbort if in a transaction that has previously failed, 
+     *      KErrPermissionDenied if caller fails capability check, 
+     *      KErrNotFound if the setting does not exist, 
+     *      KErrArgument if the setting exists but is not an integer, plus other system-wide error codes. 
+     * . 
+     * @return none
+     */
+    virtual void CentRepGetKeyValueFailed( 
+            TUid    aRepositoryId,
+            TUint32 aId,
+            TInt aError );
 
 private:
 
@@ -315,6 +351,8 @@
             TFSMInterfaceId aInterfaceId ,
             TFSMEventId aEvent );
 
+	void ClearAvailableTvOutConfig();
+
     /**
      * C++ default constructor.
      * @param aTVOutConfigForHDMI TV Out Configurer for cable connection listening.
@@ -399,7 +437,15 @@
         
     // Substate
     TSubState iSubState;
-    
+
+	//CR Observer for ovescan percentage
+    //CCentralRepositoryWatch* iCRWatchForHOverScan;
+    CCentralRepositoryWatch* iCRWatchForVOverScan;
+
+    // Current overscan value
+	TInt iHOverscanValue;
+	TInt iVOverscanValue;
+	
     };
 
 #endif // C_HDMICABLESTATECONNECTED_H
--- a/accessoryservices/pluggeddisplay/pluggeddisplayengine/inc/pdeconstants.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/accessoryservices/pluggeddisplay/pluggeddisplayengine/inc/pdeconstants.h	Thu Jul 22 16:45:41 2010 +0100
@@ -92,6 +92,7 @@
     // Central Repository interface's event ids    
     EPDEIfCentralRepositoryWatchEventUndefined = 0x50,
     EPDEIfCentralRepositoryWatchEventKeyChanged,
+	EPDEIfCentralRepositoryWatchEventOverscanKeyChanged,
     
     // ASY command Handler interface's event ids
     EPDEIfAsyCommandHandlerEventUndefined = 0x60,
--- a/accessoryservices/pluggeddisplay/pluggeddisplayengine/inc/tvoutconfigforcomposite.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/accessoryservices/pluggeddisplay/pluggeddisplayengine/inc/tvoutconfigforcomposite.h	Thu Jul 22 16:45:41 2010 +0100
@@ -123,6 +123,8 @@
      */
     void Disable();
 
+	TBool UpdateOverscanValues();
+	
 private:
 
     /**
@@ -262,6 +264,12 @@
     // Time out reason and next opt after timer has 
     // elapsed
     TOpt iTimeOutReason;
+	
+    // Horizontal overscan in pixels (1% == 100)
+    TInt iHOverscan;
+
+    // Vertical overscan in pixels (1% == 100)
+    TInt iVOverscan;
     };
 
 #endif // TVOUTCONFIGFORCOMPOSITE_H
--- a/accessoryservices/pluggeddisplay/pluggeddisplayengine/src/compositecablestateconnected.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/accessoryservices/pluggeddisplay/pluggeddisplayengine/src/compositecablestateconnected.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -80,6 +80,11 @@
         iCRWatchForTvSystem->Cancel();
         delete iCRWatchForTvSystem;        
         }
+    if ( iCRWatchForVOverScan )
+        {
+        iCRWatchForVOverScan->Cancel();
+        delete iCRWatchForVOverScan;        
+        }
     if ( iTVOutConfigForSettingChanges ) 
         {
         iTVOutConfigForSettingChanges->Cancel();
@@ -95,7 +100,8 @@
 void CCompositeCableStateConnected::Enter( )
     {
     FUNC_LOG;    
-    
+
+	iTVOutConfigForComposite.UpdateOverscanValues();
     ClearAvailableTvOutConfig();
     
     iTVOutConfigForSettingChanges->ListenSettingsChanges();
@@ -187,6 +193,7 @@
         TUint32 aId )
     {
     FUNC_LOG;
+	INFO("Cenrep Value Changed");
     if ( KCRUidTvoutSettings == aRepositoryId )
         {
         if (    ( KSettingsTvAspectRatio == aId ) ||
@@ -195,7 +202,15 @@
             {
             Input( EPDEIfCentralRepositoryWatch, EPDEIfCentralRepositoryWatchEventKeyChanged );
             }
-        else
+        else if( KSettingsTvoutVerticalOverscan == aId )
+			{
+			if( iTVOutConfigForComposite.UpdateOverscanValues() )
+				{
+				INFO( "There is a real overscan change" );
+				Input( EPDEIfCentralRepositoryWatch, EPDEIfCentralRepositoryWatchEventOverscanKeyChanged );
+				}
+			}
+		else
             {
             INFO_1("Unexpected CR key ID, aId 0x%x", aId );            
             }       
@@ -286,6 +301,7 @@
                 iCRWatchForFlickerFilter->Watch();
                 iCRWatchForAspectRatio->Watch();
                 iCRWatchForTvSystem->Watch();
+				iCRWatchForVOverScan->Watch();
                 iSubState = ESubStateEnabled;
                 }
             else
@@ -343,6 +359,7 @@
             iCRWatchForFlickerFilter->Cancel();
             iCRWatchForAspectRatio->Cancel();
             iCRWatchForTvSystem->Cancel();
+			iCRWatchForVOverScan->Cancel();
             ClearAvailableTvOutConfig();
             iTVOutConfigForComposite.Disable();
             iSubState = ESubStateDisabling;
@@ -362,17 +379,43 @@
             iCRWatchForFlickerFilter->Cancel();
             iCRWatchForAspectRatio->Cancel();
             iCRWatchForTvSystem->Cancel();
+			iCRWatchForVOverScan->Cancel();
             ClearAvailableTvOutConfig();
-            iTVOutConfigForComposite.Disable();
 			iResettingInput = ETrue;
             Enter();
             }
+		else if ( EPDEIfCentralRepositoryWatchEventOverscanKeyChanged == aEvent )
+			{
+			INFO( "Event: EPDEIfCentralRepositoryWatchEventOverscanKeyChanged" );
+			iTVOutConfigForComposite.SetConfig( ETrue );
+			}
         else
             {
             INFO_1( "Unknown Event Id: %i", aEvent );        
             }
         break;
         }       
+    case EPDEIfTVOutConfig:
+        {       
+        INFO( "Interface: EPDEIfTVOutConfig" );       
+		if ( EIfTVOutConfigEventSet == aEvent )
+			{
+			INFO( "Event: EIfTVOutConfigEventSet" );
+			// Stay on the same state
+			}
+		else if ( EIfTVOutConfigEventSetFailed == aEvent )
+			{
+			INFO( "Event: EIfTVOutConfigEventSetFailed" );
+            iCRWatchForFlickerFilter->Cancel();
+            iCRWatchForAspectRatio->Cancel();
+            iCRWatchForTvSystem->Cancel();
+			iCRWatchForVOverScan->Cancel();
+            ClearAvailableTvOutConfig();
+            iTVOutConfigForComposite.Disable();
+            iSubState = ESubStateDisabling;
+			}
+		break;
+		}
     default:
         {
         INFO_2( "Event from unexpected interface. if Id, event id: %i", aInterfaceId, aEvent );        
@@ -582,6 +625,7 @@
                         iCRWatchForFlickerFilter->Cancel();
                         iCRWatchForAspectRatio->Cancel();
                         iCRWatchForTvSystem->Cancel();
+						iCRWatchForVOverScan->Cancel();
                         iResettingInput = EFalse;
                         }
                     
@@ -599,6 +643,7 @@
                     iCRWatchForFlickerFilter->Cancel();
                     iCRWatchForAspectRatio->Cancel();
                     iCRWatchForTvSystem->Cancel();
+					iCRWatchForVOverScan->Cancel();
                     iResettingInput = EFalse;
                     }
                 
@@ -765,6 +810,7 @@
             iCRWatchForFlickerFilter->Cancel();
             iCRWatchForAspectRatio->Cancel();
             iCRWatchForTvSystem->Cancel();            
+			iCRWatchForVOverScan->Cancel();
             }
         else if ( EIfTVOutConfigEventSetFailed == aEvent )
             {
@@ -848,6 +894,7 @@
     iCRWatchForAspectRatio = CCentralRepositoryWatch::NewL(*this, KCRUidTvoutSettings, KSettingsTvAspectRatio );
     iCRWatchForFlickerFilter = CCentralRepositoryWatch::NewL(*this, KCRUidTvoutSettings, KSettingsTvoutFlickerFilter );
     iCRWatchForTvSystem = CCentralRepositoryWatch::NewL(*this, KCRUidTvoutSettings, KSettingsTvSystemInfo );    
+    iCRWatchForVOverScan = CCentralRepositoryWatch::NewL(*this, KCRUidTvoutSettings, KSettingsTvoutVerticalOverscan );
     iTVOutConfigForSettingChanges = CTVOutConfigForComposite::NewL(iCompositeCableStatusFSM);
     iResettingInput = EFalse;
     }
--- a/accessoryservices/pluggeddisplay/pluggeddisplayengine/src/edidhandler.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/accessoryservices/pluggeddisplay/pluggeddisplayengine/src/edidhandler.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -40,6 +40,7 @@
 
 const TInt KDefaultCEAMode = E640x480p59_94d60Hz4d3;
 const TInt KDefaultCEAModeIndex = 0;
+const TInt KDefaultDMTModeIndex = 3;
 
 // Retry Delay for EDID access
 const TInt KRetryDelay = 50 * 1000; // 50 milliseconds
@@ -124,9 +125,6 @@
     RArray<TTvSettings> analogConfigs;
     RArray<THdmiDviTimings> hdmiConfigs;
     
-    // Update overscan values from cenrep
-    UpdateOverscanValues();
-
     // Set video parameters
     INFO( "--------------------------------------------------------------------" );
     INFO( "SETTING CEA AND DMT TIMINGS:" );
@@ -176,6 +174,9 @@
     iEdidParserPtr = NULL;
     delete iExtensionParserPtr;
     iExtensionParserPtr = NULL;
+
+	iCurrentBlock = 0;
+	inbrOfExtensions = 0;
     }
 
 //------------------------------------------------------------------------------
@@ -518,26 +519,81 @@
         {
         case EDdcReadRequest:
             {
-            if( KErrNone == iStatus.Int() )
-                {
-                TPtrC8
-                    dataBlockDes( iDataBlockPtr->iDataBlock, sizeof( *iDataBlockPtr ) );
-                iEdidParserPtr = CEdidParserBase::NewL( dataBlockDes );
-                TInt nbrOfExtensions = iEdidParserPtr->GetNumberOfExtensions();
-                for( TInt i = 0; i < nbrOfExtensions; ++i )
-                    {
-                    if( ECea861Ext == iEdidParserPtr->GetExtensionType( i + 1 ) )
-                        {
-                        INFO_1( "ECea861Ext extension data block number: %d", ( i+1 ) );
-                        iExtensionParserPtr
-                            = iEdidParserPtr->CreateCea861ExtensionParserL( i + 1 );
-                        break;
-                        }
-                    }
-                INFO_1( "Data block count in nbrOfExtensions: %d", nbrOfExtensions );
-                iFSM.Input( EPDEIfEDIDHandler, EPDEIfEDIDHandlerEventEdidDataFetched );
-                iRetryCounter = KErrNone;
-                }
+			if( KErrNone == iStatus.Int() )
+				{				
+				if( iCurrentBlock == 0 )
+					{
+					TPtrC8 dataBlockDes( iDataBlockPtr->iDataBlock, sizeof( *iDataBlockPtr ) );
+					
+					iEdidParserPtr = CEdidParserBase::NewL( dataBlockDes );
+					inbrOfExtensions = iEdidParserPtr->GetNumberOfExtensions();
+
+					INFO_1( "No. of extensions from Block 0: %d", inbrOfExtensions );
+
+					if( inbrOfExtensions )
+						{
+						inbrOfExtensions--;
+						}
+ 					}
+				else
+					{
+					TPtrC8 dataBlockDes( iDataBlockPtr->iDataBlock, sizeof( *iDataBlockPtr ) );
+
+					INFO_1( "Updating the Rawdata for the Block %d...", iCurrentBlock );
+					iEdidParserPtr->UpdateRawDataL(dataBlockDes);
+					
+					iCurrentBlock++;
+					if( inbrOfExtensions >= 2 )
+						{
+ 						inbrOfExtensions = inbrOfExtensions - 2;
+						}
+					else
+						{
+						inbrOfExtensions--;
+						}
+  					}
+
+				if( inbrOfExtensions )
+					{
+					iRetryCounter = KErrNone;
+					
+					if( ReadEDIDDataL() != KErrNone )
+						{
+						ResetData();
+						iFSM.Input( EPDEIfEDIDHandler, EPDEIfEDIDHandlerEventEdidDataFetchFailed );
+						}
+					}
+				else
+					{
+					TInt extensions = iEdidParserPtr->GetNumberOfExtensions();
+
+					INFO_1( "No. of extensions from Block 0: %d", extensions );
+					
+					for( TInt i = 0; i < extensions; ++i )
+						{
+						if( ECea861Ext == iEdidParserPtr->GetExtensionType( i + 1 ) )
+							{
+							INFO_1( "ECea861Ext extension data block number: %d", ( i+1 ) );
+							if( !iExtensionParserPtr )
+								{
+								INFO( "First CEA 861 extension is being read..." );
+								iExtensionParserPtr
+									= iEdidParserPtr->CreateCea861ExtensionParserL( i + 1 );
+								}
+							else
+								{
+								INFO_1( "CEA 861 extension is being read... at the index %d", i+1 );
+								iEdidParserPtr->UpdateCea861ExtensionL( i + 1, iExtensionParserPtr );
+								}
+ 							}
+						}
+					}
+
+				TRACE_EDID_DATA( *iEdidParserPtr );
+				
+				iFSM.Input( EPDEIfEDIDHandler, EPDEIfEDIDHandlerEventEdidDataFetched );
+				iRetryCounter = KErrNone;
+				}
             else
                 {
                 INFO_1( "CDdcPortAccess::Read failed, error code: %d", iStatus.Int() );
@@ -551,9 +607,10 @@
                     }
                 else
                     {
+                    // No EDID data available from the sink
                     iRetryCounter = KErrNone;
-                    iFSM.Input( EPDEIfEDIDHandler,
-                        EPDEIfEDIDHandlerEventEdidDataFetchFailed );
+					ResetData();
+					iFSM.Input( EPDEIfEDIDHandler, EPDEIfEDIDHandlerEventEdidDataFetched );
                     }
                 }
             break;
@@ -623,8 +680,19 @@
         {
         iDataBlockPtr = new(ELeave) TDataBlock;
         }
+	else if( inbrOfExtensions )
+		{
+		if( iDataBlockPtr )
+			{
+			delete iDataBlockPtr;
+			iDataBlockPtr = NULL;
+			}
+		iDataBlockPtr = new(ELeave) TDataBlock;
+		}
+
+	INFO_1( "Reading EDID block %d...", iCurrentBlock );
     
-    retVal = iDdcPortAccess->Read( EMonitorPort, 0, // First block contains EDID data if that exists
+    retVal = iDdcPortAccess->Read( EMonitorPort, iCurrentBlock, // First block contains EDID data if that exists
         iDataBlockPtr->iDataBlock,
         iStatus );
         
@@ -643,8 +711,6 @@
     {
     FUNC_LOG;
     
-    aTimings.iTvPhysicalImageWidthMm = iEdidParserPtr->GetHorizontalScreenSize() * 10;
-    aTimings.iTvPhysicalImageHeightMm = iEdidParserPtr->GetVerticalScreenSize() * 10;
     aTimings.iTvPhysicalImageAspectRatioNumerator = 0;
     aTimings.iTvPhysicalImageAspectRatioDenominator = 0;
     aTimings.iHorizontalBorderPixels = 0;
@@ -652,15 +718,25 @@
     aTimings.iVerticalBorderLinesField2 = 0;
     aTimings.iLeftBorderPixels = 0;
     aTimings.iRightBorderPixels = 0;
-    aTimings.iUnderscanEnabled = EFalse;
     
     if( iExtensionParserPtr )
         {
+        INFO("==CEA Extension Exists");
         aTimings.iUnderscanEnabled = iExtensionParserPtr->Underscan();
         }
+	else
+		{
+        INFO("==No CEA Extension");
+		// No CEA Extension so it should be DVI
+		// Underscan supported always		
+		aTimings.iTvPhysicalImageAspectRatioNumerator = 4;
+		aTimings.iTvPhysicalImageAspectRatioDenominator = 3;
+		aTimings.iUnderscanEnabled = ETrue;
+		}
     
     if( aTimings.iUnderscanEnabled )
         {
+        INFO("==Underscan Enabled");
         // Underscan
         aTimings.iLeftTopCorner.iX = 0;
         aTimings.iLeftTopCorner.iY = 0;
@@ -669,23 +745,30 @@
         }
     else
         {
+        INFO("==Underscan Disabled");
         // Calculate overscan
         CalculateOverscan( aTimings.iLeftTopCorner,
             aTimings.iRightBottomCorner );                
         }
-    aTimings.iTvPhysicalImageAspectRatioNumerator = iEdidParserPtr->GetAspectRatioLandscape();
-    aTimings.iTvPhysicalImageAspectRatioDenominator = iEdidParserPtr->GetAspectRatioPortrait();
     aTimings.iConnector = TTvSettings::EHDMI;
-    aTimings.iTvColorCoordinates.iRed.iX = iEdidParserPtr->GetColorCoordinatesRedX();
-    aTimings.iTvColorCoordinates.iRed.iY = iEdidParserPtr->GetColorCoordinatesRedY();
-    aTimings.iTvColorCoordinates.iGreen.iX = iEdidParserPtr->GetColorCoordinatesGreenX();
-    aTimings.iTvColorCoordinates.iGreen.iY = iEdidParserPtr->GetColorCoordinatesGreenY();
-    aTimings.iTvColorCoordinates.iBlue.iX = iEdidParserPtr->GetColorCoordinatesBlueX();
-    aTimings.iTvColorCoordinates.iBlue.iY = iEdidParserPtr->GetColorCoordinatesBlueY();
-    aTimings.iTvColorCoordinates.iWhite.iX = iEdidParserPtr->GetColorCoordinatesWhiteX();
-    aTimings.iTvColorCoordinates.iWhite.iY = iEdidParserPtr->GetColorCoordinatesWhiteY();
-    aTimings.iTvHdmiVersion = iEdidParserPtr->GetVersion();
-    aTimings.iTvHdmiRevision = iEdidParserPtr->GetRevision();
+
+	if( iEdidParserPtr )
+		{
+		aTimings.iTvPhysicalImageWidthMm = iEdidParserPtr->GetHorizontalScreenSize() * 10;
+		aTimings.iTvPhysicalImageHeightMm = iEdidParserPtr->GetVerticalScreenSize() * 10;
+	    aTimings.iTvPhysicalImageAspectRatioNumerator = iEdidParserPtr->GetAspectRatioLandscape();
+	    aTimings.iTvPhysicalImageAspectRatioDenominator = iEdidParserPtr->GetAspectRatioPortrait();
+	    aTimings.iTvColorCoordinates.iRed.iX = iEdidParserPtr->GetColorCoordinatesRedX();
+	    aTimings.iTvColorCoordinates.iRed.iY = iEdidParserPtr->GetColorCoordinatesRedY();
+	    aTimings.iTvColorCoordinates.iGreen.iX = iEdidParserPtr->GetColorCoordinatesGreenX();
+	    aTimings.iTvColorCoordinates.iGreen.iY = iEdidParserPtr->GetColorCoordinatesGreenY();
+	    aTimings.iTvColorCoordinates.iBlue.iX = iEdidParserPtr->GetColorCoordinatesBlueX();
+	    aTimings.iTvColorCoordinates.iBlue.iY = iEdidParserPtr->GetColorCoordinatesBlueY();
+	    aTimings.iTvColorCoordinates.iWhite.iX = iEdidParserPtr->GetColorCoordinatesWhiteX();
+	    aTimings.iTvColorCoordinates.iWhite.iY = iEdidParserPtr->GetColorCoordinatesWhiteY();
+	    aTimings.iTvHdmiVersion = iEdidParserPtr->GetVersion();
+	    aTimings.iTvHdmiRevision = iEdidParserPtr->GetRevision();
+		}
     Mem::FillZ( ( TAny* )&aTimings.iProductName, ( sizeof( TChar ) * KProductNameChars ) );
     Mem::FillZ( ( TAny* )&aTimings.iProductDescription, ( sizeof( TChar ) * KProductDescriptorsChars ) );
     aTimings.iSourceType = THdmiDviTimings::ESourceTypeUnknown;
@@ -861,21 +944,44 @@
     FUNC_LOG;
     
     TInt retVal(KErrNone);
-    
-    // Check established timings 1 and 2
-    retVal = SetDmtModesFromEstablishedTimings( aTimings );
-    
-    if( KErrNone == retVal )
-        {
-        // Check standard timings
-        retVal = SetDmtModesFromStandardTimings( aTimings );
-        
-        if( KErrNone == retVal )
-            {
-            // Check timing descriptors
-            retVal = SetDmtModesFromTimingDescriptors( aTimings );        
-            }
-        }
+
+	if( iDataBlockPtr )
+		{
+	    // Check established timings 1 and 2
+	    retVal = SetDmtModesFromEstablishedTimings( aTimings );
+	    
+	    if( KErrNone == retVal )
+	        {
+	        // Check standard timings
+	        retVal = SetDmtModesFromStandardTimings( aTimings );
+	        
+	        if( KErrNone == retVal )
+	            {
+	            // Check timing descriptors
+	            retVal = SetDmtModesFromTimingDescriptors( aTimings );        
+	            }
+	        }
+		}
+	else
+		{
+		INFO( "==No EDID available from the Sink. Setting DMT 4" );
+		// No EDID data available from the sink
+		// Default VGA resolution should be selected
+		THdmiDviTimings timings;
+		const TTimingItem* item = TimingByIndex( KDefaultDMTModeIndex, ETimingModeDMT );
+		if( item )
+			{
+			Mem::FillZ( ( TAny* )&timings, sizeof( timings ) );
+			FillHdmiDviTimings( *item, timings );
+			retVal = aTimings.Append( timings );
+			ERROR_1( retVal, "Failed to append DMT timing: %S in array", item->iTimingName );
+			}
+		else
+			{
+			ERROR_1( KErrArgument, "DMT timing item not found for VIC mode: %d", KDefaultDMTModeIndex );
+			retVal = KErrNotFound;
+			}
+		}
     
     return retVal;
     }
@@ -1308,7 +1414,7 @@
 // CalculateOverscan
 //------------------------------------------------------------------------------
 //
-void CEDIDHandler::UpdateOverscanValues()
+TBool CEDIDHandler::UpdateOverscanValues()
     {
     FUNC_LOG;
 
@@ -1317,6 +1423,7 @@
     TInt vOverscan = 0;
     CRepository* cenRep = NULL;
     TInt err = KErrNone;
+	TBool valChanged = EFalse;
     
     TRAP( err, cenRep = CRepository::NewL( KCRUidTvoutSettings ) );
     if( err == KErrNone )
@@ -1339,10 +1446,19 @@
         // Cleanup
         delete cenRep;
         }
+
+	if( (iHOverscan != hOverscan) || (iVOverscan != vOverscan) )
+		{
+		valChanged = ETrue;
+		}
     
     // Update overscan values
     iHOverscan = hOverscan;
     iVOverscan = vOverscan;
+
+	INFO_3( "Overscan Values: %d,%d Changed:%d", iHOverscan, iVOverscan, valChanged );
+
+	return valChanged;
     }
 
 // ----------------------------------------------------------------------------
@@ -1466,6 +1582,16 @@
 	return retVal;
     }
 
+void CEDIDHandler::GetCurrentOverscanValue( TInt& aHOverscan, TInt& aVOverscan )
+	{
+	FUNC_LOG;
+	
+	aHOverscan = iHOverscan;
+	aVOverscan = iVOverscan;
+
+	INFO_2("Overscan used: %d, %d", iHOverscan, iVOverscan);
+	}
+
 //------------------------------------------------------------------------------
 // C++ constructor
 //------------------------------------------------------------------------------
@@ -1476,7 +1602,9 @@
     iFSM( aFSM ),
     iTVOutConfigForHDMI( aTVOutConfigForHDMI ),
     iRetryCounter( 0 ),
-    iRequestID( EUndefRequest )
+    iRequestID( EUndefRequest ),
+    inbrOfExtensions( 0 ),
+    iCurrentBlock( 0 )
     {
     FUNC_LOG;
     }
--- a/accessoryservices/pluggeddisplay/pluggeddisplayengine/src/hdmicablestateconnected.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/accessoryservices/pluggeddisplay/pluggeddisplayengine/src/hdmicablestateconnected.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -28,6 +28,9 @@
 #include "tvoutconfigforhdmi.h"
 #include "edidhandler.h"
 #include "trace.h"
+#include <centralrepository.h>
+#include <accessoriescrkeys.h>
+#include <tvoutconfig.h>
 
 
 
@@ -77,8 +80,73 @@
         iTVOutConfigForSettingChanges->Cancel();
         delete iTVOutConfigForSettingChanges;
         }
+    if ( iCRWatchForVOverScan )
+        {
+        iCRWatchForVOverScan->Cancel();
+        delete iCRWatchForVOverScan;        
+        }
     }
 
+// ---------------------------------------------------------------------------
+// From MCentralRepositoryObserver.
+// ---------------------------------------------------------------------------
+//
+void CHDMICableStateConnected::CentRepKeyChanged(
+        TUid    aRepositoryId,
+        TUint32 aId )
+    {
+    FUNC_LOG;
+    if ( KCRUidTvoutSettings == aRepositoryId )
+        {
+        if ( KSettingsTvoutVerticalOverscan == aId  )
+            {            
+			INFO("Cenrep Value Changed");
+			if( iEDIDHandler.UpdateOverscanValues() )
+				{
+				INFO( "There is a real change" );
+            	Input( EPDEIfCentralRepositoryWatch, EPDEIfCentralRepositoryWatchEventKeyChanged );
+				}
+            }
+        else
+            {
+            INFO_1("Unexpected CR key ID, aId 0x%x", aId );            
+            }       
+        }
+    else
+        {
+        INFO_1("Unexpected Central Repository ID, aRepositoryId 0x%x", aRepositoryId);
+        }
+
+    }
+
+// ---------------------------------------------------------------------------
+// From MCentralRepositoryObserver.
+// ---------------------------------------------------------------------------
+//
+void CHDMICableStateConnected::CentRepGetKeyValueFailed(
+        TUid    aRepositoryId,
+        TUint32 aId,
+        TInt    aError )
+    {
+    FUNC_LOG;
+    // Make use of aError argument top get rid of compiler warning.
+    TInt error( aError );
+    if ( ( KCRUidTvoutSettings == aRepositoryId ) && ( KErrNone != error ) )
+        {
+        if ( KSettingsTvoutVerticalOverscan == aId  )
+            {
+            INFO_1(" Getting KSettingsTvoutVerticalOverscan from CR failed, aError %d", error );                                    
+            }
+        else
+            {
+            INFO_1("Unexpected CR key ID, aId 0x%x", aId );            
+            }       
+        }
+    else
+        {
+        INFO_1("Unexpected Central Repository ID, aRepositoryId 0x%x", aRepositoryId);
+        }    
+    }
 
 // ---------------------------------------------------------------------------
 // From MFSMState.
@@ -88,6 +156,11 @@
     {
     FUNC_LOG;
     TInt retVal( KErrNone );
+	
+	// Get the current overscan value
+	iEDIDHandler.UpdateOverscanValues();
+	iEDIDHandler.GetCurrentOverscanValue( iHOverscanValue, iVOverscanValue );
+	
     iCopyProtectListenFailCounter.iCount = 0;
     iTVOutConfigForCopyProtect->ResetLatestRecordedCopyProtectionStatus();
     retVal = iEDIDHandler.FetchEDIDData();
@@ -330,6 +403,9 @@
                         }
                     else
                         {
+						// Update the current overscan value
+						iEDIDHandler.GetCurrentOverscanValue( iHOverscanValue, iVOverscanValue );
+						
                         TFSMEventId event = iTVOutConfigForHDMI.ListenHDMICableStatusIfNoMissedEvents();
                         if ( EIfTVOutConfigEventCableDisconnected == event )
                             {
@@ -451,6 +527,7 @@
             else
                 {
                 iSubState = ESubStateConnected;
+
                 TRAPD( err, iHDMICableStatusFSM.SettingsChangedL() );
                 if ( KErrNone != err )
                     {
@@ -458,6 +535,7 @@
                     }
                 ListenCopyProtectionStatusChanges();
                 iTVOutConfigForSettingChanges->ListenSettingsChanges();
+				iCRWatchForVOverScan->Watch();
                 }
             }
         else if ( EIfTVOutConfigEventEnableFailed == aEvent )
@@ -500,12 +578,14 @@
             INFO( "Event: EIfTVOutConfigEventDisabled" );
             iSubState = ESubStateIdlingDisconnectAccessory;
             iAccessoryControlIf.DisconnectAccessory();                    
+			ClearAvailableTvOutConfig();
             }
         else if ( EIfTVOutConfigEventDisableFailed == aEvent )
             {
             INFO( "Event: EIfTVOutConfigEventDisableFailed" );        
             iSubState = ESubStateIdlingDisconnectAccessory;
             iAccessoryControlIf.DisconnectAccessory();                    
+			ClearAvailableTvOutConfig();
             }
         else
             {
@@ -632,6 +712,7 @@
                 iSubState = ESubStateConnected;
                 ListenCopyProtectionStatusChanges();
                 iTVOutConfigForSettingChanges->ListenSettingsChanges();
+				iCRWatchForVOverScan->Watch();				
                 }
             }
         else if ( EPDEIfAccessoryControlEventConnectFailed == aEvent )
@@ -780,6 +861,7 @@
                 iTVOutConfigForCopyProtect->Cancel();
                 // Stop listen setting changes
                 iTVOutConfigForSettingChanges->Cancel();
+				iCRWatchForVOverScan->Cancel();
                 iSubState = ESubStateIdlingDisable;
                 iTVOutConfigForHDMI.Disable();            
                 }
@@ -792,6 +874,7 @@
             iTVOutConfigForCopyProtect->Cancel();
             // Stop listen setting changes
             iTVOutConfigForSettingChanges->Cancel();
+			iCRWatchForVOverScan->Cancel();
             // Disable tv out
             iTVOutConfigForHDMI.Disable();            
             }
@@ -808,6 +891,7 @@
                 iTVOutConfigForCopyProtect->Cancel();
                 // Stop listen setting changes
                 iTVOutConfigForSettingChanges->Cancel();
+				iCRWatchForVOverScan->Cancel();
                 iTVOutConfigForHDMI.Disable();                       
                 }
             else
@@ -821,6 +905,7 @@
                     iTVOutConfigForCopyProtect->Cancel();
                     // Stop listen setting changes
                     iTVOutConfigForSettingChanges->Cancel();
+					iCRWatchForVOverScan->Cancel();
                     iSubState = ESubStateIdlingDisable;
                     iTVOutConfigForHDMI.Disable();            
                     }
@@ -851,6 +936,7 @@
                 iTVOutConfigForHDMI.Cancel();
                 // Stop listening Copy Protection status
                 iTVOutConfigForCopyProtect->Cancel();
+				iCRWatchForVOverScan->Cancel();
                 iSubState = ESubStateRejectingDisable;
                 iTVOutConfigForHDMI.Disable();            
                 }
@@ -862,6 +948,7 @@
             iTVOutConfigForHDMI.Cancel();
             // Stop listening Copy Protection status
             iTVOutConfigForCopyProtect->Cancel();
+			iCRWatchForVOverScan->Cancel();
             if ( iTVOutConfigForHDMI.GetTvOutConfig()->Enabled() )
                 {
                 iSubState = ESubStateResettingDisable;
@@ -873,10 +960,17 @@
                 iTVOutConfigForHDMI.Enable();                
                 }
             }
-        else if ( EIfTVOutConfigEventSettingsChangesListenStarted )
+        else if ( EIfTVOutConfigEventSettingsChangesListenStarted == aEvent )
             {
             INFO( "Event: EIfTVOutConfigEventSettingsChangesListenStarted" );
             // Everything is OK. Stay in the same state.
+			// Should not miss the cenrep value change
+			TInt newOverScanValue = 0;
+			iCRWatchForVOverScan->GetCurrentValue(newOverScanValue);
+			if( iVOverscanValue != newOverScanValue )
+				{
+				Input( EPDEIfCentralRepositoryWatch, EPDEIfCentralRepositoryWatchEventKeyChanged );
+				}
             }
         else if ( EIfTVOutConfigEventSettingsChangesListenFailed == aEvent )
             {
@@ -887,6 +981,7 @@
             iTVOutConfigForHDMI.Cancel();
             // Stop listening Copy Protection status
             iTVOutConfigForCopyProtect->Cancel();
+			iCRWatchForVOverScan->Cancel();
             iTVOutConfigForHDMI.Disable();            
             }
         else
@@ -895,6 +990,53 @@
             }
         break;
         }
+    case EPDEIfCentralRepositoryWatch:
+        {       
+        INFO( "Interface: EPDEIfCentralRepositoryWatch" );
+        if ( EPDEIfCentralRepositoryWatchEventKeyChanged == aEvent )
+            {
+            INFO( "Event: EPDEIfCentralRepositoryWatchEventKeyChanged" );
+			
+			// Get the available config
+			THdmiDviTimings curConfig;
+			
+			iTVOutConfigForHDMI.GetTvOutConfig()->GetConfig( curConfig );
+
+			if( (TTvSettings::EHDMI == curConfig.iConnector) && (!curConfig.iUnderscanEnabled) )
+				{									
+				
+				TInt retVal = iEDIDHandler.SetVideoParameters();
+				if ( KErrNone != retVal )
+					{
+					INFO( "Going to state <Rejected> since video parameter setting failed!" );		  
+					iTVOutConfigForSettingChanges->Cancel();
+					iCRWatchForVOverScan->Cancel();
+					iSubState = ESubStateIdlingDisable;
+					iTVOutConfigForHDMI.Disable();			  
+					}
+				else
+					{
+					// Update the current overscan value
+					iEDIDHandler.GetCurrentOverscanValue( iHOverscanValue, iVOverscanValue );
+					
+					TFSMEventId event = iTVOutConfigForHDMI.ListenHDMICableStatusIfNoMissedEvents();
+					if ( EIfTVOutConfigEventCableDisconnected == event )
+						{
+						INFO( "Retreating back to <Idle> since cable was disconnected while not listening!" );		  
+						iTVOutConfigForSettingChanges->Cancel();
+						iCRWatchForVOverScan->Cancel();
+						iSubState = ESubStateIdlingDisable;
+						iTVOutConfigForHDMI.Disable();			  
+						}
+					}				
+				}			
+            }
+        else
+            {
+            INFO_1( "Unknown Event Id: %i", aEvent );        
+            }
+        break;
+        }       
     default:
         {
         INFO_1( "Event received from unknown/unexpected interface Id: %i", aInterfaceId );        
@@ -924,16 +1066,43 @@
             if ( EIfTVOutConfigEventCableDisconnected == event )
                 {
                 INFO( "Retreating back to <Idle> since cable was disconnected while WF setting changes!" );        
+				
+                // Stop listening Copy Protection status
+                iTVOutConfigForCopyProtect->Cancel();
+                // Stop listen setting changes
                 iTVOutConfigForSettingChanges->Cancel();
-                iHDMICableStatusFSM.Transit( EHDMICableStateIdle );         
+				iCRWatchForVOverScan->Cancel();
+
+				if( iTVOutConfigForHDMI.GetTvOutConfig()->Enabled() )
+					{
+					iSubState = ESubStateIdlingDisable;
+					iTVOutConfigForHDMI.Disable();			  
+					}
+				else
+					{
+					iHDMICableStatusFSM.Transit( EHDMICableStateIdle ); 		
+					}
                 }            
              }
         else if ( EIfTVOutConfigEventCableDisconnected == aEvent )
             {
             INFO( "Event: EIfTVOutConfigEventCableDisconnected" );
             INFO( "Retreating back to <Idle> since cable was disconnected while WF setting changes!" );
-            iTVOutConfigForSettingChanges->Cancel();
-            iHDMICableStatusFSM.Transit( EHDMICableStateIdle );         
+			// Stop listening Copy Protection status
+			iTVOutConfigForCopyProtect->Cancel();
+			// Stop listen setting changes
+			iTVOutConfigForSettingChanges->Cancel();
+			iCRWatchForVOverScan->Cancel();
+			
+			if( iTVOutConfigForHDMI.GetTvOutConfig()->Enabled() )
+				{
+				iSubState = ESubStateIdlingDisable;
+				iTVOutConfigForHDMI.Disable();			  
+				}
+			else
+				{
+				iHDMICableStatusFSM.Transit( EHDMICableStateIdle ); 		
+				}
             }
         else if ( EIfTVOutConfigEventSettingsChanged == aEvent )
             {
@@ -945,7 +1114,20 @@
             {
             INFO( "Event: EIfTVOutConfigEventSettingsChangesListenFailed" );
             INFO( "Going to state <Rejected> since setting changes listening failed!" );        
-            iHDMICableStatusFSM.Transit( EHDMICableStateRejected );         
+			// Stop listening Copy Protection status
+			iTVOutConfigForCopyProtect->Cancel();
+			// Stop listen setting changes
+			iCRWatchForVOverScan->Cancel();
+			
+			if( iTVOutConfigForHDMI.GetTvOutConfig()->Enabled() )
+				{
+				iSubState = ESubStateIdlingDisable;
+				iTVOutConfigForHDMI.Disable();			  
+				}
+			else
+				{
+				iHDMICableStatusFSM.Transit( EHDMICableStateRejected ); 		
+				}
             }
         else
             {
@@ -962,14 +1144,38 @@
     }
 
 // ---------------------------------------------------------------------------
+// ClearAvailableConfig
+// ---------------------------------------------------------------------------
+//
+void CHDMICableStateConnected::ClearAvailableTvOutConfig()
+    {
+    FUNC_LOG;
+    
+    if( iTVOutConfigForHDMI.GetTvOutConfig() )
+        {
+        RArray<THdmiDviTimings> HdmiSettingsArray;        
+    	RArray<TTvSettings> TvSettingsArray;       
+    
+        TInt err = iTVOutConfigForHDMI.GetTvOutConfig()->SetAvailableTvConfigList( TvSettingsArray, HdmiSettingsArray );
+        
+        HdmiSettingsArray.Close();
+    	TvSettingsArray.Close();
+        }              
+    }
+
+
+// ---------------------------------------------------------------------------
 // ConstructL
 // ---------------------------------------------------------------------------
 //
 void CHDMICableStateConnected::ConstructL()
     {
     FUNC_LOG;
+    // Create Central Repository Watchers
+    iCRWatchForVOverScan = CCentralRepositoryWatch::NewL(*this, KCRUidTvoutSettings, KSettingsTvoutVerticalOverscan );
+	
     iTVOutConfigForCopyProtect = CTVOutConfigForHDMI::NewL( iHDMICableStatusFSM );
-    iTVOutConfigForSettingChanges = CTVOutConfigForHDMI::NewL( iHDMICableStatusFSM );
+    iTVOutConfigForSettingChanges = CTVOutConfigForHDMI::NewL( iHDMICableStatusFSM );	
     }
 
 
--- a/accessoryservices/pluggeddisplay/pluggeddisplayengine/src/tvoutconfigforcomposite.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/accessoryservices/pluggeddisplay/pluggeddisplayengine/src/tvoutconfigforcomposite.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -189,6 +189,48 @@
     }
 
 // -----------------------------------------------------------------------------
+// CTVOutConfigForComposite::UpdateOverscanValues
+// -----------------------------------------------------------------------------
+//
+TBool CTVOutConfigForComposite::UpdateOverscanValues()
+    {
+    FUNC_LOG;
+
+    // Overscan from cenrep
+    TInt hOverscan = 0;
+    TInt vOverscan = 0;
+    TInt err = KErrNone;
+	TBool valChanged = EFalse;
+    
+    // Horizontal
+    err = iRepository->Get( KSettingsTvoutHorizontalOverscan, hOverscan );
+    if( err != KErrNone )
+        {
+        hOverscan = 0;
+        }
+    
+    // Vertical
+    err = iRepository->Get( KSettingsTvoutVerticalOverscan, vOverscan );
+    if( err != KErrNone )
+        {
+        vOverscan = 0;
+        }
+
+	if( (iHOverscan != hOverscan) || (iVOverscan != vOverscan) )
+		{
+		valChanged = ETrue;
+		}
+    
+    // Update overscan values
+    iHOverscan = hOverscan;
+    iVOverscan = vOverscan;
+
+	INFO_3( "Overscan Values: %d,%d Changed:%d", iHOverscan, iVOverscan, valChanged );
+
+	return valChanged;
+    }
+
+// -----------------------------------------------------------------------------
 // CTVOutConfigForComposite::InitializeDriverL
 // -----------------------------------------------------------------------------
 //
@@ -216,20 +258,9 @@
     ConvertFlickerFilter( value );
     settings.iFlickerFilter = ( TTvSettings::TFlickerFilterType ) value;
 
-    TInt hOverscan = 0;
-    TInt vOverscan = 0;
-    err = iRepository->Get( KSettingsTvoutHorizontalOverscan, hOverscan );
-    if( err != KErrNone )
-        {
-        hOverscan = 0;
-        }
-    err = iRepository->Get( KSettingsTvoutVerticalOverscan, vOverscan );
-    if( err != KErrNone )
-        {
-        vOverscan = 0;
-        }
-    settings.iHorizontalOverScan = hOverscan;
-    settings.iVerticalOverScan = vOverscan;
+	// Update overscan
+    settings.iHorizontalOverScan = iHOverscan;
+    settings.iVerticalOverScan = iVOverscan;
     
     // Update the PAR
     UpdatePixelAspectRatio( settings );
--- a/accessoryservices/pluggeddisplay/pluggeddisplayengine/src/tvoutconfigforhdmi.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/accessoryservices/pluggeddisplay/pluggeddisplayengine/src/tvoutconfigforhdmi.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -221,6 +221,7 @@
     if  ( iLastRecordedCopyProtectEnabledStatus != currentCopyProtectStatus )
         {
         INFO("Copy Protection status changed while not listening.");
+        iLastRecordedCopyProtectEnabledStatus = currentCopyProtectStatus;
         retStruct.iFSMEventId = EIfTVOutConfigEventSetCopyProtectStatusChanged;
         }
     else if ( !IsActive() )
--- a/accessoryservices/remotecontrolfw/bearerplugin/bwins/remconbearerpluginU.DEF	Wed Jun 23 22:58:50 2010 +0100
+++ b/accessoryservices/remotecontrolfw/bearerplugin/bwins/remconbearerpluginU.DEF	Thu Jul 22 16:45:41 2010 +0100
@@ -31,4 +31,6 @@
 	?NewTransactionId@MRemConBearerBulkObserver@@QAEIXZ @ 30 NONAME ; unsigned int MRemConBearerBulkObserver::NewTransactionId(void)
 	?NewCommand@MRemConBearerBulkObserver@@QAEHABVTRemConAddress@@ABI@Z @ 31 NONAME ; int MRemConBearerBulkObserver::NewCommand(class TRemConAddress const &, unsigned int const &)
 	?RemoveAddressing@MRemConBearerBulkObserver@@QAEHABVTRemConAddress@@@Z @ 32 NONAME ; int MRemConBearerBulkObserver::RemoveAddressing(class TRemConAddress const &)
+	?UnregisterLocalAddressedClientObserver@MRemConBearerObserver@@QAEHABVTUid@@@Z @ 33 NONAME ; int MRemConBearerObserver::UnregisterLocalAddressedClientObserver(class TUid const &)
+	?RegisterLocalAddressedClientObserver@MRemConBearerObserver@@QAEHABVTUid@@@Z @ 34 NONAME ; int MRemConBearerObserver::RegisterLocalAddressedClientObserver(class TUid const &)
 
--- a/accessoryservices/remotecontrolfw/bearerplugin/eabi/remconbearerpluginU.DEF	Wed Jun 23 22:58:50 2010 +0100
+++ b/accessoryservices/remotecontrolfw/bearerplugin/eabi/remconbearerpluginU.DEF	Thu Jul 22 16:45:41 2010 +0100
@@ -37,4 +37,6 @@
 	_ZN25MRemConBearerBulkObserver18SetAddressedClientERK14TRemConAddressRKj @ 36 NONAME
 	_ZN25MRemConBearerBulkObserver10NewCommandERK14TRemConAddressRKj @ 37 NONAME
 	_ZN25MRemConBearerBulkObserver16RemoveAddressingERK14TRemConAddress @ 38 NONAME
+	_ZN21MRemConBearerObserver36RegisterLocalAddressedClientObserverERK4TUid @ 39 NONAME
+	_ZN21MRemConBearerObserver38UnregisterLocalAddressedClientObserverERK4TUid @ 40 NONAME
 
--- a/accessoryservices/remotecontrolfw/bearerplugin/public/remconbearerobserver.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/accessoryservices/remotecontrolfw/bearerplugin/public/remconbearerobserver.h	Thu Jul 22 16:45:41 2010 +0100
@@ -270,6 +270,18 @@
 	*/
 	IMPORT_C void SetRemoteAddressedClient(const TUid& aBearerUid, const TRemConClientId& aId);
 	
+	/**
+	Called by the bearer to indicate it would like to be informed when the 
+	locally addressed client changes.
+	*/
+	IMPORT_C TInt RegisterLocalAddressedClientObserver(const TUid& aBearerUid);
+	
+	/**
+	Called by the bearer to indicate it would no longer like to be informed when 
+	the locally addressed client changes.
+	*/
+	IMPORT_C TInt UnregisterLocalAddressedClientObserver(const TUid& aBearerUid);
+	
 private:
 	/** 
 	@see NewResponse.
@@ -366,6 +378,16 @@
 	@see SetRemoteAddressedClient
 	*/
 	virtual void MrcboDoSetRemoteAddressedClient(const TUid& aBearerUid, const TRemConClientId& aId) = 0;
+	
+	/**
+	@see RegisterLocalAddressedClientObserver
+	*/
+	virtual TInt MrcboDoRegisterLocalAddressedClientObserver(const TUid& aBearerUid) = 0;
+	
+	/**
+	@see UnregisterLocalAddressedClientObserver
+	*/
+	virtual TInt MrcboDoUnregisterLocalAddressedClientObserver(const TUid& aBearerUid) = 0;
 	};
 
 #endif // REMCONBEAREROBSERVER_H
--- a/accessoryservices/remotecontrolfw/bearerplugin/src/remconbearerobserver.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/accessoryservices/remotecontrolfw/bearerplugin/src/remconbearerobserver.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -118,7 +118,6 @@
 	return MrcboDoSupportedInterfaces(aId, aUids);
 	}
 
-
 EXPORT_C TInt MRemConBearerObserver::SupportedOperations(const TRemConClientId& aId, TUid aInterfaceUid, RArray<TUint>& aOperations)
 	{
 	return MrcboDoSupportedOperations(aId, aInterfaceUid, aOperations);
@@ -129,4 +128,14 @@
 	MrcboDoSetRemoteAddressedClient(aBearerUid, aId);
 	}
 
+EXPORT_C TInt MRemConBearerObserver::RegisterLocalAddressedClientObserver(const TUid& aBearerUid)
+	{
+	return MrcboDoRegisterLocalAddressedClientObserver(aBearerUid);
+	}
 
+EXPORT_C TInt MRemConBearerObserver::UnregisterLocalAddressedClientObserver(const TUid& aBearerUid)
+	{
+	return MrcboDoUnregisterLocalAddressedClientObserver(aBearerUid);
+	}
+
+
--- a/accessoryservices/remotecontrolfw/client/intermediate/group/bld.inf	Wed Jun 23 22:58:50 2010 +0100
+++ b/accessoryservices/remotecontrolfw/client/intermediate/group/bld.inf	Thu Jul 22 16:45:41 2010 +0100
@@ -23,7 +23,7 @@
 
 PRJ_EXPORTS
 ../public/remconinterfaceselector.h 	SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(remconinterfaceselector.h)
-../public/remconinterfacebase.h 		SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(remcon/remconinterfacebase.h)
-../public/remconinterfaceif.h 			SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(remcon/remconinterfaceif.h)
+../public/remconinterfacebase.h 		SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(remcon/remconinterfacebase.h)
+../public/remconinterfaceif.h 			SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(remcon/remconinterfaceif.h)
 ../public/remconerrorobserver.h 			SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(remconerrorobserver.h)
 ../public/remconinterfacefeatures.h		SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(remcon/remconinterfacefeatures.h)
--- a/accessoryservices/remotecontrolfw/client/intermediate/src/interfaceselector.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/accessoryservices/remotecontrolfw/client/intermediate/src/interfaceselector.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -103,10 +103,11 @@
 		}
 	CleanupStack::PopAndDestroy(currentHeap);
 	
-	iLock = new (ELeave) RNestableLock();
-	CleanupStack::PushL(iLock);
-	LEAVEIFERRORL(iLock->CreateLocal());
-	CleanupStack::Pop(iLock);
+	RNestableLock* lock = new (ELeave) RNestableLock;
+    CleanupStack::PushL(lock);
+	LEAVEIFERRORL(lock->CreateLocal());
+	CleanupStack::Pop(lock);
+	iLock = lock;
 	}
 
 CRemConInterfaceSelector::CRemConInterfaceSelector()
@@ -441,15 +442,15 @@
 void CRemConInterfaceSelector::BulkSessionConnectL()
 	{
 	LOG_FUNC
-	iBulkSession = new(ELeave)RRemConBulk();
-	CleanupStack::PushL(iBulkSession);
-	LEAVEIFERRORL(iBulkSession->Connect());
-	CleanupStack::Pop(iBulkSession);
 
-	CleanupCloseDeleteAndNullPushL(reinterpret_cast<RRemCon**>(&iBulkSession));
+	RRemConBulk* bulkSession = new(ELeave)RRemConBulk;
+	CleanupStack::PushL(bulkSession);
+	LEAVEIFERRORL(bulkSession->Connect());
+	CleanupClosePushL(*bulkSession);
 	RCIS_VERBOSE_ASSERT(iBulkReceiver, ERemConIfSelInternalError);
-	iBulkReceiver->InitialiseL(*iBulkSession, iBulkMaxDataLength);
-	CleanupStack::Pop(&iBulkSession);
+	iBulkReceiver->InitialiseL(*bulkSession, iBulkMaxDataLength);
+	CleanupStack::Pop(2, bulkSession);
+	iBulkSession = bulkSession;
 	}
 
 /**
--- a/accessoryservices/remotecontrolfw/server/inc/bearermanager.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/accessoryservices/remotecontrolfw/server/inc/bearermanager.h	Thu Jul 22 16:45:41 2010 +0100
@@ -193,6 +193,9 @@
 	TInt MrcboDoSupportedInterfaces(const TRemConClientId& aId, RArray<TUid>& aUids);
 	TInt MrcboDoSupportedOperations(const TRemConClientId& aId, TUid aInterfaceUid, RArray<TUint>& aOperations);
 	
+	TInt MrcboDoRegisterLocalAddressedClientObserver(const TUid& aBearerUid);
+	TInt MrcboDoUnregisterLocalAddressedClientObserver(const TUid& aBearerUid);
+	
 private: // utility
 	/** Called during (2-phase) construction to instantiate all the bearer 
 	plugins, from ROM only. */
--- a/accessoryservices/remotecontrolfw/server/inc/server.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/accessoryservices/remotecontrolfw/server/inc/server.h	Thu Jul 22 16:45:41 2010 +0100
@@ -254,6 +254,9 @@
 	TInt ControllerSupportedInterfaces(RArray<TUid>& aSupportedInterfaces);
 	
 	void SetRemoteAddressedClient(const TUid& aBearerUid, const TRemConClientId& aId);
+	
+	TInt RegisterLocalAddressedClientObserver(const TUid& aBearerUid);
+	TInt UnregisterLocalAddressedClientObserver(const TUid& aBearerUid);
 
 public: // called by bulk server
 	TRemConClientId ClientIdByProcessId(TProcessId aProcessId);
@@ -521,6 +524,11 @@
 	// has been loaded.
 	MRemConTargetSelectorPluginInterfaceV4* iTspIf4;
 	
+	// This is the object supplied by the TSP which implements the TSP V5 API.
+	// The TSP may not support this interface, so RemCon must handle this 
+	// value being NULL
+	MRemConTargetSelectorPluginInterfaceV5* iTspIf5;
+	
 	// Collections we pass to the TSP for it to indicate addressing 
 	// information back to us.
 	TSglQue<TRemConAddress> iTspConnections;
--- a/accessoryservices/remotecontrolfw/server/src/bearermanager.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/accessoryservices/remotecontrolfw/server/src/bearermanager.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -1111,6 +1111,16 @@
 	return iServer.SupportedOperations(aId, aInterfaceUid, aOperations);
 	}
 
+TInt CBearerManager::MrcboDoRegisterLocalAddressedClientObserver(const TUid& aBearerUid)
+	{
+	return iServer.RegisterLocalAddressedClientObserver(aBearerUid);
+	}
+
+TInt CBearerManager::MrcboDoUnregisterLocalAddressedClientObserver(const TUid& aBearerUid)
+	{
+	return iServer.UnregisterLocalAddressedClientObserver(aBearerUid);
+	}
+
 TInt CBearerManager::SetLocalAddressedClient(const TUid& aBearerUid, TRemConClientId aClientId)
 	{
 	LOG_FUNC;
--- a/accessoryservices/remotecontrolfw/server/src/server.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/accessoryservices/remotecontrolfw/server/src/server.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -449,6 +449,10 @@
 
 	ASSERT_DEBUG(iBearerManager);
 	iBearerManager->TargetClientAvailable(aSession.Id(), aSession.PlayerType(), aSession.PlayerSubType(), aSession.Name());
+	if(iTspIf5)
+		{
+		iTspIf5->TargetClientAvailable(aSession.ClientInfo());
+		}
 
 	LOGSESSIONS;
 	}
@@ -523,7 +527,13 @@
 			// 1. Remove the session from our array.
 			iSessions.Remove(ii);
 
-			// 2. Tell the bearers about the session going away, if it was the 
+			// 2a. Tell the TSP if the session that has gone away is a target
+			if((aSession.Type() == ERemConClientTypeTarget) && iTspIf5)
+				{
+				iTspIf5->TargetClientUnavailable(aSession.ClientInfo());
+				}
+			
+			// 2b. Tell the bearers about the session going away, if it was the 
 			// last controller or last target.
 			// If the session hasn't already set its type, then it doesn't 
 			// count (we won't have told the bearers about it to begin with).
@@ -1998,6 +2008,10 @@
 			iTsp->GetInterface(TUid::Uid(KRemConTargetSelectorInterface4))
 		);
 	
+	iTspIf5 = reinterpret_cast<MRemConTargetSelectorPluginInterfaceV5*>(
+			iTsp->GetInterface(TUid::Uid(KRemConTargetSelectorInterface5))
+		);
+	
 	// If the TSP doesn't implement the required interface, panic server 
 	// startup.
 	ASSERT_ALWAYS(iTspIf);
@@ -3385,6 +3399,16 @@
 	iTspIf4->SetRemoteAddressedClient(aBearerUid, *clientInfo);
 	}
 
+TInt CRemConServer::RegisterLocalAddressedClientObserver(const TUid& aBearerUid)
+	{
+	return iTspIf5 ? iTspIf5->RegisterLocalAddressedClientObserver(aBearerUid) : KErrNotSupported;
+	}
+
+TInt CRemConServer::UnregisterLocalAddressedClientObserver(const TUid& aBearerUid)
+	{
+	return iTspIf5 ? iTspIf5->UnregisterLocalAddressedClientObserver(aBearerUid) : KErrNotSupported;
+	}
+
 TRemConClientId CRemConServer::ClientIdByProcessId(TProcessId aProcessId)
 	{
 	LOG_FUNC
--- a/accessoryservices/remotecontrolfw/targetselectorplugin/public/remcontargetselectorplugininterface.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/accessoryservices/remotecontrolfw/targetselectorplugin/public/remcontargetselectorplugininterface.h	Thu Jul 22 16:45:41 2010 +0100
@@ -340,5 +340,46 @@
 			const TClientInfo& aClient) = 0;
 	};
 
+/**
+The UID of this version of the Target Selector Plugin interface.
+*/
+const TInt KRemConTargetSelectorInterface5 = 0x2002e6e1;
+
+class MRemConTargetSelectorPluginInterfaceV5
+	{
+public:
+	/** Called by RemCon when a new target client has connected.
+	 
+	 @aClientInfo The information about the new client.
+	 */
+	virtual void TargetClientAvailable(const TClientInfo& aClientInfo) = 0;
+	
+	/** Called by RemCon when a target client has disconnected. 
+	 
+	 @aClientInfo The information about the client that has disconnected.
+	 */
+	virtual void TargetClientUnavailable(const TClientInfo& aClientInfo) = 0;
+	
+	/** Called by RemCon when a bearer wishes to begin being informed when
+	the locally addressed player changes.  Once this function has been called
+	the TSP should inform RemCon via SetLocalAddressedPlayer each time the
+	player to which incoming commands from aBearer would be routed changes.
+	This might occur for example if a new application is launched, or if the
+	foreground application changes, depending on what the TSP's rules are
+	for deciding the target of the incoming message.  These updates should
+	occur until UnregisterLocalAddressedClientObserver is called.
+	
+	@param aBearerUid The bearer that wishes to be informed of updates
+	*/
+	virtual TInt RegisterLocalAddressedClientObserver(const TUid& aBearerUid) = 0;
+
+	/** Called by RemCon when a bearer wishes to stop being informed of 
+	changes to the local addresse client.
+	
+	@param aBearerUid The bearer that no longer wishes to be informed of updates
+	*/
+	virtual TInt UnregisterLocalAddressedClientObserver(const TUid& aBearerUid) = 0;
+	};
+
 
 #endif // TARGETSELECTORPLUGININTERFACE_H
--- a/accessoryservices/remotecontrolfw/types/group/bld.inf	Wed Jun 23 22:58:50 2010 +0100
+++ b/accessoryservices/remotecontrolfw/types/group/bld.inf	Thu Jul 22 16:45:41 2010 +0100
@@ -24,7 +24,7 @@
 PRJ_EXPORTS
 ../public/remconaddress.h				SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(remconaddress.h)
 ../public/playertype.h					SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(remcon/playertype.h)
-../public/messagetype.h 				SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(remcon/messagetype.h)
-../public/clienttype.h					SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(remcon/clienttype.h)
+../public/messagetype.h 				SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(remcon/messagetype.h)
+../public/clienttype.h					SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(remcon/clienttype.h)
 ../public/clientid.h					SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(remcon/clientid.h)
 ../public/remconifdetails.h				SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(remcon/remconifdetails.h)
--- a/commonservices/PlatformEnv/rom/PlatformEnv.iby	Wed Jun 23 22:58:50 2010 +0100
+++ b/commonservices/PlatformEnv/rom/PlatformEnv.iby	Thu Jul 22 16:45:41 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2002-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"
@@ -22,10 +22,12 @@
 file=ABI_DIR\BUILD_DIR\PlatformEnv.dll       SHARED_LIB_DIR\PlatformEnv.dll
 
 #ifdef FF_USE_MASS_STORAGE_CONFIG
-patchdata PlatformEnv.dll@KDriveInfoDefaultRemovableMassStorage 5 // EDriveF
-patchdata PlatformEnv.dll@KDriveInfoLogicallyRemovableDrive1 4 // EDriveE
+patchdata PlatformEnv.dll@KDriveInfoDefaultRemovableMassStorage FF_DEFAULT_REMOVABLE_MASS_STORAGE
+patchdata PlatformEnv.dll@KDriveInfoLogicallyRemovableDrive1 FF_LOGICALLY_REMOVABLE_DRIVE1
 #endif // FF_USE_MASS_STORAGE_CONFIG
 
+patchdata PlatformEnv.dll@KDriveInfoUsbDrivesStart FF_USB_DRIVE_START
+
 file=ABI_DIR\BUILD_DIR\disknotifyhandler.dll SHARED_LIB_DIR\disknotifyhandler.dll
 file=ABI_DIR\BUILD_DIR\sysversioninfo.dll    SHARED_LIB_DIR\sysversioninfo.dll
 file=ABI_DIR\BUILD_DIR\platformver.dll       SHARED_LIB_DIR\platformver.dll
--- a/commonservices/activitymanager/group/activitymanager.mrp	Wed Jun 23 22:58:50 2010 +0100
+++ b/commonservices/activitymanager/group/activitymanager.mrp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 activitymanager
 source	\sf\os\devicesrv\commonservices\activitymanager
 binary \sf\os\devicesrv\commonservices\activitymanager\group all
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/commonservices/activitymanager/test/tef/group/te_activitymanagerteftests.pkg	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,28 @@
+;
+; 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".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description: 
+;
+
+
+;Languages
+&EN
+
+
+;Localised Vendor name
+%{"activitymanagerteftests EN"}
+
+; Vendor name
+: "activitymanagerteftests"
+
+"\sf\os\devicesrv\commonservices\activitymanager\test\tef\group\te_activitymanagerteftests.script"-"c:\devicesrv\activitymanagertest\te_activitymanagerteftests.script"
--- a/commonservices/group/bld.inf	Wed Jun 23 22:58:50 2010 +0100
+++ b/commonservices/group/bld.inf	Thu Jul 22 16:45:41 2010 +0100
@@ -22,9 +22,11 @@
 
 PRJ_MMPFILES
 
+#include "../activitymanager/group/bld.inf"
 #include "../commonengine/group/bld.inf"
 #include "../commonengineresources/group/bld.inf"
 #include "../PlatformEnv/group/bld.inf"
+#include "../sysutil/group/bld.inf"
 
 PRJ_TESTMMPFILES
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/commonservices/layers.sysdef.xml	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,111 @@
+<?xml version="1.0"?>
+<!DOCTYPE SystemDefinition [
+ <!ELEMENT SystemDefinition (systemModel?, build?)>
+ <!ATTLIST SystemDefinition
+  name CDATA #REQUIRED
+  schema CDATA #REQUIRED>
+ <!ELEMENT systemModel (layer+)>
+ <!ELEMENT layer (logicalset* | module*)*>
+ <!ATTLIST layer
+  name CDATA #REQUIRED
+  levels CDATA #IMPLIED
+  span CDATA #IMPLIED>
+ <!ELEMENT logicalset (logicalsubset* | module* | unit* | package* | prebuilt*)*>
+ <!ATTLIST logicalset 
+  name CDATA #REQUIRED
+  levels CDATA #IMPLIED  
+  span CDATA #IMPLIED
+  level CDATA #IMPLIED>
+ <!ELEMENT logicalsubset (module* | unit* | package* | prebuilt*)*>
+ <!ATTLIST logicalsubset name CDATA #REQUIRED>
+ <!ELEMENT module (component* | unit* | package* | prebuilt*)*>
+ <!ATTLIST module
+  name CDATA #REQUIRED
+  level CDATA #IMPLIED>
+ <!ELEMENT component (unit* | package* | prebuilt*)*>
+ <!ATTLIST component name CDATA #REQUIRED>
+ <!ELEMENT unit EMPTY>
+ <!ATTLIST unit
+  unitID ID #REQUIRED
+  name CDATA #REQUIRED
+  mrp CDATA #REQUIRED
+  filter CDATA #IMPLIED
+  bldFile CDATA #REQUIRED
+  priority CDATA #IMPLIED
+  contract CDATA #IMPLIED>
+ <!ELEMENT package EMPTY>
+ <!ATTLIST package
+  name CDATA #REQUIRED
+  mrp CDATA #REQUIRED
+  filter CDATA #IMPLIED
+  contract CDATA #IMPLIED>
+ <!ELEMENT prebuilt EMPTY>
+ <!ATTLIST prebuilt
+  name CDATA #REQUIRED
+  version CDATA #REQUIRED
+  late (Y|N) #IMPLIED
+  filter CDATA #IMPLIED
+  contract CDATA #IMPLIED>
+ <!ELEMENT build (option* | target+ | targetList+ | unitList+ | configuration+)*>
+ <!ELEMENT unitList (unitRef+)>
+ <!ATTLIST unitList
+  name ID #REQUIRED
+  description CDATA #REQUIRED>
+ <!ELEMENT unitRef EMPTY>
+ <!ATTLIST unitRef unit IDREF #REQUIRED>
+ <!ELEMENT targetList EMPTY>
+ <!ATTLIST targetList
+  name ID #REQUIRED
+  description CDATA #REQUIRED
+  target IDREFS #REQUIRED>
+ <!ELEMENT target EMPTY>
+ <!ATTLIST target
+  name ID #REQUIRED
+  abldTarget CDATA #REQUIRED
+  description CDATA #REQUIRED>
+ <!ELEMENT option EMPTY>
+ <!ATTLIST option
+  name ID #REQUIRED
+  abldOption CDATA #REQUIRED
+  description CDATA #REQUIRED
+  enable (Y | N | y | n) #REQUIRED>
+ <!ELEMENT configuration (unitListRef+ | layerRef+ | task+)*>
+ <!ATTLIST configuration
+  name ID #REQUIRED
+  description CDATA #REQUIRED
+  filter CDATA #REQUIRED>
+ <!ELEMENT task ( unitListRef* , (buildLayer | specialInstructions))>
+ <!ELEMENT unitListRef EMPTY>
+ <!ATTLIST unitListRef unitList IDREF #REQUIRED>
+ <!ELEMENT layerRef EMPTY>
+ <!ATTLIST layerRef layerName CDATA #REQUIRED>
+ <!ELEMENT buildLayer EMPTY>
+ <!ATTLIST buildLayer
+  command CDATA #REQUIRED
+  targetList IDREFS #IMPLIED
+  unitParallel (Y | N | y | n) #REQUIRED
+  targetParallel (Y | N | y | n) #IMPLIED>
+ <!ELEMENT specialInstructions EMPTY>
+ <!ATTLIST specialInstructions
+  name CDATA #REQUIRED
+  cwd CDATA #REQUIRED
+  command CDATA #REQUIRED>
+  <!ENTITY layer_real_source_path "sf/os/devicesrv/commonservices" >
+]>
+
+<SystemDefinition name="Dvscode" schema="1.4.0">
+  <systemModel>
+    <layer name="os_layer">
+		<module name="DeviceSrv_NCP">
+			<unit name="activitymanager" unitID="sos.activitymanager" bldFile="&layer_real_source_path;/activitymanager/group" mrp="&layer_real_source_path;/activitymanager/group/activitymanager.mrp"/>
+		</module>
+    </layer>
+	
+	<layer name="api_test_layer">
+		<module name="DeviceSrv_NCP">
+			<unit name="activitymanager" unitID="sos.activitymanager_test" bldFile="&layer_real_source_path;/activitymanager/group" mrp="&layer_real_source_path;/activitymanager/group/activitymanager.mrp"/>
+		</module>
+	</layer>
+
+  </systemModel>
+</SystemDefinition>
\ No newline at end of file
--- a/commonservices/sysutil/group/sysutil.mrp	Wed Jun 23 22:58:50 2010 +0100
+++ b/commonservices/sysutil/group/sysutil.mrp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 sysutil
 source	\sf\os\devicesrv\commonservices\sysutil
 binary \sf\os\devicesrv\commonservices\sysutil\group all
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/commonservices/sysutil/layers.sysdef.xml	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,111 @@
+<?xml version="1.0"?>
+<!DOCTYPE SystemDefinition [
+ <!ELEMENT SystemDefinition (systemModel?, build?)>
+ <!ATTLIST SystemDefinition
+  name CDATA #REQUIRED
+  schema CDATA #REQUIRED>
+ <!ELEMENT systemModel (layer+)>
+ <!ELEMENT layer (logicalset* | module*)*>
+ <!ATTLIST layer
+  name CDATA #REQUIRED
+  levels CDATA #IMPLIED
+  span CDATA #IMPLIED>
+ <!ELEMENT logicalset (logicalsubset* | module* | unit* | package* | prebuilt*)*>
+ <!ATTLIST logicalset 
+  name CDATA #REQUIRED
+  levels CDATA #IMPLIED  
+  span CDATA #IMPLIED
+  level CDATA #IMPLIED>
+ <!ELEMENT logicalsubset (module* | unit* | package* | prebuilt*)*>
+ <!ATTLIST logicalsubset name CDATA #REQUIRED>
+ <!ELEMENT module (component* | unit* | package* | prebuilt*)*>
+ <!ATTLIST module
+  name CDATA #REQUIRED
+  level CDATA #IMPLIED>
+ <!ELEMENT component (unit* | package* | prebuilt*)*>
+ <!ATTLIST component name CDATA #REQUIRED>
+ <!ELEMENT unit EMPTY>
+ <!ATTLIST unit
+  unitID ID #REQUIRED
+  name CDATA #REQUIRED
+  mrp CDATA #REQUIRED
+  filter CDATA #IMPLIED
+  bldFile CDATA #REQUIRED
+  priority CDATA #IMPLIED
+  contract CDATA #IMPLIED>
+ <!ELEMENT package EMPTY>
+ <!ATTLIST package
+  name CDATA #REQUIRED
+  mrp CDATA #REQUIRED
+  filter CDATA #IMPLIED
+  contract CDATA #IMPLIED>
+ <!ELEMENT prebuilt EMPTY>
+ <!ATTLIST prebuilt
+  name CDATA #REQUIRED
+  version CDATA #REQUIRED
+  late (Y|N) #IMPLIED
+  filter CDATA #IMPLIED
+  contract CDATA #IMPLIED>
+ <!ELEMENT build (option* | target+ | targetList+ | unitList+ | configuration+)*>
+ <!ELEMENT unitList (unitRef+)>
+ <!ATTLIST unitList
+  name ID #REQUIRED
+  description CDATA #REQUIRED>
+ <!ELEMENT unitRef EMPTY>
+ <!ATTLIST unitRef unit IDREF #REQUIRED>
+ <!ELEMENT targetList EMPTY>
+ <!ATTLIST targetList
+  name ID #REQUIRED
+  description CDATA #REQUIRED
+  target IDREFS #REQUIRED>
+ <!ELEMENT target EMPTY>
+ <!ATTLIST target
+  name ID #REQUIRED
+  abldTarget CDATA #REQUIRED
+  description CDATA #REQUIRED>
+ <!ELEMENT option EMPTY>
+ <!ATTLIST option
+  name ID #REQUIRED
+  abldOption CDATA #REQUIRED
+  description CDATA #REQUIRED
+  enable (Y | N | y | n) #REQUIRED>
+ <!ELEMENT configuration (unitListRef+ | layerRef+ | task+)*>
+ <!ATTLIST configuration
+  name ID #REQUIRED
+  description CDATA #REQUIRED
+  filter CDATA #REQUIRED>
+ <!ELEMENT task ( unitListRef* , (buildLayer | specialInstructions))>
+ <!ELEMENT unitListRef EMPTY>
+ <!ATTLIST unitListRef unitList IDREF #REQUIRED>
+ <!ELEMENT layerRef EMPTY>
+ <!ATTLIST layerRef layerName CDATA #REQUIRED>
+ <!ELEMENT buildLayer EMPTY>
+ <!ATTLIST buildLayer
+  command CDATA #REQUIRED
+  targetList IDREFS #IMPLIED
+  unitParallel (Y | N | y | n) #REQUIRED
+  targetParallel (Y | N | y | n) #IMPLIED>
+ <!ELEMENT specialInstructions EMPTY>
+ <!ATTLIST specialInstructions
+  name CDATA #REQUIRED
+  cwd CDATA #REQUIRED
+  command CDATA #REQUIRED>
+  <!ENTITY layer_real_source_path "sf/os/devicesrv/commonservices/sysutil" >
+]>
+
+<SystemDefinition name="Dvscode" schema="1.4.0">
+  <systemModel>
+    <layer name="os_layer">
+		<module name="DeviceSrv_DFS">
+			<unit name="sysutil" unitID="sos.sysutil" bldFile="&layer_real_source_path;/group" mrp="&layer_real_source_path;/group/sysutil.mrp"/>
+		</module>
+    </layer>
+	
+	<layer name="api_test_layer">
+		<module name="DeviceSrv_DFS">
+			<unit name="sysutil" unitID="sos.sysutil_test" bldFile="&layer_real_source_path;/group" mrp="&layer_real_source_path;/group/sysutil.mrp"/>
+		</module>
+	</layer>
+
+  </systemModel>
+</SystemDefinition>
\ No newline at end of file
--- a/commonservices/sysutil/src/sysutil.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/commonservices/sysutil/src/sysutil.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -834,7 +834,7 @@
 	_LIT( KWildCardChar, "*" );
 	
 	RFs fs;
-	fs.Connect();
+	User::LeaveIfError( fs.Connect() );
 	CleanupClosePushL( fs );
 	
 	// Get the localised version of deviceattributes.ini, if available, and use
--- a/commonservices/sysutil/test/tef/group/te_sysutilteftests.iby	Wed Jun 23 22:58:50 2010 +0100
+++ b/commonservices/sysutil/test/tef/group/te_sysutilteftests.iby	Thu Jul 22 16:45:41 2010 +0100
@@ -42,10 +42,10 @@
 
 #ifndef SYSUTIL_Z_DRIVE_FILES_PRESENT
 #define SYSUTIL_Z_DRIVE_FILES_PRESENT
-data = EPOCROOT##epoc32\data\z\resource\versions\lang.txt										\resource\versions\lang.txt
-data = EPOCROOT##epoc32\data\z\resource\versions\langsw.txt										\resource\versions\langsw.txt
-data = EPOCROOT##epoc32\data\z\resource\versions\sw.txt											\resource\versions\sw.txt
-data = EPOCROOT##epoc32\data\z\resource\versions\purpose.txt									\resource\versions\purpose.txt
+//data = EPOCROOT##epoc32\data\z\resource\versions\lang.txt										\resource\versions\lang.txt
+//data = EPOCROOT##epoc32\data\z\resource\versions\langsw.txt										\resource\versions\langsw.txt
+//data = EPOCROOT##epoc32\data\z\resource\versions\sw.txt											\resource\versions\sw.txt
+//data = EPOCROOT##epoc32\data\z\resource\versions\purpose.txt									\resource\versions\purpose.txt
 #endif
 
 data = EPOCROOT##epoc32\data\z\resource\versions\nocontent\lang.txt								\resource\versions\nocontent\lang.txt
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/commonservices/sysutil/test/tef/group/te_sysutilteftests.pkg	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,28 @@
+;
+; 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".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description: 
+;
+
+
+;Languages
+&EN
+
+
+;Localised Vendor name
+%{"SysUtilTefTests EN"}
+
+; Vendor name
+: "SysUtilTefTests"
+
+"\sf\os\devicesrv\commonservices\sysutil\test\tef\group\te_sysutilteftests.script"-"c:\devicesrv\sysutiltest\te_sysutilteftests.script"
--- a/devicesrv_info/devicesrv_metadata/devicesrv_metadata.mrp	Wed Jun 23 22:58:50 2010 +0100
+++ b/devicesrv_info/devicesrv_metadata/devicesrv_metadata.mrp	Thu Jul 22 16:45:41 2010 +0100
@@ -1,23 +1,6 @@
-#
-# 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           devicesrv_metadata
 source   \sf\os\devicesrv\devicesrv_info\devicesrv_metadata 
 source   \sf\os\devicesrv\package_definition.xml
 source   \sf\os\devicesrv\distribution.policy.s60
-source   \sf\os\devicesrv\package_definition_v2.xml
 notes_source      \component_defs\release.src
 ipr T 
--- a/devicesrv_plat/accessory_api/inc/AccessoryConnection.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/devicesrv_plat/accessory_api/inc/AccessoryConnection.h	Thu Jul 22 16:45:41 2010 +0100
@@ -21,7 +21,7 @@
 #define RACCESSORYCONNECTION_H
 
 //  INCLUDES
-#include "accessoryconnectionbase.h"
+#include "AccessoryConnectionBase.h"
 
 // FORWARD DECLARATIONS
 class TAccPolGenericIDArray;
--- a/devicesrv_plat/accessory_api/inc/AccessoryConnectionBase.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/devicesrv_plat/accessory_api/inc/AccessoryConnectionBase.h	Thu Jul 22 16:45:41 2010 +0100
@@ -21,9 +21,9 @@
 #define RACCESSORYCONNECTIONBASE_H
 
 //  INCLUDES
-#include <accessorysubsessionbase.h>
-#include <accpolnamerecord.h>
-#include <accessorytypes.h>
+#include <AccessorySubsessionBase.h>
+#include <AccPolNameRecord.h>
+#include <AccessoryTypes.h>
 
 // FORWARD DECLARATIONS
 class CAccPolSubblockNameArray;
--- a/devicesrv_plat/accessory_api/inc/AccessoryMode.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/devicesrv_plat/accessory_api/inc/AccessoryMode.h	Thu Jul 22 16:45:41 2010 +0100
@@ -21,9 +21,9 @@
 #define RACCESSORYMODE_H
 
 //  INCLUDES
-#include <accessorysubsessionbase.h>
-#include <accpolaccessorymode.h>
-#include <accessorytypes.h>
+#include <AccessorySubsessionBase.h>
+#include <AccPolAccessoryMode.h>
+#include <AccessoryTypes.h>
 
 // FORWARD DECLARATIONS
 class RAccessoryServer;
--- a/devicesrv_plat/accessory_api/inc/AccessorySingleConnection.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/devicesrv_plat/accessory_api/inc/AccessorySingleConnection.h	Thu Jul 22 16:45:41 2010 +0100
@@ -21,7 +21,7 @@
 #define RACCESSORYSINGLECONNECTION_H
 
 //  INCLUDES
-#include "accessoryconnectionbase.h"
+#include "AccessoryConnectionBase.h"
 
 
 // FORWARD DECLARATIONS
--- a/devicesrv_plat/accessory_api/inc/AccessoryTypes.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/devicesrv_plat/accessory_api/inc/AccessoryTypes.h	Thu Jul 22 16:45:41 2010 +0100
@@ -20,10 +20,10 @@
 #define ACCESSORYTYPES_H
 
 //  INCLUDES
-#include <accpolgenericid.h>
-#include <accpolgenericidarray.h>
-#include <accpolaccessorymode.h>
-#include <accpolnamerecord.h>
+#include <AccPolGenericID.h>
+#include <AccPolGenericIDArray.h>
+#include <AccPolAccessoryMode.h>
+#include <AccPolNameRecord.h>
 
 // CONSTANTS
 
--- a/devicesrv_plat/accessory_audio_control_api/inc/AccessoryAudioControl.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/devicesrv_plat/accessory_audio_control_api/inc/AccessoryAudioControl.h	Thu Jul 22 16:45:41 2010 +0100
@@ -20,7 +20,7 @@
 #define RACCESSORYAUDIOCONTROL_H
 
 //  INCLUDES
-#include <accessorycontrol.h>
+#include <AccessoryControl.h>
 
 
 // CLASS DECLARATION
--- a/devicesrv_plat/accessory_bluetooth_control_api/inc/AccessoryBTControl.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/devicesrv_plat/accessory_bluetooth_control_api/inc/AccessoryBTControl.h	Thu Jul 22 16:45:41 2010 +0100
@@ -21,7 +21,7 @@
 #define RACCESSORYBTCONTROL_H
 
 //  INCLUDES
-#include <accessorycontrol.h>
+#include <AccessoryControl.h>
 #include <bttypes.h>//TBTDevAddr
 
 // DATA TYPES
--- a/devicesrv_plat/accessory_control_api/inc/AccModeSettingArray.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/devicesrv_plat/accessory_control_api/inc/AccModeSettingArray.h	Thu Jul 22 16:45:41 2010 +0100
@@ -21,7 +21,7 @@
 #define ACCMODESETTINGARRAY_H
 
 //  INCLUDES
-#include <accmodesetting.h>
+#include <AccModeSetting.h>
 
 // CONSTANTS
 // Maximum number of settings TAccModeSettingArray can store.
--- a/devicesrv_plat/accessory_control_api/inc/AccessoryControl.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/devicesrv_plat/accessory_control_api/inc/AccessoryControl.h	Thu Jul 22 16:45:41 2010 +0100
@@ -20,7 +20,7 @@
 #define RACCESSORYCONTROL_H
 
 //  INCLUDES
-#include <accessoryconnection.h>
+#include <AccessoryConnection.h>
 
 // FORWARD DECLARATIONS
 class TAccPolGenericID;
--- a/devicesrv_plat/accessory_control_api/inc/AccessorySettings.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/devicesrv_plat/accessory_control_api/inc/AccessorySettings.h	Thu Jul 22 16:45:41 2010 +0100
@@ -22,11 +22,11 @@
 
 //  INCLUDES
 #include <e32std.h>
-#include <accpolaccessorymode.h>
-#include <accmodesetting.h>
-#include <accmodesettingarray.h>
-#include "accessorysubsessionbase.h"
-#include "accessoryserver.h"
+#include <AccPolAccessoryMode.h>
+#include <AccModeSetting.h>
+#include <AccModeSettingArray.h>
+#include "AccessorySubsessionBase.h"
+#include "AccessoryServer.h"
 
 // FORWARD DECLARATIONS
 
--- a/devicesrv_plat/accessory_plugin_api/inc/AsyCmdTypes.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/devicesrv_plat/accessory_plugin_api/inc/AsyCmdTypes.h	Thu Jul 22 16:45:41 2010 +0100
@@ -20,8 +20,8 @@
 #define ASYCMDTYPES_H
 
 // INCLUDES
-#include <accpolnamerecord.h>
-#include <accpolgenericid.h>
+#include <AccPolNameRecord.h>
+#include <AccPolGenericID.h>
 
 // CONSTANTS
 
--- a/devicesrv_plat/accessory_policy_definitions_api/inc/AccPolCommonNameValuePairs.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/devicesrv_plat/accessory_policy_definitions_api/inc/AccPolCommonNameValuePairs.h	Thu Jul 22 16:45:41 2010 +0100
@@ -293,8 +293,18 @@
 // I/O Type:      From terminal to accessory.
 // Description:   Gets value(s) of specific Audio Control object(s).
 //                Sets value(s) for specific Audio Control object(s).
+// Bitmask:       000000 00000 10010
+const TUint32 KAccAudioControl = 0x0012;
+
+// REQ-417-64804: In-Car optimized Device
+// Name:          RTP Streaming
+// Value:         N/A
+// Dynamic Type:  Static
+// I/O:           From accessory to terminal, input.
+// Description:   indicates that accessory supports RPT streaming channel for audio data.
 // Bitmask:       000000 00000 10011
-const TUint32 KAccAudioControl = 0x0012;
+const TUint32 KAccRTPStreaming = 0x0013;
+// REQ-417-64804: In-Car optimized Device
 
 // CAR KIT SB NAME-VALUE PAIRS:
 
--- a/devicesrv_plat/accessory_policy_definitions_api/inc/AccPolGenericIdDefinitions.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/devicesrv_plat/accessory_policy_definitions_api/inc/AccPolGenericIdDefinitions.h	Thu Jul 22 16:45:41 2010 +0100
@@ -23,7 +23,7 @@
 //  INCLUDES
 #include <e32std.h>
 #include <e32base.h>
-#include <accpolgidheader.h> 
+#include <AccPolGIDHeader.h> 
 
 // CONSTANTS
 
--- a/devicesrv_plat/accessory_policy_utility_api/inc/AccConGenericID.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/devicesrv_plat/accessory_policy_utility_api/inc/AccConGenericID.h	Thu Jul 22 16:45:41 2010 +0100
@@ -23,7 +23,7 @@
 #define CACCCONGENERICID_H
 
 //  INCLUDES
-#include <accpolgenericid.h>
+#include <AccPolGenericID.h>
 
 // CONSTANTS
 
--- a/devicesrv_plat/accessory_policy_utility_api/inc/AccPolNameRecord.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/devicesrv_plat/accessory_policy_utility_api/inc/AccPolNameRecord.h	Thu Jul 22 16:45:41 2010 +0100
@@ -22,7 +22,7 @@
 
 //  INCLUDES
 #include <e32base.h>
-#include <accpolcommonnamevaluepairs.h>
+#include <AccPolCommonNameValuePairs.h>
 
 // CONSTANTS
 
--- a/devicesrv_plat/accessory_policy_utility_api/inc/AccPolNameValueRecord.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/devicesrv_plat/accessory_policy_utility_api/inc/AccPolNameValueRecord.h	Thu Jul 22 16:45:41 2010 +0100
@@ -26,8 +26,8 @@
 
 //  INCLUDES
 #include <e32base.h>
-#include <accpolnamerecord.h>
-#include <accpolvaluerecord.h>
+#include <AccPolNameRecord.h>
+#include <AccPolValueRecord.h>
 
 // CONSTANTS
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devicesrv_plat/autoaudio_plugin_api/group/bld.inf	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,25 @@
+/*
+* Copyright (c) 2008 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:  Exports the files of Automotive Audio Plugin API.
+*
+*/
+
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+../inc/autoaudiopskeys.h       OS_LAYER_PLATFORM_EXPORT_PATH(autoaudiopskeys.h)
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/devicesrv_plat/autoaudio_plugin_api/inc/autoaudiopskeys.h	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,50 @@
+/*
+* 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".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  Provides P&S Key Defintions for Autoaudio ASY
+*
+*/
+
+#ifndef _AUTOAUDIO_PS_KEYS_
+#define _AUTOAUDIO_PS_KEYS_
+
+#include <e32std.h>
+
+/// header for defining P&S keys for automotive audio use cases
+/// accessory server is responsible for defining below P&S keys during start-up
+/// Automotive Server is responsible for publishing key values
+
+/// key for monitoring the connection status of RTP Streaming
+/// client : AutoAudio ASY, publisher : automotive server
+/// value : TPSAutoAudioConnectionStatus
+const TUint KPSAutoKeyRTPStreamingConnectionStatus = 0x2; 
+
+enum TPSAutoAudioConnectionStatus 
+{
+    EAudioConnectionStatusNone,	         // Notifies Accessory Disconnection
+    EAudioConnectionStatusUnidirectional, // application sound only
+    EAudioConnectionStatusBidirectional   // application sound + phone call
+};
+
+
+/// key for monitoring the connection status of USB Audio
+/// client : accessory FW, publisher : USB audio class controller
+/// value : TPSAutoAudioConnectionStatus
+// const TUint KPSAutoKeyUSBAudioConnectionStatus = 0x3; 
+
+/// key for monitoring the successful launch of USB Audio.
+/// client : USB audio class controller, publisher : USB Audio streaming implementation
+/// value : TPSAutoAudioRunningStatus
+// const TUint KPSAutoKeyUSBAudioRunningStatus = 0x4;
+
+#endif // _AUTOAUDIO_PS_KEYS_
--- a/devicesrv_plat/common_dsy_plugin_api/inc/CDSYMessageStructures.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/devicesrv_plat/common_dsy_plugin_api/inc/CDSYMessageStructures.h	Thu Jul 22 16:45:41 2010 +0100
@@ -21,8 +21,8 @@
 
 
 // INCLUDES
-#include <psvariables.h>
-#include <dossvrservices.h>
+#include <PSVariables.h>
+#include <DosSvrServices.h>
 
 
 
--- a/devicesrv_plat/configuration_file_parser_api/inc/AccConfigFileParser.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/devicesrv_plat/configuration_file_parser_api/inc/AccConfigFileParser.h	Thu Jul 22 16:45:41 2010 +0100
@@ -22,8 +22,8 @@
 
 // INCLUDES
 #include <e32base.h>
-#include <accpolgenericid.h>
-#include <accpolnamevaluerecord.h>
+#include <AccPolGenericID.h>
+#include <AccPolNameValueRecord.h>
 
 // CONSTANTS
 
--- a/devicesrv_plat/ddc_access_api/inc/ddc_access.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/devicesrv_plat/ddc_access_api/inc/ddc_access.h	Thu Jul 22 16:45:41 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
 * All rights reserved.
 * This component and the accompanying materials are made available
 * under the terms of "Eclipse Public License v1.0"
@@ -11,9 +11,57 @@
 *
 * Contributors:
 *
-* Description:  This API provides access to the display driver.
+* Description: API for DDC (E-EDID and displayID) read from DVI/HDMI display
 *
 */
+/*
+
+
+
+
+
+
+
+            ddc_access.dll
+            ----------------
+
+            SW Include Document - C++
+
+
+
+
+
+
+
+
+Module name:    ddc_access.dll
+
+Filename:       ddc_access.h
+
+Working copy:   ddc_access
+
+*  Continuus version  :
+*   %version: 2 %,
+    %date_modified: Thu May 06 12:35:27 2010 %
+
+---------------------------------------------------------------------------*/
+/**
+
+  @mainpage
+  @section intro_sec Introduction
+
+  <p>This is adaptation component which hides hw-drivers from users.
+     Because this is adaptation API, and user is also adaptation, this
+     API is not binary compatible, only source compatible.</p>
+
+  <p>API for DDC (E-EDID and displayID) read from DVI/HDMI display.</p>
+
+  <p>@see EDDCv1_2.pdf/DisplayIDv1.pdf/EEDIDrAr2.pdf (or newer) for more details</p>
+
+*/
+/** @file
+
+*///=========================================================================
 
 
 #ifndef __DDC_ACCESS_H__
@@ -22,18 +70,23 @@
 
 //- Include Files  ----------------------------------------------------------
 
-#include <e32base.h>
+#ifndef __KERNEL_MODE__
+ #include <e32base.h>
+#else
+ #include <e32cmn.h>
+#endif //__KERNEL_MODE__
 
 //- Enumerations and consts -------------------------------------------------
 
 /** API version number:
+ 2:  __KERNEL_MODE__ definitions, capability ECapabilityReadDeviceData
  1:  First version */
 const TUint KDdcAccessVersion = 1;
 
-///One DDC segment size
+///One DDC segment size. See that EDID block size is just 128 bytes, so base-EDID read might contain one EDID extension
 const TUint KSizeOfSegment = 256;
 
-/** One data block array, See that EDID block size is just 128 bytes, so one read contains one EDID extension (if exists) */
+/** One data block array */
 typedef TUint8 TDataBlock[ KSizeOfSegment ];
 
 ///DDC port enumerations
@@ -69,6 +122,7 @@
 
 
 //- Class Definitions -------------------------------------------------------
+#ifndef __KERNEL_MODE__
 
 /**
 Adaptation API for VESA's E-DDC (Enhanced Display Data Channel) raw read
@@ -94,20 +148,19 @@
 
             DisplayID is "second generation" of EDID, and it is proposed to be used.
 
-            See the method reads one TDataBlock, and it size is double of one EDID block,
-            so the first EDID read might get base-EDID and first extension, if exists.
-            With variable size DisplayID, method reads anyway whole size of TDataBlock,
-            even DisplayID section is smaller.
+            The method reads one TDataBlock, and its size is double of one EDID block,
+            so the first EDID read might get base-EDID and first extension, if such exists.
+            With variable size DisplayID, method reads the whole size of TDataBlock anyway,
+            even if DisplayID section is smaller.
 
-            @param  aDdcPort            DDC port which to be read
-            @param  aBlockNumber        Datablock which to be read (parameter maps to segment-register 0x60)
+            @param  aDdcPort            DDC port which needs to be read
+            @param  aBlockNumber        Datablock which needs to be read (parameter maps to segment-register 0x60)
             @param  aDataBlock          Method fills this with read values. Ensure that this data exists all the time, be careful if local variable.
             @param  aCompletedWhenRead  Will be completed when ready, if no errors, then aDataBlock contains read values
             @return KErrNone if success */
         virtual TInt Read(TDdcPort aDdcPort, TUint aBlockNumber, TDataBlock& aDataBlock, TRequestStatus& aCompletedWhenRead) = 0;
 
-        /** Cancels all TRequestStatuses.
-            @return KErrNone if success */
+        /** Cancels all TRequestStatuses. */
         virtual void CancelAll() = 0;
 
     protected:
@@ -117,7 +170,7 @@
         virtual void ConstructL() = 0;
     };
 
-
+#endif //__KERNEL_MODE__
 //- Global Function Prototypes ----------------------------------------------
 
 
--- a/devicesrv_plat/dos_extension_plugin_api/inc/dosdsy.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/devicesrv_plat/dos_extension_plugin_api/inc/dosdsy.h	Thu Jul 22 16:45:41 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2002-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"
@@ -21,7 +21,7 @@
 
 #include <e32base.h>
 #include <bttypes.h> // THCIConnHandle, TBDAddress
-#include "dossvrservices.h" // TBTDeviceType
+#include <DosSvrServices.h> // TBTDeviceType
 
 class CDosExtensionBase;
 
--- a/devicesrv_plat/dos_extension_plugin_api/inc/doseventmanager.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/devicesrv_plat/dos_extension_plugin_api/inc/doseventmanager.h	Thu Jul 22 16:45:41 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2002-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"
@@ -20,7 +20,7 @@
 #ifndef __DOSEVENTMANAGER_H__
 #define __DOSEVENTMANAGER_H__
 
-#include "dossvrservices.h"
+#include <DosSvrServices.h>
 #include "doseventmanagerbase.h"
 
 /**
--- a/devicesrv_plat/group/bld.inf	Wed Jun 23 22:58:50 2010 +0100
+++ b/devicesrv_plat/group/bld.inf	Thu Jul 22 16:45:41 2010 +0100
@@ -68,3 +68,6 @@
 #include "../sensor_data_compensator_plugin_api/group/bld.inf"
 #include "../ddc_access_api/group/bld.inf"
 #include "../tv_out_behaviour_api/group/bld.inf"
+#ifdef FF_AUTOMOTIVESTACK
+#include "../autoaudio_plugin_api/group/bld.inf"
+#endif
--- a/devicesrv_plat/mediator_command_responder_api/inc/MediatorCommandResponder.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/devicesrv_plat/mediator_command_responder_api/inc/MediatorCommandResponder.h	Thu Jul 22 16:45:41 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2005-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"
@@ -21,7 +21,7 @@
 // INCLUDES
 #include <e32base.h>
 
-#include <mediatorservicedefs.h>
+#include <MediatorServiceDefs.h>
 
 // FORWARD DECLARATION
 class CMediatorCommandResponderBody;
--- a/devicesrv_plat/mediator_event_consumer_api/inc/MediatorEventConsumer.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/devicesrv_plat/mediator_event_consumer_api/inc/MediatorEventConsumer.h	Thu Jul 22 16:45:41 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2005-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"
@@ -20,7 +20,7 @@
 
 // INCLUDES
 #include <e32base.h>
-#include <mediatorservicedefs.h>
+#include <MediatorServiceDefs.h>
 
 // FORWARD DECLARATIONS
 class CMediatorEventConsumerBody;
--- a/devicesrv_plat/mediator_event_provider_api/inc/MediatorEventProvider.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/devicesrv_plat/mediator_event_provider_api/inc/MediatorEventProvider.h	Thu Jul 22 16:45:41 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2005-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"
@@ -21,7 +21,7 @@
 // INCLUDES
 #include <e32base.h>
 
-#include <mediatorservicedefs.h>
+#include <MediatorServiceDefs.h>
 
 // FORWARD DECLARATION
 class CMediatorEventProviderBody;
--- a/devicesrv_plat/mediator_notification_api/inc/MediatorNotifications.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/devicesrv_plat/mediator_notification_api/inc/MediatorNotifications.h	Thu Jul 22 16:45:41 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2005-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"
@@ -21,7 +21,7 @@
 // INCLUDES
 #include <e32base.h>
 
-#include <mediatorservicedefs.h>
+#include <MediatorServiceDefs.h>
 
 // FORWARD DECLARATIONS
 class CMediatorNotificationsBody;
--- a/devicesrv_plat/remote_control_extension_api/inc/RemConCallHandlingTarget.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/devicesrv_plat/remote_control_extension_api/inc/RemConCallHandlingTarget.h	Thu Jul 22 16:45:41 2010 +0100
@@ -23,7 +23,7 @@
 #define CREMCONCALLHANDLINGTARGET_H
 
 //  INCLUDES
-#include <remconextensionapi.h>
+#include <RemConExtensionApi.h>
 #include <e32base.h>
 #include <remcon/remconinterfacebase.h>
 #include <remcon/remconinterfaceif.h>
--- a/devicesrv_plat/remote_control_extension_api/inc/RemConPocTarget.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/devicesrv_plat/remote_control_extension_api/inc/RemConPocTarget.h	Thu Jul 22 16:45:41 2010 +0100
@@ -23,7 +23,7 @@
 #define CREMCONPOCTARGET_H
 
 //  INCLUDES
-#include <remconextensionapi.h>
+#include <RemConExtensionApi.h>
 #include <e32base.h>
 #include <remcon/remconinterfacebase.h>
 #include <remcon/remconinterfaceif.h>
--- a/devicesrv_plat/remote_control_extension_api/inc/RemConSynchronizationTarget.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/devicesrv_plat/remote_control_extension_api/inc/RemConSynchronizationTarget.h	Thu Jul 22 16:45:41 2010 +0100
@@ -23,7 +23,7 @@
 #define CREMCONSYNCHRONIZATIONTARGET_H
 
 //  INCLUDES
-#include <remconextensionapi.h>
+#include <RemConExtensionApi.h>
 #include <e32base.h>
 #include <remcon/remconinterfacebase.h>
 #include <remcon/remconinterfaceif.h>
--- a/devicesrv_pub/accessory_monitoring_api/inc/AccMonitor.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/devicesrv_pub/accessory_monitoring_api/inc/AccMonitor.h	Thu Jul 22 16:45:41 2010 +0100
@@ -24,7 +24,7 @@
 
 // INCLUDES
 #include <e32base.h>
-#include <accmonitorinfo.h>
+#include <AccMonitorInfo.h>
 
 // FORWARD DECLARATIONS
 class MAccMonitorObserver;
--- a/devicesrv_pub/accessory_monitoring_api/inc/AccMonitorInfo.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/devicesrv_pub/accessory_monitoring_api/inc/AccMonitorInfo.h	Thu Jul 22 16:45:41 2010 +0100
@@ -22,7 +22,7 @@
 
 // INCLUDES
 #include <e32base.h>
-#include <accmonitorcapabilities.h>
+#include <AccMonitorCapabilities.h>
 
 // FORWARD DECLARATIONS
 class CAccMonitorInfo;
@@ -212,7 +212,7 @@
     TInt iReserved2;
     };
     
-#include <accmonitorinfo.inl>    
+#include <AccMonitorInfo.inl>    
 
 #endif // ACCMONITORINFO_H
 
--- a/devicesrv_pub/platform_path_definitions_api/inc/platform_paths.hrh	Wed Jun 23 22:58:50 2010 +0100
+++ b/devicesrv_pub/platform_path_definitions_api/inc/platform_paths.hrh	Thu Jul 22 16:45:41 2010 +0100
@@ -11,171 +11,7 @@
 *
 * Contributors:
 *
-* Description:  Predefined include paths to be used in the mmp-files for the 
-*                components in the layered model. There is one definition for
-*                each layer. The mmp-file should use the statement that is 
-*                intended for the same layer as where the mmp-file resides.
-*
-*                There is also macros to be used in the bld.inf-files to 
-*                export of Public  and Platform headers into 
-*                correct locations. 
-*
-* Usage examples:
-*     ---------------------------------------------
-*      How to include this file in bld.inf and mmp-files.
-*       Reasoning: The build system is such that at the time the 
-*                  bld.inf and mmp-files are "compiled" the available
-*                  include paths are limited. Only the /epoc32/include
-*                  can be guaranteed. Thus to get this file available
-*                  you need to make include relative to the mentioned
-*                  directory. 
-*     ---------------------------------------------
-*
-*      #include <platform_paths.hrh>
-*    
-*     *************************************************************
-*     * MMP file related macro usages to add the system include paths
-*     * 
-*     * The include paths has to be related to the layer in which your SW 
-*     * resides. Thus as an example: a component residing in middleware
-*     * layer should use the MW specific macro.
-*     * Keep this as a separate line in the mmp-files. If you need to
-*     * add your own SYSTEMINCLUDE paths, please defined them as
-*     * separate statement.
-*     *************************************************************
-*         APP_LAYER_SYSTEMINCLUDE
-*         MW_LAYER_SYSTEMINCLUDE
-*         OS_LAYER_SYSTEMINCLUDE
-**
-*     *************************************************************
-*     * Macros related to using various parts of stdapis
-*     *************************************************************
-*       To use STLLIB you need to have this in your mmp-file
-*         STLLIB_USAGE_DEFINITIONS
-*
-*       Depending on what module you are using from stdapis you need to have
-*       one or more of the following macros in your mmp-file (every one in 
-*       separate line !)
-*
-*          OS_LAYER_LIBC_SYSTEMINCLUDE
-*          OS_LAYER_GLIB_SYSTEMINCLUDE
-*          OS_LAYER_SSL_SYSTEMINCLUDE
-*          OS_LAYER_STDCPP_SYSTEMINCLUDE
-*          OS_LAYER_BOOST_SYSTEMINCLUDE
-*          OS_LAYER_DBUS_SYSTEMINCLUDE
-*          OS_LAYER_LIBUTILITY_SYSTEMINCLUDE
-*
-*     *************************************************************
-*     * Macros related to exporting Public and Platform APIs into 
-*     * correct place in the new system. 
-*     *
-*     * The macro that you should use depends on 2 things:
-*     *  - in which layer your package, which exports the APIs resides
-*     *  - what is the visibility of the API (public or platform)
-*     *************************************************************
-*      // the exporting of public APIs should use one of below macros
-*      // depending on which layer the API belogs to
-*      APP_LAYER_PUBLIC_EXPORT_PATH
-*      MW_LAYER_PUBLIC_EXPORT_PATH
-*      OS_LAYER_PUBLIC_EXPORT_PATH
-*
-*      // the exporting of platform APIs should use one of below macros
-*      // depending on which layer the API belogs to
-*      APP_LAYER_PLATFORM_EXPORT_PATH
-*      MW_LAYER_PLATFORM_EXPORT_PATH
-*      OS_LAYER_PLATFORM_EXPORT_PATH
-*
-*      The hierarchy how APIs should reside in foundation has been specified
-*      in developer documentation. See further details from documentation.
-*      Below is example case relying on the structure
-*        my_own_api/group/bld.inf
-*        my_own_api/inc/header1.h
-*        my_own_api/inc/subdir/header2.h
-*  
-*      Assuming that the API is in middleware layer and a public API. 
-*      Then the bld.inf should have the following      
-*        ../inc/header1.h  APP_LAYER_PUBLIC_EXPORT_PATH(header1.h)
-*        ../inc/subdir/header2.h  APP_LAYER_PUBLIC_EXPORT_PATH(subdir/header2.h)
-*  
-*      In the above case the locations are as follow (with current MACRO settings):
-*        header1.h in /epoc32/include/app
-*        header2.h in /epoc32/include/app/subdir
-*
-*
-*     *************************************************************
-*     * Macros related to IBY file exporting
-*     *************************************************************
-*			
-*	    Component bld.inf files need to include platform_paths.hrh, see
-*           beginning of this file on how to do this correctly. Component bld.inf 
-*           files need to use these macros in PRJ_EXPORTS to get their IBY files 
-*           to ROM image.
-*
-*     ---------------------------------------------
-*     Usage for Core image (ROM+ROFS1):
-*     ---------------------------------------------
-*	 // Layer specific specific macros. Use the macro, which is specified
-*        // for the layer, in which your component resides
-*        <somepath>/<file1.iby>  CORE_APP_LAYER_IBY_EXPORT_PATH(<file1.iby>)
-*	 <somepath>/<file2.iby>  CORE_MW_LAYER_IBY_EXPORT_PATH(<file2.iby>)
-*	 <somepath>/<file3.iby>  CORE_OS_LAYER_IBY_EXPORT_PATH(<file3.iby>)
-*
-*	 //stub iby files
-*	 <somepath>/<file4.iby>  CORE_IBY_EXPORT_PATH(stubs,<file4.iby>)
-*	 //tool iby files
-*	 <somepath>/<file5.iby>  CORE_IBY_EXPORT_PATH(tools,<file5.iby>)
-*		
-*     ---------------------------------------------
-*     Usage for Variant image, Language part (ROFS2):
-*     ---------------------------------------------
-*	 // Layer specific specific macros. Use the macro, which is specified
-*        // for the layer, in which your component resides
-*        <somepath>/<file1.iby>  LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(<file1.iby>)
-*	 <somepath>/<file2.iby>  LANGUAGE_MW_LAYER_IBY_EXPORT_PATH(<file2.iby>)
-*	 <somepath>/<file3.iby>  LANGUAGE_OS_LAYER_IBY_EXPORT_PATH(<file3.iby>)			
-*
-*     ---------------------------------------------
-*     Usage for Variant image, Language part  (ROFS2):
-*     ---------------------------------------------
-*	 // Layer specific specific macros. Use the macro, which is specified
-*        // for the layer, in which your component resides
-*        <somepath>/<file1.iby>  CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(<file1.iby>)
-*	 <somepath>/<file2.iby>  CUSTOMER_MW_LAYER_IBY_EXPORT_PATH(<file2.iby>)
-*	 <somepath>/<file3.iby>  CUSTOMER_OS_LAYER_IBY_EXPORT_PATH(<file3.iby>)			
-*
-*     ---------------------------------------------
-*     Usage for Customer Variant image, (ROFS3):
-*     ---------------------------------------------
-*	 // Layer specific specific macros. Use the macro, which is specified
-*        // for the layer, in which your component resides
-*        <somepath>/<f1.iby> CUSTOMER_VARIANT_APP_LAYER_IBY_EXPORT_PATH(<f1.iby>)
-*	 <somepath>/<f2.iby> CUSTOMER_VARIANT_MW_LAYER_IBY_EXPORT_PATH(<f2.iby>)
-*	 <somepath>/<f3.iby> CUSTOMER_VARIANT_OS_LAYER_IBY_EXPORT_PATH(<f3.iby>)			
-*	
-*
-*     *************************************************************
-*     * Macro related to Exporting localization .loc files into 
-*     * correct place in the system. 
-*     *************************************************************
-*
-*     ---------------------------------------------
-*     Usage for components:
-*     ---------------------------------------------
-*	    Component bld.inf files need to include platform_paths.hrh, see
-*           beginning of this file on how to do this correctly. Component bld.inf 
-*           files need to use these macros in PRJ_EXPORTS to get their loc files 
-*           for localization.
-*     loc files that should be localized by localisation team should be in 
-*     loc-folder in the source tree (see developer guidelines)
-*
-*	 // Layer specific specific macros. Use the macro, which is specified
-*        // for the layer, in which your component resides
-*	 <somepath>/loc/<file>.loc  APP_LAYER_LOC_EXPORT_PATH(<file>.loc)
-*	 <somepath>/loc/<file>.loc  MW_LAYER_LOC_EXPORT_PATH(<file>.loc)
-*	 <somepath>/loc/<file>.loc  OS_LAYER_LOC_EXPORT_PATH(<file>.loc)
-*
-* 
-*
+* Description:
 *
 */
 
@@ -183,403 +19,6 @@
 #ifndef PLATFORM_PATHS_HRH
 #define PLATFORM_PATHS_HRH
 
-/**
-**************************************************************************
-* General comments about the exporting of headers macros
-*  1) The definitions point currently to the old locations. (which makes some 
-*     macros to have same values. The idea is that you can already start using
-*     them now and those will be later on changed => change affects everybody.
-***************************************************************************
-*/
-
-/**
-* ---------------------------------------
-* Location, where the applications layer specific public headers should be exported
-* See usage on top of this hrh-file.
-* ---------------------------------------
-*/
-
-#if __GNUC__ >= 3
-#define APP_LAYER_SDK_EXPORT_PATH(exported) do not use intentionally generates error
-#define APP_LAYER_PUBLIC_EXPORT_PATH(exported) /epoc32/include/app/exported
-#else
-#define APP_LAYER_SDK_EXPORT_PATH(exported) do not use intentionally generates error
-#define APP_LAYER_PUBLIC_EXPORT_PATH(exported) /epoc32/include/app/##exported
-#endif
-
-/**
-* ---------------------------------------
-* Location, where the applications layer specific platform headers should be exported
-* See usage on top of this hrh-file.
-* ---------------------------------------
-*/
-#if __GNUC__ >= 3
-#define APP_LAYER_DOMAIN_EXPORT_PATH(exported) do not use intentionally generates error
-#define APP_LAYER_PLATFORM_EXPORT_PATH(exported) /epoc32/include/platform/app/exported
-#else
-#define APP_LAYER_DOMAIN_EXPORT_PATH(exported) do not use intentionally generates error
-#define APP_LAYER_PLATFORM_EXPORT_PATH(exported) /epoc32/include/platform/app/##exported
-#endif
-
-/**
-* ---------------------------------------
-* Location, where the middleware layer specific public headers should be exported
-* See usage on top of this hrh-file.
-* ---------------------------------------
-*/
-#if __GNUC__ >= 3
-#define MW_LAYER_SDK_EXPORT_PATH(exported) do not use intentionally generates error
-#define MW_LAYER_PUBLIC_EXPORT_PATH(exported) /epoc32/include/mw/exported
-#else
-#define MW_LAYER_SDK_EXPORT_PATH(exported) do not use intentionally generates error
-#define MW_LAYER_PUBLIC_EXPORT_PATH(exported) /epoc32/include/mw/##exported
-#endif
-
-/**
-* ---------------------------------------
-* Location, where the middleware layer specific platform headers should be exported
-* ---------------------------------------
-*/
-#if __GNUC__ >= 3
-#define MW_LAYER_DOMAIN_EXPORT_PATH(exported) do not use intentionally generates error
-#define MW_LAYER_PLATFORM_EXPORT_PATH(exported) /epoc32/include/platform/mw/exported
-#else
-#define MW_LAYER_DOMAIN_EXPORT_PATH(exported) do not use intentionally generates error
-#define MW_LAYER_PLATFORM_EXPORT_PATH(exported) /epoc32/include/platform/mw/##exported
-#endif
-
-/**
-* ---------------------------------------
-* Location, where the os layer specific public headers should be exported
-* ---------------------------------------
-*/
-#if __GNUC__ >= 3
-#define  OSEXT_LAYER_SDK_EXPORT_PATH(exported) do not use intentionally generates error
-#define  OS_LAYER_PUBLIC_EXPORT_PATH(exported) /epoc32/include/exported
-#else
-#define  OSEXT_LAYER_SDK_EXPORT_PATH(exported) do not use intentionally generates error
-#define  OS_LAYER_PUBLIC_EXPORT_PATH(exported) /epoc32/include/##exported
-#endif
-
-/**
-* ---------------------------------------
-* Location, where the os specific platform headers should be exported
-* ---------------------------------------
-*/
-#if __GNUC__ >= 3
-#define OSEXT_LAYER_DOMAIN_EXPORT_PATH(exported) do not use intentionally generates error
-#define OS_LAYER_PLATFORM_EXPORT_PATH(exported) /epoc32/include/platform/exported
-#else
-#define OSEXT_LAYER_DOMAIN_EXPORT_PATH(exported) do not use intentionally generates error
-#define OS_LAYER_PLATFORM_EXPORT_PATH(exported) /epoc32/include/platform/##exported
-#endif
-
-/**
-* ---------------------------------------
-* Location, where the  cenrep excel sheets should be exported
-* Deprecated: should no longer be used. Kept for compability.
-* ---------------------------------------
-*/
-#if __GNUC__ >= 3
-#define CENREP_XLS_EXPORT_PATH(exported) /epoc32/tools/cenrep/data/src/exported
-#else
-#define CENREP_XLS_EXPORT_PATH(exported) /epoc32/tools/cenrep/data/src/##exported
-#endif
-
-/**
-**************************************************************************
-*  General comments about the 3 define statements related to include paths:
-*  1) the /epoc32/include/oem is now defined there for backward compability.
-*     Once the directory is empty, the directory will be removed. However this 
-*     enables us to ensure that if you use these define statements => you do 
-*     not have to remove the statements later on, when the directory no longer 
-*     exists.
-*  2) These statements should be enough in normal cases. For certain specific 
-*     cases you migth need to add some specific directory from /epoc32/include
-*     (for instance /epoc32/include/ecom).
-*     In normal cases the include staments in code should be relative to one of 
-*     the system include paths, but in certain cases, the included files requires
-*     that the subdirectory is also part of the system include paths.
-****************************************************************************
-*/
-
-/**
-* This define statements defines the SYSTEMINCLUDE-line, which is intended to be 
-* used in the mmp-files that are part of the applications-layer. It includes all 
-* the needed directories from the /epoc32/include, that are valid ones for the 
-* application-layer components. 
-*
-* Applications layer is the last one in the list, since most likely the most of 
-* the headers come from middleware or os-layer  => thus they are first.
-*/
-#define APP_LAYER_SYSTEMINCLUDE SYSTEMINCLUDE \
- /epoc32/include \
- /epoc32/include/mw \
- /epoc32/include/platform/mw \
- /epoc32/include/platform \
- /epoc32/include/app \
- /epoc32/include/platform/app \
- /epoc32/include/platform/loc \
- /epoc32/include/platform/mw/loc \
- /epoc32/include/platform/app/loc \
- /epoc32/include/platform/loc/sc \
- /epoc32/include/platform/mw/loc/sc \
- /epoc32/include/platform/app/loc/sc
- 
-/**
-* This define statements defines the SYSTEMINCLUDE-line, which is intended to be
-* used in the mmp-files that are part of the middleware-layer. It includes all 
-* the needed directories from the /epoc32/include, that are valid ones for the 
-* middleware-layer components. 
-*/
-#define MW_LAYER_SYSTEMINCLUDE SYSTEMINCLUDE \
- /epoc32/include \
- /epoc32/include/mw \
- /epoc32/include/platform/mw \
- /epoc32/include/platform \
- /epoc32/include/platform/loc \
- /epoc32/include/platform/mw/loc \
- /epoc32/include/platform/loc/sc \
- /epoc32/include/platform/mw/loc/sc
-
-/**
-* This define statements defines the SYSTEMINCLUDE-line, which is intended to be
-* used in the mmp-files that are part of the  osextensions-layer. It includes all
-* the needed directories from the /epoc32/include, that are valid ones for the
-* os-layer components. 
-*/
-#define OS_LAYER_SYSTEMINCLUDE SYSTEMINCLUDE \
- /epoc32/include \
- /epoc32/include/platform \
- /epoc32/include/platform/loc \
- /epoc32/include/platform/loc/sc
-
-// Below statement is Deprecated and the OS_LAYER_SYSTEMINCLUDE-macro has to be
-// used.
-// Removed, use teh OS_LAYER_SYSTEMINCLUDE instead.
-// #define OSEXT_LAYER_SYSTEMINCLUDE OS_LAYER_SYSTEMINCLUDE
-
-/**
-* This define statements defines the SYSTEMINCLUDE-line, which is intended to be
-* used in the mmp-files that are part of the os-layer. This is intended 
-* to be only used by those components which need to use in their mmp-file either
-* kern_ext.mmh or nkern_ext.mmh. Reason is that those
-* 2 files already contain the /epoc32/include  as system include path.
-* 
-*/
-#define OS_LAYER_KERNEL_SYSTEMINCLUDE SYSTEMINCLUDE \
- /epoc32/include/platform
-
-// Below statement is Deprecated and the OS_LAYER_KERNEL_SYSTEMINCLUDE-macro 
-// has to be used.
-// Removed, use the OS_LAYER_KERNER_SYSTEMINCLUDE instead.
-// #define OSEXT_LAYER_KERNEL_SYSTEMINCLUDE OS_LAYER_KERNEL_SYSTEMINCLUDE
-
-/**
-****************************************************************************
-* Definitions that also define the systeminclude paths for various
-* part of stdapis. Each statement has to be in its own line in the using
-* mmp-file. There are be more than 1 statement in single mmp-file.
-****************************************************************************
-*/
-#define OS_LAYER_LIBC_SYSTEMINCLUDE SYSTEMINCLUDE  OS_LAYER_PUBLIC_EXPORT_PATH(stdapis)
-
-#define OS_LAYER_GLIB_SYSTEMINCLUDE SYSTEMINCLUDE  OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/glib-2.0) \
-                                                   OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/glib-2.0/glib) \
-                                                   OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/glib-2.0/gobject)
-
-
-#define OS_LAYER_SSL_SYSTEMINCLUDE SYSTEMINCLUDE   OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/openssl)
-                  
-#define OS_LAYER_STDCPP_SYSTEMINCLUDE SYSTEMINCLUDE  OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/stlport) 
-
-#define OS_LAYER_BOOST_SYSTEMINCLUDE SYSTEMINCLUDE   OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/boost)
-
-#define OS_LAYER_DBUS_SYSTEMINCLUDE SYSTEMINCLUDE    OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/dbus-1.0) \
-                                                     OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/dbus-1.0/dbus)
-#define OS_LAYER_LIBUTILITY_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PLATFORM_EXPORT_PATH(stdapis/utility)
-
-#define OS_LAYER_LIBOIL_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PLATFORM_EXPORT_PATH(stdapis/liboil)
-
-#define MW_LAYER_GSTREAMER_SYSTEMINCLUDE SYSTEMINCLUDE \
- /epoc32/include/platform/mw/gstreamer/10_18 \
- /epoc32/include/platform/mw/gstreamer/10_18/gst \
- /epoc32/include/platform/mw/gstreamer/10_18/gst/gstcontroller \
- /epoc32/include/stdapis/machine
-
-// You need to add STLLIB_USAGE_DEFINITIONS as a separate line into your mmp-file, if you are using
-// the stllib. 
-#define STLLIB_USAGE_DEFINITIONS OPTION CW -wchar_t on\
-        MACRO _WCHAR_T_DECLARED
-
-
-/**
-****************************************************************************
-* Definitions that also define the paths to the layer specific source directories.
-****************************************************************************
-*/
-/**
-* The below 3 macros define the paths to the layer-specific source dirs.
-* See usage on top of this hrh-file, these are used the same way as 
-* for instance the OS_LAYER_DOMAIN_EXPORT_PATH
-* Deprecated: is not allowed to be using in Symbian Foundation
-*/
-#if __GNUC__ >= 3
-#define APP_LAYER_SOURCE_PATH(rest)    do not use intentionally generates error in export
-#define MW_LAYER_SOURCE_PATH(rest)     do not use intentionally generates error in export
-#define OSEXT_LAYER_SOURCE_PATH(rest)  do not use intentionally generates error in export
-#else
-#define APP_LAYER_SOURCE_PATH(rest)    do not use intentionally generates error in export
-#define MW_LAYER_SOURCE_PATH(rest)     do not use intentionally generates error in export
-#define OSEXT_LAYER_SOURCE_PATH(rest)  do not use intentionally generates error in export
-#endif
-
-/**
-****************************************************************************
-* Definitions to export IBY files to different folders where they will be taken 
-* to ROM image
-****************************************************************************
-*/
-
-// Following three definitions are used for exporting IBY files to 
-// Core image (ROM+ROFS1). IBY files are exported according to their layer.
-#if __GNUC__ >= 3
-#define CORE_APP_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/core/app/exported
-#define CORE_MW_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/core/mw/exported
-#define CORE_OSEXT_LAYER_IBY_EXPORT_PATH(exported) do not use intentionally generates error
-#define CORE_OS_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/core/os/exported
-#define CORE_ADAPT_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/exported
-#else
-#define CORE_APP_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/core/app/##exported
-#define CORE_MW_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/core/mw/##exported
-#define CORE_OSEXT_LAYER_IBY_EXPORT_PATH(exported) do not use intentionally generates error
-#define CORE_OS_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/core/os/##exported
-#define CORE_ADAPT_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/##exported
-#endif
-
-// Following three definitions are used for exporting IBY files to Variant image, 
-// Language part (ROFS2). IBY files are exported according to their layer.
-#if __GNUC__ >= 3
-#define LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/language/app/exported
-#define LANGUAGE_MW_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/language/mw/exported
-#define LANGUAGE_OSEXT_LAYER_IBY_EXPORT_PATH(exported) do not use intentionally generates error
-#define LANGUAGE_OS_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/language/os/exported
-#else
-#define LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/language/app/##exported
-#define LANGUAGE_MW_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/language/mw/##exported
-#define LANGUAGE_OSEXT_LAYER_IBY_EXPORT_PATH(exported) do not use intentionally generates error
-#define LANGUAGE_OS_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/language/os/##exported
-#endif
-
-// Following three definitions are used for exporting IBY files to Variant image, (ROFS2). 
-// BY files are exported according to their layer.
-#if __GNUC__ >= 3
-#define CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/customer/app/exported
-#define CUSTOMER_MW_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/customer/mw/exported
-#define CUSTOMER_OSEXT_LAYER_IBY_EXPORT_PATH(exported) do not use intentionally generates error
-#define CUSTOMER_OS_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/customer/os/exported
-#else
-#define CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/customer/app/##exported
-#define CUSTOMER_MW_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/customer/mw/##exported
-#define CUSTOMER_OSEXT_LAYER_IBY_EXPORT_PATH(exported) do not use intentionally generates error
-#define CUSTOMER_OS_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/customer/os/##exported
-#endif
-
-// Following three definitions are used for exporting IBY files to 
-// Variant Customer part, (ROFS3). IBY files are exported according to 
-// their layer.
-#if __GNUC__ >= 3
-#define CUSTOMER_VARIANT_APP_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/customervariant/app/exported
-#define CUSTOMER_VARIANT_MW_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/customervariant/mw/exported
-#define CUSTOMER_VARIANT_OSEXT_LAYER_IBY_EXPORT_PATH(exported) do not use intentionally generates error
-#define CUSTOMER_VARIANT_OS_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/customervariant/os/exported
-#else
-#define CUSTOMER_VARIANT_APP_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/customervariant/app/##exported
-#define CUSTOMER_VARIANT_MW_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/customervariant/mw/##exported
-#define CUSTOMER_VARIANT_OSEXT_LAYER_IBY_EXPORT_PATH(exported) do not use intentionally generates error
-#define CUSTOMER_VARIANT_OS_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/customervariant/os/##exported
-#endif
-
-
-// Following definition is used for exporting tools and stubs IBY files to 
-// Core image.
-#if __GNUC__ >= 3
-#define CORE_IBY_EXPORT_PATH(path,exported)  /epoc32/rom/include/core/path/exported
-#else
-#define CORE_IBY_EXPORT_PATH(path,exported)  /epoc32/rom/include/core/##path##/##exported
-#endif
-
-/**
-* ---------------------------------------
-* Location, where the localization .loc file should be exported
-* ---------------------------------------
-*/
-// Location, where the os layer localization .loc file should be 
-// exported
-#if __GNUC__ >= 3
-// Deprecated: use the OS_LAYER_LOC_EXPORT_PATH instead
-#define OSEXT_LAYER_LOC_EXPORT_PATH(exported) do not use intentionally generates error
-#define OS_LAYER_LOC_EXPORT_PATH(exported) /epoc32/include/platform/loc/sc/exported
-
-// Location, where the middleware layer localization .loc file should be 
-// exported
-#define MW_LAYER_LOC_EXPORT_PATH(exported) /epoc32/include/platform/mw/loc/sc/exported
-
-// Location, where the application layer localization .loc file should be 
-// exported
-#define APP_LAYER_LOC_EXPORT_PATH(exported) /epoc32/include/platform/app/loc/sc/exported
-
-#else
-
-// Deprecated: use the OS_LAYER_LOC_EXPORT_PATH instead
-#define OSEXT_LAYER_LOC_EXPORT_PATH(exported) do not use intentionally generates error
-#define OS_LAYER_LOC_EXPORT_PATH(exported) /epoc32/include/platform/loc/sc/##exported
-
-// Location, where the middleware layer localization .loc file should be exported
-#define MW_LAYER_LOC_EXPORT_PATH(exported) /epoc32/include/platform/mw/loc/sc/##exported
-
-// Location, where the application layer localization .loc file should be exported
-#define APP_LAYER_LOC_EXPORT_PATH(exported) /epoc32/include/platform/app/loc/sc/##exported
-#endif
-
-/**
-* ---------------------------------------
-* Macros for Configuration tool migration. 
-* The below macros define the location under epoc32, where the confml 
-* (Configuration Markup Language) and crml (Central Repository Markup Language) 
-* files should be exported.
-* ---------------------------------------
-*/
-#if __GNUC__ >= 3
-#define CONFML_EXPORT_PATH(file,category)           /epoc32/rom/config/confml_data/category/file
-#define CRML_EXPORT_PATH(file,category)             /epoc32/rom/config/confml_data/category/file
-#define GCFML_EXPORT_PATH(file,category)            /epoc32/rom/config/confml_data/category/file
-#define CONFML_CONFIG_EXPORT_PATH(file,category)    /epoc32/rom/config/confml_data/category/config/file
-#else
-#define CONFML_EXPORT_PATH(file,category)           /epoc32/rom/config/confml_data/##category##/##file
-#define CRML_EXPORT_PATH(file,category)             /epoc32/rom/config/confml_data/##category##/##file
-#define GCFML_EXPORT_PATH(file,category)            /epoc32/rom/config/confml_data/##category##/##file
-#define CONFML_CONFIG_EXPORT_PATH(file,category)    /epoc32/rom/config/confml_data/##category##/config/##file
-#endif
-
-#define APP_LAYER_CONFML(exported)                  CONFML_EXPORT_PATH(exported,s60)
-#define APP_LAYER_CRML(exported)                    CRML_EXPORT_PATH(exported,s60)
-#define APP_LAYER_GCFML(exported)                   GCFML_EXPORT_PATH(exported,s60)
-#define APP_LAYER_CONFML_CONFIG(exported)           CONFML_CONFIG_EXPORT_PATH(exported,s60)
-                                                    
-#define MW_LAYER_CONFML(exported)                   CONFML_EXPORT_PATH(exported,s60)
-#define MW_LAYER_CRML(exported)                     CRML_EXPORT_PATH(exported,s60)
-#define MW_LAYER_GCFML(exported)                    GCFML_EXPORT_PATH(exported,s60)
-#define MW_LAYER_CONFML_CONFIG(exported)            CONFML_CONFIG_EXPORT_PATH(exported,s60)
-       
-// Deprecate: Use the OS_LAYER_* macros instead of OSEXT_LAYER_*                                             
-#define OSEXT_LAYER_CONFML(exported)                do not use intentionally generates error
-#define OSEXT_LAYER_CRML(exported)                  do not use intentionally generates error
-#define OSEXT_LAYER_GCFML(exported)                 do not use intentionally generates error
-#define OSEXT_LAYER_CONFML_CONFIG(exported)         do not use intentionally generates error
-#define OS_LAYER_CONFML(exported)                   CONFML_EXPORT_PATH(exported,s60)
-#define OS_LAYER_CRML(exported)                     CRML_EXPORT_PATH(exported,s60)
-#define OS_LAYER_GCFML(exported)                    GCFML_EXPORT_PATH(exported,s60)
-#define OS_LAYER_CONFML_CONFIG(exported)            CONFML_CONFIG_EXPORT_PATH(exported,s60)
+#include <variant/platform_paths.hrh>
 
 #endif  // end of PLATFORM_PATHS_HRH
--- a/dosservices/dosserver/inc/dosclishareddata.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/dosservices/dosserver/inc/dosclishareddata.h	Thu Jul 22 16:45:41 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2002-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"
@@ -23,7 +23,7 @@
 
 // INCLUDES
 #include <e32base.h>
-#include "DosSvrServices.h"
+#include <DosSvrServices.h>
 
 /**
 * Subsession that provides functionality to make a DOS side self test.
--- a/dosservices/dosserver/inc/doseventrcvservice.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/dosservices/dosserver/inc/doseventrcvservice.h	Thu Jul 22 16:45:41 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2002-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"
@@ -20,7 +20,7 @@
 #ifndef __DOSEVENTRCVSERVICE_H__
 #define __DOSEVENTRCVSERVICE_H__
 
-#include "DosSvrServices.h"
+#include <DosSvrServices.h>
 #include "dosservice.h"
 
 class CDosWaitingEvent;
--- a/dosservices/dosserver/inc/doseventsender.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/dosservices/dosserver/inc/doseventsender.h	Thu Jul 22 16:45:41 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2002-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"
@@ -22,7 +22,7 @@
 #ifndef __DOSEVENTSENDER_H__
 #define __DOSEVENTSENDER_H__
 
-#include "DosSvrServices.h"
+#include <DosSvrServices.h>
 
 /**
 * Raises DosServer events from a different thread/proccess.
--- a/dosservices/dosserver/src/dosclieventlistener.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/dosservices/dosserver/src/dosclieventlistener.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2002-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"
@@ -17,7 +17,7 @@
 */
 
 
-#include "DosSvrServices.h"
+#include <DosSvrServices.h>
 #include "dos_debug.h"
 #include <e32svr.h>
 
--- a/dosservices/dosserver/src/dosclieventnotifier.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/dosservices/dosserver/src/dosclieventnotifier.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2002-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"
@@ -17,7 +17,7 @@
 */
 
 
-#include "DosSvrServices.h"
+#include <DosSvrServices.h>
 
 //
 // ---------------------------------------------------------
--- a/dosservices/dosserver/src/dosclieventrcv.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/dosservices/dosserver/src/dosclieventrcv.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2002-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"
@@ -17,7 +17,7 @@
 */
 
 
-#include "DosSvrServices.h"
+#include <DosSvrServices.h>
 #include "dosclientserver.h"
 
 // ---------------------------------------------------------
--- a/dosservices/dosserver/src/doscliextension.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/dosservices/dosserver/src/doscliextension.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002-2008 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2002-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"
@@ -17,7 +17,7 @@
 */
 
 
-#include "DosSvrServices.h"
+#include <DosSvrServices.h>
 #include "dosclientserver.h"
 #include "dos_debug.h"
 
--- a/dosservices/dosserver/src/doscliserver.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/dosservices/dosserver/src/doscliserver.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2002-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"
@@ -18,7 +18,7 @@
 
 
 #include <e32svr.h>
-#include "DosSvrServices.h"
+#include <DosSvrServices.h>
 #include "dosclientserver.h"
 #include "dosserver.h"
 #include "dos_debug.h"
--- a/dosservices/dosserver/src/dosclisubsession.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/dosservices/dosserver/src/dosclisubsession.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2002 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2002-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"
@@ -17,7 +17,7 @@
 */
 
 
-#include "DosSvrServices.h"
+#include <DosSvrServices.h>
 #include "dosclientserver.h"
 #include "dos_debug.h"
 
--- a/dosservices/tsrc/dsytesttool/dosservercontrol/inc/ctfdoseventlistener.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/dosservices/tsrc/dsytesttool/dosservercontrol/inc/ctfdoseventlistener.h	Thu Jul 22 16:45:41 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
+* 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 "Eclipse Public License v1.0"
@@ -19,7 +19,7 @@
 #ifndef __CTFDOSEVENTLISTENER_H__
 #define __CTFDOSEVENTLISTENER_H__
 
-#include <dossvrservices.h>
+#include <DosSvrServices.h>
 
 class CTFDosServerControl;
 
--- a/dosservices/tsrc/dsytesttool/dosservercontrol/inc/ctfdosservercontrol.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/dosservices/tsrc/dsytesttool/dosservercontrol/inc/ctfdosservercontrol.h	Thu Jul 22 16:45:41 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
+* 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 "Eclipse Public License v1.0"
@@ -19,7 +19,7 @@
 #ifndef __CTFDOSSERVERCONTROL_H__
 #define __CTFDOSSERVERCONTROL_H__
 
-#include <dossvrservices.h>
+#include <DosSvrServices.h>
 #include "ctfstub.h"
 #include "mtfdosservercontrol.h"
 #include "tfdosservertypes.h"
--- a/dosservices/tsrc/dsytesttool/dosservercontrol/src/tfdoseventlistener.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/dosservices/tsrc/dsytesttool/dosservercontrol/src/tfdoseventlistener.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
+* 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 "Eclipse Public License v1.0"
@@ -16,7 +16,7 @@
 */
 
 
-#include <dossvrservices.h>
+#include <DosSvrServices.h>
 #include "dsytesttooltrace.h"
 #include "tfdosservertypes.h"
 #include "ctfdoseventlistener.h"
--- a/dosservices/tsrc/public/basic/dosservertestplugin/inc/Ctfdoscontrol.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/dosservices/tsrc/public/basic/dosservertestplugin/inc/Ctfdoscontrol.h	Thu Jul 22 16:45:41 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2004-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"
@@ -20,7 +20,7 @@
 #ifndef __CTFDOSCONTROL_H__
 #define __CTFDOSCONTROL_H__
 
-#include <dossvrservices.h>
+#include <DosSvrServices.h>
 #include "dosclishareddata.h"
 #include <ctfstub.h>
 #include "mtfdoscontrol.h"
--- a/dosservices/tsrc/public/basic/dosservertestplugin/inc/Ctfeventlistener.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/dosservices/tsrc/public/basic/dosservertestplugin/inc/Ctfeventlistener.h	Thu Jul 22 16:45:41 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2004-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"
@@ -20,7 +20,7 @@
 #ifndef __CTFEVENTLISTENER_H__
 #define __CTFEVENTLISTENER_H__
 
-#include <dossvrservices.h>
+#include <DosSvrServices.h>
 
 
 
--- a/dosservices/tsrc/public/basic/dosservertestplugin/src/Tfeventlistener.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/dosservices/tsrc/public/basic/dosservertestplugin/src/Tfeventlistener.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). 
+* 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 "Eclipse Public License v1.0"
@@ -16,7 +16,7 @@
 */
 
 
-#include <dossvrservices.h>
+#include <DosSvrServices.h>
 #include "siftrace.h"
 #include "tfdostypes.h"
 #include "ctfeventlistener.h"
--- a/group/bld.inf	Wed Jun 23 22:58:50 2010 +0100
+++ b/group/bld.inf	Thu Jul 22 16:45:41 2010 +0100
@@ -32,7 +32,9 @@
 #include "../mediator/group/bld.inf"
 #include "../psmservices/group/bld.inf"
 #include "../resourcemgmt/group/bld.inf"
+#include "../resourceinterfaces/group/bld.inf"
 #include "../sysstatemgmt/group/bld.inf"
+#include "../systemhealthmanagement/systemhealthmgr/group/bld.inf"
 
 
 PRJ_TESTMMPFILES
--- a/hwrmhaptics/hapticsclient/src/hwrmhapticsimpl.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/hwrmhaptics/hapticsclient/src/hwrmhapticsimpl.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -427,20 +427,11 @@
 
         // send command to haptics server
         if ( KErrNone == err )
-            {
-            if( aDevicePropertyType == EHWRMHapticsLicensekey )
-                {
-                err = iClient.ExecuteOperation( 
+            {            
+            err = iClient.ExecuteOperation( 
                        EHWRMHapticsSetLicenseProp, 
-                       TIpcArgs( &iReqData, aDevicePropertyValue.Length() ) );
-                }
-            else
-                {
-                err = iClient.ExecuteOperation( EHWRMHaptics,  
-                                                TIpcArgs( &iReqData ) );
-                }
-            }
-         
+                       TIpcArgs( &iReqData, aDevicePropertyValue.Length() ) );                     
+	         }
         }
     
     API_TRACE( ( _L( "CHWRMHapticsImpl::SetDeviceProperty() - const TDesC8 overloaded - return %d" ), err ) );
--- a/psmservices/psmserver/inc/engine/psmstorage.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/psmservices/psmserver/inc/engine/psmstorage.h	Thu Jul 22 16:45:41 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007 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 "Eclipse Public License v1.0"
@@ -20,7 +20,7 @@
 #define PSMSTORAGE_H
 
 #include <e32base.h>
-#include <xmlengdom.h>
+#include <xml/dom/xmlengdom.h>
 #include <psmtypes.h>
 
 /**
--- a/psmservices/psmserver/src/server/psmsrvsession.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/psmservices/psmserver/src/server/psmsrvsession.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2007 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 "Eclipse Public License v1.0"
@@ -15,7 +15,8 @@
 *
 */
 
-
+#include <e32property.h>
+#include <connect/sbdefs.h>
 #include <psmsettingsprovider.h>
 #include "psmmanager.h"
 #include "psmsrvserver.h"
@@ -167,7 +168,18 @@
                 {
                 User::Leave( KErrArgument );
                 }
-
+			
+            TInt keyVal = -1;
+            User::LeaveIfError( RProperty::Get( KUidSystemCategory, conn::KUidBackupRestoreKey, keyVal ) );
+			//if backup or restore is in progress, change in power save mode
+			//is not allowed as it will not be possible to do write
+			//operation in cenrep and it would leave the device in unstable power saving mode state
+            if( (( keyVal & conn::KBURPartTypeMask ) != conn::EBURNormal ) 
+				&& (( keyVal & conn::KBURPartTypeMask ) != conn::EBURUnset ))
+				{
+				User::Leave( KErrNotSupported );
+				}
+			
             iNotifyModeMessage->Initialize( aMessage );
             iPsmManager.NotifyPowerSaveModeChangeL( mode );
             break;
--- a/resourceinterfaces/fmtransmittercontrol/group/telephony_hwrmfmtx.mrp	Wed Jun 23 22:58:50 2010 +0100
+++ b/resourceinterfaces/fmtransmittercontrol/group/telephony_hwrmfmtx.mrp	Thu Jul 22 16:45:41 2010 +0100
@@ -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	telephony_hwrmfmtx
 source		\sf\os\devicesrv\resourceinterfaces\fmtransmittercontrol
 binary		\sf\os\devicesrv\resourceinterfaces\fmtransmittercontrol\group	all
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/resourceinterfaces/group/bld.inf	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,30 @@
+/*
+* Copyright (c) 2006-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".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  
+*
+*/
+
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+
+PRJ_MMPFILES
+
+#include "../fmtransmittercontrol/group/bld.inf"
+
+PRJ_TESTMMPFILES
+
+//  End of File  
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/resourceinterfaces/layers.sysdef.xml	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,105 @@
+<?xml version="1.0"?>
+<!DOCTYPE SystemDefinition [
+ <!ELEMENT SystemDefinition (systemModel?, build?)>
+ <!ATTLIST SystemDefinition
+  name CDATA #REQUIRED
+  schema CDATA #REQUIRED>
+ <!ELEMENT systemModel (layer+)>
+ <!ELEMENT layer (logicalset* | module*)*>
+ <!ATTLIST layer
+  name CDATA #REQUIRED
+  levels CDATA #IMPLIED
+  span CDATA #IMPLIED>
+ <!ELEMENT logicalset (logicalsubset* | module* | unit* | package* | prebuilt*)*>
+ <!ATTLIST logicalset 
+  name CDATA #REQUIRED
+  levels CDATA #IMPLIED  
+  span CDATA #IMPLIED
+  level CDATA #IMPLIED>
+ <!ELEMENT logicalsubset (module* | unit* | package* | prebuilt*)*>
+ <!ATTLIST logicalsubset name CDATA #REQUIRED>
+ <!ELEMENT module (component* | unit* | package* | prebuilt*)*>
+ <!ATTLIST module
+  name CDATA #REQUIRED
+  level CDATA #IMPLIED>
+ <!ELEMENT component (unit* | package* | prebuilt*)*>
+ <!ATTLIST component name CDATA #REQUIRED>
+ <!ELEMENT unit EMPTY>
+ <!ATTLIST unit
+  unitID ID #REQUIRED
+  name CDATA #REQUIRED
+  mrp CDATA #REQUIRED
+  filter CDATA #IMPLIED
+  bldFile CDATA #REQUIRED
+  priority CDATA #IMPLIED
+  contract CDATA #IMPLIED>
+ <!ELEMENT package EMPTY>
+ <!ATTLIST package
+  name CDATA #REQUIRED
+  mrp CDATA #REQUIRED
+  filter CDATA #IMPLIED
+  contract CDATA #IMPLIED>
+ <!ELEMENT prebuilt EMPTY>
+ <!ATTLIST prebuilt
+  name CDATA #REQUIRED
+  version CDATA #REQUIRED
+  late (Y|N) #IMPLIED
+  filter CDATA #IMPLIED
+  contract CDATA #IMPLIED>
+ <!ELEMENT build (option* | target+ | targetList+ | unitList+ | configuration+)*>
+ <!ELEMENT unitList (unitRef+)>
+ <!ATTLIST unitList
+  name ID #REQUIRED
+  description CDATA #REQUIRED>
+ <!ELEMENT unitRef EMPTY>
+ <!ATTLIST unitRef unit IDREF #REQUIRED>
+ <!ELEMENT targetList EMPTY>
+ <!ATTLIST targetList
+  name ID #REQUIRED
+  description CDATA #REQUIRED
+  target IDREFS #REQUIRED>
+ <!ELEMENT target EMPTY>
+ <!ATTLIST target
+  name ID #REQUIRED
+  abldTarget CDATA #REQUIRED
+  description CDATA #REQUIRED>
+ <!ELEMENT option EMPTY>
+ <!ATTLIST option
+  name ID #REQUIRED
+  abldOption CDATA #REQUIRED
+  description CDATA #REQUIRED
+  enable (Y | N | y | n) #REQUIRED>
+ <!ELEMENT configuration (unitListRef+ | layerRef+ | task+)*>
+ <!ATTLIST configuration
+  name ID #REQUIRED
+  description CDATA #REQUIRED
+  filter CDATA #REQUIRED>
+ <!ELEMENT task ( unitListRef* , (buildLayer | specialInstructions))>
+ <!ELEMENT unitListRef EMPTY>
+ <!ATTLIST unitListRef unitList IDREF #REQUIRED>
+ <!ELEMENT layerRef EMPTY>
+ <!ATTLIST layerRef layerName CDATA #REQUIRED>
+ <!ELEMENT buildLayer EMPTY>
+ <!ATTLIST buildLayer
+  command CDATA #REQUIRED
+  targetList IDREFS #IMPLIED
+  unitParallel (Y | N | y | n) #REQUIRED
+  targetParallel (Y | N | y | n) #IMPLIED>
+ <!ELEMENT specialInstructions EMPTY>
+ <!ATTLIST specialInstructions
+  name CDATA #REQUIRED
+  cwd CDATA #REQUIRED
+  command CDATA #REQUIRED>
+  <!ENTITY layer_real_source_path "sf/os/devicesrv/resourceinterfaces" >
+]>
+
+<SystemDefinition name="Dvscode" schema="1.4.0">
+  <systemModel>
+    <layer name="os_layer">
+		<module name="Hardware Interfaces">
+			<unit name="fmtransmittercontrol" unitID="sos.fmtransmittercontrol" bldFile="&layer_real_source_path;/fmtransmittercontrol/group" mrp="&layer_real_source_path;/fmtransmittercontrol/group/telephony_hwrmfmtx.mrp"/>
+		</module>
+    </layer>
+	
+  </systemModel>
+</SystemDefinition>
\ No newline at end of file
--- a/resourcemgmt/group/bld.inf	Wed Jun 23 22:58:50 2010 +0100
+++ b/resourcemgmt/group/bld.inf	Thu Jul 22 16:45:41 2010 +0100
@@ -26,6 +26,9 @@
 ../data/InternalHWRMFmTxPolicy.ini             z:/private/101f7a02/customerhwrmfmtxpolicy.ini
 
 
+#include "../hwresourcesmgr/group/bld.inf"
+#include "../hwresourcesmgrconfig/bld.inf"
+#include "../powerandmemorynotificationservice/group/bld.inf"
 #include "../hwrmfmtxwatcherplugin/group/bld.inf"
 
 #if  defined(WINSCW) && !defined(__HWRM_TARGET_MODIFIER_PLUGIN)
--- a/resourcemgmt/hwresourcesmgr/group/telephony_hwrm.mrp	Wed Jun 23 22:58:50 2010 +0100
+++ b/resourcemgmt/hwresourcesmgr/group/telephony_hwrm.mrp	Thu Jul 22 16:45:41 2010 +0100
@@ -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	telephony_hwrm
 
 source		\sf\os\devicesrv\resourcemgmt\hwresourcesmgr\client
--- a/resourcemgmt/hwresourcesmgr/power/inc/HWRMChargingStatusObserver.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/resourcemgmt/hwresourcesmgr/power/inc/HWRMChargingStatusObserver.h	Thu Jul 22 16:45:41 2010 +0100
@@ -23,7 +23,8 @@
 
 /* Observer class for charging status change */
 
-class CHWRMChargingStatusObs: public MPsPropertyObserver
+class CHWRMChargingStatusObs: public CBase,
+                              public MPsPropertyObserver
     {
     public:
         static CHWRMChargingStatusObs* NewL(MHWRMBatteryChargingStatusObserver* aChargingStatusCallback);
--- a/resourcemgmt/hwresourcesmgr/server/src/HWRMPowerCommonData.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/resourcemgmt/hwresourcesmgr/server/src/HWRMPowerCommonData.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -166,10 +166,13 @@
     delete iPowerService;
     iPowerService = NULL;
     
-    iMaxReportingPeriodNotifyHandler->StopListening();
-    delete iMaxReportingPeriodNotifyHandler;
-    iMaxReportingPeriodNotifyHandler =  NULL;
-
+    if (iMaxReportingPeriodNotifyHandler)
+    	{
+	    iMaxReportingPeriodNotifyHandler->StopListening();
+	    delete iMaxReportingPeriodNotifyHandler;
+	    iMaxReportingPeriodNotifyHandler =  NULL;
+    	}
+    	
     delete iRepository;  
     iRepository = NULL;
     
Binary file resourcemgmt/hwresourcesmgr/test/data/cenrep/10205043.txt has changed
--- a/resourcemgmt/hwresourcesmgr/test/group/bld.inf	Wed Jun 23 22:58:50 2010 +0100
+++ b/resourcemgmt/hwresourcesmgr/test/group/bld.inf	Thu Jul 22 16:45:41 2010 +0100
@@ -40,6 +40,7 @@
 ../data/cenrep/10200C8C.txt /epoc32/data/z/private/10202be9/10200c8c.txt
 ../data/cenrep/10200C8D.txt /epoc32/data/z/private/10202be9/10200c8d.txt
 ../data/cenrep/20008EA6.txt /epoc32/data/z/private/10202be9/20008ea6.txt
+../data/cenrep/10205043.txt /epoc32/data/z/private/10202be9/10205043.txt
 
 ../data/cenrep/10200C8B.txt /epoc32/release/winscw/udeb/z/private/10202be9/10200c8b.txt
 ../data/cenrep/10200C8C.txt /epoc32/release/winscw/udeb/z/private/10202be9/10200c8c.txt
@@ -98,5 +99,5 @@
 ../multiclient/mctest_b/mctest_b.mmp
 ../plugins/testuiplugin_f/group/hwrmtestuiplugin_f.mmp
 ../plugins/testuiplugin_b/group/hwrmtestuiplugin_b.mmp
-../multiclient/HWRMLightTestF/group/HWRMLightTestF.mmp
-../multiclient/HWRMLightTestB/group/HWRMLightTestB.mmp
+//../multiclient/HWRMLightTestF/group/HWRMLightTestF.mmp
+//../multiclient/HWRMLightTestB/group/HWRMLightTestB.mmp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/resourcemgmt/hwresourcesmgr/test/group/hwrm_rtests.pkg	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,33 @@
+;
+; 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".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description: 
+;
+
+
+;Languages
+&EN
+
+
+;Localised Vendor name
+%{"Hwrm_rtests EN"}
+
+; Vendor name
+: "Hwrm_rtests"
+
+; RTest Cases
+"\epoc32\release\armv5\urel\hwrmtests.exe"-"c:\sys\bin\hwrmtests.exe"
+"\epoc32\release\armv5\urel\mctest_f.exe"-"c:\sys\bin\mctest_f.exe"
+
+
+
--- a/resourcemgmt/hwresourcesmgr/test/group/te_hwrm.iby	Wed Jun 23 22:58:50 2010 +0100
+++ b/resourcemgmt/hwresourcesmgr/test/group/te_hwrm.iby	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -20,6 +20,10 @@
 #include <hwresourcemanager.iby>
 //for test purposes, include symbian's FmTx and UI plugin
 #include <fmtx_hwrm.iby>
+// if the feature flag for FF_FMTX is undefined, include the dll here
+#ifndef FF_FMTX
+file=ABI_DIR\DEBUG_DIR\HWRMFmTxClient.dll 	 SYSTEM_BINDIR\HWRMFmTxClient.dll
+#endif //FF_FMTX
 #include <hwrmuiplugin.iby>
 
 #include <hwrmdefaultlighttargetmodifierplugin.iby>
@@ -53,10 +57,10 @@
 #endif
 
 // cenrep registration files
-#ifdef TEXT_ONLY_ROM
+//#ifdef TEXT_ONLY_ROM
 // This is required because the cenrep files are now being included only via techview_base.iby
 data=DATAZ_\private\10202BE9\10205043.txt   private\10202be9\10205043.txt
-#endif
+//#endif
 data=DATAZ_\private\10202BE9\10200C8B.txt 	private\10202be9\10200C8B.txt
 data=DATAZ_\private\10202BE9\10200C8C.txt 	private\10202be9\10200C8C.txt
 data=DATAZ_\private\10202BE9\10200C8D.txt 	private\10202be9\10200C8D.txt
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/resourcemgmt/hwresourcesmgr/test/group/te_hwrm.pkg	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "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: 
+;
+
+
+;Languages
+&EN
+
+
+;Localised Vendor name
+%{"Te_Hwrm EN"}
+
+; Vendor name
+: "Te_Hwrm"
+
+"\sf\os\devicesrv\resourcemgmt\hwresourcesmgr\test\te_hwrm\te_hwrm.script"-"c:\devicesrv\hwrmtest\te_hwrm.script"
+"\sf\os\devicesrv\resourcemgmt\hwresourcesmgr\test\TestCapsHWRMPolicing\scripts\Cap_HWRM_API_Policing.script"-"c:\devicesrv\hwrmtest\Cap_HWRM_API_Policing.script"
--- a/resourcemgmt/hwresourcesmgr/test/multiclient/hwrmtests/hwrmtests.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/resourcemgmt/hwresourcesmgr/test/multiclient/hwrmtests/hwrmtests.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -17,7 +17,7 @@
 #include <e32cons.h>
 
 _LIT(KDirectoryPath, "C:\\logs\\");
-_LIT(KLogFile,"C:\\logs\\hwrmtests.log");
+_LIT(KLogFile,"C:\\logs\\testexecute\\hwrmtests.htm");
 _LIT8(KCrLf,"\r\n");
 _LIT8(KRTest,"RTEST:");
 
--- a/resourcemgmt/hwresourcesmgr/test/multiclient/hwrmtests/hwrmtests.mmp	Wed Jun 23 22:58:50 2010 +0100
+++ b/resourcemgmt/hwresourcesmgr/test/multiclient/hwrmtests/hwrmtests.mmp	Thu Jul 22 16:45:41 2010 +0100
@@ -13,7 +13,7 @@
 // Description:
 //
 
-TARGET          hwrmtests.exe
+TARGET          hwrmtests.exe //RTEST
 TARGETTYPE	    exe
 UID             0x102857BB 0x102857BB // 0
 VENDORID        0x70000001
--- a/resourcemgmt/hwresourcesmgr/test/multiclient/mctest_f/mctest_f.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/resourcemgmt/hwresourcesmgr/test/multiclient/mctest_f/mctest_f.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -16,7 +16,7 @@
 #include "mctest_f.h"
 #include <e32cons.h>
 
-_LIT(KLogFile,"C:\\logs\\mctest_f.log");
+_LIT(KLogFile,"C:\\logs\\testexecute\\mctest_f.htm");
 _LIT8(KCrLf,"\r\n");
 _LIT8(KRTest,"RTEST:");
 
--- a/resourcemgmt/hwresourcesmgr/test/multiclient/mctest_f/mctest_f.mmp	Wed Jun 23 22:58:50 2010 +0100
+++ b/resourcemgmt/hwresourcesmgr/test/multiclient/mctest_f/mctest_f.mmp	Thu Jul 22 16:45:41 2010 +0100
@@ -13,7 +13,7 @@
 // Description:
 //
 
-TARGET			mctest_f.exe
+TARGET			mctest_f.exe //RTEST
 TARGETTYPE		exe
 UID				0x102857BB	0x102857BB
 VENDORID        0x70000001
--- a/resourcemgmt/hwresourcesmgrconfig/telephony_hwrm-config.mrp	Wed Jun 23 22:58:50 2010 +0100
+++ b/resourcemgmt/hwresourcesmgrconfig/telephony_hwrm-config.mrp	Thu Jul 22 16:45:41 2010 +0100
@@ -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	telephony_hwrm-config
 
 source			\sf\os\devicesrv\resourcemgmt\hwresourcesmgrconfig
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/resourcemgmt/layers.sysdef.xml	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,119 @@
+<?xml version="1.0"?>
+<!DOCTYPE SystemDefinition [
+ <!ELEMENT SystemDefinition (systemModel?, build?)>
+ <!ATTLIST SystemDefinition
+  name CDATA #REQUIRED
+  schema CDATA #REQUIRED>
+ <!ELEMENT systemModel (layer+)>
+ <!ELEMENT layer (logicalset* | module*)*>
+ <!ATTLIST layer
+  name CDATA #REQUIRED
+  levels CDATA #IMPLIED
+  span CDATA #IMPLIED>
+ <!ELEMENT logicalset (logicalsubset* | module* | unit* | package* | prebuilt*)*>
+ <!ATTLIST logicalset 
+  name CDATA #REQUIRED
+  levels CDATA #IMPLIED  
+  span CDATA #IMPLIED
+  level CDATA #IMPLIED>
+ <!ELEMENT logicalsubset (module* | unit* | package* | prebuilt*)*>
+ <!ATTLIST logicalsubset name CDATA #REQUIRED>
+ <!ELEMENT module (component* | unit* | package* | prebuilt*)*>
+ <!ATTLIST module
+  name CDATA #REQUIRED
+  level CDATA #IMPLIED>
+ <!ELEMENT component (unit* | package* | prebuilt*)*>
+ <!ATTLIST component name CDATA #REQUIRED>
+ <!ELEMENT unit EMPTY>
+ <!ATTLIST unit
+  unitID ID #REQUIRED
+  name CDATA #REQUIRED
+  mrp CDATA #REQUIRED
+  filter CDATA #IMPLIED
+  bldFile CDATA #REQUIRED
+  priority CDATA #IMPLIED
+  contract CDATA #IMPLIED>
+ <!ELEMENT package EMPTY>
+ <!ATTLIST package
+  name CDATA #REQUIRED
+  mrp CDATA #REQUIRED
+  filter CDATA #IMPLIED
+  contract CDATA #IMPLIED>
+ <!ELEMENT prebuilt EMPTY>
+ <!ATTLIST prebuilt
+  name CDATA #REQUIRED
+  version CDATA #REQUIRED
+  late (Y|N) #IMPLIED
+  filter CDATA #IMPLIED
+  contract CDATA #IMPLIED>
+ <!ELEMENT build (option* | target+ | targetList+ | unitList+ | configuration+)*>
+ <!ELEMENT unitList (unitRef+)>
+ <!ATTLIST unitList
+  name ID #REQUIRED
+  description CDATA #REQUIRED>
+ <!ELEMENT unitRef EMPTY>
+ <!ATTLIST unitRef unit IDREF #REQUIRED>
+ <!ELEMENT targetList EMPTY>
+ <!ATTLIST targetList
+  name ID #REQUIRED
+  description CDATA #REQUIRED
+  target IDREFS #REQUIRED>
+ <!ELEMENT target EMPTY>
+ <!ATTLIST target
+  name ID #REQUIRED
+  abldTarget CDATA #REQUIRED
+  description CDATA #REQUIRED>
+ <!ELEMENT option EMPTY>
+ <!ATTLIST option
+  name ID #REQUIRED
+  abldOption CDATA #REQUIRED
+  description CDATA #REQUIRED
+  enable (Y | N | y | n) #REQUIRED>
+ <!ELEMENT configuration (unitListRef+ | layerRef+ | task+)*>
+ <!ATTLIST configuration
+  name ID #REQUIRED
+  description CDATA #REQUIRED
+  filter CDATA #REQUIRED>
+ <!ELEMENT task ( unitListRef* , (buildLayer | specialInstructions))>
+ <!ELEMENT unitListRef EMPTY>
+ <!ATTLIST unitListRef unitList IDREF #REQUIRED>
+ <!ELEMENT layerRef EMPTY>
+ <!ATTLIST layerRef layerName CDATA #REQUIRED>
+ <!ELEMENT buildLayer EMPTY>
+ <!ATTLIST buildLayer
+  command CDATA #REQUIRED
+  targetList IDREFS #IMPLIED
+  unitParallel (Y | N | y | n) #REQUIRED
+  targetParallel (Y | N | y | n) #IMPLIED>
+ <!ELEMENT specialInstructions EMPTY>
+ <!ATTLIST specialInstructions
+  name CDATA #REQUIRED
+  cwd CDATA #REQUIRED
+  command CDATA #REQUIRED>
+  <!ENTITY layer_real_source_path "sf/os/devicesrv/resourcemgmt" >
+]>
+
+<SystemDefinition name="Dvscode" schema="1.4.0">
+  <systemModel>
+    <layer name="os_layer">
+		<module name="DeviceSrv_NCP">
+			<unit name="hwresourcesmgr" unitID="sos.hwresourcesmgr" bldFile="&layer_real_source_path;/hwresourcesmgr/group" mrp="&layer_real_source_path;/hwresourcesmgr/group/telephony_hwrm.mrp"/>
+			<unit name="powerandmemorynotificationservice" unitID="sos.powerandmemorynotificationservice" bldFile="&layer_real_source_path;/powerandmemorynotificationservice/group" mrp="&layer_real_source_path;/powerandmemorynotificationservice/group/syslibs_pwrcli.mrp"/>
+		</module>
+    </layer>
+	
+	<layer name="clean_only_layer">
+		<module name="DeviceSrv_NCP">
+			<unit name="hwresourcesmgr" unitID="sos.hwresourcesmgr_clean" bldFile="&layer_real_source_path;/hwresourcesmgrconfig" mrp=""/>
+		</module>
+	</layer>
+	
+	<layer name="api_test_layer">
+		<module name="DeviceSrv_NCP">
+			<unit name="hwresourcesmgr" unitID="sos.hwresourcesmgr_test" bldFile="&layer_real_source_path;/hwresourcesmgr/test/group" mrp="&layer_real_source_path;/hwresourcesmgr/group/telephony_hwrm.mrp"/>
+			<unit name="powerandmemorynotificationservice" unitID="sos.powerandmemorynotificationservice_test" bldFile="&layer_real_source_path;/powerandmemorynotificationservice/group" mrp="&layer_real_source_path;/powerandmemorynotificationservice/group/syslibs_pwrcli.mrp"/>
+		</module>
+	</layer>
+
+  </systemModel>
+</SystemDefinition>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/resourcemgmt/powerandmemorynotificationservice/group/PwrCliTests.pkg	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,35 @@
+;
+; 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".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description: 
+;
+
+
+;Languages
+&EN
+
+
+;Localised Vendor name
+%{"PwrCliTests EN"}
+
+; Vendor name
+: "PwrCliTests"
+
+; RTest Cases
+"\epoc32\release\armv5\urel\t_pwrbasic.exe"-"c:\sys\bin\t_pwrbasic.exe"
+"\epoc32\release\armv5\urel\t_pwroffevents.exe"-"c:\sys\bin\t_pwroffevents.exe"
+"\epoc32\release\armv5\urel\t_shutdownserver.exe"-"c:\sys\bin\t_shutdownserver.exe"
+
+
+
+
--- a/resourcemgmt/powerandmemorynotificationservice/group/syslibs_pwrcli.mrp	Wed Jun 23 22:58:50 2010 +0100
+++ b/resourcemgmt/powerandmemorynotificationservice/group/syslibs_pwrcli.mrp	Thu Jul 22 16:45:41 2010 +0100
@@ -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	syslibs_pwrcli
 source	\sf\os\devicesrv\resourcemgmt\powerandmemorynotificationservice
 binary	\sf\os\devicesrv\resourcemgmt\powerandmemorynotificationservice\group	all
--- a/resourcemgmt/powerandmemorynotificationservice/group/t_pwrbasic.mmp	Wed Jun 23 22:58:50 2010 +0100
+++ b/resourcemgmt/powerandmemorynotificationservice/group/t_pwrbasic.mmp	Thu Jul 22 16:45:41 2010 +0100
@@ -15,7 +15,7 @@
 // 
 //
 
-TARGET          t_pwrbasic.exe
+TARGET          t_pwrbasic.exe  //RTEST
 CAPABILITY      PowerMgmt
 TARGETTYPE      EXE
 
--- a/resourcemgmt/powerandmemorynotificationservice/group/t_pwroffevents.mmp	Wed Jun 23 22:58:50 2010 +0100
+++ b/resourcemgmt/powerandmemorynotificationservice/group/t_pwroffevents.mmp	Thu Jul 22 16:45:41 2010 +0100
@@ -16,7 +16,7 @@
 // 
 //
 
-TARGET          t_pwroffevents.exe
+TARGET          t_pwroffevents.exe //RTEST
 // requires PowerMgmt because it is a unit test of the server code that will call the Power API which requires it
 // requires DiskAdmin because the test will make the server call RFs::FinaliseDrives() as part of power-off sequence
 CAPABILITY      PowerMgmt DiskAdmin 
--- a/resourcemgmt/powerandmemorynotificationservice/group/t_shutdownserver.mmp	Wed Jun 23 22:58:50 2010 +0100
+++ b/resourcemgmt/powerandmemorynotificationservice/group/t_shutdownserver.mmp	Thu Jul 22 16:45:41 2010 +0100
@@ -15,7 +15,7 @@
 // 
 //
 
-TARGET          t_shutdownserver.exe
+TARGET          t_shutdownserver.exe //RTEST
 CAPABILITY      ProtServ PowerMgmt DiskAdmin 
 TARGETTYPE      EXE
 
--- a/sensorservices/orientationssy/inc/SsyConfiguration.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/sensorservices/orientationssy/inc/SsyConfiguration.h	Thu Jul 22 16:45:41 2010 +0100
@@ -156,8 +156,7 @@
             KNoRealValue,
             0,                                  // iMinValue
             KNoRealValue,
-            ETrue,                             // iReadOnly. Default value is not readonly, it is set
-                                                // to read only when updated.
+            ETrue,                             // iReadOnly. 
             ESensrvIntProperty                  // iPropertyType
         }
     };
--- a/sensorservices/orientationssy/src/SsyChannel.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sensorservices/orientationssy/src/SsyChannel.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -303,17 +303,6 @@
             break;
         case EChannelOpening:
             {
-            // Before completing channel opening, get max data rate from actual SSY
-            if ( !iSensorProperties->DataRateUpdated() )
-                {
-                TSensrvProperty maxdatarate;
-                RSensrvChannelList affectedChannels;
-                // Get max data rate
-                iOrientationHandler->GetMaxDataRateL( maxdatarate );
-                // Set property
-                iSensorProperties->SetProperty( maxdatarate, affectedChannels );
-                }
-
             SetChannelState( EChannelOpen );
             iCallback->ChannelOpened( iChannelInfo.iChannelId, iStatus.Int(), this, this );
             break;
--- a/sensorservices/orientationssy/src/SsyProperty.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sensorservices/orientationssy/src/SsyProperty.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -297,14 +297,13 @@
 
     else if ( aProperty.GetPropertyId() == KSensrvPropIdDataRate )
         {
-        SSY_TRACE( EExtended, "ORIENTATIONSSY: Updating data rate property" );
-        // Data rate property is replaced in a different way than others.
-        // Note that this can be done only once as this property is set to read only.
-        aProperty.GetValue( intValue );
-        // Leave value to 0, update only max value because that is the only value we can provide
+        // Since Orientation is an event, the data rate property is made readonly.
+        // In ssyconfiguration.h file, the datarate property is defined as writable,
+        // it is not modified due to backward compatibility. 
+        // Now it is changed and the orientation channel property is made readonly always.
+        
         if( iChannelProperties.Count() >= index )
             {
-            iChannelProperties[index].iIntMaxValue = intValue;
             iChannelProperties[index].iReadOnly = ETrue;
             }
         
--- a/sensorservices/sensordatacompensator/tsrc/sensordatacompensatortest/group/envrecall.cmd	Wed Jun 23 22:58:50 2010 +0100
+++ b/sensorservices/sensordatacompensator/tsrc/sensordatacompensatortest/group/envrecall.cmd	Thu Jul 22 16:45:41 2010 +0100
@@ -19,15 +19,13 @@
 
 echo Cleaning up sensor data compensator stub...
 pushd ..\sensordatacompensatorpluginstub\group
-call bldmake bldfiles
-call abld test reallyclean
+call sbs REALLYCLEAN -c winscw.test -c armv5.generic.test
 popd
 @echo Cleaning up sensor data compensator... Finished
 
 @echo Cleaning sensor data compensator stub part2...
 pushd ..\..\..\..\..\..\..\mw\appsupport\coreapplicationuis\sensordatacompensatorplugin\group
-call bldmake bldfiles
-call abld reallyclean
-call abld build
+call sbs REALLYCLEAN -c winscw -c armv5.generic
+call sbs -b bld.inf -c winscw -c armv5.generic
 popd
 @echo Cleaning for sensor data compensator part2... Finished
--- a/sensorservices/sensordatacompensator/tsrc/sensordatacompensatortest/group/envsetup.cmd	Wed Jun 23 22:58:50 2010 +0100
+++ b/sensorservices/sensordatacompensator/tsrc/sensordatacompensatortest/group/envsetup.cmd	Thu Jul 22 16:45:41 2010 +0100
@@ -19,15 +19,13 @@
 
 echo Preparing for sensor data compensator stub...
 pushd ..\..\..\..\..\..\..\mw\appsupport\coreapplicationuis\sensordatacompensatorplugin\group
-call bldmake bldfiles
-call abld reallyclean
+call sbs REALLYCLEAN -c winscw -c armv5.generic
 popd
 @echo Preparing for sensor data compensator... Finished
 
 @echo Setting up sensor data compensator stub...
 pushd ..\sensordatacompensatorpluginstub\group
-call bldmake bldfiles
-call abld test reallyclean
-call abld test build
+call sbs REALLYCLEAN -c winscw.test -c armv5.generic.test
+call sbs -b bld.inf -c winscw.test -c armv5.generic.test
 popd
 @echo Setting up sensor data compensator... Finished
--- a/sensorservices/sensorserver/src/util/sensrvproperty.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sensorservices/sensorserver/src/util/sensrvproperty.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -356,9 +356,12 @@
     {
     API_TRACE( ( _L( "Sensor Util - TSensrvProperty::GetValue return %e" ), iRealValue ) );
 
-    __ASSERT_ALWAYS( ESensrvRealProperty == iPropertyType, User::Panic( KSensrvPropertyPanic, 0 ));
+    //__ASSERT_ALWAYS( ESensrvRealProperty == iPropertyType, User::Panic( KSensrvPropertyPanic, 0 ));
 
-    aValue = iRealValue;
+    if( ESensrvRealProperty == iPropertyType )
+        aValue = iRealValue;
+    else if( ESensrvIntProperty == iPropertyType )
+        aValue = iIntValue;
     }
 
 // ---------------------------------------------------------------------------
@@ -467,9 +470,13 @@
     {
     API_TRACE( ( _L( "Sensor Util - TSensrvProperty::GetMaxValue return %e" ), iRealValueMax ) );
 
-    __ASSERT_ALWAYS( ESensrvRealProperty == iPropertyType, User::Panic( KSensrvPropertyPanic, 0 ));
+    //__ASSERT_ALWAYS( ESensrvRealProperty == iPropertyType, User::Panic( KSensrvPropertyPanic, 0 ));
 
-    aMaxValue = iRealValueMax;
+    if( ESensrvRealProperty == iPropertyType )
+        aMaxValue = iRealValueMax;
+    else if ( ESensrvIntProperty == iPropertyType )
+        aMaxValue = iIntValueMax;
+    
     }
 
 // ---------------------------------------------------------------------------
@@ -480,9 +487,11 @@
     {
     API_TRACE( ( _L( "Sensor Util - TSensrvProperty::GetMinValue return %e" ), iRealValueMin ) );
 
-    __ASSERT_ALWAYS( ESensrvRealProperty == iPropertyType, User::Panic( KSensrvPropertyPanic, 0 ));
-
-    aMinValue = iRealValueMin;
+    //__ASSERT_ALWAYS( ESensrvRealProperty == iPropertyType, User::Panic( KSensrvPropertyPanic, 0 ));
+    if( ESensrvRealProperty == iPropertyType )
+        aMinValue = iRealValueMin;
+    else if( ESensrvIntProperty == iPropertyType )
+        aMinValue = iIntValueMin;
     }
 
 // ---------------------------------------------------------------------------
--- a/sensorservices/sensorserver/tsrc/sensorsrvtest/SensorTestModule/src/SensrvTestBlocks.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sensorservices/sensorserver/tsrc/sensorsrvtest/SensorTestModule/src/SensrvTestBlocks.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -233,6 +233,7 @@
         User::After(7000000);
         }
     
+    tempChannelInfoList.Reset();
     delete tempChannelFinder;
     delete tempSensorChannel1;
     delete tempSensorChannel2;
@@ -313,6 +314,7 @@
     tempChannelFinder19->FindChannelsL( tempChannelInfoList, tempChannelInfo );
     tempChannelFinder20->FindChannelsL( tempChannelInfoList, tempChannelInfo );
     
+    tempChannelInfoList.Reset();
     delete tempChannelFinder1;
     delete tempChannelFinder2;
     delete tempChannelFinder3;
@@ -398,6 +400,7 @@
             }
         }
         
+    tempChannelInfoList.Reset();    
     delete tempChannelFinder;
     delete tempSensorChannel;
     
@@ -467,7 +470,7 @@
             }
             
         }        
-        
+    tempChannelInfoList.Reset();    
         //Checking for Magnetometer
     tempChannelInfo.iChannelType = KSensrvChannelTypeIdMagnetometerXYZAxisData;
 
@@ -499,6 +502,7 @@
             }
                     
         } 
+    tempChannelInfoList.Reset();
             
     tempChannelInfo.iChannelType = KSensrvChannelTypeIdAmbientLightData;
 
@@ -530,7 +534,7 @@
             }
                             
         }
-            
+    tempChannelInfoList.Reset();        
     delete tempChannelFinder;
     delete tempSensorChannel1;
     delete tempSensorChannel2;
@@ -599,6 +603,7 @@
             }
             
         }        
+    tempChannelInfoList.Reset();
         
     //Checking for Magnetometer
     tempChannelInfo.iChannelType = KSensrvChannelTypeIdMagnetometerXYZAxisData;
@@ -631,6 +636,7 @@
             }
                     
         } 
+    tempChannelInfoList.Reset();
             
     tempChannelInfo.iChannelType = KSensrvChannelTypeIdAmbientLightData;
 
@@ -673,6 +679,7 @@
         {
         returnValue = KErrNone;
         }
+    tempChannelInfoList.Reset();    
     delete tempSensorChannel1;
     delete tempSensorChannel2;
     delete tempSensorChannel3;
@@ -729,7 +736,8 @@
         //Close the channel
         tempSensorChannel1->CloseChannel();
         
-        }        
+        }
+    tempChannelInfoList.Reset();            
 
     tempChannelInfo.iChannelType = KSensrvChannelTypeIdOrientationData;
 
@@ -763,6 +771,7 @@
             
         }
     delete tempChannelFinder;
+    tempChannelInfoList.Reset();
     //Wait for sensorserver to shutdown gracefully, it will take some time..
     User::After(30000000);    
     
@@ -799,7 +808,7 @@
             }
                 
         } 
- 
+    tempChannelInfoList.Reset();
     //Checking for Magnetometer
     tempChannelInfo.iChannelType = KSensrvChannelTypeIdMagneticNorthData;
 
@@ -830,7 +839,7 @@
             ssyProcess.Close();
             }
         } 
-
+		tempChannelInfoList.Reset();
     delete tempChannelFinder;
     
     //Wait for the sensorserver to shutdown
@@ -868,6 +877,7 @@
             ssyProcess.Close();
             }
         }         
+    tempChannelInfoList.Reset();
         
     tempChannelInfo.iChannelType = KSensrvChannelTypeIdAmbientLightData;
 
@@ -899,7 +909,7 @@
             }
                         
         }
-        
+    tempChannelInfoList.Reset();    
     delete tempChannelFinder;
     
     User::After(3000000);
--- a/sensorservices/sensorserver/tsrc/sensorsrvtest/group/envrecall.cmd	Wed Jun 23 22:58:50 2010 +0100
+++ b/sensorservices/sensorserver/tsrc/sensorsrvtest/group/envrecall.cmd	Thu Jul 22 16:45:41 2010 +0100
@@ -19,7 +19,6 @@
 
 @echo Cleaning SensorTestModuleStubs
 pushd ..\SensorTestModule\group\
-call bldmake bldfiles
-call abld test reallyclean
+call sbs REALLYCLEAN -c winscw.test -c armv5.generic.test
 popd
 @echo Cleaning SensorTestModuleStubs Finished
\ No newline at end of file
--- a/sensorservices/sensorserver/tsrc/sensorsrvtest/group/envsetup.cmd	Wed Jun 23 22:58:50 2010 +0100
+++ b/sensorservices/sensorserver/tsrc/sensorsrvtest/group/envsetup.cmd	Thu Jul 22 16:45:41 2010 +0100
@@ -19,8 +19,7 @@
 
 @echo Setting up SensorTestModuleStubs
 pushd ..\SensorTestModule\group\
-call bldmake bldfiles
-call abld test reallyclean
-call abld test build
+call sbs REALLYCLEAN -c winscw.test -c armv5.generic.test
+call sbs -b bld.inf -c winscw.test -c armv5.generic.test
 popd
 @echo Setting up SensorTestModuleStubs Finished
--- a/sensorservices/tiltcompensationssy/inc/tcsendeventtimer.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/sensorservices/tiltcompensationssy/inc/tcsendeventtimer.h	Thu Jul 22 16:45:41 2010 +0100
@@ -71,6 +71,8 @@
         
         // @see CActive
         TInt RunError( TInt aError );
+	public:
+		void Start( );
         
     private: // Private data for base channel
     
--- a/sensorservices/tiltcompensationssy/src/tcchanneltilt.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sensorservices/tiltcompensationssy/src/tcchanneltilt.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -687,8 +687,11 @@
             
             // Complete transaction
             iStatus = KRequestPending;
-            SetActive();
-            CompleteTransaction( err );
+						if( !IsActive() )
+							{
+							SetActive();	
+							}
+						CompleteTransaction( err );
             break;
             }
         case ETCTransactionIdCloseChannel:
@@ -698,7 +701,10 @@
 
             // Complete transaction
             iStatus = KRequestPending;
-            SetActive();
+						if( !IsActive() )
+							{
+							SetActive();
+							}
             CompleteTransaction( KErrNone );
             break;
             }
@@ -709,7 +715,10 @@
 
             // Complete transaction
             iStatus = KRequestPending;
-            SetActive();
+						if( !IsActive() )
+							{
+							SetActive();	
+							}
             CompleteTransaction( KErrNone );
             break;
             }
@@ -720,7 +729,10 @@
 
             // Complete transaction
             iStatus = KRequestPending;
-            SetActive();
+						if( !IsActive() )
+							{
+							SetActive();	
+							}
             CompleteTransaction( KErrNone );
             break;
             }
@@ -741,7 +753,10 @@
             
             // Complete transaction
             iStatus = KRequestPending;
-            SetActive();
+						if( !IsActive() )
+							{
+							SetActive();	
+							}
             CompleteTransaction( KErrNone );
             break;
             }
--- a/sensorservices/tiltcompensationssy/src/tcsendeventtimer.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sensorservices/tiltcompensationssy/src/tcsendeventtimer.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -74,7 +74,10 @@
 	ret = iTimer.CreateLocal();
 	User::LeaveIfError( ret );
 	iTimerToHzLevel = aSetTimerToHzLevel;
-	TTimeIntervalMicroSeconds32 interval( KOneSecondInMicroSeconds / aSetTimerToHzLevel );
+	}
+void CTCSendEventTimer::Start()
+	{
+	TTimeIntervalMicroSeconds32 interval( KOneSecondInMicroSeconds / iTimerToHzLevel );
 		
 	if( !IsActive() )
 		{
--- a/sensorservices/tiltcompensationssy/src/tcstate.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sensorservices/tiltcompensationssy/src/tcstate.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -82,11 +82,14 @@
 // CTCState::IsSet
 // ----------------------------------------------------------------------------------
 //
-TBool CTCState::IsSet( TUint32 /*aFlag*/ )
+TBool CTCState::IsSet( TUint32 aFlag )
     {
     FUNC_LOG;
     
-    return ETrue;
+    if(iFlags & aFlag)    
+        return ETrue;
+    else
+        return EFalse;
     }
 
 // ----------------------------------------------------------------------------------
--- a/sensorservices/tiltcompensationssy/src/tcstatetiltlistendata.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sensorservices/tiltcompensationssy/src/tcstatetiltlistendata.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -355,6 +355,7 @@
     if( !iTimerToSend )
         {
         iTimerToSend = CTCSendEventTimer::NewL( iHzSamplingRate, *this );
+		iTimerToSend->Start();
         }
     else if( iHasChanged )
         {
@@ -363,6 +364,10 @@
         iTimerToSend = CTCSendEventTimer::NewL( iHzSamplingRate, *this );
         iHasChanged = EFalse;
         }
+	else
+		{
+		iTimerToSend->Start();
+		}
     }
 
 // ----------------------------------------------------------------------------------
@@ -375,8 +380,7 @@
     
     if( iTimerToSend )
         {
-        delete iTimerToSend;
-        iTimerToSend = NULL;
+		iTimerToSend->Cancel();
         }
     }
 
--- a/sysstatemgmt/group/bld.inf	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/group/bld.inf	Thu Jul 22 16:45:41 2010 +0100
@@ -31,6 +31,10 @@
 #include "../ssmcustcmds/group/bld.inf"
 #include "../syslangutil/group/bld.inf"
 #include "../sysrestart/group/bld.inf"
+#include "../systemstarter/group/bld.inf"
+#include "../systemstatemgr/group/bld.inf"
+#include "../systemstatereferenceplugins/group/bld.inf"
+#include "../systemstateplugins/group/bld.inf"
 #include "../sysuiprovider/group/bld.inf"
 
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysstatemgmt/layers.sysdef.xml	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,117 @@
+<?xml version="1.0"?>
+<!DOCTYPE SystemDefinition [
+ <!ELEMENT SystemDefinition (systemModel?, build?)>
+ <!ATTLIST SystemDefinition
+  name CDATA #REQUIRED
+  schema CDATA #REQUIRED>
+ <!ELEMENT systemModel (layer+)>
+ <!ELEMENT layer (logicalset* | module*)*>
+ <!ATTLIST layer
+  name CDATA #REQUIRED
+  levels CDATA #IMPLIED
+  span CDATA #IMPLIED>
+ <!ELEMENT logicalset (logicalsubset* | module* | unit* | package* | prebuilt*)*>
+ <!ATTLIST logicalset 
+  name CDATA #REQUIRED
+  levels CDATA #IMPLIED  
+  span CDATA #IMPLIED
+  level CDATA #IMPLIED>
+ <!ELEMENT logicalsubset (module* | unit* | package* | prebuilt*)*>
+ <!ATTLIST logicalsubset name CDATA #REQUIRED>
+ <!ELEMENT module (component* | unit* | package* | prebuilt*)*>
+ <!ATTLIST module
+  name CDATA #REQUIRED
+  level CDATA #IMPLIED>
+ <!ELEMENT component (unit* | package* | prebuilt*)*>
+ <!ATTLIST component name CDATA #REQUIRED>
+ <!ELEMENT unit EMPTY>
+ <!ATTLIST unit
+  unitID ID #REQUIRED
+  name CDATA #REQUIRED
+  mrp CDATA #REQUIRED
+  filter CDATA #IMPLIED
+  bldFile CDATA #REQUIRED
+  priority CDATA #IMPLIED
+  contract CDATA #IMPLIED>
+ <!ELEMENT package EMPTY>
+ <!ATTLIST package
+  name CDATA #REQUIRED
+  mrp CDATA #REQUIRED
+  filter CDATA #IMPLIED
+  contract CDATA #IMPLIED>
+ <!ELEMENT prebuilt EMPTY>
+ <!ATTLIST prebuilt
+  name CDATA #REQUIRED
+  version CDATA #REQUIRED
+  late (Y|N) #IMPLIED
+  filter CDATA #IMPLIED
+  contract CDATA #IMPLIED>
+ <!ELEMENT build (option* | target+ | targetList+ | unitList+ | configuration+)*>
+ <!ELEMENT unitList (unitRef+)>
+ <!ATTLIST unitList
+  name ID #REQUIRED
+  description CDATA #REQUIRED>
+ <!ELEMENT unitRef EMPTY>
+ <!ATTLIST unitRef unit IDREF #REQUIRED>
+ <!ELEMENT targetList EMPTY>
+ <!ATTLIST targetList
+  name ID #REQUIRED
+  description CDATA #REQUIRED
+  target IDREFS #REQUIRED>
+ <!ELEMENT target EMPTY>
+ <!ATTLIST target
+  name ID #REQUIRED
+  abldTarget CDATA #REQUIRED
+  description CDATA #REQUIRED>
+ <!ELEMENT option EMPTY>
+ <!ATTLIST option
+  name ID #REQUIRED
+  abldOption CDATA #REQUIRED
+  description CDATA #REQUIRED
+  enable (Y | N | y | n) #REQUIRED>
+ <!ELEMENT configuration (unitListRef+ | layerRef+ | task+)*>
+ <!ATTLIST configuration
+  name ID #REQUIRED
+  description CDATA #REQUIRED
+  filter CDATA #REQUIRED>
+ <!ELEMENT task ( unitListRef* , (buildLayer | specialInstructions))>
+ <!ELEMENT unitListRef EMPTY>
+ <!ATTLIST unitListRef unitList IDREF #REQUIRED>
+ <!ELEMENT layerRef EMPTY>
+ <!ATTLIST layerRef layerName CDATA #REQUIRED>
+ <!ELEMENT buildLayer EMPTY>
+ <!ATTLIST buildLayer
+  command CDATA #REQUIRED
+  targetList IDREFS #IMPLIED
+  unitParallel (Y | N | y | n) #REQUIRED
+  targetParallel (Y | N | y | n) #IMPLIED>
+ <!ELEMENT specialInstructions EMPTY>
+ <!ATTLIST specialInstructions
+  name CDATA #REQUIRED
+  cwd CDATA #REQUIRED
+  command CDATA #REQUIRED>
+  <!ENTITY layer_real_source_path "sf/os/devicesrv/sysstatemgmt" >
+]>
+
+<SystemDefinition name="Dvscode" schema="1.4.0">
+  <systemModel>
+    <layer name="os_layer">
+		<module name="DeviceSrv_DFS">
+			<unit name="systemstatemgr" unitID="sos.systemstatemgr" bldFile="&layer_real_source_path;/systemstatemgr/group" mrp="&layer_real_source_path;/systemstatemgr/group/app-framework_ssma.mrp"/>
+			<unit name="systemstateplugins" unitID="sos.systemstateplugins" bldFile="&layer_real_source_path;/systemstateplugins/group" mrp="&layer_real_source_path;/systemstateplugins/group/app-framework_ssplugins.mrp"/>
+			<unit name="systemstatereferenceplugins" unitID="sos.systemstatereferenceplugins" bldFile="&layer_real_source_path;/systemstatereferenceplugins/group" mrp="&layer_real_source_path;/systemstatereferenceplugins/group/app-framework_ssrefplugins.mrp"/>
+			<unit name="systemstarter" unitID="sos.systemstarter" bldFile="&layer_real_source_path;/systemstarter/group" mrp="&layer_real_source_path;/systemstarter/group/app-framework_sysstart.mrp"/>
+		</module>
+    </layer>
+	
+	<layer name="api_test_layer">
+		<module name="DeviceSrv_DFS">
+			<unit name="systemstatemgr" unitID="sos.systemstatemgr_test" bldFile="&layer_real_source_path;/systemstatemgr/group" mrp="&layer_real_source_path;/systemstatemgr/group/app-framework_ssma.mrp"/>
+			<unit name="systemstateplugins" unitID="sos.systemstateplugins_test" bldFile="&layer_real_source_path;/systemstateplugins/group" mrp="&layer_real_source_path;/systemstateplugins/group/app-framework_ssplugins.mrp"/>
+			<unit name="systemstatereferenceplugins" unitID="sos.systemstatereferenceplugins_test" bldFile="&layer_real_source_path;/systemstatereferenceplugins/group" mrp="&layer_real_source_path;/systemstatereferenceplugins/group/app-framework_ssrefplugins.mrp"/>
+			<unit name="systemstarter" unitID="sos.systemstarter_test" bldFile="&layer_real_source_path;/systemstarter/group" mrp="&layer_real_source_path;/systemstarter/group/app-framework_sysstart.mrp"/>
+		</module>
+	</layer>
+
+  </systemModel>
+</SystemDefinition>
\ No newline at end of file
--- a/sysstatemgmt/ssmcmdlists/data/noncriticalcmdlist_ext.rss	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/ssmcmdlists/data/noncriticalcmdlist_ext.rss	Thu Jul 22 16:45:41 2010 +0100
@@ -68,6 +68,7 @@
     {
     commands =
         {
+        r_cmd_waitidle, //CR:ETIN-86JCY2
         // prio 0xFFB7
 #ifdef __JAVA        
         r_cmd_javacaptain,
@@ -99,58 +100,10 @@
         r_cmd_amastart,
         // prio 0x7F96
         r_cmd_multiple_wait,
-        // prio 0x7EFF
-        r_cmd_activitymonitor1,
-        // prio 0x7EFD
-        r_cmd_activitymonitor2,
-        // prio 0x7EFB
-        r_cmd_activitymonitor3,
-        // prio 0x7EF9
-        r_cmd_activitymonitor4,
-        // prio 0x7EF7
-        r_cmd_activitymonitor5,
-        // prio 0x7EF6
-        r_cmd_videocenter,
-        // prio 0x7EF5
-        r_cmd_activitymonitor6,
-        // prio 0x7EF4
-        r_cmd_iaupdatebg,
-        // prio 0x7EF3
-        r_cmd_activitymonitor7,
-        // prio 0x7EF2
-        r_cmd_activitymonitor8,
-        // prio 0x7EEE
-        r_cmd_autosync,
-        // prio 0x7EED
-        r_cmd_activitymonitor9,
-        // prio 0x7EEC
-        r_cmd_mylocationsengine,
-        //prio 0x7EEA
-        r_cmd_activitymonitor10,
-        //prio 0x7EE9
-        r_cmd_conversationserver,	//SBSA-7YZGCQ
-        //prio 0x7EE8
-        r_cmd_activitymonitor11,
-        //prio 0x7EE7
-        r_cmd_msgnotifier		//SBSA-82ZBMC
-#ifdef FF_ATT_ADDRESS_BK
-        //prio 0x7EE6
-        ,r_cmd_activitymonitor12,
-        //prio 0x7EE5
-        r_cmd_aab
-#endif
-#ifdef FF_SEARCH_SW
-       //prio 0x7EE4
-       ,r_cmd_activitymonitor13,
-       //prio 0x7EE3
-       r_cmd_searchsw 		//SLAR-832C9T
-#endif //FF_SEARCH_SW
-#ifdef FF_EMAIL_FRAMEWORK
-		//prio 0x7EE2
-       ,r_cmd_activitymonitor14,
-       //prio 0x7EE1
-       r_cmd_nmailagent 	//MBEN-83CFQE
-#endif //FF_EMAIL_FRAMEWORK
+        // prio 0x7F55
+        r_cmd_createswp_noncriticalphase,
+				// prio 0x7F54
+        r_cmd_setswp_noncriticalstart
         };
     }
 
@@ -159,236 +112,6 @@
 // ===========================================================================
 //
 
-// -----------------------------------------------------------------------------
-// r_cmd_aab
-// -----------------------------------------------------------------------------
-//
-#ifdef FF_ATT_ADDRESS_BK 
-RESOURCE SSM_START_APP_INFO r_cmd_aab
-    {
-    priority = 0x7EE5;
-    name = "z:\\sys\\bin\\AABPhonebookapp.exe";
-    retries = 2;
-    background = 1; // To background
-    monitor_info = r_mon_3_restarts_ignore;
-    }
-#endif
-
-// ---------------------------------------------------------------------------
-// r_cmd_activitymonitor1
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor1
-    {
-    priority = 0x7EFF;
-    severity = ECmdCriticalSeverity;
-    execution_behaviour = ESsmWaitForSignal;
-    dllname = "ssmactivitycmd.dll";
-    ordinal = 1; // SsmActivityCmdNewL
-    retries = 2;
-    dll_data = r_dlldata_activitymonitor_timeout;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_activitymonitor2
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor2
-    {
-    priority = 0x7EFD;
-    severity = ECmdCriticalSeverity;
-    execution_behaviour = ESsmWaitForSignal;
-    dllname = "ssmactivitycmd.dll";
-    ordinal = 1; // SsmActivityCmdNewL
-    retries = 2;
-    dll_data = r_dlldata_activitymonitor_timeout;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_activitymonitor3
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor3
-    {
-    priority = 0x7EFB;
-    severity = ECmdCriticalSeverity;
-    execution_behaviour = ESsmWaitForSignal;
-    dllname = "ssmactivitycmd.dll";
-    ordinal = 1; // SsmActivityCmdNewL
-    retries = 2;
-    dll_data = r_dlldata_activitymonitor_timeout;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_activitymonitor4
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor4
-    {
-    priority = 0x7EF9;
-    severity = ECmdCriticalSeverity;
-    execution_behaviour = ESsmWaitForSignal;
-    dllname = "ssmactivitycmd.dll";
-    ordinal = 1; // SsmActivityCmdNewL
-    retries = 2;
-    dll_data = r_dlldata_activitymonitor_timeout;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_activitymonitor5
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor5
-    {
-    priority = 0x7EF7;
-    severity = ECmdCriticalSeverity;
-    execution_behaviour = ESsmWaitForSignal;
-    dllname = "ssmactivitycmd.dll";
-    ordinal = 1; // SsmActivityCmdNewL
-    retries = 2;
-    dll_data = r_dlldata_activitymonitor_timeout;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_activitymonitor6
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor6
-    {
-    priority = 0x7EF5;
-    severity = ECmdCriticalSeverity;
-    execution_behaviour = ESsmWaitForSignal;
-    dllname = "ssmactivitycmd.dll";
-    ordinal = 1; // SsmActivityCmdNewL
-    retries = 2;
-    dll_data = r_dlldata_activitymonitor_timeout;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_activitymonitor7
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor7
-    {
-    priority = 0x7EF3;
-    severity = ECmdCriticalSeverity;
-    execution_behaviour = ESsmWaitForSignal;
-    dllname = "ssmactivitycmd.dll";
-    ordinal = 1; // SsmActivityCmdNewL
-    retries = 2;
-    dll_data = r_dlldata_activitymonitor_timeout;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_activitymonitor8
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor8
-    {
-    priority = 0x7EEF;
-    severity = ECmdCriticalSeverity;
-    execution_behaviour = ESsmWaitForSignal;
-    dllname = "ssmactivitycmd.dll";
-    ordinal = 1; // SsmActivityCmdNewL
-    retries = 2;
-    dll_data = r_dlldata_activitymonitor_timeout;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_activitymonitor9
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor9
-    {
-    priority = 0x7EED;
-    severity = ECmdCriticalSeverity;
-    execution_behaviour = ESsmWaitForSignal;
-    dllname = "ssmactivitycmd.dll";
-    ordinal = 1; // SsmActivityCmdNewL
-    retries = 2;
-    dll_data = r_dlldata_activitymonitor_timeout;
-    }
-
-// ---------------------------------------------------------------------------
-// r_cmd_activitymonitor10
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor10
-    {
-    priority = 0x7EEA;
-    severity = ECmdCriticalSeverity;
-    execution_behaviour = ESsmWaitForSignal;
-    dllname = "ssmactivitycmd.dll";
-    ordinal = 1; // SsmActivityCmdNewL
-    retries = 2;
-    dll_data = r_dlldata_activitymonitor_timeout;
-    }
-	
-// ---------------------------------------------------------------------------
-// r_cmd_activitymonitor11
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor11
-    {
-    priority = 0x7EE8;
-    severity = ECmdCriticalSeverity;
-    execution_behaviour = ESsmWaitForSignal;
-    dllname = "ssmactivitycmd.dll";
-    ordinal = 1; // SsmActivityCmdNewL
-    retries = 2;
-    dll_data = r_dlldata_activitymonitor_timeout;
-    }
-	
-// ---------------------------------------------------------------------------
-// r_cmd_activitymonitor12
-// ---------------------------------------------------------------------------
-//
-#ifdef FF_ATT_ADDRESS_BK
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor12
-    {
-    priority = 0x7EE6;
-    severity = ECmdCriticalSeverity;
-    execution_behaviour = ESsmWaitForSignal;
-    dllname = "ssmactivitycmd.dll";
-    ordinal = 1; // SsmActivityCmdNewL
-    retries = 2;
-    dll_data = r_dlldata_activitymonitor_timeout;
-    }
-#endif
-
-// ---------------------------------------------------------------------------
-// r_cmd_activitymonitor13
-// ---------------------------------------------------------------------------
-//
-#ifdef FF_SEARCH_SW
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor13
-    {
-    priority = 0x7EE4;
-    severity = ECmdCriticalSeverity;
-    execution_behaviour = ESsmWaitForSignal;
-    dllname = "ssmactivitycmd.dll";
-    ordinal = 1; // SsmActivityCmdNewL
-    retries = 2;
-    dll_data = r_dlldata_activitymonitor_timeout;
-    }
-#endif //FF_SEARCH_SW
-
-// ---------------------------------------------------------------------------
-// r_cmd_activitymonitor14
-// ---------------------------------------------------------------------------
-//
-#ifdef FF_EMAIL_FRAMEWORK
-RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor14
-    {
-    priority = 0x7EE2;
-    severity = ECmdCriticalSeverity;
-    execution_behaviour = ESsmWaitForSignal;
-    dllname = "ssmactivitycmd.dll";
-    ordinal = 1; // SsmActivityCmdNewL
-    retries = 2;
-    dll_data = r_dlldata_activitymonitor_timeout;
-    }
-#endif //FF_EMAIL_FRAMEWORK
 // ---------------------------------------------------------------------------
 // r_cmd_amastart
 // ---------------------------------------------------------------------------
@@ -398,18 +121,6 @@
     priority = 0x7F97;
     conditional_information = r_cond_ps_normalboot;
     }
-
-// ---------------------------------------------------------------------------
-// r_cmd_autosync
-// ---------------------------------------------------------------------------
-//	
-RESOURCE SSM_START_PROCESS_INFO r_cmd_autosync
-    {
-    priority = 0x7EEE;
-    execution_behaviour = ESsmFireAndForget;
-    retries = 3;
-    name = "cctautosync.exe";
-    }
 	
 // ---------------------------------------------------------------------------
 // r_cmd_aosrv
@@ -451,16 +162,30 @@
     monitor_info = r_mon_3_restarts_ignore;
     }
 
+
 // ---------------------------------------------------------------------------
-// r_cmd_conversationserver
+// r_cmd_createswp_noncriticalphase
 // ---------------------------------------------------------------------------
 //
-RESOURCE SSM_START_PROCESS_INFO r_cmd_conversationserver
+RESOURCE SSM_CREATE_SYSTEM_WIDE_PROPERTY r_cmd_createswp_noncriticalphase
     {
-    priority = 0x7EE9;
-    name = "csserver.exe";
-    execution_behaviour = ESsmWaitForSignal;
+    priority = 0x7F55;
+    severity = ECmdCriticalSeverity;
+    key = SWP_UID_SSM_NONCRITICAL_PHASE;
+    filename = "ssmnoncriticalswppolicy.dll";
     }
+
+// ---------------------------------------------------------------------------
+// r_cmd_setswp_noncriticalstart
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_REQUEST_SYSTEM_WIDE_PROPERTY r_cmd_setswp_noncriticalstart
+    {
+    priority = 0x7F54;
+    key = SWP_UID_SSM_NONCRITICAL_PHASE;
+    value = ESsmNonCriticalPhaseStarted;
+    }
+
 // ---------------------------------------------------------------------------
 // r_cmd_dcmo
 // ---------------------------------------------------------------------------
@@ -542,19 +267,6 @@
     }
 
 // ---------------------------------------------------------------------------
-// r_cmd_iaupdatebg
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_iaupdatebg
-    {
-    priority = 0x7EF4;
-    name = "iaupdatebg.exe";
-    execution_behaviour = ESsmWaitForSignal;
-    timeout = 10000;
-    conditional_information = r_cond_feat_iadv2;
-    }
-
-// ---------------------------------------------------------------------------
 // r_cmd_ippushman
 // ---------------------------------------------------------------------------
 //
@@ -592,17 +304,6 @@
     monitor_info = r_mon_3_restarts_ignore;
     }
 
-// ---------------------------------------------------------------------------
-// r_cmd_msgnotifier
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_APP_INFO r_cmd_msgnotifier
-    {
-    priority = 0x7EE7;
-    name = "msgnotifier.exe";
-    execution_behaviour = ESsmFireAndForget;
-    retries = 3;
-    }	
 
 // ---------------------------------------------------------------------------
 // r_cmd_psstate
@@ -655,52 +356,6 @@
     execution_behaviour = ESsmWaitForSignal;
     timeout = 10000;
     }
-	
-//---------------------------------------------------------------------------
-// r_cmd_searchsw
-// ---------------------------------------------------------------------------
-//
-#ifdef	FF_SEARCH_SW
-RESOURCE SSM_START_PROCESS_INFO r_cmd_searchsw
-	{
-	priority = 0x7EE3;
-	name = "z:\\sys\\bin\\cpixwatchdog.exe";
-	execution_behaviour = ESsmFireAndForget;
-	conditional_information = r_cond_feat_searchsw;
-	}
-
-// ---------------------------------------------------------------------------
-// r_cond_feat_searchsw
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_FEATURE_VALUE r_cond_feat_searchsw
-    {
-    feature_id = KFeatureIdFfSearchSw;
-    }
-#endif //FF_SEARCH_SW
-
-// ---------------------------------------------------------------------------
-// r_cmd_nmailagent
-// ---------------------------------------------------------------------------
-//
-#ifdef FF_EMAIL_FRAMEWORK
-RESOURCE SSM_START_PROCESS_INFO r_cmd_nmailagent
-    {
-    priority = 0x7EE1;
-    name = "z:\\sys\\bin\\nmailagent.exe";
-    execution_behaviour = ESsmFireAndForget;
-    conditional_information = r_cond_feat_emailfw;
-    }
-    
-// ---------------------------------------------------------------------------
-// r_cond_feat_emailfw
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_FEATURE_VALUE r_cond_feat_emailfw
-    {
-    feature_id = KFeatureIdFfEmailFramework;
-    }
-#endif //FF_EMAIL_FRAMEWORK
 
 // ---------------------------------------------------------------------------
 // r_cmd_supllistener
@@ -726,18 +381,6 @@
      }
 
 // ---------------------------------------------------------------------------
-// r_cmd_videocenter
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_videocenter
-    {
-    priority = 0x7EF6;
-    name = "cseschedulerserver.exe";
-    execution_behaviour = ESsmWaitForSignal;
-    timeout = 10000;
-    }
-
-// ---------------------------------------------------------------------------
 // r_cmd_waitcleanbootinfo
 // ---------------------------------------------------------------------------
 //
@@ -753,6 +396,33 @@
     }
 
 // ---------------------------------------------------------------------------
+// r_cmd_waitidle
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_waitidle
+    {
+    priority = 0xFFC5;
+    severity = ECmdCriticalSeverity;
+    dllname = "ssmsystemcmds.dll";
+    ordinal = 5; // WaitPsKeyExact
+    dll_data = r_dlldata_waitidle;
+    unload_on_finish = ENeverUnload;
+    retries = 2;
+    execution_behaviour = ESsmWaitForSignal;
+    }
+
+// ---------------------------------------------------------------------------
+// r_dlldata_waitidle
+// ---------------------------------------------------------------------------
+//
+RESOURCE CMD_PARAM_WAIT_PS r_dlldata_waitidle
+    {
+    category = 0x101F8766;  // KPSUidStartup
+    key = 0x00000043;       // KPSIdlePhase1Ok
+    target = 101;           // EIdlePhase1Ok
+    }
+
+// ---------------------------------------------------------------------------
 // r_cmd_watcher
 // ---------------------------------------------------------------------------
 //
@@ -783,15 +453,6 @@
 //
 
 // ---------------------------------------------------------------------------
-// r_dlldata_activitymonitor_timeout
-// ---------------------------------------------------------------------------
-//
-RESOURCE CMD_PARAM_TIMEOUT r_dlldata_activitymonitor_timeout
-    {
-    timeout = 2;
-    }
-
-// ---------------------------------------------------------------------------
 // r_dlldata_waitcleanbootinfo
 // ---------------------------------------------------------------------------
 //
@@ -803,17 +464,6 @@
     target2 = 102;          // EStartupCleanBoot
     }
 
-// ---------------------------------------------------------------------------
-// r_cmd_mylocationsengine
-// ---------------------------------------------------------------------------
-//	
-RESOURCE SSM_START_PROCESS_INFO r_cmd_mylocationsengine
-    {
-    priority = 0x7EEC;
-    name = "z:\\sys\\bin\\mylocationsengine.exe";
-    execution_behaviour = ESsmFireAndForget;
-    }
-
 // ===========================================================================
 // Conditional blocks in alphabetical order
 // ===========================================================================
@@ -849,15 +499,6 @@
     }
 
 // ---------------------------------------------------------------------------
-// r_cond_feat_iadv2
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_CND_FEATURE_VALUE r_cond_feat_iadv2
-    {
-    feature_id = KFeatureIdFfIaupdatePhase2;
-    }
-
-// ---------------------------------------------------------------------------
 // r_cond_feat_ippush
 // ---------------------------------------------------------------------------
 //
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysstatemgmt/ssmcmdlists/data/noncriticalswpcmdlists.rss	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,462 @@
+/*
+* 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".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* Command lists for the noncritical phase SWP:
+*   - non-critical phase Started
+*
+*/
+
+#include <ssm/conditionresourcetypes.rh>
+#include <ssm/ssmcmd.rh>
+
+#include "ssmswp.hrh"
+#include "ssmdlldatadefs.rh"
+
+// Identify command list type
+UID2 KUidSsmCommandListResourceFile
+
+// ---------------------------------------------------------------------------
+// r_entry_point
+// This must be the first resource
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_COMMAND_LIST_ROOT r_entry_point
+    {
+    command_list_mapping = r_map;
+    }
+
+// ---------------------------------------------------------------------------
+// r_map
+// Mapping of command list ids to resource ids.
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_COMMAND_LIST_MAPPING r_map
+    {
+    mappings =
+        {
+        SSM_COMMANDLISTID_TO_RESOURCEID
+            {
+            command_list_id = ESsmNonCriticalPhaseStarted;
+            resource_id = r_noncriticalphase_commands;
+            }
+        };
+    }
+
+// ===========================================================================
+// Command lists in alphabetical order
+// ===========================================================================
+//
+
+// ---------------------------------------------------------------------------
+// r_started_commands
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_COMMAND_LIST r_noncriticalphase_commands
+    {
+    commands =
+        {
+        // prio 0xFFF1
+        r_cmd_publishswp,
+        //prio 0x7EF9
+        r_cmd_activitymonitor_hsrunningapp,
+        //prio 0x7EF8
+        r_cmd_hsrunningappmonitor, //JJAA-85CDEA	
+       // prio 0x7EF7
+        r_cmd_activitymonitor1,
+        // prio 0x7EF6
+        r_cmd_videocenter,
+        // prio 0x7EF5
+        r_cmd_activitymonitor2,
+        // prio 0x7EF4
+        r_cmd_iaupdatebg,
+        // prio 0x7EF2
+        r_cmd_activitymonitor3,
+        // prio 0x7EEE
+        r_cmd_autosync,
+        // prio 0x7EED
+        r_cmd_activitymonitor4,
+        // prio 0x7EEC
+        r_cmd_mylocationsengine,
+        //prio 0x7EEA
+        r_cmd_activitymonitor5,
+        //prio 0x7EE9
+        r_cmd_conversationserver,	//SBSA-7YZGCQ
+        //prio 0x7EE8
+        r_cmd_activitymonitor6,
+        //prio 0x7EE7
+        r_cmd_msgnotifier		//SBSA-82ZBMC
+#ifdef FF_ATT_ADDRESS_BK
+        //prio 0x7EE6
+        ,r_cmd_activitymonitor7,
+        //prio 0x7EE5
+        r_cmd_aab
+#endif
+#ifdef FF_SEARCH_SW
+       //prio 0x7EE4
+       ,r_cmd_activitymonitor8,
+       //prio 0x7EE3
+       r_cmd_searchsw 		//SLAR-832C9T
+#endif //FF_SEARCH_SW
+#ifdef FF_EMAIL_FRAMEWORK
+		//prio 0x7EE2
+       ,r_cmd_activitymonitor9,
+       //prio 0x7EE1
+       r_cmd_nmailagent 	//MBEN-83CFQE
+#endif //FF_EMAIL_FRAMEWORK
+    	 };
+    }
+
+// ===========================================================================
+// Command items in alphabetical order
+// ===========================================================================
+//
+
+// -----------------------------------------------------------------------------
+// r_cmd_aab
+// -----------------------------------------------------------------------------
+//
+#ifdef FF_ATT_ADDRESS_BK 
+RESOURCE SSM_START_APP_INFO r_cmd_aab
+    {
+    priority = 0x7EE5;
+    name = "z:\\sys\\bin\\AABPhonebookapp.exe";
+    retries = 2;
+    background = 1; // To background
+    monitor_info = r_mon_3_restarts_ignore;
+    }
+#endif
+
+// ---------------------------------------------------------------------------
+// r_cmd_activitymonitor_hsrunningapp
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor_hsrunningapp
+    {
+    priority = 0x7EF9;
+    severity = ECmdCriticalSeverity;
+    execution_behaviour = ESsmWaitForSignal;
+    dllname = "ssmactivitycmd.dll";
+    ordinal = 1; // SsmActivityCmdNewL
+    retries = 2;
+    dll_data = r_dlldata_activitymonitor_timeout;
+    }
+
+// ---------------------------------------------------------------------------
+// r_cmd_activitymonitor1
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor1
+    {
+    priority = 0x7EF7;
+    severity = ECmdCriticalSeverity;
+    execution_behaviour = ESsmWaitForSignal;
+    dllname = "ssmactivitycmd.dll";
+    ordinal = 1; // SsmActivityCmdNewL
+    retries = 2;
+    dll_data = r_dlldata_activitymonitor_timeout;
+    }
+
+// ---------------------------------------------------------------------------
+// r_cmd_activitymonitor2
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor2
+    {
+    priority = 0x7EF5;
+    severity = ECmdCriticalSeverity;
+    execution_behaviour = ESsmWaitForSignal;
+    dllname = "ssmactivitycmd.dll";
+    ordinal = 1; // SsmActivityCmdNewL
+    retries = 2;
+    dll_data = r_dlldata_activitymonitor_timeout;
+    }
+
+// ---------------------------------------------------------------------------
+// r_cmd_activitymonitor3
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor3
+    {
+    priority = 0x7EF2;
+    severity = ECmdCriticalSeverity;
+    execution_behaviour = ESsmWaitForSignal;
+    dllname = "ssmactivitycmd.dll";
+    ordinal = 1; // SsmActivityCmdNewL
+    retries = 2;
+    dll_data = r_dlldata_activitymonitor_timeout;
+    }
+
+// ---------------------------------------------------------------------------
+// r_cmd_activitymonitor4
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor4
+    {
+    priority = 0x7EED;
+    severity = ECmdCriticalSeverity;
+    execution_behaviour = ESsmWaitForSignal;
+    dllname = "ssmactivitycmd.dll";
+    ordinal = 1; // SsmActivityCmdNewL
+    retries = 2;
+    dll_data = r_dlldata_activitymonitor_timeout;
+    }
+
+// ---------------------------------------------------------------------------
+// r_cmd_activitymonitor5
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor5
+    {
+    priority = 0x7EEA;
+    severity = ECmdCriticalSeverity;
+    execution_behaviour = ESsmWaitForSignal;
+    dllname = "ssmactivitycmd.dll";
+    ordinal = 1; // SsmActivityCmdNewL
+    retries = 2;
+    dll_data = r_dlldata_activitymonitor_timeout;
+    }
+	
+// ---------------------------------------------------------------------------
+// r_cmd_activitymonitor6
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor6
+    {
+    priority = 0x7EE8;
+    severity = ECmdCriticalSeverity;
+    execution_behaviour = ESsmWaitForSignal;
+    dllname = "ssmactivitycmd.dll";
+    ordinal = 1; // SsmActivityCmdNewL
+    retries = 2;
+    dll_data = r_dlldata_activitymonitor_timeout;
+    }
+	
+// ---------------------------------------------------------------------------
+// r_cmd_activitymonitor7
+// ---------------------------------------------------------------------------
+//
+#ifdef FF_ATT_ADDRESS_BK
+RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor7
+    {
+    priority = 0x7EE6;
+    severity = ECmdCriticalSeverity;
+    execution_behaviour = ESsmWaitForSignal;
+    dllname = "ssmactivitycmd.dll";
+    ordinal = 1; // SsmActivityCmdNewL
+    retries = 2;
+    dll_data = r_dlldata_activitymonitor_timeout;
+    }
+#endif
+
+// ---------------------------------------------------------------------------
+// r_cmd_activitymonitor8
+// ---------------------------------------------------------------------------
+//
+#ifdef FF_SEARCH_SW
+RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor8
+    {
+    priority = 0x7EE4;
+    severity = ECmdCriticalSeverity;
+    execution_behaviour = ESsmWaitForSignal;
+    dllname = "ssmactivitycmd.dll";
+    ordinal = 1; // SsmActivityCmdNewL
+    retries = 2;
+    dll_data = r_dlldata_activitymonitor_timeout;
+    }
+#endif //FF_SEARCH_SW
+
+// ---------------------------------------------------------------------------
+// r_cmd_activitymonitor9
+// ---------------------------------------------------------------------------
+//
+#ifdef FF_EMAIL_FRAMEWORK
+RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_activitymonitor9
+    {
+    priority = 0x7EE2;
+    severity = ECmdCriticalSeverity;
+    execution_behaviour = ESsmWaitForSignal;
+    dllname = "ssmactivitycmd.dll";
+    ordinal = 1; // SsmActivityCmdNewL
+    retries = 2;
+    dll_data = r_dlldata_activitymonitor_timeout;
+    }
+#endif //FF_EMAIL_FRAMEWORK
+
+
+// ---------------------------------------------------------------------------
+// r_cmd_autosync
+// ---------------------------------------------------------------------------
+//	
+RESOURCE SSM_START_PROCESS_INFO r_cmd_autosync
+    {
+    priority = 0x7EEE;
+    execution_behaviour = ESsmFireAndForget;
+    retries = 3;
+    name = "cctautosync.exe";
+    }
+
+// ---------------------------------------------------------------------------
+// r_cmd_conversationserver
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_START_PROCESS_INFO r_cmd_conversationserver
+    {
+    priority = 0x7EE9;
+    name = "csserver.exe";
+    execution_behaviour = ESsmWaitForSignal;
+    }
+
+// ---------------------------------------------------------------------------
+// r_cmd_hsrunningappmonitor
+// ---------------------------------------------------------------------------
+//	
+RESOURCE SSM_START_PROCESS_INFO r_cmd_hsrunningappmonitor
+    {
+    priority = 0x7EF8;
+    name = "z:\\sys\\bin\\hsrunningappmonitor.exe";
+    execution_behaviour = ESsmWaitForSignal;
+    monitor_info = r_mon_3_restarts_ignore;
+    }
+
+
+// ---------------------------------------------------------------------------
+// r_cmd_msgnotifier
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_START_APP_INFO r_cmd_msgnotifier
+    {
+    priority = 0x7EE7;
+    name = "msgnotifier.exe";
+    execution_behaviour = ESsmFireAndForget;
+    retries = 3;
+    }	
+
+// ---------------------------------------------------------------------------
+// r_cmd_mylocationsengine
+// ---------------------------------------------------------------------------
+//	
+RESOURCE SSM_START_PROCESS_INFO r_cmd_mylocationsengine
+    {
+    priority = 0x7EEC;
+    name = "z:\\sys\\bin\\mylocationsengine.exe";
+    execution_behaviour = ESsmFireAndForget;
+    }
+
+// ---------------------------------------------------------------------------
+// r_cmd_publishswp
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_PUBLISH_SYSTEM_WIDE_PROPERTY r_cmd_publishswp
+    {
+    priority = 0xFFF1;
+    severity = ECmdCriticalSeverity;
+    }
+
+// ---------------------------------------------------------------------------
+// r_cmd_nmailagent
+// ---------------------------------------------------------------------------
+//
+#ifdef FF_EMAIL_FRAMEWORK
+RESOURCE SSM_START_PROCESS_INFO r_cmd_nmailagent
+    {
+    priority = 0x7EE1;
+    name = "z:\\sys\\bin\\nmailagent.exe";
+    execution_behaviour = ESsmFireAndForget;
+    conditional_information = r_cond_feat_emailfw;
+    }
+    
+// ---------------------------------------------------------------------------
+// r_cond_feat_emailfw
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_CND_FEATURE_VALUE r_cond_feat_emailfw
+    {
+    feature_id = KFeatureIdFfEmailFramework;
+    }
+#endif //FF_EMAIL_FRAMEWORK
+
+// ---------------------------------------------------------------------------
+// r_cmd_iaupdatebg
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_START_PROCESS_INFO r_cmd_iaupdatebg
+    {
+    priority = 0x7EF4;
+    name = "iaupdatebg.exe";
+    execution_behaviour = ESsmWaitForSignal;
+    timeout = 10000;
+    conditional_information = r_cond_feat_iadv2;
+    }
+	
+//---------------------------------------------------------------------------
+// r_cmd_searchsw
+// ---------------------------------------------------------------------------
+//
+#ifdef	FF_SEARCH_SW
+RESOURCE SSM_START_PROCESS_INFO r_cmd_searchsw
+	{
+	priority = 0x7EE3;
+	name = "z:\\sys\\bin\\cpixwatchdog.exe";
+	execution_behaviour = ESsmFireAndForget;
+	conditional_information = r_cond_feat_searchsw;
+	}
+
+// ---------------------------------------------------------------------------
+// r_cond_feat_searchsw
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_CND_FEATURE_VALUE r_cond_feat_searchsw
+    {
+    feature_id = KFeatureIdFfSearchSw;
+    }
+#endif //FF_SEARCH_SW
+
+// ---------------------------------------------------------------------------
+// r_cmd_videocenter
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_START_PROCESS_INFO r_cmd_videocenter
+    {
+    priority = 0x7EF6;
+    name = "cseschedulerserver.exe";
+    execution_behaviour = ESsmWaitForSignal;
+    timeout = 10000;
+    }
+
+// ===========================================================================
+// DLL data items in alphabetical order
+// ===========================================================================
+//
+
+// ---------------------------------------------------------------------------
+// r_dlldata_activitymonitor_timeout
+// ---------------------------------------------------------------------------
+//
+RESOURCE CMD_PARAM_TIMEOUT r_dlldata_activitymonitor_timeout
+    {
+    timeout = 2;
+    }
+
+// ---------------------------------------------------------------------------
+// r_cond_feat_iadv2
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_CND_FEATURE_VALUE r_cond_feat_iadv2
+    {
+    feature_id = KFeatureIdFfIaupdatePhase2;
+    }    
+
+// monitoring.rss contains resource definitions, so it may not be included
+// before entry point.
+#include "monitoring.rss"
--- a/sysstatemgmt/ssmcmdlists/data/securitycheckcmdlist.rss	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/ssmcmdlists/data/securitycheckcmdlist.rss	Thu Jul 22 16:45:41 2010 +0100
@@ -69,7 +69,7 @@
         r_cmd_publishstate, // prio 0xFFF1
         r_cmd_psstate,      // prio 0xFFF0
         // prio 0xFFE7
-        r_cmd_hbthemeserver,
+        r_cmd_idle,
 	    // prio 0xFFE6
         r_cmd_multiwaitforever1,
         // prio 0xFFE3
@@ -77,10 +77,6 @@
         r_cmd_phone,
         r_cmd_clockserver,
         r_cmd_multiwaitforever2,
-        // prio 0xFFDF
-        r_cmd_idle,
-        // prio 0xFFDE
-        r_cmd_multiwaitforever3,
         // prio 0xFFD8
         r_cmd_createswp_simstatus,
         // prio 0xFFD7
@@ -116,18 +112,7 @@
     key = 0x00000031; // KPSSimStatus
     filename = "ssm.swp.policy.simstatus.dll";
     }
-	
-// ---------------------------------------------------------------------------
-// r_cmd_hbthemeserver
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_START_PROCESS_INFO r_cmd_hbthemeserver
-    {
-    priority = 0xFFE7;
-    name = "z:\\sys\\bin\\hbthemeserver.exe";
-    execution_behaviour = ESsmDeferredWaitForSignal;
-    monitor_info = r_mon_100_restarts_reset;
-    }
+
     
 // ---------------------------------------------------------------------------
 // r_cmd_idle
@@ -135,7 +120,7 @@
 //
 RESOURCE SSM_START_APP_INFO r_cmd_idle
     {
-    priority = 0xFFDF;
+    priority = 0xFFE7;
     name = "z:\\sys\\bin\\hsapplication.exe";
     execution_behaviour = ESsmDeferredWaitForSignal;
     monitor_info = r_mon_max_restarts_ignore;
@@ -159,14 +144,6 @@
     priority = 0xFFE2;
     }
 
-// ---------------------------------------------------------------------------
-// r_cmd_multiwaitforever3
-// ---------------------------------------------------------------------------
-//
-RESOURCE SSM_MULTIPLE_WAIT r_cmd_multiwaitforever3
-    {
-    priority = 0xFFDE;
-    }
 
 // ---------------------------------------------------------------------------
 // r_cmd_phone
--- a/sysstatemgmt/ssmcmdlists/data/shutdowncmdlists.rss	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/ssmcmdlists/data/shutdowncmdlists.rss	Thu Jul 22 16:45:41 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* 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 "Eclipse Public License v1.0"
@@ -214,6 +214,7 @@
     {
     priority = 0xFFF1;
     severity = ECmdCriticalSeverity;
+    direction = 1;  // ETraverseChildrenFirst, Transition children first for graceful shutdown.
     retries = 2;
     }
 
--- a/sysstatemgmt/ssmcmdlists/data/uiservicescmdlist.rss	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/ssmcmdlists/data/uiservicescmdlist.rss	Thu Jul 22 16:45:41 2010 +0100
@@ -93,6 +93,8 @@
         r_cmd_loaduilanguage,	// Observes changes in UI Language setting
         // prio 0xFF79
         r_cmd_aknstart,         // UI Framework
+        r_cmd_hbthemeserver,	//CR:KJLN-7WBEGU
+        r_cmd_devicedialog,     //CR:KJLN-7WBEGU   
         // prio 0xFF77
         r_cmd_apparc_init,      // Init application framework
         // prio 0xFF75
@@ -142,6 +144,29 @@
     }
 
 // ---------------------------------------------------------------------------
+// r_cmd_devicedialog
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_START_PROCESS_INFO r_cmd_devicedialog
+    {
+    priority = 0xFF79;
+    severity = ECmdCriticalSeverity;             
+    name = "Z:\\sys\\bin\\hbdevicedialogappserver.exe";    
+    execution_behaviour = ESsmWaitForSignal;
+    }    
+
+// ---------------------------------------------------------------------------
+// r_cmd_hbthemeserver
+// ---------------------------------------------------------------------------
+//
+RESOURCE SSM_START_PROCESS_INFO r_cmd_hbthemeserver
+    {
+    priority = 0xFF79;
+    name = "z:\\sys\\bin\\hbthemeserver.exe";
+    execution_behaviour = ESsmWaitForSignal;
+    }
+
+// ---------------------------------------------------------------------------
 // r_cmd_initclkeys
 // ---------------------------------------------------------------------------
 //
--- a/sysstatemgmt/ssmcmdlists/group/ssmcmdlists.mmp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/ssmcmdlists/group/ssmcmdlists.mmp	Thu Jul 22 16:45:41 2010 +0100
@@ -107,6 +107,10 @@
 TARGETPATH      /private/2000d75b/swpui              // Private directory of sysstatemgr.exe
 END
 
+START RESOURCE  noncriticalswpcmdlists.rss            // noncritical phase SWP
+TARGETPATH      /private/2000d75b/swpnoncritical      // Private directory of sysstatemgr.exe
+END
+
 USERINCLUDE     ../inc
 USERINCLUDE     ../../inc
 
--- a/sysstatemgmt/ssmcmdlists/rom/ssmcmdlists.iby	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/ssmcmdlists/rom/ssmcmdlists.iby	Thu Jul 22 16:45:41 2010 +0100
@@ -36,5 +36,6 @@
 data=DATAZ_\private\2000D75B\shutdown\shutdowncmdlists.rsc              \private\2000D75B\shutdown\shutdowncmdlists.rsc
 data=DATAZ_\private\2000D75B\rfstatusswpcmdlist\rfswpcmdlists.rsc       \private\2000D75B\rfstatusswpcmdlist\rfswpcmdlists.rsc
 data=DATAZ_\private\2000D75B\swpui\uiswpcmdlists.rsc                    \private\2000D75B\swpui\uiswpcmdlists.rsc
+data=DATAZ_\private\2000D75B\swpnoncritical\noncriticalswpcmdlists.rsc  \private\2000D75B\swpnoncritical\noncriticalswpcmdlists.rsc
 
 #endif // SSMCMDLISTS_IBY
--- a/sysstatemgmt/ssmpolicyplugins/group/bld.inf	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/ssmpolicyplugins/group/bld.inf	Thu Jul 22 16:45:41 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* 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 "Eclipse Public License v1.0"
@@ -37,3 +37,5 @@
 #include "../ssmfailpolicy/group/bld.inf"
 #include "../ssmshutdownpolicy/group/bld.inf"
 #include "../ssmuiswppolicy/group/bld.inf"
+#include "../ssmnoncriticalswppolicy/group/bld.inf"
+
--- a/sysstatemgmt/ssmpolicyplugins/inc/ssmswp.hrh	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/ssmpolicyplugins/inc/ssmswp.hrh	Thu Jul 22 16:45:41 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* 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 "Eclipse Public License v1.0"
@@ -32,6 +32,19 @@
     };
 
 /**
+* Startup NonCritical phase SWP.
+*
+* These identifiers are also used as command list ids to find the correct
+* command list among all command lists in the system.
+*/
+#define SWP_UID_SSM_NONCRITICAL_PHASE 0x2002EA5B
+
+enum TSwpStartupNonCriticalPhase
+    {
+    ESsmNonCriticalPhaseStarted = 0xb1
+    };
+    
+/**
 * System-wide property for RF status.
 *
 * These identifiers are also used as command list ids to find the correct
--- a/sysstatemgmt/ssmpolicyplugins/rom/ssmpolicyplugins.iby	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/ssmpolicyplugins/rom/ssmpolicyplugins.iby	Thu Jul 22 16:45:41 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* 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 "Eclipse Public License v1.0"
@@ -26,5 +26,6 @@
 file=ABI_DIR\BUILD_DIR\ssm.state.policy.0002.dll SHARED_LIB_DIR\ssm.state.policy.0002.dll
 file=ABI_DIR\BUILD_DIR\ssm.state.policy.0003.dll SHARED_LIB_DIR\ssm.state.policy.0003.dll
 file=ABI_DIR\BUILD_DIR\ssmuiswppolicy.dll        SHARED_LIB_DIR\ssmuiswppolicy.dll
+file=ABI_DIR\BUILD_DIR\ssmnoncriticalswppolicy.dll      SHARED_LIB_DIR\ssmnoncriticalswppolicy.dll
 
 #endif // SSMPOLICYPLUGINS_IBY
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysstatemgmt/ssmpolicyplugins/ssmnoncriticalswppolicy/bwins/ssmnoncriticalswppolicyu.def	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,3 @@
+EXPORTS
+	?NewL@CSsmNonCriticalSwpPolicy@@SAPAVMSsmSwpPolicy@@XZ @ 1 NONAME ; class MSsmSwpPolicy * CSsmNonCriticalSwpPolicy::NewL(void)
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysstatemgmt/ssmpolicyplugins/ssmnoncriticalswppolicy/eabi/ssmnoncriticalswppolicyu.def	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,3 @@
+EXPORTS
+	_ZN24CSsmNonCriticalSwpPolicy4NewLEv @ 1 NONAME
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysstatemgmt/ssmpolicyplugins/ssmnoncriticalswppolicy/group/bld.inf	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,28 @@
+/*
+* 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".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+* Build information file for the ssmnoncriticalswppolicy project.
+*
+*/
+
+#include <platform_paths.hrh>
+
+PRJ_PLATFORMS
+DEFAULT
+
+PRJ_EXPORTS
+
+PRJ_MMPFILES
+ssmnoncriticalswppolicy.mmp
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysstatemgmt/ssmpolicyplugins/ssmnoncriticalswppolicy/group/ssmnoncriticalswppolicy.mmp	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,55 @@
+/*
+* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "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:
+* Project definition file for the ssmnoncriticalswppolicy project.
+*
+*/
+
+#include <platform_paths.hrh>
+
+TARGET          ssmnoncriticalswppolicy.dll
+TARGETTYPE      dll
+UID             0x2000D765 0x2002EA59
+
+CAPABILITY      PowerMgmt ReadDeviceData WriteDeviceData ProtServ DiskAdmin SwEvent
+VENDORID        VID_DEFAULT
+
+SOURCEPATH      ../src
+SOURCE          ssmnoncriticalswppolicy.cpp
+
+USERINCLUDE     ../inc
+USERINCLUDE     ../../inc
+USERINCLUDE     ../../ssmpolicybase/inc
+USERINCLUDE     ../../ssmswppolicybase/inc
+USERINCLUDE     ../../../inc
+
+OS_LAYER_SYSTEMINCLUDE
+
+LIBRARY         euser.lib
+LIBRARY         ssmcmd.lib
+LIBRARY         ssmcmn.lib
+LIBRARY         ssmpolicybase.lib
+LIBRARY         ssmswppolicybase.lib
+
+// >>> uncomment to enable function-level tracing
+// MACRO        __SSM_FUNC_TRACE__
+// <<< uncomment to enable function-level tracing
+
+// >>> uncomment to direct trace output to file
+// MACRO        __SSM_TRACE_INTO_FILE__
+// LIBRARY      flogger.lib
+// <<< uncomment to direct trace output to file
+
+SMPSAFE
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysstatemgmt/ssmpolicyplugins/ssmnoncriticalswppolicy/inc/ssmnoncriticalswppolicy.h	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,65 @@
+/*
+* 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".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Declaration of CSsmNonCriticalSwpPolicy class.
+*
+*/
+
+#ifndef SSMNONCRITICALSWPPOLICY_H
+#define SSMNONCRITICALSWPPOLICY_H
+
+#include "ssmswppolicybase.h"
+
+/**
+ *  Policy plugin for noncritical phase SWP.
+ */
+NONSHARABLE_CLASS( CSsmNonCriticalSwpPolicy ) : public CSsmSwpPolicyBase
+    {
+
+public:
+
+    /**
+     * Constructs a CSsmNonCriticalSwpPolicy object.
+     *
+     * @return The new object
+     */
+    IMPORT_C static MSsmSwpPolicy* NewL();
+
+    /**
+     * Destructor.
+     */
+    virtual ~CSsmNonCriticalSwpPolicy();
+
+private: // From CSsmPolicyBase
+
+    void GetCommandListPathL( TDes& aCmdListPath );
+
+private: // From MSsmSwpPolicy
+
+	/**
+	 * @see MSsmSwpPolicy.
+     */
+    TResponse TransitionAllowed(
+	    const TSsmSwp& aSwp,
+	    const RMessagePtr2& aMessage );
+
+private:
+
+    /**
+    * First phase constructor.
+    */
+    CSsmNonCriticalSwpPolicy();
+
+    };
+
+#endif // SSMNONCRITICALSWPPOLICY_H
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysstatemgmt/ssmpolicyplugins/ssmnoncriticalswppolicy/src/ssmnoncriticalswppolicy.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,117 @@
+/*
+* 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".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Implementation of CSsmNonCriticalSwpPolicy class.
+*
+*/
+
+#include <ssm/ssmswp.h>
+#include <ssm/ssmstate.h>
+
+#include "ssmnoncriticalswppolicy.h"
+#include "ssmswp.hrh"
+#include "ssmmapperutility.h"
+#include "trace.h"
+#include "ssmsubstateext.hrh"
+
+/**
+* SWP noncritical phase policy resource file path format : "\private\<SID of SSM>\swpnoncritical\"
+*/
+_LIT( KCommandListPath, "Z:\\private\\2000D75B\\swpnoncritical\\" );
+
+// ======== MEMBER FUNCTIONS ========
+
+// ---------------------------------------------------------------------------
+// CSsmNonCriticalSwpPolicy::NewL
+// ---------------------------------------------------------------------------
+//
+EXPORT_C MSsmSwpPolicy* CSsmNonCriticalSwpPolicy::NewL()
+    {
+	FUNC_LOG;
+
+    CSsmNonCriticalSwpPolicy* self = new( ELeave ) CSsmNonCriticalSwpPolicy;
+    CleanupStack::PushL( self );
+    self->BaseConstructL();
+    CleanupStack::Pop( self );
+    return self;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSsmNonCriticalSwpPolicy::~CSsmNonCriticalSwpPolicy
+// ---------------------------------------------------------------------------
+//
+CSsmNonCriticalSwpPolicy::~CSsmNonCriticalSwpPolicy()
+    {
+    FUNC_LOG;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSsmNonCriticalSwpPolicy::GetCommandListPathL
+// ---------------------------------------------------------------------------
+//
+void CSsmNonCriticalSwpPolicy::GetCommandListPathL( TDes& aCmdListPath )
+    {
+    FUNC_LOG;
+
+    aCmdListPath = KCommandListPath;
+    iUtil->GetCommandListPath( aCmdListPath );
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSsmNonCriticalSwpPolicy::TransitionAllowed
+// ---------------------------------------------------------------------------
+//
+MSsmSwpPolicy::TResponse CSsmNonCriticalSwpPolicy::TransitionAllowed(
+    const TSsmSwp& aSwp,
+    const RMessagePtr2& aMessage )
+    {
+    FUNC_LOG;
+    INFO_2( "Requested SWP transition: 0x%08x::0x%08x", aSwp.Key(), aSwp.Value() );
+
+    TResponse response = ENotAllowed;
+    if ( iUtil->CheckCaps( aMessage ) )
+        {
+	    TSsmState currentState;
+		const TInt errorCode = GetCurrentState(currentState);
+		ERROR( errorCode, "Failed to get current state" );
+
+		// this SwP transition would be allowed only once per boot(during the system startup).
+        if ((KErrNone == errorCode) && (ESsmStartup == currentState.MainState()) && (aSwp.Value() == ESsmNonCriticalPhaseStarted))
+            {
+            response = EAllowed;
+            }
+        else
+            {
+            INFO( "Requested SWP transition not allowed" );
+            }
+        }
+    else
+        {
+        INFO( "Capability Check Failed" );
+        }
+
+    return response;
+    }
+
+
+// ---------------------------------------------------------------------------
+// CSsmNonCriticalSwpPolicy::CSsmNonCriticalSwpPolicy
+// ---------------------------------------------------------------------------
+//
+CSsmNonCriticalSwpPolicy::CSsmNonCriticalSwpPolicy()
+    {
+    FUNC_LOG;
+    }
--- a/sysstatemgmt/ssmutilityplugins/rom/ssmutilityplugins.iby	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/ssmutilityplugins/rom/ssmutilityplugins.iby	Thu Jul 22 16:45:41 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* 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 "Eclipse Public License v1.0"
@@ -22,4 +22,8 @@
 file=ABI_DIR\BUILD_DIR\ssmpowersup.dll          SHARED_LIB_DIR\ssmpowersup.dll
 file=ABI_DIR\BUILD_DIR\ssmlocaleobserversup.dll SHARED_LIB_DIR\ssmlocaleobserversup.dll
 
+//backup resgistration file for localedata
+data=DATAZ_\private\2000d766\backup_registration.xml    private\2000d766\backup_registration.xml
+
+
 #endif // SSMUTILITYPLUGINS_IBY
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysstatemgmt/ssmutilityplugins/ssmlocaleobserversup/data/backup_registration.xml	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,8 @@
+<?xml version="1.0" standalone="yes"?>
+<backup_registration version="1.0">
+  <passive_backup>
+    <!-- backup all files under localedata directory-->
+    <include_directory name = "localedata" />
+  </passive_backup>
+  <restore requires_reboot = "no"/>
+</backup_registration>
--- a/sysstatemgmt/ssmutilityplugins/ssmlocaleobserversup/group/bld.inf	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/ssmutilityplugins/ssmlocaleobserversup/group/bld.inf	Thu Jul 22 16:45:41 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* 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 "Eclipse Public License v1.0"
@@ -25,3 +25,10 @@
 
 PRJ_MMPFILES
 ssmlocaleobserversup
+
+PRJ_EXPORTS
+// Backup registration file
+../data/backup_registration.xml  /epoc32/data/z/private/2000d766/backup_registration.xml
+../data/backup_registration.xml  /epoc32/release/winscw/udeb/z/private/2000d766/backup_registration.xml
+../data/backup_registration.xml  /epoc32/release/winscw/urel/z/private/2000d766/backup_registration.xml
+
--- a/sysstatemgmt/systemstarter/documentation/9.4/SysStart.mdl	Wed Jun 23 22:58:50 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,3341 +0,0 @@
-
-(object Petal
-    version    	43
-    _written   	"Rose 6.1.9113.5"
-    charSet    	0)
-
-(object Design "Logical View"
-    is_unit    	TRUE
-    is_loaded  	TRUE
-    quid       	"426E373D03AC"
-    defaults   	(object defaults
-	rightMargin 	0.250000
-	leftMargin 	0.250000
-	topMargin  	0.250000
-	bottomMargin 	0.500000
-	pageOverlap 	0.250000
-	clipIconLabels 	TRUE
-	autoResize 	TRUE
-	snapToGrid 	TRUE
-	gridX      	15
-	gridY      	15
-	defaultFont 	(object Font
-	    size       	10
-	    face       	"Arial"
-	    bold       	FALSE
-	    italics    	FALSE
-	    underline  	FALSE
-	    strike     	FALSE
-	    color      	0
-	    default_color 	TRUE)
-	showMessageNum 	3
-	showClassOfObject 	TRUE
-	notation   	"Unified")
-    root_usecase_package 	(object Class_Category "Use Case View"
-	quid       	"426E373D03AE"
-	exportControl 	"Public"
-	global     	TRUE
-	logical_models 	(list unit_reference_list)
-	logical_presentations 	(list unit_reference_list
-	    (object UseCaseDiagram "Main"
-		quid       	"426E373D03BC"
-		title      	"Main"
-		zoom       	100
-		max_height 	28350
-		max_width  	21600
-		origin_x   	0
-		origin_y   	0
-		items      	(list diagram_item_list))))
-    root_category 	(object Class_Category "Logical View"
-	quid       	"426E373D03AD"
-	exportControl 	"Public"
-	global     	TRUE
-	subsystem  	"Component View"
-	quidu      	"426E373D03AF"
-	logical_models 	(list unit_reference_list
-	    (object Class "CActive"
-		quid       	"426E386F0244")
-	    (object Class "CSystemStarter"
-		quid       	"426E3BE90031"
-		documentation 	"System starter main controller class"
-		superclasses 	(list inheritance_relationship_list
-		    (object Inheritance_Relationship
-			quid       	"426E3BE90032"
-			supplier   	"Logical View::CActive"
-			quidu      	"426E386F0244"))
-		realized_interfaces 	(list realize_rel_list
-		    (object Realize_Relationship
-			quid       	"426E47E702A2"
-			supplier   	"Logical View::MStartup"
-			quidu      	"426E46A1033E"))
-		operations 	(list Operations
-		    (object Operation "Start"
-			quid       	"426E3BF1037D"
-			result     	" "
-			concurrency 	"Sequential"
-			opExportControl 	"Public"
-			uid        	0)
-		    (object Operation "RunL"
-			quid       	"426E405F011B"
-			concurrency 	"Sequential"
-			opExportControl 	"Private"
-			uid        	0)
-		    (object Operation "RunError"
-			quid       	"426E406502F0"
-			result     	"TInt"
-			concurrency 	"Sequential"
-			opExportControl 	"Private"
-			uid        	0)
-		    (object Operation "DoCancel"
-			quid       	"426E406A01A8"
-			concurrency 	"Sequential"
-			opExportControl 	"Private"
-			uid        	0)
-		    (object Operation "RequestNotify"
-			quid       	"426E407D0283"
-			concurrency 	"Sequential"
-			opExportControl 	"Private"
-			uid        	0)))
-	    (object Class "CSystemStartup"
-		quid       	"426E41EA011B"
-		documentation 	"CSystemStartup"
-		superclasses 	(list inheritance_relationship_list
-		    (object Inheritance_Relationship
-			quid       	"428A242802B0"
-			supplier   	"Logical View::MStartup"
-			quidu      	"426E46A1033E"))
-		realized_interfaces 	(list realize_rel_list
-		    (object Realize_Relationship
-			quid       	"426E483900FC"
-			supplier   	"Logical View::MStartup"
-			quidu      	"426E46A1033E"))
-		operations 	(list Operations
-		    (object Operation "GetNextStateL"
-			quid       	"426E43F5030F"
-			result     	"MStartupStateInfo*"
-			concurrency 	"Sequential"
-			opExportControl 	"Public"
-			uid        	0))
-		class_attributes 	(list class_attribute_list
-		    (object ClassAttribute "iFs"
-			quid       	"426E44A30189"
-			type       	"RFs")
-		    (object ClassAttribute "iReader"
-			quid       	"426E44A80244"
-			type       	"CResourceFileReader*")))
-	    (object Class "CResourceFileReader"
-		quid       	"426E4B66008F"
-		documentation 	"CResourceFileReader"
-		operations 	(list Operations
-		    (object Operation "GetStateInfoL"
-			quid       	"428A1D9C0389"
-			result     	"MStartupStateInfo*"
-			concurrency 	"Sequential"
-			opExportControl 	"Public"
-			uid        	0)
-		    (object Operation "LsSession"
-			quid       	"428A1DB502CD"
-			result     	"RApaLsSession&"
-			concurrency 	"Sequential"
-			opExportControl 	"Private"
-			uid        	0)
-		    (object Operation "Connect"
-			quid       	"428A1DEE0212"
-			result     	"void"
-			concurrency 	"Sequential"
-			opExportControl 	"Private"
-			uid        	0)
-		    (object Operation "FindFirstStateEntryL"
-			quid       	"428A1E0B003D"
-			result     	"void"
-			concurrency 	"Sequential"
-			opExportControl 	"Private"
-			uid        	0)
-		    (object Operation "ReadStateInformationL"
-			quid       	"428A1E22036A"
-			result     	"CSystemStartupStateInfo*"
-			concurrency 	"Sequential"
-			opExportControl 	"Private"
-			uid        	0)
-		    (object Operation "ReadCommandListL"
-			quid       	"428A1E3F00D9"
-			parameters 	(list Parameters
-			    (object Parameter "aCommandListId"
-				type       	"TUint32"))
-			result     	"CommandListType"
-			concurrency 	"Sequential"
-			opExportControl 	"Private"
-			uid        	0)
-		    (object Operation "ReadDllInfoL"
-			quid       	"428A1EAE0128"
-			parameters 	(list Parameters
-			    (object Parameter "aReader"
-				type       	"TResourceReader&"))
-			result     	"MStartupCommand*"
-			concurrency 	"Sequential"
-			opExportControl 	"Private"
-			uid        	0))
-		class_attributes 	(list class_attribute_list
-		    (object ClassAttribute "iFs"
-			quid       	"428A1EEE0147"
-			type       	"RFs")
-		    (object ClassAttribute "iResourceFile"
-			quid       	"428A1F02003D"
-			type       	"RResourceFile")
-		    (object ClassAttribute "iState"
-			quid       	"428A1F220260"
-			type       	"TInt32")
-		    (object ClassAttribute "iAppUiSession"
-			quid       	"428A1F340250"
-			type       	"REikAppUiSession")
-		    (object ClassAttribute "iLsSession"
-			quid       	"428A1F4C02FC"
-			type       	"RApaLsSession")))
-	    (object Class "CStartupState"
-		quid       	"428882C00309"
-		operations 	(list Operations
-		    (object Operation "StartL"
-			quid       	"428883060164"
-			result     	"void"
-			concurrency 	"Sequential"
-			opExportControl 	"Private"
-			uid        	0)
-		    (object Operation "DoCommand"
-			quid       	"4288831B01A2"
-			parameters 	(list Parameters
-			    (object Parameter "aCommand"
-				type       	"MStartupCommand&"))
-			result     	"void"
-			concurrency 	"Sequential"
-			opExportControl 	"Private"
-			uid        	0))
-		class_attributes 	(list class_attribute_list
-		    (object ClassAttribute "iStateInfo"
-			quid       	"42888369003B"
-			type       	"MStartupStateInfo&")))
-	    (object Class "MStartupStateInfo"
-		quid       	"42888401023E"
-		operations 	(list Operations
-		    (object Operation "StateId"
-			quid       	"428884340386"
-			result     	"TUint8"
-			concurrency 	"Sequential"
-			opExportControl 	"Public"
-			uid        	0)
-		    (object Operation "Name"
-			quid       	"42888466027D"
-			result     	"TPtrC"
-			concurrency 	"Sequential"
-			opExportControl 	"Public"
-			uid        	0)
-		    (object Operation "GetCommandList"
-			quid       	"4288848302FA"
-			result     	"CommandListType"
-			concurrency 	"Sequential"
-			opExportControl 	"Public"
-			uid        	0)
-		    (object Operation "Count"
-			quid       	"428884A3021F"
-			documentation 	"Get a count of the number of commands in the list"
-			result     	"TInt"
-			concurrency 	"Sequential"
-			opExportControl 	"Public"
-			uid        	0)
-		    (object Operation "NoOfRetries"
-			quid       	"428884D60135"
-			result     	"TNoOfRetries"
-			concurrency 	"Sequential"
-			opExportControl 	"Public"
-			uid        	0)
-		    (object Operation "ActionOnStateTransitionFailure"
-			quid       	"4288858A020F"
-			result     	"TActionOnStateTransitionFailure"
-			concurrency 	"Sequential"
-			opExportControl 	"Public"
-			uid        	0)
-		    (object Operation "GetCommand"
-			quid       	"428885B50377"
-			parameters 	(list Parameters
-			    (object Parameter "aIndex"
-				type       	"TInt"))
-			result     	"MStartupCommand*"
-			concurrency 	"Sequential"
-			opExportControl 	"Public"
-			uid        	0)))
-	    (object Class "TBootModeMapping"
-		quid       	"428886F8003B"
-		operations 	(list Operations
-		    (object Operation "GetResourceFileName"
-			quid       	"4288871703D5"
-			parameters 	(list Parameters
-			    (object Parameter "aBootMode"
-				type       	"TUint")
-			    (object Parameter "aResourceFileName"
-				type       	"TDes&"))
-			result     	"void"
-			concurrency 	"Sequential"
-			opExportControl 	"Public"
-			uid        	0)))
-	    (object Class "CAppStarter"
-		quid       	"4289DD02005C"
-		operations 	(list Operations
-		    (object Operation "StartProcess"
-			quid       	"428B28F60114"
-			result     	"TInt"
-			concurrency 	"Sequential"
-			opExportControl 	"Private"
-			uid        	0)
-		    (object Operation "StartAppL"
-			quid       	"428B290602E9"
-			result     	"TInt"
-			concurrency 	"Sequential"
-			opExportControl 	"Private"
-			uid        	0))
-		class_attributes 	(list class_attribute_list
-		    (object ClassAttribute "iAppInfo"
-			quid       	"428B29340347"
-			type       	"const MStartupAppInfo*")
-		    (object ClassAttribute "iProvider"
-			quid       	"428B29590347"
-			type       	"MApaLsSessionProvider")))
-	    (object Class "CSystemStartupAppInfo"
-		quid       	"4289DD86002E"
-		superclasses 	(list inheritance_relationship_list
-		    (object Inheritance_Relationship
-			quid       	"428A227501F3"
-			supplier   	"Logical View::MStartupAppInfo"
-			quidu      	"428A219C0166"))
-		operations 	(list Operations
-		    (object Operation "SetFailOnError"
-			quid       	"428A22A003D7"
-			parameters 	(list Parameters
-			    (object Parameter "aFail"
-				type       	"TBool"))
-			result     	"void"
-			concurrency 	"Sequential"
-			opExportControl 	"Public"
-			uid        	0)
-		    (object Operation "SetStartMethod"
-			quid       	"428A22D60252"
-			parameters 	(list Parameters
-			    (object Parameter "aStartMethod"
-				type       	"TInt"))
-			result     	"void"
-			concurrency 	"Sequential"
-			opExportControl 	"Public"
-			uid        	0)
-		    (object Operation "SetTimeout"
-			quid       	"428A22E501B6"
-			parameters 	(list Parameters
-			    (object Parameter "aStartType"
-				type       	"TInt"))
-			result     	"void"
-			concurrency 	"Sequential"
-			opExportControl 	"Public"
-			uid        	0)
-		    (object Operation "SetStartType"
-			quid       	"428A22F10291"
-			result     	"void"
-			concurrency 	"Sequential"
-			opExportControl 	"Public"
-			uid        	0)
-		    (object Operation "SetViewless"
-			quid       	"428A22FD00AC"
-			parameters 	(list Parameters
-			    (object Parameter "aViewLess"
-				type       	"TBool"))
-			result     	"void"
-			concurrency 	"Sequential"
-			opExportControl 	"Public"
-			uid        	0)
-		    (object Operation "SetStartInBackground"
-			quid       	"428A23090233"
-			parameters 	(list Parameters
-			    (object Parameter "aStartInBackground"
-				type       	"TBool"))
-			result     	"void"
-			concurrency 	"Sequential"
-			opExportControl 	"Public"
-			uid        	0)
-		    (object Operation "SetNoOfRetries"
-			quid       	"428A231A008D"
-			parameters 	(list Parameters
-			    (object Parameter "aNoOfRetries"
-				type       	"TNoOfRetries"))
-			result     	"void"
-			concurrency 	"Sequential"
-			opExportControl 	"Public"
-			uid        	0)))
-	    (object Class "CSystemStartupStateInfo"
-		quid       	"4289DF6203A8"
-		superclasses 	(list inheritance_relationship_list
-		    (object Inheritance_Relationship
-			quid       	"428A23AA0158"
-			supplier   	"Logical View::MStartupStateInfo"
-			quidu      	"42888401023E"))
-		class_attributes 	(list class_attribute_list
-		    (object ClassAttribute "iNoOfRetries"
-			quid       	"428B29A40183"
-			type       	"TNoOfRetries")
-		    (object ClassAttribute "iActionOnStateTransitionFailure"
-			quid       	"428B29BB01A3"
-			type       	"TActionOnStateTransitionFailure")
-		    (object ClassAttribute "iStateId"
-			quid       	"428B29E00388"
-			type       	"TInt")
-		    (object ClassAttribute "iName"
-			quid       	"428B29F10136"
-			type       	"HBufC*")
-		    (object ClassAttribute "iCommandList"
-			quid       	"428B2A06008B"
-			type       	"CommandListType")))
-	    (object Class "CDllStarter"
-		quid       	"428A1ABE00F9"
-		operations 	(list Operations
-		    (object Operation "Execute"
-			quid       	"428A1AD1009B"
-			parameters 	(list Parameters
-			    (object Parameter "aCallerStatus"
-				type       	"TRequestStatus&"))
-			result     	"void"
-			concurrency 	"Sequential"
-			opExportControl 	"Public"
-			uid        	0))
-		class_attributes 	(list class_attribute_list
-		    (object ClassAttribute "iDllInfo"
-			quid       	"428A1B0B000E"
-			type       	"CSystemStartupDllInfo*")))
-	    (object Class "MApaLsSessionProvider"
-		quid       	"428A1B7E008B"
-		operations 	(list Operations
-		    (object Operation "LsSession"
-			quid       	"428A1B940195"
-			result     	"RApaLsSession&"
-			concurrency 	"Sequential"
-			opExportControl 	"Public"
-			uid        	0)))
-	    (object Class "MStartup"
-		quid       	"426E46A1033E"
-		documentation 	
-|Retrieves the next stage that the system needs to move into
-|for example 'critical static'   
-		
-		operations 	(list Operations
-		    (object Operation "GetNextStateL"
-			quid       	"426E46E50189"
-			result     	"MStartupStateInfo*"
-			concurrency 	"Sequential"
-			opExportControl 	"Public"
-			uid        	0)))
-	    (object Class "CSystemStartupDllInfo"
-		quid       	"428A1C3E00D9"
-		operations 	(list Operations
-		    (object Operation "SetDllName"
-			quid       	"428A1C530250"
-			parameters 	(list Parameters
-			    (object Parameter "aDllName"
-				type       	"const TDesC&"))
-			result     	"void"
-			concurrency 	"Sequential"
-			opExportControl 	"Public"
-			uid        	0)
-		    (object Operation "SetOrdinal"
-			quid       	"428A1C5C002E"
-			parameters 	(list Parameters
-			    (object Parameter "aSetOrdinal"
-				type       	"TUint8"))
-			result     	"void"
-			concurrency 	"Sequential"
-			opExportControl 	"Public"
-			uid        	0)
-		    (object Operation "SetFailOnError"
-			quid       	"428A1C62034A"
-			parameters 	(list Parameters
-			    (object Parameter "aFail"
-				type       	"TBool"))
-			result     	"void"
-			concurrency 	"Sequential"
-			opExportControl 	"Public"
-			uid        	0)
-		    (object Operation "SetNoOfRetries"
-			quid       	"428A1C6A0166"
-			parameters 	(list Parameters
-			    (object Parameter "aNoOfRetries"
-				type       	"TUint8"))
-			result     	"void"
-			concurrency 	"Sequential"
-			opExportControl 	"Public"
-			uid        	0)
-		    (object Operation "SetDllBuffer"
-			quid       	"428A1C71008B"
-			result     	"void"
-			concurrency 	"Sequential"
-			opExportControl 	"Public"
-			uid        	0))
-		class_attributes 	(list class_attribute_list
-		    (object ClassAttribute "iDllName"
-			quid       	"428B2C4C0257"
-			type       	"HBufC*")
-		    (object ClassAttribute "iOrdinal"
-			quid       	"428B2C5C01AB"
-			type       	"TUint8")
-		    (object ClassAttribute "iFailOnError"
-			quid       	"428B2C6D013E"
-			type       	"TBool")
-		    (object ClassAttribute "iNoOfRetries"
-			quid       	"428B2C7B02F4"
-			type       	"TUint8")
-		    (object ClassAttribute "iDllBuffer"
-			quid       	"428B2C8D020A"
-			type       	"HBufC8*")))
-	    (object Class "MStartupAppInfo"
-		quid       	"428A219C0166"
-		operations 	(list Operations
-		    (object Operation "GetPath"
-			quid       	"428A21B001F3"
-			result     	"TPtrC"
-			concurrency 	"Sequential"
-			opExportControl 	"Public"
-			uid        	0)
-		    (object Operation "GetArgs"
-			quid       	"428A21CB000E"
-			result     	"TPtrC"
-			concurrency 	"Sequential"
-			opExportControl 	"Public"
-			uid        	0)
-		    (object Operation "StartMethod"
-			quid       	"428A21D900E9"
-			result     	"TInt"
-			concurrency 	"Sequential"
-			opExportControl 	"Public"
-			uid        	0)
-		    (object Operation "TimeOut"
-			quid       	"428A21EA00D9"
-			result     	"TInt"
-			concurrency 	"Sequential"
-			opExportControl 	"Public"
-			uid        	0)
-		    (object Operation "FailOnError"
-			quid       	"428A21FA000E"
-			result     	"TBool"
-			concurrency 	"Sequential"
-			opExportControl 	"Public"
-			uid        	0)
-		    (object Operation "StartType"
-			quid       	"428A2209003D"
-			result     	"TInt"
-			concurrency 	"Sequential"
-			opExportControl 	"Public"
-			uid        	0)
-		    (object Operation "ViewLess"
-			quid       	"428A22170241"
-			result     	"TBool"
-			concurrency 	"Sequential"
-			opExportControl 	"Public"
-			uid        	0)
-		    (object Operation "StartInBackground"
-			quid       	"428A222603D7"
-			result     	"TBool"
-			concurrency 	"Sequential"
-			opExportControl 	"Public"
-			uid        	0)
-		    (object Operation "NoOfRetries"
-			quid       	"428A2239008B"
-			parameters 	(list Parameters
-			    (object Parameter "aFail"
-				type       	"TBool"))
-			result     	"TInt"
-			concurrency 	"Sequential"
-			opExportControl 	"Public"
-			uid        	0)))
-	    (object Class "CStartupSplashScreen"
-		quid       	"428A23DD00BC"
-		operations 	(list Operations
-		    (object Operation "StartSplashScreen"
-			quid       	"428B2B02031E"
-			result     	"TInt"
-			concurrency 	"Sequential"
-			opExportControl 	"Private"
-			uid        	0)
-		    (object Operation "KillSplashScreen"
-			quid       	"428B2B18012A"
-			result     	"TInt"
-			concurrency 	"Sequential"
-			opExportControl 	"Private"
-			uid        	0))
-		class_attributes 	(list class_attribute_list
-		    (object ClassAttribute "iStartSplash"
-			quid       	"428B2B3C0273"
-			type       	"TBool")
-		    (object ClassAttribute "iSplashPath"
-			quid       	"428B2B54007F"
-			type       	"HBufC*")))
-	    (object Class "CMultipleWait"
-		quid       	"434E70FB02C2"
-		operations 	(list Operations
-		    (object Operation "Execute"
-			quid       	"434E7118011D"
-			result     	"void"
-			concurrency 	"Sequential"
-			opExportControl 	"Public"
-			uid        	0)))
-	    (object Association "iReader"
-		quid       	"426E4B970060"
-		roles      	(list role_list
-		    (object Role "$UNNAMED$0"
-			quid       	"426E4B9A008F"
-			supplier   	"Logical View::CResourceFileReader"
-			quidu      	"426E4B66008F"
-			client_cardinality 	(value cardinality "1")
-			is_navigable 	TRUE)
-		    (object Role "$UNNAMED$1"
-			quid       	"426E4B9A0090"
-			supplier   	"Logical View::CSystemStartup"
-			quidu      	"426E41EA011B")))
-	    (object Association "$UNNAMED$2"
-		quid       	"4288868E0125"
-		roles      	(list role_list
-		    (object Role "$UNNAMED$3"
-			quid       	"4288868F026D"
-			supplier   	"Logical View::MStartupStateInfo"
-			quidu      	"42888401023E"
-			client_cardinality 	(value cardinality "1")
-			Containment 	"By Reference"
-			is_navigable 	TRUE)
-		    (object Role "$UNNAMED$4"
-			quid       	"4288868F027D"
-			supplier   	"Logical View::CStartupState"
-			quidu      	"428882C00309")))
-	    (object Association "iDllInfo"
-		quid       	"428B25AA02DE"
-		roles      	(list role_list
-		    (object Role "$UNNAMED$5"
-			quid       	"428B25AB0251"
-			supplier   	"Logical View::CSystemStartupDllInfo"
-			quidu      	"428A1C3E00D9"
-			client_cardinality 	(value cardinality "0..1")
-			exportControl 	"Private"
-			is_navigable 	TRUE)
-		    (object Role "iDllInfo"
-			quid       	"428B25AB0261"
-			label      	"iDllInfo"
-			supplier   	"Logical View::CDllStarter"
-			quidu      	"428A1ABE00F9"
-			is_principal 	TRUE)))
-	    (object Association "$UNNAMED$6"
-		quid       	"428B2764012E"
-		roles      	(list role_list
-		    (object Role "iAppInfo"
-			quid       	"428B276500E0"
-			label      	"iAppInfo"
-			supplier   	"Logical View::MStartupAppInfo"
-			quidu      	"428A219C0166"
-			client_cardinality 	(value cardinality "1")
-			is_navigable 	TRUE)
-		    (object Role "$UNNAMED$7"
-			quid       	"428B276500E1"
-			supplier   	"Logical View::CAppStarter"
-			quidu      	"4289DD02005C")))
-	    (object Association "$UNNAMED$8"
-		quid       	"428B277D013E"
-		roles      	(list role_list
-		    (object Role "$UNNAMED$9"
-			quid       	"428B27800005"
-			supplier   	"Logical View::MApaLsSessionProvider"
-			quidu      	"428A1B7E008B"
-			client_cardinality 	(value cardinality "1")
-			Containment 	"By Reference"
-			is_navigable 	TRUE)
-		    (object Role "$UNNAMED$10"
-			quid       	"428B27800015"
-			supplier   	"Logical View::CAppStarter"
-			quidu      	"4289DD02005C")))
-	    (object Mechanism @1
-		logical_models 	(list unit_reference_list
-		    (object Object "starter"
-			quid       	"42848A14022E"
-			collaborators 	(list link_list
-			    (object Link
-				quid       	"42848AB802BA"
-				supplier   	"state"
-				quidu      	"42848A9F0124"
-				messages   	(list Messages
-				    (object Message "StartL"
-					quid       	"4288B0D0006A"
-					frequency  	"Aperiodic"
-					synchronization 	"Simple"
-					dir        	"FromClientToSupplier"
-					sequence   	"3"
-					ordinal    	2
-					quidu      	"428883060164")))
-			    (object Link
-				quid       	"4284A17D00B7"
-				supplier   	"RProperty"
-				quidu      	"4284A1660328"
-				messages   	(list Messages
-				    (object Message "Get( ..., bootmode)"
-					quid       	"4284A17D00B8"
-					frequency  	"Aperiodic"
-					synchronization 	"Simple"
-					dir        	"FromClientToSupplier"
-					sequence   	"1"
-					ordinal    	0)))
-			    (object Link
-				quid       	"4284A353026C"
-				supplier   	"RDmDomainManager"
-				quidu      	"4284A34501EF"
-				messages   	(list Messages
-				    (object Message "AddDomainHierarchy(KDmHierarchyIdStartup)"
-					quid       	"4288B01B0319"
-					frequency  	"Aperiodic"
-					synchronization 	"Simple"
-					dir        	"FromClientToSupplier"
-					sequence   	"2"
-					ordinal    	1))))
-			class      	"Logical View::CSystemStarter"
-			quidu      	"426E3BE90031"
-			persistence 	"Transient"
-			multi      	FALSE)
-		    (object Object "state"
-			quid       	"42848A9F0124"
-			collaborators 	(list link_list
-			    (object Link
-				quid       	"4284B01E01D0"
-				supplier   	"systemstartup"
-				quidu      	"4284B0070346"
-				messages   	(list Messages
-				    (object Message "NewLC(bootmode)"
-					quid       	"4284B01E01D1"
-					frequency  	"Aperiodic"
-					synchronization 	"Simple"
-					dir        	"FromClientToSupplier"
-					sequence   	"4"
-					ordinal    	3))))
-			class      	"Logical View::CStartupState"
-			quidu      	"428882C00309"
-			persistence 	"Transient"
-			multi      	FALSE)
-		    (object Object "RProperty"
-			quid       	"4284A1660328"
-			persistence 	"Transient"
-			multi      	FALSE)
-		    (object Object "RDmDomainManager"
-			quid       	"4284A34501EF"
-			persistence 	"Transient"
-			multi      	FALSE)
-		    (object Object "systemstartup"
-			quid       	"4284B0070346"
-			collaborators 	(list link_list
-			    (object Link
-				quid       	"4284B03303C6"
-				supplier   	"systemstartup"
-				quidu      	"4284B0070346"
-				messages   	(list Messages
-				    (object Message "ConstructL(bootmode)"
-					quid       	"4284B03303C7"
-					frequency  	"Aperiodic"
-					synchronization 	"Simple"
-					dir        	"FromClientToSupplier"
-					sequence   	"4.1"
-					ordinal    	4)))
-			    (object Link
-				quid       	"4284B09E0217"
-				supplier   	"mapping"
-				quidu      	"4284B079006F"
-				messages   	(list Messages
-				    (object Message "GetResourceFileName"
-					quid       	"4284B09E0218"
-					frequency  	"Aperiodic"
-					synchronization 	"Simple"
-					dir        	"FromClientToSupplier"
-					sequence   	"4.1.1"
-					ordinal    	5
-					Operation  	"GetResourceFileName(TUint, TDes&)"
-					quidu      	"4288871703D5")))
-			    (object Link
-				quid       	"4284B2F70088"
-				supplier   	"iReader"
-				quidu      	"4284B2DF029A"
-				messages   	(list Messages
-				    (object Message " NewL(resourcefile, ...)"
-					quid       	"4284B2F70089"
-					frequency  	"Aperiodic"
-					synchronization 	"Simple"
-					dir        	"FromClientToSupplier"
-					sequence   	"4.2"
-					ordinal    	6))))
-			class      	"Logical View::CSystemStartup"
-			quidu      	"426E41EA011B"
-			persistence 	"Transient"
-			multi      	FALSE)
-		    (object Object "mapping"
-			quid       	"4284B079006F"
-			class      	"Logical View::TBootModeMapping"
-			quidu      	"428886F8003B"
-			persistence 	"Transient"
-			multi      	FALSE)
-		    (object Object "iReader"
-			quid       	"4284B2DF029A"
-			collaborators 	(list link_list
-			    (object Link
-				quid       	"4284B341033C"
-				supplier   	"iReader"
-				quidu      	"4284B2DF029A"
-				messages   	(list Messages
-				    (object Message "ConstructL(resourcefile)"
-					quid       	"4284B341033D"
-					frequency  	"Aperiodic"
-					synchronization 	"Simple"
-					dir        	"FromClientToSupplier"
-					sequence   	"4.2.1"
-					ordinal    	7))))
-			class      	"Logical View::CResourceFileReader"
-			quidu      	"426E4B66008F"
-			persistence 	"Transient"
-			multi      	FALSE)))
-	    (object Mechanism @2
-		logical_models 	(list unit_reference_list
-		    (object Object "starter"
-			quid       	"4284B4B203E1"
-			collaborators 	(list link_list
-			    (object Link
-				quid       	"4284B4DB02BA"
-				supplier   	"systemstartup"
-				quidu      	"4284B4CE021D"
-				messages   	(list Messages
-				    (object Message "GetNextStateL"
-					quid       	"4284B4DB02BB"
-					frequency  	"Aperiodic"
-					synchronization 	"Simple"
-					dir        	"FromClientToSupplier"
-					sequence   	"1"
-					ordinal    	0
-					Operation  	"GetNextStateL( )"
-					quidu      	"426E43F5030F"))))
-			class      	"Logical View::CSystemStarter"
-			quidu      	"426E3BE90031"
-			persistence 	"Transient"
-			multi      	FALSE)
-		    (object Object "systemstartup"
-			quid       	"4284B4CE021D"
-			collaborators 	(list link_list
-			    (object Link
-				quid       	"4284B520000F"
-				supplier   	"iReader"
-				quidu      	"4284B50D029E"
-				messages   	(list Messages
-				    (object Message "GetStateInfoL"
-					quid       	"4284B5200010"
-					frequency  	"Aperiodic"
-					synchronization 	"Simple"
-					dir        	"FromClientToSupplier"
-					sequence   	"1.1"
-					ordinal    	1
-					Operation  	"GetStateInfoL( )"
-					quidu      	"428A1D9C0389"))))
-			class      	"Logical View::CSystemStartup"
-			quidu      	"426E41EA011B"
-			persistence 	"Transient"
-			multi      	FALSE)
-		    (object Object "iReader"
-			quid       	"4284B50D029E"
-			collaborators 	(list link_list
-			    (object Link
-				quid       	"4284B5530061"
-				supplier   	"iReader"
-				quidu      	"4284B50D029E"
-				messages   	(list Messages
-				    (object Message "ReadStateInformationL"
-					quid       	"4284B5530062"
-					frequency  	"Aperiodic"
-					synchronization 	"Simple"
-					dir        	"FromClientToSupplier"
-					sequence   	"1.1.1"
-					ordinal    	2
-					Operation  	"ReadStateInformationL( )"
-					quidu      	"428A1E22036A")
-				    (object Message "FindFirstStateEntryL"
-					quid       	"4284B86501AC"
-					frequency  	"Aperiodic"
-					synchronization 	"Simple"
-					dir        	"FromClientToSupplier"
-					sequence   	"1.1.2"
-					ordinal    	3
-					Operation  	"FindFirstStateEntryL( )"
-					quidu      	"428A1E0B003D")
-				    (object Message "ReadCommandListL(aCommandListId)"
-					quid       	"4284BB24015C"
-					frequency  	"Aperiodic"
-					synchronization 	"Simple"
-					dir        	"FromClientToSupplier"
-					sequence   	"1.1.3"
-					ordinal    	5
-					Operation  	"ReadCommandListL(TUint32)"
-					quidu      	"428A1E3F00D9")
-				    (object Message "ReadCommandInfoL *"
-					quid       	"4284BDE9027D"
-					frequency  	"Aperiodic"
-					synchronization 	"Simple"
-					dir        	"FromClientToSupplier"
-					sequence   	"1.1.4"
-					ordinal    	6)))
-			    (object Link
-				quid       	"4284BFB20200"
-				supplier   	"command"
-				quidu      	"4284BFA80115"
-				messages   	(list Messages
-				    (object Message "NewL(appInfo, ...)"
-					quid       	"4284BFB20201"
-					frequency  	"Aperiodic"
-					synchronization 	"Simple"
-					dir        	"FromClientToSupplier"
-					sequence   	"1.1.6"
-					ordinal    	8)))
-			    (object Link
-				quid       	"4284C1AA028C"
-				supplier   	"stateInfo"
-				quidu      	"4284C16C0192"
-				messages   	(list Messages
-				    (object Message "NewL"
-					quid       	"4289DEE0027F"
-					frequency  	"Aperiodic"
-					synchronization 	"Simple"
-					dir        	"FromClientToSupplier"
-					sequence   	"1.1.2.1"
-					ordinal    	4)
-				    (object Message "SetCommandList(CommandList)"
-					quid       	"4289DEF5031C"
-					frequency  	"Aperiodic"
-					synchronization 	"Simple"
-					dir        	"FromClientToSupplier"
-					sequence   	"1.1.7"
-					ordinal    	9
-					Operation  	"SetCommandList")))
-			    (object Link
-				quid       	"4289DDFF02AE"
-				supplier   	"appInfo"
-				quidu      	"4289DD5F0389"
-				messages   	(list Messages
-				    (object Message "NewL"
-					quid       	"4289DDFF02AF"
-					frequency  	"Aperiodic"
-					synchronization 	"Simple"
-					dir        	"FromClientToSupplier"
-					sequence   	"1.1.5"
-					ordinal    	7))))
-			class      	"Logical View::CResourceFileReader"
-			quidu      	"426E4B66008F"
-			persistence 	"Transient"
-			multi      	FALSE)
-		    (object Object "command"
-			quid       	"4284BFA80115"
-			class      	"Logical View::CAppStarter"
-			quidu      	"4289DD02005C"
-			persistence 	"Transient"
-			multi      	FALSE)
-		    (object Object "stateInfo"
-			quid       	"4284C16C0192"
-			class      	"Logical View::CSystemStartupStateInfo"
-			quidu      	"4289DF6203A8"
-			persistence 	"Transient"
-			multi      	FALSE)
-		    (object Object "appInfo"
-			quid       	"4289DD5F0389"
-			class      	"Logical View::CSystemStartupAppInfo"
-			quidu      	"4289DD86002E"
-			persistence 	"Transient"
-			multi      	FALSE)))
-	    (object Mechanism @3
-		logical_models 	(list unit_reference_list
-		    (object Object "CSystemStarter"
-			quid       	"4284C2D000B7"
-			collaborators 	(list link_list
-			    (object Link
-				quid       	"4284C2E601E0"
-				supplier   	"state"
-				quidu      	"4284C2D9001B"
-				messages   	(list Messages
-				    (object Message "StartL"
-					quid       	"4284C2E601E1"
-					frequency  	"Aperiodic"
-					synchronization 	"Simple"
-					dir        	"FromClientToSupplier"
-					sequence   	"1"
-					ordinal    	0
-					quidu      	"428883060164"))))
-			persistence 	"Transient"
-			multi      	FALSE)
-		    (object Object "state"
-			quid       	"4284C2D9001B"
-			collaborators 	(list link_list
-			    (object Link
-				quid       	"4284CE0B0115"
-				supplier   	"RDmManagerSession"
-				quidu      	"4284CDE90163"
-				messages   	(list Messages
-				    (object Message "RequestDomainTransition"
-					quid       	"4284CE0B0116"
-					frequency  	"Aperiodic"
-					synchronization 	"Simple"
-					dir        	"FromClientToSupplier"
-					sequence   	"1.1"
-					ordinal    	1)))
-			    (object Link
-				quid       	"4284DCE401C9"
-				supplier   	"state"
-				quidu      	"4284C2D9001B"
-				messages   	(list Messages
-				    (object Message "DoCommand"
-					quid       	"4284DCE401CA"
-					frequency  	"Aperiodic"
-					synchronization 	"Simple"
-					dir        	"FromClientToSupplier"
-					sequence   	"2"
-					ordinal    	2
-					Operation  	"DoCommand(MStartupCommand&)"
-					quidu      	"4288831B01A2")))
-			    (object Link
-				quid       	"4284DD17038E"
-				supplier   	"aCommand"
-				quidu      	"4284DCC90004"
-				messages   	(list Messages
-				    (object Message "Execute"
-					quid       	"4284DD17038F"
-					frequency  	"Aperiodic"
-					synchronization 	"Simple"
-					dir        	"FromClientToSupplier"
-					sequence   	"3"
-					ordinal    	3
-					quidu      	"428A17DD034A")
-				    (object Message "Execute"
-					quid       	"428B503F006C"
-					frequency  	"Aperiodic"
-					synchronization 	"Simple"
-					dir        	"FromClientToSupplier"
-					sequence   	"4"
-					ordinal    	6
-					quidu      	"428A17DD034A")))
-			    (object Link
-				quid       	"428B52CB0381"
-				supplier   	"aCommand"
-				quidu      	"4284DCC90004"
-				messages   	(list Messages
-				    (object Message "Execute"
-					quid       	"428B52CB0382"
-					frequency  	"Aperiodic"
-					synchronization 	"Simple"
-					dir        	"FromClientToSupplier"
-					sequence   	"5"
-					ordinal    	8
-					quidu      	"428A17DD034A")))
-			    (object Link
-				quid       	"428B567F00AF"
-				supplier   	"aComand"
-				quidu      	"428B56640310"
-				messages   	(list Messages
-				    (object Message "Execute"
-					quid       	"428B567F00B0"
-					frequency  	"Aperiodic"
-					synchronization 	"Simple"
-					dir        	"FromClientToSupplier"
-					sequence   	"6"
-					ordinal    	9
-					quidu      	"428A17DD034A")))
-			    (object Link
-				quid       	"428B5A430148"
-				supplier   	"aCommand"
-				quidu      	"4284DCC90004"
-				messages   	(list Messages
-				    (object Message "Execute"
-					quid       	"428B5A430149"
-					frequency  	"Aperiodic"
-					synchronization 	"Simple"
-					dir        	"FromClientToSupplier"
-					sequence   	"7"
-					ordinal    	10
-					quidu      	"428A17DD034A"))))
-			class      	"Logical View::CStartupState"
-			quidu      	"428882C00309"
-			persistence 	"Transient"
-			multi      	FALSE)
-		    (object Object "RDmManagerSession"
-			quid       	"4284CDE90163"
-			persistence 	"Transient"
-			multi      	FALSE)
-		    (object Object "aCommand"
-			quid       	"4284DCC90004"
-			collaborators 	(list link_list
-			    (object Link
-				quid       	"4284DDEE0302"
-				supplier   	"aCommand"
-				quidu      	"4284DCC90004"
-				messages   	(list Messages
-				    (object Message " Utility procs"
-					quid       	"4284DDEE0303"
-					frequency  	"Aperiodic"
-					synchronization 	"Simple"
-					dir        	"FromClientToSupplier"
-					sequence   	"3.1"
-					ordinal    	4)
-				    (object Message "Utility procs"
-					quid       	"4284DE4701E8"
-					frequency  	"Aperiodic"
-					synchronization 	"Simple"
-					dir        	"FromClientToSupplier"
-					sequence   	"3.1.1"
-					ordinal    	5)
-				    (object Message "Utility procs"
-					quid       	"428B5083008C"
-					frequency  	"Aperiodic"
-					synchronization 	"Simple"
-					dir        	"FromClientToSupplier"
-					sequence   	"4.1"
-					ordinal    	7))))
-			class      	"Logical View::CAppStarter"
-			quidu      	"4289DD02005C"
-			persistence 	"Transient"
-			multi      	FALSE)
-		    (object Object "aCommand"
-			quid       	"428B52A90371"
-			class      	"Logical View::CDllStarter"
-			quidu      	"428A1ABE00F9"
-			persistence 	"Transient"
-			multi      	FALSE)
-		    (object Object "aComand"
-			quid       	"428B56640310"
-			class      	"Logical View::CStartupSplashScreen"
-			quidu      	"428A23DD00BC"
-			persistence 	"Transient"
-			multi      	FALSE)
-		    (object Object "aCommand"
-			quid       	"428B5A0B0389"
-			class      	"C"
-			quidu      	"428A1A5A0389"
-			persistence 	"Transient"
-			multi      	FALSE))))
-	logical_presentations 	(list unit_reference_list
-	    (object ClassDiagram "Main"
-		quid       	"426E373D03B3"
-		title      	"Main"
-		zoom       	59
-		max_height 	28350
-		max_width  	21600
-		origin_x   	432
-		origin_y   	0
-		items      	(list diagram_item_list
-		    (object ClassView "Class" "Logical View::CActive" @4
-			ShowCompartmentStereotypes 	TRUE
-			IncludeAttribute 	TRUE
-			IncludeOperation 	TRUE
-			location   	(240, 1770)
-			label      	(object ItemLabel
-			    Parent_View 	@4
-			    location   	(157, 1723)
-			    fill_color 	13434879
-			    nlines     	1
-			    max_width  	166
-			    justify    	0
-			    label      	"CActive")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"426E386F0244"
-			width      	184
-			height     	114
-			annotation 	8
-			autoResize 	TRUE)
-		    (object ClassView "Class" "Logical View::CSystemStarter" @5
-			ShowCompartmentStereotypes 	TRUE
-			IncludeAttribute 	TRUE
-			IncludeOperation 	TRUE
-			location   	(540, 2025)
-			label      	(object ItemLabel
-			    Parent_View 	@5
-			    location   	(381, 1861)
-			    fill_color 	13434879
-			    nlines     	1
-			    max_width  	318
-			    justify    	0
-			    label      	"CSystemStarter")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"426E3BE90031"
-			compartment 	(object Compartment
-			    Parent_View 	@5
-			    location   	(381, 1914)
-			    icon_style 	"Icon"
-			    fill_color 	13434879
-			    anchor     	2
-			    nlines     	6
-			    max_width  	315)
-			width      	336
-			height     	348
-			annotation 	8
-			autoResize 	TRUE)
-		    (object InheritView "" @6
-			stereotype 	TRUE
-			line_color 	3342489
-			quidu      	"426E3BE90032"
-			client     	@5
-			supplier   	@4
-			line_style 	0)
-		    (object ClassView "Class" "Logical View::CResourceFileReader" @7
-			ShowCompartmentStereotypes 	TRUE
-			IncludeAttribute 	TRUE
-			IncludeOperation 	TRUE
-			location   	(405, 1290)
-			label      	(object ItemLabel
-			    Parent_View 	@7
-			    location   	(69, 969)
-			    fill_color 	13434879
-			    nlines     	1
-			    max_width  	672
-			    justify    	0
-			    label      	"CResourceFileReader")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"426E4B66008F"
-			compartment 	(object Compartment
-			    Parent_View 	@7
-			    location   	(69, 1022)
-			    icon_style 	"Icon"
-			    fill_color 	16777215
-			    anchor     	2
-			    nlines     	13
-			    max_width  	809)
-			width      	690
-			height     	662
-			annotation 	8
-			autoResize 	TRUE)
-		    (object ClassView "Class" "Logical View::CSystemStartup" @8
-			ShowCompartmentStereotypes 	TRUE
-			IncludeAttribute 	TRUE
-			IncludeOperation 	TRUE
-			location   	(315, 645)
-			label      	(object ItemLabel
-			    Parent_View 	@8
-			    location   	(40, 534)
-			    fill_color 	13434879
-			    nlines     	1
-			    max_width  	550
-			    justify    	0
-			    label      	"CSystemStartup")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"426E41EA011B"
-			compartment 	(object Compartment
-			    Parent_View 	@8
-			    location   	(40, 587)
-			    icon_style 	"Icon"
-			    fill_color 	13434879
-			    anchor     	2
-			    nlines     	4
-			    max_width  	625)
-			width      	568
-			height     	242
-			annotation 	8
-			autoResize 	TRUE)
-		    (object AssociationViewNew "iReader" @9
-			location   	(344, 862)
-			label      	(object SegLabel @10
-			    Parent_View 	@9
-			    location   	(344, 803)
-			    font       	(object Font
-				italics    	TRUE)
-			    anchor     	1
-			    anchor_loc 	1
-			    nlines     	1
-			    max_width  	600
-			    justify    	0
-			    label      	"iReader"
-			    pctDist    	0.500000
-			    height     	60
-			    orientation 	0)
-			stereotype 	TRUE
-			line_color 	3342489
-			quidu      	"426E4B970060"
-			roleview_list 	(list RoleViews
-			    (object RoleView "$UNNAMED$0" @11
-				Parent_View 	@9
-				location   	(-88, -210)
-				stereotype 	TRUE
-				line_color 	3342489
-				quidu      	"426E4B9A008F"
-				client     	@9
-				supplier   	@7
-				line_style 	0
-				label      	(object SegLabel @12
-				    Parent_View 	@11
-				    location   	(304, 955)
-				    anchor     	2
-				    anchor_loc 	1
-				    nlines     	1
-				    max_width  	15
-				    justify    	0
-				    label      	"1"
-				    pctDist    	0.900000
-				    height     	54
-				    orientation 	1))
-			    (object RoleView "$UNNAMED$1" @13
-				Parent_View 	@9
-				location   	(-88, -210)
-				stereotype 	TRUE
-				line_color 	3342489
-				quidu      	"426E4B9A0090"
-				client     	@9
-				supplier   	@8
-				line_style 	0)))
-		    (object ClassView "Class" "Logical View::MStartupStateInfo" @14
-			ShowCompartmentStereotypes 	TRUE
-			IncludeAttribute 	TRUE
-			IncludeOperation 	TRUE
-			location   	(3030, 1545)
-			label      	(object ItemLabel
-			    Parent_View 	@14
-			    location   	(2758, 1350)
-			    fill_color 	13434879
-			    nlines     	1
-			    max_width  	544
-			    justify    	0
-			    label      	"MStartupStateInfo")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"42888401023E"
-			compartment 	(object Compartment
-			    Parent_View 	@14
-			    location   	(2758, 1403)
-			    icon_style 	"Icon"
-			    fill_color 	13434879
-			    anchor     	2
-			    nlines     	8
-			    max_width  	615)
-			width      	562
-			height     	410
-			annotation 	8
-			autoResize 	TRUE)
-		    (object ClassView "Class" "Logical View::CStartupState" @15
-			ShowCompartmentStereotypes 	TRUE
-			IncludeAttribute 	TRUE
-			IncludeOperation 	TRUE
-			location   	(2385, 1680)
-			label      	(object ItemLabel
-			    Parent_View 	@15
-			    location   	(2134, 1569)
-			    fill_color 	13434879
-			    nlines     	1
-			    max_width  	502
-			    justify    	0
-			    label      	"CStartupState")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"428882C00309"
-			compartment 	(object Compartment
-			    Parent_View 	@15
-			    location   	(2134, 1622)
-			    icon_style 	"Icon"
-			    fill_color 	13434879
-			    anchor     	2
-			    nlines     	4
-			    max_width  	577)
-			width      	520
-			height     	242
-			annotation 	8
-			autoResize 	TRUE)
-		    (object AssociationViewNew "$UNNAMED$2" @16
-			location   	(2696, 1613)
-			stereotype 	TRUE
-			line_color 	3342489
-			quidu      	"4288868E0125"
-			roleview_list 	(list RoleViews
-			    (object RoleView "$UNNAMED$3" @17
-				Parent_View 	@16
-				location   	(1496, 1309)
-				stereotype 	TRUE
-				line_color 	3342489
-				quidu      	"4288868F026D"
-				client     	@16
-				supplier   	@14
-				line_style 	0
-				label      	(object SegLabel @18
-				    Parent_View 	@17
-				    location   	(2754, 1656)
-				    anchor     	2
-				    anchor_loc 	1
-				    nlines     	1
-				    max_width  	15
-				    justify    	0
-				    label      	"1"
-				    pctDist    	0.900000
-				    height     	54
-				    orientation 	1))
-			    (object RoleView "$UNNAMED$4" @19
-				Parent_View 	@16
-				location   	(1496, 1309)
-				stereotype 	TRUE
-				line_color 	3342489
-				quidu      	"4288868F027D"
-				client     	@16
-				supplier   	@15
-				line_style 	0)))
-		    (object ClassView "Class" "Logical View::CSystemStartupAppInfo" @20
-			ShowCompartmentStereotypes 	TRUE
-			IncludeAttribute 	TRUE
-			IncludeOperation 	TRUE
-			ShowOperationSignature 	TRUE
-			location   	(1485, 1905)
-			label      	(object ItemLabel
-			    Parent_View 	@20
-			    location   	(1007, 1691)
-			    fill_color 	13434879
-			    nlines     	1
-			    max_width  	956
-			    justify    	0
-			    label      	"CSystemStartupAppInfo")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"4289DD86002E"
-			compartment 	(object Compartment
-			    Parent_View 	@20
-			    location   	(1007, 1744)
-			    icon_style 	"Icon"
-			    fill_color 	16777215
-			    anchor     	2
-			    nlines     	8
-			    max_width  	1030)
-			width      	974
-			height     	448
-			annotation 	8
-			autoResize 	TRUE)
-		    (object ClassView "Class" "Logical View::CSystemStartupStateInfo" @21
-			ShowCompartmentStereotypes 	TRUE
-			IncludeAttribute 	TRUE
-			IncludeOperation 	TRUE
-			ShowOperationSignature 	TRUE
-			location   	(2790, 2040)
-			label      	(object ItemLabel
-			    Parent_View 	@21
-			    location   	(2278, 1887)
-			    fill_color 	13434879
-			    nlines     	1
-			    max_width  	1024
-			    justify    	0
-			    label      	"CSystemStartupStateInfo")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"4289DF6203A8"
-			compartment 	(object Compartment
-			    Parent_View 	@21
-			    location   	(2278, 1940)
-			    icon_style 	"Icon"
-			    fill_color 	16777215
-			    anchor     	2
-			    nlines     	6
-			    max_width  	1195)
-			width      	1042
-			height     	326
-			annotation 	8
-			autoResize 	TRUE)
-		    (object ClassView "Class" "Logical View::MStartup" @22
-			ShowCompartmentStereotypes 	TRUE
-			IncludeAttribute 	TRUE
-			IncludeOperation 	TRUE
-			location   	(285, 195)
-			label      	(object ItemLabel
-			    Parent_View 	@22
-			    location   	(124, 121)
-			    fill_color 	13434879
-			    nlines     	1
-			    max_width  	322
-			    justify    	0
-			    label      	"MStartup")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"426E46A1033E"
-			compartment 	(object Compartment
-			    Parent_View 	@22
-			    location   	(124, 174)
-			    icon_style 	"Icon"
-			    fill_color 	13434879
-			    anchor     	2
-			    nlines     	2
-			    max_width  	327)
-			width      	340
-			height     	168
-			annotation 	8
-			autoResize 	TRUE)
-		    (object InheritView "" @23
-			stereotype 	TRUE
-			line_color 	3342489
-			quidu      	"428A23AA0158"
-			client     	@21
-			supplier   	@14
-			line_style 	0)
-		    (object ClassView "Class" "Logical View::CStartupSplashScreen" @24
-			ShowCompartmentStereotypes 	TRUE
-			IncludeAttribute 	TRUE
-			IncludeOperation 	TRUE
-			ShowOperationSignature 	TRUE
-			location   	(2280, 885)
-			label      	(object ItemLabel
-			    Parent_View 	@24
-			    location   	(2038, 740)
-			    fill_color 	13434879
-			    nlines     	1
-			    max_width  	484
-			    justify    	0
-			    label      	"CStartupSplashScreen")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"428A23DD00BC"
-			compartment 	(object Compartment
-			    Parent_View 	@24
-			    location   	(2038, 793)
-			    icon_style 	"Icon"
-			    fill_color 	13434879
-			    anchor     	2
-			    nlines     	5
-			    max_width  	490)
-			width      	502
-			height     	310
-			annotation 	8
-			autoResize 	TRUE)
-		    (object InheritView "" @25
-			stereotype 	TRUE
-			line_color 	3342489
-			quidu      	"428A242802B0"
-			client     	@8
-			supplier   	@22
-			line_style 	0)
-		    (object ClassView "Class" "Logical View::CSystemStartupDllInfo" @26
-			ShowCompartmentStereotypes 	TRUE
-			IncludeAttribute 	TRUE
-			IncludeOperation 	TRUE
-			ShowOperationSignature 	TRUE
-			location   	(1125, 555)
-			label      	(object ItemLabel
-			    Parent_View 	@26
-			    location   	(725, 272)
-			    fill_color 	13434879
-			    nlines     	1
-			    max_width  	800
-			    justify    	0
-			    label      	"CSystemStartupDllInfo")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"428A1C3E00D9"
-			compartment 	(object Compartment
-			    Parent_View 	@26
-			    location   	(725, 325)
-			    icon_style 	"Icon"
-			    fill_color 	13434879
-			    anchor     	2
-			    nlines     	11
-			    max_width  	842)
-			width      	818
-			height     	586
-			annotation 	8
-			autoResize 	TRUE)
-		    (object ClassView "Class" "Logical View::CDllStarter" @27
-			ShowCompartmentStereotypes 	TRUE
-			IncludeAttribute 	TRUE
-			IncludeOperation 	TRUE
-			ShowOperationSignature 	TRUE
-			location   	(2160, 555)
-			label      	(object ItemLabel
-			    Parent_View 	@27
-			    location   	(1727, 460)
-			    fill_color 	13434879
-			    nlines     	1
-			    max_width  	867
-			    justify    	0
-			    label      	"CDllStarter")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"428A1ABE00F9"
-			compartment 	(object Compartment
-			    Parent_View 	@27
-			    location   	(1727, 513)
-			    icon_style 	"Icon"
-			    fill_color 	13434879
-			    anchor     	2
-			    nlines     	3
-			    max_width  	1065)
-			width      	885
-			height     	210
-			annotation 	8
-			autoResize 	TRUE)
-		    (object AssociationViewNew "iDllInfo" @28
-			location   	(1625, 555)
-			stereotype 	TRUE
-			line_color 	3342489
-			quidu      	"428B25AA02DE"
-			roleview_list 	(list RoleViews
-			    (object RoleView "$UNNAMED$5" @29
-				Parent_View 	@28
-				location   	(-1045, 45)
-				label      	(object SegLabel @30
-				    Parent_View 	@29
-				    location   	(1562, 514)
-				    hidden     	TRUE
-				    anchor     	1
-				    anchor_loc 	1
-				    nlines     	1
-				    max_width  	60
-				    justify    	0
-				    label      	""
-				    pctDist    	0.800000
-				    height     	42
-				    orientation 	1)
-				stereotype 	TRUE
-				line_color 	3342489
-				quidu      	"428B25AB0251"
-				client     	@28
-				supplier   	@26
-				line_style 	0
-				label      	(object SegLabel @31
-				    Parent_View 	@29
-				    location   	(1543, 609)
-				    anchor     	2
-				    anchor_loc 	1
-				    nlines     	1
-				    max_width  	15
-				    justify    	0
-				    label      	"0..1"
-				    pctDist    	0.900000
-				    height     	54
-				    orientation 	0))
-			    (object RoleView "iDllInfo" @32
-				Parent_View 	@28
-				location   	(-1045, 45)
-				label      	(object SegLabel @33
-				    Parent_View 	@32
-				    location   	(1675, 606)
-				    anchor     	1
-				    anchor_loc 	1
-				    nlines     	1
-				    max_width  	139
-				    justify    	0
-				    label      	"+iDllInfo"
-				    pctDist    	0.550874
-				    height     	51
-				    orientation 	1)
-				stereotype 	TRUE
-				line_color 	3342489
-				quidu      	"428B25AB0261"
-				client     	@28
-				supplier   	@27
-				line_style 	0)))
-		    (object ClassView "Class" "Logical View::MStartupAppInfo" @34
-			ShowCompartmentStereotypes 	TRUE
-			IncludeAttribute 	TRUE
-			IncludeOperation 	TRUE
-			ShowOperationSignature 	TRUE
-			location   	(1470, 1185)
-			label      	(object ItemLabel
-			    Parent_View 	@34
-			    location   	(1174, 931)
-			    fill_color 	13434879
-			    nlines     	1
-			    max_width  	592
-			    justify    	0
-			    label      	"MStartupAppInfo")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"428A219C0166"
-			compartment 	(object Compartment
-			    Parent_View 	@34
-			    location   	(1174, 984)
-			    icon_style 	"Icon"
-			    fill_color 	13434879
-			    anchor     	2
-			    nlines     	10
-			    max_width  	755)
-			width      	610
-			height     	528
-			annotation 	8
-			autoResize 	TRUE)
-		    (object ClassView "Class" "Logical View::CAppStarter" @35
-			ShowCompartmentStereotypes 	TRUE
-			IncludeAttribute 	TRUE
-			IncludeOperation 	TRUE
-			ShowOperationSignature 	TRUE
-			location   	(2385, 1245)
-			label      	(object ItemLabel
-			    Parent_View 	@35
-			    location   	(2071, 1100)
-			    fill_color 	13434879
-			    nlines     	1
-			    max_width  	628
-			    justify    	0
-			    label      	"CAppStarter")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"4289DD02005C"
-			compartment 	(object Compartment
-			    Parent_View 	@35
-			    location   	(2071, 1153)
-			    icon_style 	"Icon"
-			    fill_color 	16777215
-			    anchor     	2
-			    nlines     	5
-			    max_width  	672)
-			width      	646
-			height     	310
-			annotation 	8
-			autoResize 	TRUE)
-		    (object AssociationViewNew "$UNNAMED$6" @36
-			location   	(1918, 1213)
-			stereotype 	TRUE
-			line_color 	3342489
-			quidu      	"428B2764012E"
-			roleview_list 	(list RoleViews
-			    (object RoleView "iAppInfo" @37
-				Parent_View 	@36
-				location   	(-1802, 463)
-				label      	(object SegLabel @38
-				    Parent_View 	@37
-				    location   	(1907, 1181)
-				    anchor     	1
-				    anchor_loc 	1
-				    nlines     	1
-				    max_width  	172
-				    justify    	0
-				    label      	"+iAppInfo"
-				    pctDist    	0.056070
-				    height     	32
-				    orientation 	1)
-				stereotype 	TRUE
-				line_color 	3342489
-				quidu      	"428B276500E0"
-				client     	@36
-				supplier   	@34
-				line_style 	0
-				label      	(object SegLabel @39
-				    Parent_View 	@37
-				    location   	(1788, 1259)
-				    anchor     	2
-				    anchor_loc 	1
-				    nlines     	1
-				    max_width  	15
-				    justify    	0
-				    label      	"1"
-				    pctDist    	0.900000
-				    height     	54
-				    orientation 	0))
-			    (object RoleView "$UNNAMED$7" @40
-				Parent_View 	@36
-				location   	(-1802, 463)
-				stereotype 	TRUE
-				line_color 	3342489
-				quidu      	"428B276500E1"
-				client     	@36
-				supplier   	@35
-				line_style 	0)))
-		    (object InheritView "" @41
-			stereotype 	TRUE
-			line_color 	3342489
-			quidu      	"428A227501F3"
-			client     	@20
-			supplier   	@34
-			line_style 	0)
-		    (object ClassView "Class" "Logical View::CMultipleWait" @42
-			ShowCompartmentStereotypes 	TRUE
-			IncludeAttribute 	TRUE
-			IncludeOperation 	TRUE
-			ShowOperationSignature 	TRUE
-			location   	(2955, 810)
-			label      	(object ItemLabel
-			    Parent_View 	@42
-			    location   	(2770, 710)
-			    fill_color 	13434879
-			    nlines     	1
-			    max_width  	371
-			    justify    	0
-			    label      	"CMultipleWait")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"434E70FB02C2"
-			compartment 	(object Compartment
-			    Parent_View 	@42
-			    location   	(2770, 763)
-			    icon_style 	"Icon"
-			    fill_color 	13434879
-			    anchor     	2
-			    nlines     	2
-			    max_width  	284)
-			width      	389
-			height     	220
-			annotation 	8
-			autoResize 	TRUE)))
-	    (object ClassDiagram "command classes"
-		quid       	"428A188B01B4"
-		title      	"command classes"
-		zoom       	100
-		max_height 	28350
-		max_width  	21600
-		origin_x   	0
-		origin_y   	0
-		items      	(list diagram_item_list))
-	    (object InteractionDiagram "Initial Setup"
-		mechanism_ref 	@1
-		quid       	"42848A09028B"
-		title      	"Initial Setup"
-		zoom       	100
-		max_height 	28350
-		max_width  	21600
-		origin_x   	0
-		origin_y   	0
-		items      	(list diagram_item_list
-		    (object InterObjView "starter" @43
-			location   	(160, 224)
-			font       	(object Font
-			    underline  	TRUE)
-			label      	(object ItemLabel
-			    Parent_View 	@43
-			    location   	(160, 224)
-			    fill_color 	13434879
-			    anchor_loc 	1
-			    nlines     	2
-			    max_width  	302
-			    justify    	0
-			    label      	"starter")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"42848A14022E"
-			width      	320
-			height     	1365
-			icon_height 	0
-			icon_width 	0
-			icon_y_offset 	0
-			annotation 	1
-			Focus_Of_Control 	(object Focus_Of_Control "" @44
-			    location   	(160, 240)
-			    line_color 	3342489
-			    InterObjView 	@43
-			    height     	1260
-			    y_coord    	1200
-			    Nested     	FALSE))
-		    (object InterObjView "state" @45
-			location   	(1168, 224)
-			font       	(object Font
-			    underline  	TRUE)
-			label      	(object ItemLabel
-			    Parent_View 	@45
-			    location   	(1168, 224)
-			    fill_color 	13434879
-			    anchor_loc 	1
-			    nlines     	2
-			    max_width  	282
-			    justify    	0
-			    label      	"state")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"42848A9F0124"
-			width      	300
-			height     	1365
-			icon_height 	0
-			icon_width 	0
-			icon_y_offset 	0
-			annotation 	1
-			Focus_Of_Control 	(object Focus_Of_Control "" @46
-			    location   	(1168, 688)
-			    line_color 	3342489
-			    InterObjView 	@45
-			    height     	752
-			    y_coord    	692
-			    Nested     	FALSE))
-		    (object InterObjView "systemstartup" @47
-			location   	(1504, 224)
-			font       	(object Font
-			    underline  	TRUE)
-			label      	(object ItemLabel
-			    Parent_View 	@47
-			    location   	(1504, 224)
-			    fill_color 	13434879
-			    anchor_loc 	1
-			    nlines     	2
-			    max_width  	367
-			    justify    	0
-			    label      	"systemstartup")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"4284B0070346"
-			width      	385
-			height     	1365
-			icon_height 	0
-			icon_width 	0
-			icon_y_offset 	0
-			annotation 	1
-			Focus_Of_Control 	(object Focus_Of_Control "" @48
-			    location   	(1504, 736)
-			    line_color 	3342489
-			    InterObjView 	@47
-			    height     	644
-			    y_coord    	584
-			    Nested     	FALSE)
-			Focus_Of_Control 	(object Focus_Of_Control "" @49
-			    location   	(1504, 800)
-			    line_color 	3342489
-			    InterObjView 	@47
-			    height     	248
-			    y_coord    	188
-			    Nested     	TRUE))
-		    (object InterObjView "mapping" @50
-			location   	(1904, 224)
-			font       	(object Font
-			    underline  	TRUE)
-			label      	(object ItemLabel
-			    Parent_View 	@50
-			    location   	(1904, 224)
-			    fill_color 	13434879
-			    anchor_loc 	1
-			    nlines     	2
-			    max_width  	372
-			    justify    	0
-			    label      	"mapping")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"4284B079006F"
-			width      	390
-			height     	1365
-			icon_height 	0
-			icon_width 	0
-			icon_y_offset 	0
-			annotation 	1
-			Focus_Of_Control 	(object Focus_Of_Control "" @51
-			    location   	(1904, 928)
-			    line_color 	3342489
-			    InterObjView 	@50
-			    height     	60
-			    y_coord    	0
-			    Nested     	FALSE))
-		    (object InterObjView "iReader" @52
-			location   	(2385, 225)
-			font       	(object Font
-			    underline  	TRUE)
-			label      	(object ItemLabel
-			    Parent_View 	@52
-			    location   	(2385, 225)
-			    fill_color 	13434879
-			    anchor_loc 	1
-			    nlines     	2
-			    max_width  	506
-			    justify    	0
-			    label      	"iReader")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"4284B2DF029A"
-			width      	524
-			height     	1365
-			icon_height 	0
-			icon_width 	0
-			icon_y_offset 	0
-			annotation 	1
-			Focus_Of_Control 	(object Focus_Of_Control "" @53
-			    location   	(2385, 1072)
-			    line_color 	3342489
-			    InterObjView 	@52
-			    height     	248
-			    y_coord    	188
-			    Nested     	FALSE)
-			Focus_Of_Control 	(object Focus_Of_Control "" @54
-			    location   	(2385, 1200)
-			    line_color 	3342489
-			    InterObjView 	@52
-			    height     	60
-			    y_coord    	0
-			    Nested     	TRUE))
-		    (object InterObjView "RDmDomainManager" @55
-			location   	(832, 224)
-			font       	(object Font
-			    underline  	TRUE)
-			label      	(object ItemLabel
-			    Parent_View 	@55
-			    location   	(832, 224)
-			    fill_color 	13434879
-			    anchor_loc 	1
-			    nlines     	2
-			    max_width  	282
-			    justify    	0
-			    label      	"RDmDomainManager")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"4284A34501EF"
-			width      	300
-			height     	1365
-			icon_height 	0
-			icon_width 	0
-			icon_y_offset 	0
-			annotation 	1
-			Focus_Of_Control 	(object Focus_Of_Control "" @56
-			    location   	(832, 576)
-			    line_color 	3342489
-			    InterObjView 	@55
-			    height     	60
-			    y_coord    	0
-			    Nested     	FALSE))
-		    (object InterObjView "RProperty" @57
-			location   	(512, 224)
-			font       	(object Font
-			    underline  	TRUE)
-			label      	(object ItemLabel
-			    Parent_View 	@57
-			    location   	(512, 224)
-			    fill_color 	13434879
-			    anchor_loc 	1
-			    nlines     	2
-			    max_width  	282
-			    justify    	0
-			    label      	"RProperty")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"4284A1660328"
-			width      	300
-			height     	1365
-			icon_height 	0
-			icon_width 	0
-			icon_y_offset 	0
-			annotation 	1
-			Focus_Of_Control 	(object Focus_Of_Control "" @58
-			    location   	(512, 416)
-			    line_color 	3342489
-			    InterObjView 	@57
-			    height     	60
-			    y_coord    	0
-			    Nested     	FALSE))
-		    (object InterMessView "" @59
-			location   	(16, 416)
-			label      	(object SegLabel @60
-			    Parent_View 	@59
-			    location   	(398, 373)
-			    quidu      	"4284A17D00B8"
-			    anchor_loc 	1
-			    nlines     	1
-			    max_width  	417
-			    justify    	0
-			    label      	"Get( ..., bootmode)"
-			    pctDist    	0.697819
-			    height     	44
-			    orientation 	0)
-			line_color 	3342489
-			client     	@43
-			supplier   	@57
-			Focus_Src  	@44
-			Focus_Entry 	@58
-			origin     	(175, 416)
-			terminus   	(496, 416)
-			ordinal    	0)
-		    (object InterMessView "" @61
-			location   	(16, 736)
-			label      	(object SegLabel @62
-			    Parent_View 	@61
-			    location   	(1415, 678)
-			    quidu      	"4284B01E01D1"
-			    anchor_loc 	1
-			    nlines     	1
-			    max_width  	408
-			    justify    	0
-			    label      	"NewLC(bootmode)"
-			    pctDist    	0.760656
-			    height     	59
-			    orientation 	0)
-			line_color 	3342489
-			client     	@45
-			supplier   	@47
-			Focus_Src  	@46
-			Focus_Entry 	@48
-			origin     	(1183, 736)
-			terminus   	(1488, 736)
-			ordinal    	3)
-		    (object SelfMessView "" @63
-			location   	(16, 800)
-			label      	(object SegLabel @64
-			    Parent_View 	@63
-			    location   	(1803, 760)
-			    quidu      	"4284B03303C7"
-			    anchor_loc 	1
-			    nlines     	1
-			    max_width  	498
-			    justify    	0
-			    label      	"ConstructL(bootmode)"
-			    pctDist    	1.893333
-			    height     	41
-			    orientation 	0)
-			line_color 	3342489
-			client     	@47
-			supplier   	@47
-			Focus_Src  	@48
-			Focus_Entry 	@49
-			origin     	(1520, 800)
-			terminus   	(1670, 800)
-			ordinal    	4)
-		    (object InterMessView "" @65
-			location   	(16, 928)
-			label      	(object SegLabel @66
-			    Parent_View 	@65
-			    location   	(1835, 902)
-			    quidu      	"4284B09E0218"
-			    anchor_loc 	1
-			    nlines     	1
-			    max_width  	540
-			    justify    	0
-			    label      	"GetResourceFileName"
-			    pctDist    	0.858357
-			    height     	27
-			    orientation 	0)
-			line_color 	3342489
-			client     	@47
-			supplier   	@50
-			Focus_Src  	@49
-			Focus_Entry 	@51
-			origin     	(1519, 928)
-			terminus   	(1888, 928)
-			ordinal    	5)
-		    (object InterMessView "" @67
-			location   	(16, 1072)
-			label      	(object SegLabel @68
-			    Parent_View 	@67
-			    location   	(1944, 1028)
-			    quidu      	"4284B2F70089"
-			    anchor_loc 	1
-			    nlines     	1
-			    max_width  	495
-			    justify    	0
-			    label      	" NewL(resourcefile, ...)"
-			    pctDist    	0.500000
-			    height     	45
-			    orientation 	0)
-			line_color 	3342489
-			client     	@47
-			supplier   	@52
-			Focus_Src  	@48
-			Focus_Entry 	@53
-			origin     	(1519, 1072)
-			terminus   	(2369, 1072)
-			ordinal    	6)
-		    (object SelfMessView "" @69
-			location   	(16, 1200)
-			label      	(object SegLabel @70
-			    Parent_View 	@69
-			    location   	(2696, 1158)
-			    quidu      	"4284B341033D"
-			    anchor_loc 	1
-			    nlines     	1
-			    max_width  	555
-			    justify    	0
-			    label      	"ConstructL(resourcefile)"
-			    pctDist    	1.973333
-			    height     	43
-			    orientation 	0)
-			line_color 	3342489
-			client     	@52
-			supplier   	@52
-			Focus_Src  	@53
-			Focus_Entry 	@54
-			origin     	(2401, 1200)
-			terminus   	(2551, 1200)
-			ordinal    	7)
-		    (object InterMessView "" @71
-			location   	(16, 576)
-			label      	(object SegLabel @72
-			    Parent_View 	@71
-			    location   	(608, 533)
-			    quidu      	"4288B01B0319"
-			    anchor_loc 	1
-			    nlines     	1
-			    max_width  	920
-			    justify    	0
-			    label      	"AddDomainHierarchy(KDmHierarchyIdStartup)"
-			    pctDist    	0.676838
-			    height     	44
-			    orientation 	0)
-			line_color 	3342489
-			client     	@43
-			supplier   	@55
-			Focus_Src  	@44
-			Focus_Entry 	@56
-			origin     	(175, 576)
-			terminus   	(816, 576)
-			ordinal    	1)
-		    (object InterMessView "" @73
-			location   	(16, 688)
-			label      	(object SegLabel @74
-			    Parent_View 	@73
-			    location   	(663, 644)
-			    quidu      	"4288B0D0006A"
-			    anchor_loc 	1
-			    nlines     	1
-			    max_width  	159
-			    justify    	0
-			    label      	"StartL"
-			    pctDist    	0.500000
-			    height     	45
-			    orientation 	0)
-			line_color 	3342489
-			client     	@43
-			supplier   	@45
-			Focus_Src  	@44
-			Focus_Entry 	@46
-			origin     	(175, 688)
-			terminus   	(1152, 688)
-			ordinal    	2)))
-	    (object InteractionDiagram "Reading State Information from SSC"
-		mechanism_ref 	@2
-		quid       	"4284B4AF024A"
-		title      	"Reading State Information from SSC"
-		zoom       	68
-		max_height 	28350
-		max_width  	21600
-		origin_x   	0
-		origin_y   	21
-		items      	(list diagram_item_list
-		    (object InterObjView "starter" @75
-			location   	(180, 225)
-			font       	(object Font
-			    underline  	TRUE)
-			label      	(object ItemLabel
-			    Parent_View 	@75
-			    location   	(180, 225)
-			    fill_color 	13434879
-			    anchor_loc 	1
-			    nlines     	2
-			    max_width  	302
-			    justify    	0
-			    label      	"starter")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"4284B4B203E1"
-			width      	320
-			height     	1905
-			icon_height 	0
-			icon_width 	0
-			icon_y_offset 	0
-			annotation 	1
-			Focus_Of_Control 	(object Focus_Of_Control "" @76
-			    location   	(180, 368)
-			    line_color 	3342489
-			    InterObjView 	@75
-			    height     	1672
-			    y_coord    	1612
-			    Nested     	FALSE))
-		    (object InterObjView "systemstartup" @77
-			location   	(540, 225)
-			font       	(object Font
-			    underline  	TRUE)
-			label      	(object ItemLabel
-			    Parent_View 	@77
-			    location   	(540, 225)
-			    fill_color 	13434879
-			    anchor_loc 	1
-			    nlines     	2
-			    max_width  	322
-			    justify    	0
-			    label      	"systemstartup")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"4284B4CE021D"
-			width      	340
-			height     	1905
-			icon_height 	0
-			icon_width 	0
-			icon_y_offset 	0
-			annotation 	1
-			Focus_Of_Control 	(object Focus_Of_Control "" @78
-			    location   	(540, 384)
-			    line_color 	3342489
-			    InterObjView 	@77
-			    height     	1596
-			    y_coord    	1536
-			    Nested     	FALSE))
-		    (object InterObjView "iReader" @79
-			location   	(960, 225)
-			font       	(object Font
-			    underline  	TRUE)
-			label      	(object ItemLabel
-			    Parent_View 	@79
-			    location   	(960, 225)
-			    fill_color 	13434879
-			    anchor_loc 	1
-			    nlines     	2
-			    max_width  	420
-			    justify    	0
-			    label      	"iReader")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"4284B50D029E"
-			width      	438
-			height     	1905
-			icon_height 	0
-			icon_width 	0
-			icon_y_offset 	0
-			annotation 	1
-			Focus_Of_Control 	(object Focus_Of_Control "" @80
-			    location   	(960, 400)
-			    line_color 	3342489
-			    InterObjView 	@79
-			    height     	1520
-			    y_coord    	1460
-			    Nested     	FALSE)
-			Focus_Of_Control 	(object Focus_Of_Control "" @81
-			    location   	(960, 448)
-			    line_color 	3342489
-			    InterObjView 	@79
-			    height     	60
-			    y_coord    	0
-			    Nested     	TRUE)
-			Focus_Of_Control 	(object Focus_Of_Control "" @82
-			    location   	(960, 600)
-			    line_color 	3342489
-			    InterObjView 	@79
-			    height     	225
-			    y_coord    	165
-			    Nested     	TRUE)
-			Focus_Of_Control 	(object Focus_Of_Control "" @83
-			    location   	(960, 1065)
-			    line_color 	3342489
-			    InterObjView 	@79
-			    height     	60
-			    y_coord    	0
-			    Nested     	TRUE)
-			Focus_Of_Control 	(object Focus_Of_Control "" @84
-			    location   	(960, 1215)
-			    line_color 	3342489
-			    InterObjView 	@79
-			    height     	60
-			    y_coord    	0
-			    Nested     	TRUE))
-		    (object InterObjView "command" @85
-			location   	(1965, 225)
-			font       	(object Font
-			    underline  	TRUE)
-			label      	(object ItemLabel
-			    Parent_View 	@85
-			    location   	(1965, 225)
-			    fill_color 	13434879
-			    anchor_loc 	1
-			    nlines     	2
-			    max_width  	282
-			    justify    	0
-			    label      	"command")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"4284BFA80115"
-			width      	300
-			height     	1905
-			icon_height 	0
-			icon_width 	0
-			icon_y_offset 	0
-			annotation 	1
-			Focus_Of_Control 	(object Focus_Of_Control "" @86
-			    location   	(1965, 1455)
-			    line_color 	3342489
-			    InterObjView 	@85
-			    height     	60
-			    y_coord    	0
-			    Nested     	FALSE))
-		    (object InterObjView "stateInfo" @87
-			location   	(2415, 225)
-			font       	(object Font
-			    underline  	TRUE)
-			label      	(object ItemLabel
-			    Parent_View 	@87
-			    location   	(2415, 225)
-			    fill_color 	13434879
-			    anchor_loc 	1
-			    nlines     	2
-			    max_width  	492
-			    justify    	0
-			    label      	"stateInfo")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"4284C16C0192"
-			width      	510
-			height     	1905
-			icon_height 	0
-			icon_width 	0
-			icon_y_offset 	0
-			annotation 	1
-			Focus_Of_Control 	(object Focus_Of_Control "" @88
-			    location   	(2415, 705)
-			    line_color 	3342489
-			    InterObjView 	@87
-			    height     	60
-			    y_coord    	0
-			    Nested     	FALSE)
-			Focus_Of_Control 	(object Focus_Of_Control "" @89
-			    location   	(2415, 1800)
-			    line_color 	3342489
-			    InterObjView 	@87
-			    height     	60
-			    y_coord    	0
-			    Nested     	FALSE))
-		    (object InterObjView "appInfo" @90
-			location   	(1560, 225)
-			font       	(object Font
-			    underline  	TRUE)
-			label      	(object ItemLabel
-			    Parent_View 	@90
-			    location   	(1560, 225)
-			    fill_color 	13434879
-			    anchor_loc 	1
-			    nlines     	2
-			    max_width  	432
-			    justify    	0
-			    label      	"appInfo")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"4289DD5F0389"
-			width      	450
-			height     	1905
-			icon_height 	0
-			icon_width 	0
-			icon_y_offset 	0
-			annotation 	1
-			Focus_Of_Control 	(object Focus_Of_Control "" @91
-			    location   	(1560, 1335)
-			    line_color 	3342489
-			    InterObjView 	@90
-			    height     	60
-			    y_coord    	0
-			    Nested     	FALSE))
-		    (object InterMessView "" @92
-			location   	(16, 384)
-			label      	(object SegLabel @93
-			    Parent_View 	@92
-			    location   	(359, 340)
-			    quidu      	"4284B4DB02BB"
-			    anchor_loc 	1
-			    nlines     	1
-			    max_width  	633
-			    justify    	0
-			    label      	"GetNextStateL"
-			    pctDist    	0.500000
-			    height     	45
-			    orientation 	0)
-			line_color 	3342489
-			client     	@75
-			supplier   	@77
-			Focus_Src  	@76
-			Focus_Entry 	@78
-			origin     	(195, 384)
-			terminus   	(524, 384)
-			ordinal    	0)
-		    (object InterMessView "" @94
-			location   	(16, 400)
-			label      	(object SegLabel @95
-			    Parent_View 	@94
-			    location   	(748, 357)
-			    quidu      	"4284B5200010"
-			    anchor_loc 	1
-			    nlines     	1
-			    max_width  	610
-			    justify    	0
-			    label      	"GetStateInfoL"
-			    pctDist    	0.498361
-			    height     	44
-			    orientation 	0)
-			line_color 	3342489
-			client     	@77
-			supplier   	@79
-			Focus_Src  	@78
-			Focus_Entry 	@80
-			origin     	(555, 400)
-			terminus   	(944, 400)
-			ordinal    	1)
-		    (object SelfMessView "" @96
-			location   	(16, 448)
-			label      	(object SegLabel @97
-			    Parent_View 	@96
-			    location   	(1223, 421)
-			    quidu      	"4284B5530062"
-			    anchor_loc 	1
-			    nlines     	1
-			    max_width  	950
-			    justify    	0
-			    label      	"ReadStateInformationL"
-			    pctDist    	1.646667
-			    height     	28
-			    orientation 	0)
-			line_color 	3342489
-			client     	@79
-			supplier   	@79
-			Focus_Src  	@80
-			Focus_Entry 	@81
-			origin     	(976, 448)
-			terminus   	(1126, 448)
-			ordinal    	2)
-		    (object SelfMessView "" @98
-			location   	(15, 600)
-			label      	(object SegLabel @99
-			    Parent_View 	@98
-			    location   	(1184, 573)
-			    quidu      	"4284B86501AC"
-			    anchor_loc 	1
-			    nlines     	1
-			    max_width  	853
-			    justify    	0
-			    label      	"FindFirstStateEntryL"
-			    pctDist    	1.386667
-			    height     	28
-			    orientation 	0)
-			line_color 	3342489
-			client     	@79
-			supplier   	@79
-			Focus_Src  	@80
-			Focus_Entry 	@82
-			origin     	(976, 600)
-			terminus   	(1126, 600)
-			ordinal    	3)
-		    (object SelfMessView "" @100
-			location   	(15, 1065)
-			label      	(object SegLabel @101
-			    Parent_View 	@100
-			    location   	(1388, 1023)
-			    quidu      	"4284BB24015C"
-			    anchor_loc 	1
-			    nlines     	1
-			    max_width  	1492
-			    justify    	0
-			    label      	"ReadCommandListL(aCommandListId)"
-			    pctDist    	2.746667
-			    height     	43
-			    orientation 	0)
-			line_color 	3342489
-			client     	@79
-			supplier   	@79
-			Focus_Src  	@80
-			Focus_Entry 	@83
-			origin     	(976, 1065)
-			terminus   	(1126, 1065)
-			ordinal    	5)
-		    (object SelfMessView "" @102
-			location   	(15, 1215)
-			label      	(object SegLabel @103
-			    Parent_View 	@102
-			    location   	(1184, 1172)
-			    quidu      	"4284BDE9027D"
-			    anchor_loc 	1
-			    nlines     	1
-			    max_width  	722
-			    justify    	0
-			    label      	"ReadCommandInfoL *"
-			    pctDist    	1.393333
-			    height     	44
-			    orientation 	0)
-			line_color 	3342489
-			client     	@79
-			supplier   	@79
-			Focus_Src  	@80
-			Focus_Entry 	@84
-			origin     	(976, 1215)
-			terminus   	(1126, 1215)
-			ordinal    	6)
-		    (object InterMessView "" @104
-			location   	(15, 1455)
-			label      	(object SegLabel @105
-			    Parent_View 	@104
-			    location   	(1462, 1411)
-			    quidu      	"4284BFB20201"
-			    anchor_loc 	1
-			    nlines     	1
-			    max_width  	720
-			    justify    	0
-			    label      	"NewL(appInfo, ...)"
-			    pctDist    	0.500000
-			    height     	45
-			    orientation 	0)
-			line_color 	3342489
-			client     	@79
-			supplier   	@85
-			Focus_Src  	@80
-			Focus_Entry 	@86
-			origin     	(975, 1455)
-			terminus   	(1949, 1455)
-			ordinal    	8)
-		    (object Label @106
-			location   	(1170, 510)
-			nlines     	1
-			max_width  	600
-			label      	"[state = 0]")
-		    (object Label @107
-			location   	(1185, 945)
-			nlines     	1
-			max_width  	600
-			label      	"[type == EStartupProcess]")
-		    (object NoteView @108
-			location   	(1965, 1005)
-			font       	(object Font
-			    size       	8)
-			label      	(object ItemLabel
-			    Parent_View 	@108
-			    location   	(1827, 945)
-			    fill_color 	13434879
-			    nlines     	2
-			    max_width  	240
-			    label      	"Type could be app/DLL etc")
-			line_color 	3342489
-			fill_color 	13434879
-			width      	300
-			height     	132)
-		    (object NoteView @109
-			location   	(2040, 1140)
-			font       	(object Font
-			    size       	8)
-			label      	(object ItemLabel
-			    Parent_View 	@109
-			    location   	(1902, 1080)
-			    fill_color 	13434879
-			    nlines     	2
-			    max_width  	240
-			    label      	"Repeat for each command")
-			line_color 	3342489
-			fill_color 	13434879
-			width      	300
-			height     	132)
-		    (object InterMessView "" @110
-			location   	(15, 1335)
-			label      	(object SegLabel @111
-			    Parent_View 	@110
-			    location   	(1259, 1291)
-			    quidu      	"4289DDFF02AF"
-			    anchor_loc 	1
-			    nlines     	1
-			    max_width  	302
-			    justify    	0
-			    label      	"NewL"
-			    pctDist    	0.500000
-			    height     	45
-			    orientation 	0)
-			line_color 	3342489
-			client     	@79
-			supplier   	@90
-			Focus_Src  	@80
-			Focus_Entry 	@91
-			origin     	(975, 1335)
-			terminus   	(1544, 1335)
-			ordinal    	7)
-		    (object InterMessView "" @112
-			location   	(15, 705)
-			label      	(object SegLabel @113
-			    Parent_View 	@112
-			    location   	(1687, 661)
-			    quidu      	"4289DEE0027F"
-			    anchor_loc 	1
-			    nlines     	1
-			    max_width  	302
-			    justify    	0
-			    label      	"NewL"
-			    pctDist    	0.500000
-			    height     	45
-			    orientation 	0)
-			line_color 	3342489
-			client     	@79
-			supplier   	@87
-			Focus_Src  	@82
-			Focus_Entry 	@88
-			origin     	(975, 705)
-			terminus   	(2399, 705)
-			ordinal    	4)
-		    (object InterMessView "" @114
-			location   	(15, 1800)
-			label      	(object SegLabel @115
-			    Parent_View 	@114
-			    location   	(1687, 1756)
-			    quidu      	"4289DEF5031C"
-			    anchor_loc 	1
-			    nlines     	1
-			    max_width  	1304
-			    justify    	0
-			    label      	"SetCommandList(CommandList)"
-			    pctDist    	0.500000
-			    height     	45
-			    orientation 	0)
-			line_color 	3342489
-			client     	@79
-			supplier   	@87
-			Focus_Src  	@80
-			Focus_Entry 	@89
-			origin     	(975, 1800)
-			terminus   	(2399, 1800)
-			ordinal    	9)))
-	    (object InteractionDiagram "Executing commands for one state"
-		mechanism_ref 	@3
-		quid       	"4284C2C90079"
-		title      	"Executing commands for one state"
-		zoom       	79
-		max_height 	28350
-		max_width  	21600
-		origin_x   	0
-		origin_y   	0
-		items      	(list diagram_item_list
-		    (object InterObjView "CSystemStarter" @116
-			location   	(165, 225)
-			font       	(object Font
-			    underline  	TRUE)
-			label      	(object ItemLabel
-			    Parent_View 	@116
-			    location   	(165, 225)
-			    fill_color 	13434879
-			    anchor_loc 	1
-			    nlines     	2
-			    max_width  	282
-			    justify    	0
-			    label      	"CSystemStarter")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"4284C2D000B7"
-			width      	300
-			height     	1455
-			icon_height 	0
-			icon_width 	0
-			icon_y_offset 	0
-			annotation 	1
-			Focus_Of_Control 	(object Focus_Of_Control "" @117
-			    location   	(165, 320)
-			    line_color 	3342489
-			    InterObjView 	@116
-			    height     	260
-			    y_coord    	200
-			    Nested     	FALSE))
-		    (object InterObjView "state" @118
-			location   	(480, 225)
-			font       	(object Font
-			    underline  	TRUE)
-			label      	(object ItemLabel
-			    Parent_View 	@118
-			    location   	(480, 225)
-			    fill_color 	13434879
-			    anchor_loc 	1
-			    nlines     	2
-			    max_width  	282
-			    justify    	0
-			    label      	"state")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"4284C2D9001B"
-			width      	300
-			height     	1455
-			icon_height 	0
-			icon_width 	0
-			icon_y_offset 	0
-			annotation 	1
-			Focus_Of_Control 	(object Focus_Of_Control "" @119
-			    location   	(480, 352)
-			    line_color 	3342489
-			    InterObjView 	@118
-			    height     	168
-			    y_coord    	108
-			    Nested     	FALSE)
-			Focus_Of_Control 	(object Focus_Of_Control "" @120
-			    location   	(480, 624)
-			    line_color 	3342489
-			    InterObjView 	@118
-			    height     	966
-			    y_coord    	906
-			    Nested     	FALSE)
-			Focus_Of_Control 	(object Focus_Of_Control "" @121
-			    location   	(480, 640)
-			    line_color 	3342489
-			    fill_color 	13434879
-			    InterObjView 	@118
-			    height     	60
-			    y_coord    	0
-			    Nested     	TRUE))
-		    (object InterObjView "RDmManagerSession" @122
-			location   	(795, 225)
-			font       	(object Font
-			    underline  	TRUE)
-			label      	(object ItemLabel
-			    Parent_View 	@122
-			    location   	(795, 225)
-			    fill_color 	13434879
-			    anchor_loc 	1
-			    nlines     	2
-			    max_width  	282
-			    justify    	0
-			    label      	"RDmManagerSession")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"4284CDE90163"
-			width      	300
-			height     	1455
-			icon_height 	0
-			icon_width 	0
-			icon_y_offset 	0
-			annotation 	1
-			Focus_Of_Control 	(object Focus_Of_Control "" @123
-			    location   	(795, 400)
-			    line_color 	3342489
-			    InterObjView 	@122
-			    height     	60
-			    y_coord    	0
-			    Nested     	FALSE))
-		    (object InterObjView "aCommand" @124
-			location   	(1125, 225)
-			font       	(object Font
-			    underline  	TRUE)
-			label      	(object ItemLabel
-			    Parent_View 	@124
-			    location   	(1125, 225)
-			    fill_color 	13434879
-			    anchor_loc 	1
-			    nlines     	2
-			    max_width  	308
-			    justify    	0
-			    label      	"aCommand")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"4284DCC90004"
-			width      	326
-			height     	1455
-			icon_height 	0
-			icon_width 	0
-			icon_y_offset 	0
-			annotation 	1
-			Focus_Of_Control 	(object Focus_Of_Control "" @125
-			    location   	(1125, 752)
-			    line_color 	3342489
-			    InterObjView 	@124
-			    height     	388
-			    y_coord    	328
-			    Nested     	FALSE)
-			Focus_Of_Control 	(object Focus_Of_Control "" @126
-			    location   	(1125, 832)
-			    line_color 	3342489
-			    InterObjView 	@124
-			    height     	248
-			    y_coord    	188
-			    Nested     	TRUE)
-			Focus_Of_Control 	(object Focus_Of_Control "" @127
-			    location   	(1125, 960)
-			    line_color 	3342489
-			    InterObjView 	@124
-			    height     	60
-			    y_coord    	0
-			    Nested     	TRUE)
-			Focus_Of_Control 	(object Focus_Of_Control "" @128
-			    location   	(1125, 1065)
-			    line_color 	3342489
-			    InterObjView 	@124
-			    height     	240
-			    y_coord    	180
-			    Nested     	FALSE)
-			Focus_Of_Control 	(object Focus_Of_Control "" @129
-			    location   	(1125, 1185)
-			    line_color 	3342489
-			    InterObjView 	@124
-			    height     	60
-			    y_coord    	0
-			    Nested     	TRUE))
-		    (object InterObjView "aCommand" @130
-			location   	(1455, 225)
-			font       	(object Font
-			    underline  	TRUE)
-			label      	(object ItemLabel
-			    Parent_View 	@130
-			    location   	(1455, 225)
-			    fill_color 	13434879
-			    anchor_loc 	1
-			    nlines     	2
-			    max_width  	294
-			    justify    	0
-			    label      	"aCommand")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"428B52A90371"
-			width      	312
-			height     	1455
-			icon_height 	0
-			icon_width 	0
-			icon_y_offset 	0
-			annotation 	1
-			Focus_Of_Control 	(object Focus_Of_Control "" @131
-			    location   	(1455, 1305)
-			    line_color 	3342489
-			    InterObjView 	@130
-			    height     	60
-			    y_coord    	0
-			    Nested     	FALSE))
-		    (object InterObjView "aComand" @132
-			location   	(1845, 225)
-			font       	(object Font
-			    underline  	TRUE)
-			label      	(object ItemLabel
-			    Parent_View 	@132
-			    location   	(1845, 225)
-			    fill_color 	13434879
-			    anchor_loc 	1
-			    nlines     	2
-			    max_width  	420
-			    justify    	0
-			    label      	"aComand")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"428B56640310"
-			width      	438
-			height     	1455
-			icon_height 	0
-			icon_width 	0
-			icon_y_offset 	0
-			annotation 	1
-			Focus_Of_Control 	(object Focus_Of_Control "" @133
-			    location   	(1845, 1395)
-			    line_color 	3342489
-			    InterObjView 	@132
-			    height     	60
-			    y_coord    	0
-			    Nested     	FALSE))
-		    (object InterObjView "aCommand" @134
-			location   	(2265, 225)
-			font       	(object Font
-			    underline  	TRUE)
-			label      	(object ItemLabel
-			    Parent_View 	@134
-			    location   	(2265, 225)
-			    fill_color 	13434879
-			    anchor_loc 	1
-			    nlines     	2
-			    max_width  	348
-			    justify    	0
-			    label      	"aCommand")
-			icon_style 	"Icon"
-			line_color 	3342489
-			fill_color 	13434879
-			quidu      	"428B5A0B0389"
-			width      	366
-			height     	1455
-			icon_height 	0
-			icon_width 	0
-			icon_y_offset 	0
-			annotation 	1
-			Focus_Of_Control 	(object Focus_Of_Control "" @135
-			    location   	(2265, 1470)
-			    line_color 	3342489
-			    InterObjView 	@134
-			    height     	60
-			    y_coord    	0
-			    Nested     	FALSE))
-		    (object InterMessView "" @136
-			location   	(16, 352)
-			label      	(object SegLabel @137
-			    Parent_View 	@136
-			    location   	(322, 308)
-			    quidu      	"4284C2E601E1"
-			    anchor_loc 	1
-			    nlines     	1
-			    max_width  	277
-			    justify    	0
-			    label      	"StartL"
-			    pctDist    	0.500000
-			    height     	45
-			    orientation 	0)
-			line_color 	3342489
-			client     	@116
-			supplier   	@118
-			Focus_Src  	@117
-			Focus_Entry 	@119
-			origin     	(180, 352)
-			terminus   	(464, 352)
-			ordinal    	0)
-		    (object InterMessView "" @138
-			location   	(16, 400)
-			label      	(object SegLabel @139
-			    Parent_View 	@138
-			    location   	(771, 357)
-			    quidu      	"4284CE0B0116"
-			    anchor_loc 	1
-			    nlines     	1
-			    max_width  	899
-			    justify    	0
-			    label      	"RequestDomainTransition"
-			    pctDist    	0.975352
-			    height     	44
-			    orientation 	0)
-			line_color 	3342489
-			client     	@118
-			supplier   	@122
-			Focus_Src  	@119
-			Focus_Entry 	@123
-			origin     	(495, 400)
-			terminus   	(779, 400)
-			ordinal    	1)
-		    (object SelfMessView "" @140
-			location   	(16, 640)
-			label      	(object SegLabel @141
-			    Parent_View 	@140
-			    location   	(646, 597)
-			    quidu      	"4284DCE401CA"
-			    anchor_loc 	1
-			    nlines     	1
-			    max_width  	483
-			    justify    	0
-			    label      	"DoCommand"
-			    pctDist    	1.000000
-			    height     	44
-			    orientation 	0)
-			line_color 	3342489
-			fill_color 	8454143
-			client     	@118
-			supplier   	@118
-			Focus_Src  	@120
-			Focus_Entry 	@121
-			origin     	(496, 640)
-			terminus   	(646, 640)
-			ordinal    	2)
-		    (object InterMessView "" @142
-			location   	(16, 752)
-			label      	(object SegLabel @143
-			    Parent_View 	@142
-			    location   	(802, 708)
-			    quidu      	"4284DD17038F"
-			    anchor_loc 	1
-			    nlines     	1
-			    max_width  	333
-			    justify    	0
-			    label      	"Execute"
-			    pctDist    	0.500000
-			    height     	45
-			    orientation 	0)
-			line_color 	3342489
-			client     	@118
-			supplier   	@124
-			Focus_Src  	@120
-			Focus_Entry 	@125
-			origin     	(495, 752)
-			terminus   	(1109, 752)
-			ordinal    	3)
-		    (object SelfMessView "" @144
-			location   	(16, 832)
-			label      	(object SegLabel @145
-			    Parent_View 	@144
-			    location   	(1216, 788)
-			    quidu      	"4284DDEE0303"
-			    anchor_loc 	1
-			    nlines     	1
-			    max_width  	376
-			    justify    	0
-			    label      	" Utility procs"
-			    pctDist    	0.500000
-			    height     	45
-			    orientation 	0)
-			line_color 	3342489
-			client     	@124
-			supplier   	@124
-			Focus_Src  	@125
-			Focus_Entry 	@126
-			origin     	(1141, 832)
-			terminus   	(1291, 832)
-			ordinal    	4)
-		    (object SelfMessView "" @146
-			location   	(16, 960)
-			label      	(object SegLabel @147
-			    Parent_View 	@146
-			    location   	(1216, 916)
-			    quidu      	"4284DE4701E8"
-			    anchor_loc 	1
-			    nlines     	1
-			    max_width  	363
-			    justify    	0
-			    label      	"Utility procs"
-			    pctDist    	0.500000
-			    height     	45
-			    orientation 	0)
-			line_color 	3342489
-			client     	@124
-			supplier   	@124
-			Focus_Src  	@126
-			Focus_Entry 	@127
-			origin     	(1141, 960)
-			terminus   	(1291, 960)
-			ordinal    	5)
-		    (object InterMessView "" @148
-			location   	(15, 1065)
-			label      	(object SegLabel @149
-			    Parent_View 	@148
-			    location   	(801, 1022)
-			    quidu      	"428B503F006C"
-			    anchor_loc 	1
-			    nlines     	1
-			    max_width  	333
-			    justify    	0
-			    label      	"Execute"
-			    pctDist    	0.499454
-			    height     	44
-			    orientation 	0)
-			line_color 	3342489
-			client     	@118
-			supplier   	@124
-			Focus_Src  	@120
-			Focus_Entry 	@128
-			origin     	(495, 1065)
-			terminus   	(1109, 1065)
-			ordinal    	6)
-		    (object SelfMessView "" @150
-			location   	(15, 1185)
-			label      	(object SegLabel @151
-			    Parent_View 	@150
-			    location   	(1245, 1142)
-			    quidu      	"428B5083008C"
-			    anchor_loc 	1
-			    nlines     	1
-			    max_width  	363
-			    justify    	0
-			    label      	"Utility procs"
-			    pctDist    	0.700000
-			    height     	44
-			    orientation 	0)
-			line_color 	3342489
-			client     	@124
-			supplier   	@124
-			Focus_Src  	@128
-			Focus_Entry 	@129
-			origin     	(1141, 1185)
-			terminus   	(1291, 1185)
-			ordinal    	7)
-		    (object InterMessView "" @152
-			location   	(15, 1305)
-			label      	(object SegLabel @153
-			    Parent_View 	@152
-			    location   	(967, 1261)
-			    quidu      	"428B52CB0382"
-			    anchor_loc 	1
-			    nlines     	1
-			    max_width  	333
-			    justify    	0
-			    label      	"Execute"
-			    pctDist    	0.500000
-			    height     	45
-			    orientation 	0)
-			line_color 	3342489
-			client     	@118
-			supplier   	@130
-			Focus_Src  	@120
-			Focus_Entry 	@131
-			origin     	(495, 1305)
-			terminus   	(1439, 1305)
-			ordinal    	8)
-		    (object InterMessView "" @154
-			location   	(15, 1395)
-			label      	(object SegLabel @155
-			    Parent_View 	@154
-			    location   	(1162, 1351)
-			    quidu      	"428B567F00B0"
-			    anchor_loc 	1
-			    nlines     	1
-			    max_width  	368
-			    justify    	0
-			    label      	"Execute"
-			    pctDist    	0.500000
-			    height     	45
-			    orientation 	0)
-			line_color 	3342489
-			client     	@118
-			supplier   	@132
-			Focus_Src  	@120
-			Focus_Entry 	@133
-			origin     	(495, 1395)
-			terminus   	(1829, 1395)
-			ordinal    	9)
-		    (object InterMessView "" @156
-			location   	(15, 1470)
-			label      	(object SegLabel @157
-			    Parent_View 	@156
-			    location   	(1372, 1426)
-			    quidu      	"428B5A430149"
-			    anchor_loc 	1
-			    nlines     	1
-			    max_width  	368
-			    justify    	0
-			    label      	"Execute"
-			    pctDist    	0.500000
-			    height     	45
-			    orientation 	0)
-			line_color 	3342489
-			client     	@118
-			supplier   	@134
-			Focus_Src  	@120
-			Focus_Entry 	@135
-			origin     	(495, 1470)
-			terminus   	(2249, 1470)
-			ordinal    	10)))))
-    root_subsystem 	(object SubSystem "Component View"
-	quid       	"426E373D03AF"
-	physical_models 	(list unit_reference_list)
-	physical_presentations 	(list unit_reference_list
-	    (object Module_Diagram "Main"
-		quid       	"426E373D03BB"
-		title      	"Main"
-		zoom       	100
-		max_height 	28350
-		max_width  	21600
-		origin_x   	0
-		origin_y   	0
-		items      	(list diagram_item_list))))
-    process_structure 	(object Processes
-	quid       	"426E373D03B0"
-	ProcsNDevs 	(list
-	    (object Process_Diagram "Deployment View"
-		quid       	"426E373D03B2"
-		title      	"Deployment View"
-		zoom       	100
-		max_height 	28350
-		max_width  	21600
-		origin_x   	0
-		origin_y   	0
-		items      	(list diagram_item_list))))
-    properties 	(object Properties
-	attributes 	(list Attribute_Set
-	    (object Attribute
-		tool       	"DDL"
-		name       	"propertyId"
-		value      	"809135966")
-	    (object Attribute
-		tool       	"DDL"
-		name       	"default__Project"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"DDL"
-			name       	"Directory"
-			value      	"AUTO GENERATE")
-		    (object Attribute
-			tool       	"DDL"
-			name       	"DataBase"
-			value      	("DataBaseSet" 800))
-		    (object Attribute
-			tool       	"DDL"
-			name       	"DataBaseSet"
-			value      	(list Attribute_Set
-			    (object Attribute
-				tool       	"DDL"
-				name       	"ANSI"
-				value      	800)
-			    (object Attribute
-				tool       	"DDL"
-				name       	"Oracle"
-				value      	801)
-			    (object Attribute
-				tool       	"DDL"
-				name       	"SQLServer"
-				value      	802)
-			    (object Attribute
-				tool       	"DDL"
-				name       	"Sybase"
-				value      	803)
-			    (object Attribute
-				tool       	"DDL"
-				name       	"Watcom"
-				value      	804)))
-		    (object Attribute
-			tool       	"DDL"
-			name       	"PrimaryKeyColumnName"
-			value      	"Id")
-		    (object Attribute
-			tool       	"DDL"
-			name       	"PrimaryKeyColumnType"
-			value      	"NUMBER(5)")
-		    (object Attribute
-			tool       	"DDL"
-			name       	"ViewName"
-			value      	"V_")
-		    (object Attribute
-			tool       	"DDL"
-			name       	"TableName"
-			value      	"T_")
-		    (object Attribute
-			tool       	"DDL"
-			name       	"InheritSuffix"
-			value      	"_V")
-		    (object Attribute
-			tool       	"DDL"
-			name       	"DropClause"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"DDL"
-			name       	"BaseViews"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"DDL"
-			name       	"DDLScriptFilename"
-			value      	"DDL1.SQL")))
-	    (object Attribute
-		tool       	"DDL"
-		name       	"default__Attribute"
-		value      	(list Attribute_Set
-		    (object Attribute
-			tool       	"DDL"
-			name       	"ColumnType"
-			value      	"VARCHAR")
-		    (object Attribute
-			tool       	"DDL"
-			name       	"Length"
-			value      	"")
-		    (object Attribute
-			tool       	"DDL"
-			name       	"NullsOK"
-			value      	TRUE)
-		    (object Attribute
-			tool       	"DDL"
-			name       	"PrimaryKey"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"DDL"
-			name       	"Unique"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"DDL"
-			name       	"CompositeUnique"
-			value      	FALSE)
-		    (object Attribute
-			tool       	"DDL"
-			name       	"CheckConstraint"
-			value      	"")))
-	    (object Attribute
-		tool       	"DDL"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"RequisitePro"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"Rose Model Integrator"
-		name       	"HiddenTool"
-		value      	FALSE)
-	    (object Attribute
-		tool       	"Version Control"
-		name       	"HiddenTool"
-		value      	FALSE))
-	quid       	"426E373D03B1"))
Binary file sysstatemgmt/systemstarter/documentation/9.5/SystemStarter.EAP has changed
--- a/sysstatemgmt/systemstarter/group/app-framework_sysstart.mrp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstarter/group/app-framework_sysstart.mrp	Thu Jul 22 16:45:41 2010 +0100
@@ -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	app-framework_sysstart
 source	\sf\os\devicesrv\sysstatemgmt\systemstarter
 binary	\sf\os\devicesrv\sysstatemgmt\systemstarter\group	all
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysstatemgmt/systemstarter/test/tsysstart/group/sysstarttest.pkg	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "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: 
+;
+
+
+;Languages
+&EN
+
+
+;Localised Vendor name
+%{"SysStartTests EN"}
+
+; Vendor name
+: "SysStartTests"
+
+"\sf\os\devicesrv\sysstatemgmt\systemstarter\test\tsysstart\scripts\appfwk_sysstart_test_ReRunSysStart.script"-"c:\devicesrv\sysstarttest\appfwk_sysstart_test_ReRunSysStart.script"
+
--- a/sysstatemgmt/systemstatemgr/cmd/src/cmdpublishsystemstate.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatemgr/cmd/src/cmdpublishsystemstate.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -294,6 +294,9 @@
 	if(iConnected)
 		{
 		iDomainManager.CancelTransition();
+		// Close domain manager connection
+		iDomainManager.Close();
+		iConnected = EFalse;
 		}
 	}
 
--- a/sysstatemgmt/systemstatemgr/group/app-framework_ssma.mrp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatemgr/group/app-framework_ssma.mrp	Thu Jul 22 16:45:41 2010 +0100
@@ -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	app-framework_ssma
 source	\sf\os\devicesrv\sysstatemgmt\systemstatemgr
 binary	\sf\os\devicesrv\sysstatemgmt\systemstatemgr\group	all
--- a/sysstatemgmt/systemstatemgr/ssm/src/ssmstatetransitionengine.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatemgr/ssm/src/ssmstatetransitionengine.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -533,7 +533,9 @@
 	{
 	iResolver.ReleasePolicyResolver();
 	delete iQueuedTransition;
+	iQueuedTransition = NULL;
 	delete iCurrentTransition;
+	iCurrentTransition = NULL;	
 	iCleSession.ReleaseCle();
 	}
 #endif
--- a/sysstatemgmt/systemstatemgr/sus/src/ssmsuscli.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatemgr/sus/src/ssmsuscli.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -109,7 +109,7 @@
  Usage pattern:
  @code
 	RSsmSusCli session;
-	session.Connect();
+	User::LeaveIfError(fs.Connect());
 	CleanupStackClosePushL(session);
 	TPckgC<TSsmSupInfo>* infoBuf = new (ELeave) TPckgC<TSsmSupInfo>(info);
 	session.RequestLoadSup(*infoBuf, status);
--- a/sysstatemgmt/systemstatemgr/sus/src/susemergencycallrfadaptation.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatemgr/sus/src/susemergencycallrfadaptation.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -278,8 +278,6 @@
 	DEBUGPRINT2A("CEmergencyCallRfAdaptationRequests processed the request with funtion id: %d", iCurrentMessage->Function());
 	iCurrentMessage->Complete(iStatus.Int());
 	DeleteAdaptationMessage();
-	iCurrentMessage = NULL;  
-
 	if( (iPendingEmergencyRequestsQueue.Count()) > 0 )
 		{
         CEmergencyAdaptationMessage *messageCopy = NULL;
@@ -295,7 +293,6 @@
 		{
         iCurrentMessage->Complete(aError);
 		DeleteAdaptationMessage();
-		iCurrentMessage = NULL;
 		}
 	
 	while( (iPendingEmergencyRequestsQueue.Count() > 0 ))
@@ -303,7 +300,6 @@
         Dequeue(iCurrentMessage);
         iCurrentMessage->Complete(aError);
         DeleteAdaptationMessage();
-        iCurrentMessage = NULL;
         }
 	
 	return KErrNone;
@@ -316,7 +312,6 @@
 		{
 		iCurrentMessage->Complete(KErrCancel);
 		DeleteAdaptationMessage();
-		iCurrentMessage = NULL;
 		}
 		
 	while( (iPendingEmergencyRequestsQueue.Count() > 0 ))
@@ -324,7 +319,6 @@
         Dequeue(iCurrentMessage);
         iCurrentMessage->Complete(KErrCancel);
         DeleteAdaptationMessage();
-        iCurrentMessage = NULL;
 		}
 	}
 
@@ -349,7 +343,8 @@
  */
 void CEmergencyCallRfAdaptation::DeleteAdaptationMessage()
     {
-    if(iCurrentMessage->IsMessageReserved())
+	//Do not delete iCurrentMessage if it is owned by iAdaptationReservedMessageArray.
+	if(iCurrentMessage->IsMessageReserved())
         {
         iCurrentMessage->UnsetMessageStatus(EMsgInUse);
         ++iReserveMsgCount;
@@ -357,7 +352,8 @@
     else
         {
         delete iCurrentMessage;
-        }    
+		}
+	iCurrentMessage = NULL;
     }
 
 void CEmergencyCallRfAdaptation::Dequeue(CEmergencyAdaptationMessage *&aCurrentMessage)
--- a/sysstatemgmt/systemstatemgr/sus/src/susstateadaptation.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatemgr/sus/src/susstateadaptation.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -172,7 +172,11 @@
 			DEBUGPRINT1A("CStateAdaptationRequests cancelling current request as requested");
 			iStateAdaptation.RequestCancel();
 			}
-		iPendingRequestsQueue.RemoveFromQueueAndComplete(aMessage);  	
+		iPendingRequestsQueue.RemoveFromQueueAndComplete(aMessage); 	
+		if(iPendingRequestsQueue.IsEmpty())
+		    {
+		    iPendingRequestsQueue.Close();
+		    }
 		aMessage.Complete(KErrNone);
 		}
 	else
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysstatemgmt/systemstatemgr/test/tcle/group/ssmatest_tcle.pkg	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "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: 
+;
+
+
+;Languages
+&EN
+
+
+;Localised Vendor name
+%{"SsmCleTests EN"}
+
+; Vendor name
+: "SsmCleTests"
+
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tcle\scripts\ssmatest_cle_rclesession.script"-"c:\devicesrv\ssmatest\ssmatest_cle_rclesession.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tcle\scripts\ssmatest_cle_pause.script"-"c:\devicesrv\ssmatest\ssmatest_cle_pause.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tcle\scripts\ssmatest_cle_dwfs_bad.script"-"c:\devicesrv\ssmatest\ssmatest_cle_dwfs_bad.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tcle\scripts\ssmatest_cle_dwfs_bad_norend.script"-"c:\devicesrv\ssmatest\ssmatest_cle_dwfs_bad_norend.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tcle\scripts\ssmatest_cle_dwfs_good.script"-"c:\devicesrv\ssmatest\ssmatest_cle_dwfs_good.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tcle\scripts\ssmatest_cle_fandf_bad.script"-"c:\devicesrv\ssmatest\ssmatest_cle_fandf_bad.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tcle\scripts\ssmatest_cle_fandf_good.script"-"c:\devicesrv\ssmatest\ssmatest_cle_fandf_good.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tcle\scripts\ssmatest_cle_wfs_bad.script"-"c:\devicesrv\ssmatest\ssmatest_cle_wfs_bad.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tcle\scripts\ssmatest_cle_wfs_good.script"-"c:\devicesrv\ssmatest\ssmatest_cle_wfs_good.script"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysstatemgmt/systemstatemgr/test/tcmd/group/ssmatest_tcmd.pkg	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,46 @@
+;
+; 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".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description: 
+;
+
+
+;Languages
+&EN
+
+
+;Localised Vendor name
+%{"SsmCmdTests EN"}
+
+; Vendor name
+: "SsmCmdTests"
+
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tcmd\scripts\ssmatest_cmd_resourcereader.script"-"c:\devicesrv\ssmatest\ssmatest_cmd_resourcereader.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tcmd\scripts\ssmatest_cmd_amastarter.script"-"c:\devicesrv\ssmatest\ssmatest_cmd_amastarter.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tcmd\scripts\ssmatest_cmd_commandlist.script"-"c:\devicesrv\ssmatest\ssmatest_cmd_commandlist.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tcmd\scripts\ssmatest_cmd_customcommand.script"-"c:\devicesrv\ssmatest\ssmatest_cmd_customcommand.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tcmd\scripts\ssmatest_cmd_finalisedrives.script"-"c:\devicesrv\ssmatest\ssmatest_cmd_finalisedrives.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tcmd\scripts\ssmatest_cmd_loadsup.script"-"c:\devicesrv\ssmatest\ssmatest_cmd_loadsup.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tcmd\scripts\ssmatest_cmd_persisthalattributes.script"-"c:\devicesrv\ssmatest\ssmatest_cmd_persisthalattributes.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tcmd\scripts\ssmatest_cmd_poweroff.script"-"c:\devicesrv\ssmatest\ssmatest_cmd_poweroff.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tcmd\scripts\ssmatest_cmd_publishswp.script"-"c:\devicesrv\ssmatest\ssmatest_cmd_publishswp.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tcmd\scripts\ssmatest_cmd_publishsystemstate.script"-"c:\devicesrv\ssmatest\ssmatest_cmd_publishsystemstate.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tcmd\scripts\ssmatest_cmd_reqswpchange.script"-"c:\devicesrv\ssmatest\ssmatest_cmd_reqswpchange.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tcmd\scripts\ssmatest_cmd_multiplewait.script"-"c:\devicesrv\ssmatest\ssmatest_cmd_multiplewait.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tcmd\scripts\ssmatest_cmd_startapp.script"-"c:\devicesrv\ssmatest\ssmatest_cmd_amastarter.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tcmd\scripts\ssmatest_cmd_startprocess.script"-"c:\devicesrv\ssmatest\ssmatest_cmd_startprocess.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tcmd\scripts\ssmatest_cmd_waitforapparcinit.script"-"c:\devicesrv\ssmatest\ssmatest_cmd_waitforapparcinit.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tcmd\scripts\ssmatest_cmd_setpandskey.script"-"c:\devicesrv\ssmatest\ssmatest_cmd_setpandskey.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tcmd\scripts\ssmatest_cmd_custcmd_neverunload.script"-"c:\devicesrv\ssmatest\ssmatest_cmd_custcmd_neverunload.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tcmd\scripts\ssmatest_cmd_i_bics.script"-"c:\devicesrv\ssmatest\ssmatest_cmd_i_bics.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tcmd\scripts\ssmatest_cmd_runcletest.script"-"c:\devicesrv\ssmatest\ssmatest_cmd_runcletest.script"
--- a/sysstatemgmt/systemstatemgr/test/tcmd/src/tcmd_step_resourcereader.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatemgr/test/tcmd/src/tcmd_step_resourcereader.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -1880,6 +1880,7 @@
 	User::WaitForRequest(status);
 	TExitCategoryName category = thread.ExitCategory();
 	RDebug::Print(_L("***** Exit Category = %S *****"),&category);
+	INFO_PRINTF2(_L("***** Exit Category = %S *****"), &category);
 	TEST(category.Compare(KPanicCmdResourceReader) == 0); // always expecting a resource reader panic
 	const TInt exitReason = thread.ExitReason();
 	thread.Close();
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysstatemgmt/systemstatemgr/test/tcmn/group/ssmatest_tcmn.pkg	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,33 @@
+;
+; 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".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description: 
+;
+
+
+;Languages
+&EN
+
+
+;Localised Vendor name
+%{"SsmCmnTests EN"}
+
+; Vendor name
+: "SsmCmnTests"
+
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tcmn\scripts\ssmatest_cmn_state.script"-"c:\devicesrv\ssmatest\ssmatest_cmn_state.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tcmn\scripts\ssmatest_cmn_swpvalue.script"-"c:\devicesrv\ssmatest\ssmatest_cmn_swpvalue.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tcmn\scripts\ssmatest_cmn_systemwideproperty.script"-"c:\devicesrv\ssmatest\ssmatest_cmn_systemwideproperty.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tcmn\scripts\ssmatest_cmn_stateawaresession.script"-"c:\devicesrv\ssmatest\ssmatest_cmn_stateawaresession.script"
+
+
--- a/sysstatemgmt/systemstatemgr/test/testapps/group/ssmcletestapplication.mmp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatemgr/test/testapps/group/ssmcletestapplication.mmp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -31,7 +31,7 @@
 USERINCLUDE   	../../../localinc
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 MW_LAYER_SYSTEMINCLUDE_SYMBIAN 
-SYSTEMINCLUDE	/epoc32/include/techview
+MW_LAYER_SYSTEMINCLUDE
 
 LIBRARY     euser.lib 
 LIBRARY		apparc.lib 
--- a/sysstatemgmt/systemstatemgr/test/testapps/group/ssmtestappgood.mmp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatemgr/test/testapps/group/ssmtestappgood.mmp	Thu Jul 22 16:45:41 2010 +0100
@@ -27,7 +27,8 @@
 USERINCLUDE   	../inc
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 MW_LAYER_SYSTEMINCLUDE_SYMBIAN 
-SYSTEMINCLUDE	/epoc32/include/techview
+//SYSTEMINCLUDE	/epoc32/include/techview
+MW_LAYER_SYSTEMINCLUDE
 
 LIBRARY     euser.lib 
 LIBRARY		apparc.lib 
--- a/sysstatemgmt/systemstatemgr/test/testapps/group/ssmtestappnorv.mmp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatemgr/test/testapps/group/ssmtestappnorv.mmp	Thu Jul 22 16:45:41 2010 +0100
@@ -25,10 +25,11 @@
 
 USERINCLUDE   	.
 USERINCLUDE   	../inc
-SYSTEMINCLUDE	/epoc32/include/techview
+//SYSTEMINCLUDE	/epoc32/include/techview
 
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 MW_LAYER_SYSTEMINCLUDE_SYMBIAN 
+MW_LAYER_SYSTEMINCLUDE
 
 LIBRARY     euser.lib 
 LIBRARY		apparc.lib 
--- a/sysstatemgmt/systemstatemgr/test/testapps/group/ssmtestapppanic.mmp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatemgr/test/testapps/group/ssmtestapppanic.mmp	Thu Jul 22 16:45:41 2010 +0100
@@ -25,10 +25,11 @@
 
 USERINCLUDE   	.
 USERINCLUDE   	../inc
-SYSTEMINCLUDE	/epoc32/include/techview
+//SYSTEMINCLUDE	/epoc32/include/techview
 
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 MW_LAYER_SYSTEMINCLUDE_SYMBIAN 
+MW_LAYER_SYSTEMINCLUDE
 
 LIBRARY     	euser.lib 
 LIBRARY			apparc.lib 
--- a/sysstatemgmt/systemstatemgr/test/testapps/group/ssmtestapppaniczero.mmp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatemgr/test/testapps/group/ssmtestapppaniczero.mmp	Thu Jul 22 16:45:41 2010 +0100
@@ -25,10 +25,11 @@
 
 USERINCLUDE   	.
 USERINCLUDE   	../inc
-SYSTEMINCLUDE	/epoc32/include/techview
+//SYSTEMINCLUDE	/epoc32/include/techview
 
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 MW_LAYER_SYSTEMINCLUDE_SYMBIAN 
+MW_LAYER_SYSTEMINCLUDE
 
 LIBRARY     	euser.lib 
 LIBRARY			apparc.lib 
--- a/sysstatemgmt/systemstatemgr/test/testapps/group/ssmtestapprvafterretry.mmp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatemgr/test/testapps/group/ssmtestapprvafterretry.mmp	Thu Jul 22 16:45:41 2010 +0100
@@ -26,7 +26,8 @@
 USERINCLUDE   	../inc
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 MW_LAYER_SYSTEMINCLUDE_SYMBIAN 
-SYSTEMINCLUDE	/epoc32/include/techview
+//SYSTEMINCLUDE	/epoc32/include/techview
+MW_LAYER_SYSTEMINCLUDE
 
 LIBRARY     euser.lib 
 LIBRARY		apparc.lib 
--- a/sysstatemgmt/systemstatemgr/test/testapps/group/ssmtestapprverror.mmp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatemgr/test/testapps/group/ssmtestapprverror.mmp	Thu Jul 22 16:45:41 2010 +0100
@@ -25,10 +25,11 @@
 
 USERINCLUDE   	.
 USERINCLUDE   	../inc
-SYSTEMINCLUDE	/epoc32/include/techview
+//SYSTEMINCLUDE	/epoc32/include/techview
 
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 MW_LAYER_SYSTEMINCLUDE_SYMBIAN 
+MW_LAYER_SYSTEMINCLUDE
 
 LIBRARY     	euser.lib 
 LIBRARY			apparc.lib 
--- a/sysstatemgmt/systemstatemgr/test/testapps/group/ssmtestappslow.mmp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatemgr/test/testapps/group/ssmtestappslow.mmp	Thu Jul 22 16:45:41 2010 +0100
@@ -27,7 +27,8 @@
 USERINCLUDE   	../inc
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 MW_LAYER_SYSTEMINCLUDE_SYMBIAN 
-SYSTEMINCLUDE	/epoc32/include/techview
+MW_LAYER_SYSTEMINCLUDE
+//SYSTEMINCLUDE	/epoc32/include/techview
 
 LIBRARY     euser.lib 
 LIBRARY		apparc.lib 
--- a/sysstatemgmt/systemstatemgr/test/testapps/group/ssmtestappsucessfulafterretry.mmp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatemgr/test/testapps/group/ssmtestappsucessfulafterretry.mmp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -26,7 +26,8 @@
 USERINCLUDE   	../inc
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 MW_LAYER_SYSTEMINCLUDE_SYMBIAN 
-SYSTEMINCLUDE	/epoc32/include/techview
+MW_LAYER_SYSTEMINCLUDE
+
 
 LIBRARY     euser.lib 
 LIBRARY		apparc.lib 
@@ -36,16 +37,7 @@
 LIBRARY		estor.lib
 LIBRARY		efsrv.lib 
 
-RESOURCE	 	ssmtestappsucessfulafterretry.rss
-START RESOURCE	ssmtestappsucessfulafterretry.rss
-TARGETPATH		/resource/apps
-END
 
-// Registration file
-SOURCEPATH    	../src
-START RESOURCE	ssmtestappsucessfulafterretry_reg.rss
-TARGETPATH		/private/10003a3f/apps
-END
 
 
 SMPSAFE
--- a/sysstatemgmt/systemstatemgr/test/testapps/inc/ssmtestapps.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatemgr/test/testapps/inc/ssmtestapps.h	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -46,6 +46,7 @@
 _LIT(KTestProcTranFromNormalWoCap, "ssmstatetranfromnormalwocap.exe");
 
 _LIT(KTestAppLogFileLoc, "C:\\logs\\ssmtest\\");
+_LIT(KFileForFAndF, "c:\\countforfnf.dat"); //This file is used by KTestAppForFAndF
 
 const TInt KTestCommandLineMaxLength = 200;
 
--- a/sysstatemgmt/systemstatemgr/test/testapps/inc/ssmtestappsucessfulafterretry.h	Wed Jun 23 22:58:50 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,85 +0,0 @@
-// 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"
-// 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
- @test
- @internalComponent - Internal Symbian test code
-*/
-
-#ifndef __SSMTESTAPPSUCESSFULAFTERRETRY_H
-#define __SSMTESTAPPSUCESSFULAFTERRETRY_H
-
-#include <s32file.h>
-#include <f32file.h>
-
-_LIT(KFileForFAndF, "c:\\countforfnf.dat");	// this file should be deleted by the test application
-
-/**
-Application class
-*/
-#include <eikapp.h>
-
-class CTestFAndFApplication : public CEikApplication
-	{
-public:
-	static CApaApplication* NewApplication();
-	~CTestFAndFApplication();
-	
-private:
-CTestFAndFApplication();
-	
-	// from CApaApplication
-	TUid AppDllUid() const;
-	CApaDocument* CreateDocumentL();
-	};
-
-/**
-Document class
-*/
-#include <eikdoc.h>
-
-class CEikAppUi;
-class CEikApplication;
-class CTestFAndFDocument : public CEikDocument
-	{
-public:
-	static CTestFAndFDocument* NewL(CEikApplication& aApp);
-	~CTestFAndFDocument();
-	
-private:
-	CTestFAndFDocument(CEikApplication& aApp);
-	
-	// from CEikDocument
-	CEikAppUi* CreateAppUiL();
-	};
-
-/**
-Application UI class, root of all graphical user interface in this application
-*/
-#include <eikappui.h>
-
-class CTestAppAo;
-class CTestFAndFAppUi : public CEikAppUi
-    {
-public:
-	CTestFAndFAppUi();
-	~CTestFAndFAppUi();
-	
-	// from CEikAppUi
-	void ConstructL();
-	};
-
-#endif // __SSMTESTAPPSUCESSFILAFTERRETRY_H
--- a/sysstatemgmt/systemstatemgr/test/testapps/src/ssmtestappgood.rss	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatemgr/test/testapps/src/ssmtestappgood.rss	Thu Jul 22 16:45:41 2010 +0100
@@ -22,8 +22,8 @@
 
 NAME STAG
 
-#include <techview/eikon.rh>
-#include <techview/eikon.rsg>
+#include <eikon.rh>
+#include <eikon.rsg>
 
 RESOURCE RSS_SIGNATURE { }
 
--- a/sysstatemgmt/systemstatemgr/test/testapps/src/ssmtestappnorv.rss	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatemgr/test/testapps/src/ssmtestappnorv.rss	Thu Jul 22 16:45:41 2010 +0100
@@ -22,8 +22,8 @@
 
 NAME STAN
 
-#include <techview/eikon.rh>
-#include <techview/eikon.rsg>
+#include <eikon.rh>
+#include <eikon.rsg>
 
 RESOURCE RSS_SIGNATURE { }
 
--- a/sysstatemgmt/systemstatemgr/test/testapps/src/ssmtestapppanic.rss	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatemgr/test/testapps/src/ssmtestapppanic.rss	Thu Jul 22 16:45:41 2010 +0100
@@ -22,8 +22,8 @@
 
 NAME STAP
 
-#include <techview/eikon.rh>
-#include <techview/eikon.rsg>
+#include <eikon.rh>
+#include <eikon.rsg>
 
 RESOURCE RSS_SIGNATURE { }
 
--- a/sysstatemgmt/systemstatemgr/test/testapps/src/ssmtestapppaniczero.rss	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatemgr/test/testapps/src/ssmtestapppaniczero.rss	Thu Jul 22 16:45:41 2010 +0100
@@ -21,8 +21,8 @@
 
 NAME STAZ
 
-#include <techview/eikon.rh>
-#include <techview/eikon.rsg>
+#include <eikon.rh>
+#include <eikon.rsg>
 
 RESOURCE RSS_SIGNATURE { }
 
--- a/sysstatemgmt/systemstatemgr/test/testapps/src/ssmtestapprvafterretry.rss	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatemgr/test/testapps/src/ssmtestapprvafterretry.rss	Thu Jul 22 16:45:41 2010 +0100
@@ -21,8 +21,8 @@
 
 NAME STAR
 
-#include <techview/eikon.rh>
-#include <techview/eikon.rsg>
+#include <eikon.rh>
+#include <eikon.rsg>
 
 RESOURCE RSS_SIGNATURE { }
 
--- a/sysstatemgmt/systemstatemgr/test/testapps/src/ssmtestapprverror.rss	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatemgr/test/testapps/src/ssmtestapprverror.rss	Thu Jul 22 16:45:41 2010 +0100
@@ -21,8 +21,8 @@
 
 NAME STAE
 
-#include <techview/eikon.rh>
-#include <techview/eikon.rsg>
+#include <eikon.rh>
+#include <eikon.rsg>
 
 RESOURCE RSS_SIGNATURE { }
 
--- a/sysstatemgmt/systemstatemgr/test/testapps/src/ssmtestappslow.rss	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatemgr/test/testapps/src/ssmtestappslow.rss	Thu Jul 22 16:45:41 2010 +0100
@@ -21,8 +21,8 @@
 
 NAME STAS
 
-#include <techview/eikon.rh>
-#include <techview/eikon.rsg>
+#include <eikon.rh>
+#include <eikon.rsg>
 
 RESOURCE RSS_SIGNATURE { }
 
--- a/sysstatemgmt/systemstatemgr/test/testapps/src/ssmtestappsucessfulafterretry.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatemgr/test/testapps/src/ssmtestappsucessfulafterretry.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -19,107 +19,14 @@
  @internalComponent - Internal Symbian test code
 */
 
-#include <eikstart.h> 
-#include <eikapp.h>
-#include "ssmtestappsucessfulafterretry.h"
+#include <s32file.h>
+#include <f32file.h>
 #include "ssmtestapps.h"
 
-
-/**
-Standard DLL entry point function.
-Creates and returns an instance of the CApaApplication-derived class.
-@return an instance of the CApaApplication-derived class
-*/
-TInt E32Main()
-	{
-	return EikStart::RunApplication(CTestFAndFApplication::NewApplication);
-	}
-
-CTestFAndFApplication::CTestFAndFApplication()
-	{
-	}
-
-CTestFAndFApplication::~CTestFAndFApplication()
-	{
-	}
-		
-/**
-@return The application's UID 
-*/
-TUid CTestFAndFApplication::AppDllUid() const
-	{
-	const TUid dll = {KTestAppForFAndFUid};
-	return dll;
-	}
-
-/**
-@return CTestFAndFApplication or NULL if KErrNoMemory
-*/
-CApaApplication* CTestFAndFApplication::NewApplication()
-	{
-	// As the framework has at this point not started up enough, and therefore the TRAP-harness and 
-	// exception handlers aren’t available yet, this factory function is a non-leaving function and 
-	// can't use the new(Eleave) operator.
-	return new CTestFAndFApplication();
-	}
-	
-/**
-Called by the UI framework at application start-up to create an instance of the document class.
-@leave	KErrNoMemory
-@return A CTestFAndFDocument
-*/
-CApaDocument* CTestFAndFApplication::CreateDocumentL()
-	{
-	return CTestFAndFDocument::NewL(*this);
-	}
-
-CTestFAndFDocument::CTestFAndFDocument(CEikApplication& aApp) : CEikDocument(aApp)
-	{
-	}
-
-CTestFAndFDocument::~CTestFAndFDocument()
-	{
-	}
-
-/**
-Factory function for this class
-@return a new CEndTaskTestDocument instance.
-*/
-CTestFAndFDocument* CTestFAndFDocument::NewL(CEikApplication& aApp)
-	{
-	return new(ELeave) CTestFAndFDocument(aApp);
-	}
-
-
-
-/**
-Called by the UI framework to construct the application UI class. 
-Note that the app UI's ConstructL() is called by the UI framework.
-*/
-CEikAppUi* CTestFAndFDocument::CreateAppUiL()
-	{
-	return new(ELeave) CTestFAndFAppUi();
-	}
-
-
-
-CTestFAndFAppUi::CTestFAndFAppUi()
-	{
-	}
-
-
-
-CTestFAndFAppUi::~CTestFAndFAppUi()
-	{
-	}
-
-
-
-void CTestFAndFAppUi::ConstructL()
-	{
-	// Complete the UI framework's construction of the App UI.
-	BaseConstructL(CEikAppUi::ENoAppResourceFile);
-	
+// This exe fails to start for a specified number of times given in failCount, 
+// decrements the failCount each time and starts successfully once the fail count is exhausted
+static void StartProcessL()
+{
 	RFs fs;
 	RFileReadStream readStream;
 	RFileWriteStream writeStream;
@@ -159,6 +66,29 @@
 		RProcess::Rendezvous(KErrGeneral);
 		}
 	CleanupStack::PopAndDestroy(3, &fs);
+}
+
+/**
+Process entry point function.
+@return KErrNone if successful; KErrNoMemory if there is insufficient memory; otherwise, one of the other system-wide error codes.
+*/
+TInt E32Main()
+	{
+    CTrapCleanup* cleanup=CTrapCleanup::New();
+	
+	TInt error = KErrNoMemory;
+	if (cleanup)
+		{
+		TRAP(error, StartProcessL());
+		delete cleanup;
+		}
+
+	if (KErrNone != error)
+		{
+		User::Panic(_L("SUCCESSFULRETRY"),error);
+		}
+	User::WaitForAnyRequest();
+	return error;
 	}
 
 
--- a/sysstatemgmt/systemstatemgr/test/testapps/src/ssmtestappsucessfulafterretry.rss	Wed Jun 23 22:58:50 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-// 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"
-// 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
- @test
- @internalComponent - Internal Symbian test code
-*/
-
-NAME FNDF
-
-#include <techview/eikon.rh>
-#include <techview/eikon.rsg>
-
-RESOURCE RSS_SIGNATURE { }
-
-RESOURCE TBUF { buf=""; }
-
-
--- a/sysstatemgmt/systemstatemgr/test/testapps/src/ssmtestappsucessfulafterretry_reg.rss	Wed Jun 23 22:58:50 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,32 +0,0 @@
-// 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"
-// 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
- @test
- @internalComponent - Internal Symbian test code
-*/
-
-#include <appinfo.rh>
-
-UID2 KUidAppRegistrationResourceFile
-UID3 0x20010332
-
-RESOURCE APP_REGISTRATION_INFO
-	{
-	// filename of application binary (minus extension)
-	app_file="ssmtestappsucessfulafterretry";
-	}
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysstatemgmt/systemstatemgr/test/tipcfuzz/group/tipcfuzz.pkg	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,28 @@
+;
+; 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".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description: 
+;
+
+
+;Languages
+&EN
+
+
+;Localised Vendor name
+%{"SsmIpcFuzzTests EN"}
+
+; Vendor name
+: "SsmIpcFuzzTests"
+
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tipcfuzz\scripts\tipcfuzz.script"-"c:\devicesrv\ssmatest\tipcfuzz.script"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysstatemgmt/systemstatemgr/test/tss/group/ssmatest_tss.pkg	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,38 @@
+;
+; 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".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description: 
+;
+
+
+;Languages
+&EN
+
+
+;Localised Vendor name
+%{"SsmTssTests EN"}
+
+; Vendor name
+: "SsmTssTests"
+
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tss\scripts\ssmatest_tss_appstart.script"-"c:\devicesrv\ssmatest\ssmatest_tss_appstart.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tss\scripts\ssmatest_tss_appstartapparcinit.script"-"c:\devicesrv\ssmatest\ssmatest_tss_appstartapparcinit.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tss\scripts\ssmatest_tss_apptimeout.script"-"c:\devicesrv\ssmatest\ssmatest_tss_apptimeout.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tss\scripts\ssmatest_tss_procstart.script"-"c:\devicesrv\ssmatest\ssmatest_tss_procstart.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tss\scripts\ssmatest_tss_procstartmon.script"-"c:\devicesrv\ssmatest\ssmatest_tss_procstartmon.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tss\scripts\ssmatest_tss_errors.script"-"c:\devicesrv\ssmatest\ssmatest_tss_errors.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tss\scripts\ssmatest_tss_appstartrverror.script"-"c:\devicesrv\ssmatest\ssmatest_tss_appstartrverror.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tss\scripts\ssmatest_tss_startandcancel.script"-"c:\devicesrv\ssmatest\ssmatest_tss_startandcancel.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tss\scripts\ssmatest_tss_appstartmultiple.script"-"c:\devicesrv\ssmatest\ssmatest_tss_appstartmultiple.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tss\scripts\ssmatest_tss_procstartwithfandf.script"-"c:\devicesrv\ssmatest\ssmatest_tss_procstartwithfandf.script"
+
--- a/sysstatemgmt/systemstatemgr/test/tss/src/tss_apptimeout.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatemgr/test/tss/src/tss_apptimeout.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -26,7 +26,6 @@
 
 #include "tss_apptimeout.h"
 #include "ssmtestapps.h"
-#include "ssmtestappsucessfulafterretry.h"
 #include "ssmtestappslow.h"
 
 const TInt KWaitTime = 300;
--- a/sysstatemgmt/systemstatemgr/test/tss/src/tss_procstartwithfandf.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatemgr/test/tss/src/tss_procstartwithfandf.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -24,8 +24,8 @@
 
 
 #include "tss_procstartwithfandf.h"
-#include "ssmtestappsucessfulafterretry.h"
 #include "ssmtestappslow.h"
+#include "ssmtestapps.h"
 
 const TInt KProcStartStopperTimeout = 5000000;
 const TInt KWaitTimeForTestAppForFAndF = 500;	// 500ms is the delay given for the KTestAppForFAndF test app for each retry.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysstatemgmt/systemstatemgr/test/tssm/group/ssmatest_tssm.pkg	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,50 @@
+;
+; 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".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description: 
+;
+
+
+;Languages
+&EN
+
+
+;Localised Vendor name
+%{"SsmTSsmTests EN"}
+
+; Vendor name
+: "SsmTSsmTests"
+
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tssm\scripts\ssmatest_ssm_swptransitionengine.script"-"c:\devicesrv\ssmatest\ssmatest_ssm_swptransitionengine.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tssm\scripts\ssmatest_ssm_platsec.script"-"c:\devicesrv\ssmatest\ssmatest_ssm_platsec.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tssm\scripts\ssmatest_ssm_paniccle.script"-"c:\devicesrv\ssmatest\ssmatest_ssm_paniccle.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tssm\scripts\ssmatest_ssm_server.script"-"c:\devicesrv\ssmatest\ssmatest_ssm_server.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tssm\scripts\ssmatest_ssm_statefurthertransition.script"-"c:\devicesrv\ssmatest\ssmatest_ssm_statefurthertransition.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tssm\scripts\ssmatest_ssm_conditionalcommands.script"-"c:\devicesrv\ssmatest\ssmatest_ssm_conditionalcommands.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tssm\scripts\ssmatest_ssm_ssmcledeadlock.script"-"c:\devicesrv\ssmatest\ssmatest_ssm_ssmcledeadlock.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tssm\scripts\ssmatest_ssm_repeatedpublishstate.script"-"c:\devicesrv\ssmatest\ssmatest_ssm_repeatedpublishstate.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tssm\scripts\ssmatest_ssm_statepolicyresolver.script"-"c:\devicesrv\ssmatest\ssmatest_ssm_statepolicyresolver.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tssm\scripts\ssmatest_ssm_statetransitionengine.script"-"c:\devicesrv\ssmatest\ssmatest_ssm_statetransitionengine.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tssm\scripts\ssmatest_ssm_swpcommonplugin.script"-"c:\devicesrv\ssmatest\ssmatest_ssm_swpcommonplugin.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tssm\scripts\ssmatest_ssm_swphandlecleret.script"-"c:\devicesrv\ssmatest\ssmatest_ssm_swphandlecleret.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tssm\scripts\ssmatest_ssm_swpdependencies.script"-"c:\devicesrv\ssmatest\ssmatest_ssm_swpdependencies.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tssm\scripts\ssmatest_ssm_swppolicymap.script"-"c:\devicesrv\ssmatest\ssmatest_ssm_swppolicymap.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tssm\scripts\ssmatest_ssm_swppolicyresolver.script"-"c:\devicesrv\ssmatest\ssmatest_ssm_swppolicyresolver.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tssm\scripts\ssmatest_ssm_swptransitionscheduler.script"-"c:\devicesrv\ssmatest\ssmatest_ssm_swptransitionscheduler.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tssm\scripts\ssmatest_ssm_swprequesthandler.script"-"c:\devicesrv\ssmatest\ssmatest_ssm_swprequesthandler.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tssm\scripts\ssmatest_ssm_validstatelist.script"-"c:\devicesrv\ssmatest\ssmatest_ssm_validstatelist.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tssm\scripts\ssmatest_ssm_validswplist.script"-"c:\devicesrv\ssmatest\ssmatest_ssm_validswplist.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tssm\scripts\ssmatest_ssm_notifypropertychange.script"-"c:\devicesrv\ssmatest\ssmatest_ssm_notifypropertychange.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tssm\scripts\ssmatest_ssm_rswppolicysess.script"-"c:\devicesrv\ssmatest\ssmatest_ssm_rswppolicysess.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tssm\scripts\ssmatest_ssm_cmdexecution_oom.script"-"c:\devicesrv\ssmatest\ssmatest_ssm_cmdexecution_oom.script"
+
--- a/sysstatemgmt/systemstatemgr/test/tssm/src/tssm_step_swptransitionengine.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatemgr/test/tssm/src/tssm_step_swptransitionengine.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -281,7 +281,9 @@
 	CleanupStack::PushL(cleSession);
 
 	// Define and set the rproperty
-	TEST(KErrNone == iProperty.Define(RProcess().SecureId(), KSwpTestKey1, RProperty::EInt));
+	TInt err = (iProperty.Define(RProcess().SecureId(), KSwpTestKey1, RProperty::EInt));
+	INFO_PRINTF2(_L("doTestRequestSimpleL :: Define KSwpTestKey1 returns : %d "), err);
+	TEST ((KErrNone == err) ||(KErrAlreadyExists == err));
 	TEST(KErrNone == iProperty.Set(RProcess().SecureId(), KSwpTestKey1, 0));
 
 	TInt value;
--- a/sysstatemgmt/systemstatemgr/test/tssm/src/tssm_step_validswplist.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatemgr/test/tssm/src/tssm_step_validswplist.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -19,6 +19,7 @@
  @internalComponent - Internal Symbian test code
 */
 
+#include <e32property.h>
 #include "ssmserverpanic.h"
 #include "ssmswppolicyframe.h"
 #include "ssmswppolicyresolver.h"
@@ -33,6 +34,8 @@
 
 
 const TInt KTestInvalidPanicCategory = -988;
+// property uids should be real uids (use these temporarily for test purposes)
+const TUint key={0x01};
 _LIT(KSsmSwpPolicyServerName, "TestSsmSwpPolicyServer");
 
 //----------------------------------------------------------------------------------------------------------------
@@ -65,7 +68,7 @@
 	User::SetJustInTime(EFalse);
 	thread.Resume();
 	User::WaitForRequest(status);
-
+	
 	// always expecting a state transition engine panic
 	TExitCategoryName category = thread.ExitCategory();
 	if (category.Compare(KPanicSysStateMgr) != 0)
@@ -101,9 +104,6 @@
 	CleanupStack::PushL(sched);
 	CActiveScheduler::Install(sched);
 
-	// property uids should be real uids (use these temporarily for test purposes)
-	const TUint key={0x01};
-
 	// Create a swp policy resolver and register our property
 	CSsmSwpPolicyResolver* resolver = CSsmSwpPolicyResolver::NewL();
 	CleanupStack::PushL(resolver);
@@ -129,6 +129,7 @@
 
 	//Request transition according to the reason action, which will define the invalid list
 	const TSsmSwp swp(key, aSsmValidSwpListTest->Function());
+	
 	handler->SubmitRequestL(swp);
 
 	sched->Start();
@@ -200,10 +201,12 @@
 
 	__UHEAP_MARK;
 
+	TInt err = RProperty::Define(RProcess().SecureId(), key, RProperty::EInt);
+	TEST(err == KErrNone || err == KErrAlreadyExists);
 	INFO_PRINTF1(_L("Checking cmd list without a Publish System Swp command"));
 	TInt exitReason(0);
 	SetFunction(ESwpCmdWithoutPublishSwp);
-	TRAPD(err, exitReason = StartSwpInvalidListInThreadL(this));
+	TRAP(err, exitReason = StartSwpInvalidListInThreadL(this));
 	TEST(err == KErrNone);
 	INFO_PRINTF2(_L("    -- StartSwpInvalidListInThreadL method completed with '%d'."), err);
 	TEST(exitReason == ESwpTransitionEngineError16);
@@ -243,12 +246,13 @@
 	TEST(err == KErrNone);
 	INFO_PRINTF2(_L("    -- StartSwpInvalidListInThreadL method completed with '%d'."), err);
 	const TInt threadExitReason = iThread.ExitReason();
+	TBuf<16> threadExitCategory = iThread.ExitCategory();
 	// This is the exit reason for the ssmswppolicyserver
 	TEST(threadExitReason == KSsmTestAppRvError);
 	// this is the exit reason for the engine.
 	TEST(exitReason == ESwpTransitionEngineError20);
 	iThread.Close();
-	INFO_PRINTF3(_L("    -- received panic '%d', expected was '%d'."), threadExitReason, KSsmTestAppRvError);
+	INFO_PRINTF4(_L("    -- received panic '%d', category '%S', expected was '%d'."), threadExitReason, &threadExitCategory, KSsmTestAppRvError);
 
 	INFO_PRINTF1(_L("Checking cmd list with too many Multiple Wait command and and no deferred commands - Validation should be OK - Panic originates in HandleCleReturnValue returning an error"));
 	exitReason=0;
@@ -267,7 +271,9 @@
 	INFO_PRINTF2(_L("    -- StartSwpInvalidListInThreadL method completed with '%d'."), err);
 	TEST(exitReason == ESwpTransitionEngineError20);
 	INFO_PRINTF3(_L("    -- received panic '%d', expected was '%d'."), exitReason, ESwpTransitionEngineError20);
-
+	
+	err = RProperty::Delete(RProcess().SecureId(), key);
+	TEST(err == KErrNone);
 	__UHEAP_MARKEND;
 
 	// this test raises panics due to negative testing - close them to clear the screen.
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysstatemgmt/systemstatemgr/test/tsus/group/ssmatest_tsus.pkg	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,38 @@
+;
+; 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".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description: 
+;
+
+
+;Languages
+&EN
+
+
+;Localised Vendor name
+%{"SsmTSusTests EN"}
+
+; Vendor name
+: "SsmTSusTests"
+
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tsus\scripts\ssmatest_sus_adaptationpluginloader.script"-"c:\devicesrv\ssmatest\ssmatest_sus_adaptationpluginloader.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tsus\scripts\ssmatest_sus_adaptionserver.script"-"c:\devicesrv\ssmatest\ssmatest_sus_adaptionserver.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tsus\scripts\ssmatest_sus_supinfo.script"-"c:\devicesrv\ssmatest\ssmatest_sus_supinfo.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tsus\scripts\ssmatest_sus_suploader.script"-"c:\devicesrv\ssmatest\ssmatest_sus_suploader.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tsus\scripts\ssmatest_sus_platsec.script"-"c:\devicesrv\ssmatest\ssmatest_sus_platsec.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tsus\scripts\ssmatest_sus_platsec2.script"-"c:\devicesrv\ssmatest\ssmatest_sus_platsec2.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tsus\scripts\ssmatest_sus_utilserver.script"-"c:\devicesrv\ssmatest\ssmatest_sus_utilserver.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tsus\scripts\ssmatest_sus_loadplugin.script"-"c:\devicesrv\ssmatest\ssmatest_sus_loadplugin.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatemgr\test\tsus\scripts\ssmatest_sus_adptpluginloaderoom.script"-"c:\devicesrv\ssmatest\ssmatest_sus_adptpluginloaderoom.script"
+
+
--- a/sysstatemgmt/systemstateplugins/adptplugin/group/stateadaptationref.mmp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstateplugins/adptplugin/group/stateadaptationref.mmp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -36,5 +36,6 @@
 deffile		stateadaptationref.def
 
 library		euser.lib
+library 	ssmcmn.lib
 
 SMPSAFE
--- a/sysstatemgmt/systemstateplugins/adptplugin/inc/emergencycallrfadaptationref.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstateplugins/adptplugin/inc/emergencycallrfadaptationref.h	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -37,10 +37,17 @@
 	void ActivateRfForEmergencyCall(TRequestStatus& aStatus);
 	void DeactivateRfForEmergencyCall(TRequestStatus& aStatus);
 	void Cancel();
-
+	
 private:
 	CEmergencyCallRfAdaptationRef();
 	~CEmergencyCallRfAdaptationRef();
+	void ConstructL();
+	//Helper function to check for P&S Key
+    TBool IsTestPsKeyDefined();
+	
+private:    
+	MEmergencyCallRfAdaptation* iSaaEmergencyCallRfAdaptationDll;
+	RLibrary iSaaEmergencyCallRfAdaptationLib;
 	};
 
 #endif // __EMERGENCYCALLRFADAPTATION_H__
--- a/sysstatemgmt/systemstateplugins/adptplugin/inc/miscadaptationref.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstateplugins/adptplugin/inc/miscadaptationref.h	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -59,16 +59,20 @@
 	void GetSimLanguagesL(CBufBase* aBuf, TInt aCount);
 	void GetHiddenReset(TDes8& aHiddenResetPckg, TRequestStatus& aStatus);
 	void Cancel();
-
+	
 private:
 	CMiscAdaptationRef();
 	void ConstructL();	
 	~CMiscAdaptationRef();
+	//Helper function to check for P&S Key
+    TBool IsTestPsKeyDefined();
 
 private:
 	TInt iTestCaseNum;
 	RFs iFs;
 	RFileReadStream iFile;
+	MMiscAdaptation* iSaaMiscAdaptationDll;
+	RLibrary iSaaMiscAdaptationLib;
 	};
 
 #endif // __MISCADAPTATION_H__
--- a/sysstatemgmt/systemstateplugins/adptplugin/inc/rtcadaptationref.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstateplugins/adptplugin/inc/rtcadaptationref.h	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -37,6 +37,13 @@
 
 private:
 	CRtcAdaptationRef();
+	void ConstructL();
+	//Helper function to check for P&S Key
+    TBool IsTestPsKeyDefined();
+    
+private:	
+	MRtcAdaptation* iSaaRtcAdaptationDll;
+	RLibrary iSaaRtcAdaptationLib;
 	};
 
 #endif // __RTCADAPTATION_H__
--- a/sysstatemgmt/systemstateplugins/adptplugin/inc/simadaptationref.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstateplugins/adptplugin/inc/simadaptationref.h	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -27,8 +27,7 @@
   On a device when NotifySimEvent is called, Sim Adaptation Plug-in would request for notification 
   from the Cooperating System for 'aEvent'.
   
-  On HRP/Techview,the reference implementation has to complete the notification request with KErrNotSupported
-  since there is no Cooperating System on HRP/Techview.
+  The reference implementation has to complete the notification request with KErrNotSupported.
   
   But this implementation will cause problems in the following scenario.
   
@@ -45,7 +44,7 @@
   In this context if NotifySimEvent just completes the message immediately this results in a infinite 
   loop and starves other active objects with same priority.
   
-  This makes testing of Adaptation servers notification functionality impossible on HRP/Techview.
+  This makes testing of Adaptation servers notification functionality impossible on PlatSim/device.
   
   *********Solution*********
 
@@ -97,8 +96,13 @@
 private:
 	CSimAdaptationRef();
 	void ConstructL();
+	//Helper function to check for P&S Key
+    TBool IsTestPsKeyDefined();
+	
 private:
 	CSimRefAdaptationTimer* iTimer;
+	MSimAdaptation* iSaaSimAdaptationDll;
+	RLibrary iSaaSimAdaptationLib;
 	};
 
 
--- a/sysstatemgmt/systemstateplugins/adptplugin/inc/stateadaptationref.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstateplugins/adptplugin/inc/stateadaptationref.h	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -27,8 +27,7 @@
   On a device when NotifyCoopSysEvent is called, State Adaptation Plug-in would request for notification 
   from the Cooperating System for 'aEvent'.
   
-  On HRP/Techview,the reference implementation has to complete the notification request with KErrNotSupported
-  since there is no Cooperating System on HRP/Techview.
+  The reference implementation has to complete the notification request with KErrNotSupported.
   
   But this implementation will cause problems in the following scenario.
   
@@ -45,7 +44,7 @@
   In this context if NotifyCoopSysEvent just completes the message immediately this results in a infinite 
   loop and starves other active objects with same priority.
   
-  This makes testing of Adaptation servers notification functionality impossible on HRP/Techview.
+  This makes testing of Adaptation servers notification functionality impossible on PlatSim/device.
   
   *********Solution*********
 
@@ -97,13 +96,17 @@
 
 	void NotifyCoopSysEvent(TDes8& aEvent, TRequestStatus& aStatus);
 	void NotifyCancel();
-
+	
 private:
 	CStateAdaptationRef();
 	void ConstructL();
+	//Helper function to check for P&S Key
+    TBool IsTestPsKeyDefined();
 
 private:
-	CStateRefAdaptationTimer* iTimer;	
+    CStateRefAdaptationTimer* iTimer;
+	MStateAdaptation* iSaaStateAdaptationDll;
+	RLibrary iSaaStateAdaptationLib;
 	};
 
 
--- a/sysstatemgmt/systemstateplugins/adptplugin/src/emergencycallrfadaptationref.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstateplugins/adptplugin/src/emergencycallrfadaptationref.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -10,11 +10,21 @@
 //
 // Contributors:
 //
-// Description:
+// Description: This adaptation plugin implementation is for test/reference purposes.   
+// The loading of this plugin is controlled through test macro defined in the iby file "ssmcompatibility.iby".
+// If the macro "TEST_SSM_MACRO" is not defined, original plugins are loaded and this plugin is not loaded.
+// If the test P & S key is set in the test code, the calls are routed to the reference or dummy implementations.
+// Else the actual plugins are loaded and the calls are routed to the actual implementations.
+// The test P & S key which it looks for is KEmergencyCallRfAdaptationPluginPropertyKey(0x2000E657)
 //
 
+#include "ssmdebug.h"
+#include <e32property.h>
 #include "emergencycallrfadaptationref.h"
 
+const TUint32 KEmergencyCallRfAdaptationPluginPropertyKey = 0x2000E657;
+const TUid KPropertyCategory={0x2000D75B};
+
 /**
  Function to create new Emergency Call RF Adaptation Plugin.
 
@@ -32,11 +42,25 @@
 CEmergencyCallRfAdaptationRef* CEmergencyCallRfAdaptationRef::NewL()
 	{
 	CEmergencyCallRfAdaptationRef* self = new(ELeave) CEmergencyCallRfAdaptationRef;
+	
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	CleanupStack::Pop();
+	
 	return self;
 	}
 
+void CEmergencyCallRfAdaptationRef::ConstructL()
+    {
+    DEBUGPRINT1A("Loading Actual plugins");
+    _LIT(KSaaEmergencyCallRfAdaptationDLL, "saaemergencycallrfadaptation.dll");
+    User::LeaveIfError(iSaaEmergencyCallRfAdaptationLib.Load(KSaaEmergencyCallRfAdaptationDLL));
+    iSaaEmergencyCallRfAdaptationDll = (MEmergencyCallRfAdaptation *)(iSaaEmergencyCallRfAdaptationLib.Lookup(1)());
+    }
+
 CEmergencyCallRfAdaptationRef::~CEmergencyCallRfAdaptationRef()
 	{
+	iSaaEmergencyCallRfAdaptationLib.Close();
 	}
 
 CEmergencyCallRfAdaptationRef::CEmergencyCallRfAdaptationRef()
@@ -48,36 +72,65 @@
 */
 void CEmergencyCallRfAdaptationRef::Release()
 	{
-	delete this;
+    if(!IsTestPsKeyDefined())
+        {
+        DEBUGPRINT1A("Release:: Calling Actual plugins functions (saaemergencycallrfadaptation.dll)");
+        iSaaEmergencyCallRfAdaptationDll->Release();
+        }
+    else
+        {
+        DEBUGPRINT1A("Release:: Calling Reference plugins functions (emergencycallrfadaptationref.dll)");
+        }
+    delete this;
 	}
 
 /**
  Request RF activation so that an emergency call can be made.
- Reference implementation completes the request with KErrNone as support for RF activation is not available on Techview/H4 hrp.
+ Reference implementation completes the request with KErrNone. This is required for automated testing.
+ Actual plugins return expected values and this can be verified by manual testing
 
  @param aStatus to complete when the operation has finished
  @see TRequestStatus 
 */
 void CEmergencyCallRfAdaptationRef::ActivateRfForEmergencyCall(TRequestStatus& aStatus)
 	{
-	aStatus = KRequestPending;
-	TRequestStatus* status = &aStatus;
-	User::RequestComplete(status, KErrNone);
+	if(!IsTestPsKeyDefined())
+        {
+        DEBUGPRINT1A("ActivateRfForEmergencyCall:: Calling Actual plugins functions (saaemergencycallrfadaptation.dll)");
+        iSaaEmergencyCallRfAdaptationDll->ActivateRfForEmergencyCall(aStatus);
+        }
+    else
+        {
+        DEBUGPRINT1A("ActivateRfForEmergencyCall:: Calling Reference plugins functions (emergencycallrfadaptationref.dll)");
+        aStatus = KRequestPending;
+        TRequestStatus* status = &aStatus;
+        User::RequestComplete(status, KErrNone);
+        }
 	}
 
 /**
  Request RF deactivation after an emergency call have been made.
- Reference implementation completes the request with KErrNone as support for RF deactivation is not available on Techview/H4 hrp.
-
+ Reference implementation completes the request with KErrNone. This is required for automated testing.
+ Actual plugins return expected values and this can be verified by manual testing
+ 
  @param aStatus to complete when the operation has finished
  @see TRequestStatus 
 */
 void CEmergencyCallRfAdaptationRef::DeactivateRfForEmergencyCall(TRequestStatus& aStatus)
 	{
-	aStatus = KRequestPending;
-	TRequestStatus* status = &aStatus;
-	User::RequestComplete(status, KErrNone);	
-	}
+	if(!IsTestPsKeyDefined())
+        {
+        DEBUGPRINT1A("DeactivateRfForEmergencyCall:: Calling Actual plugins functions (saaemergencycallrfadaptation.dll)");
+        iSaaEmergencyCallRfAdaptationDll->DeactivateRfForEmergencyCall(aStatus);
+        }
+    else
+        {
+        DEBUGPRINT1A("DeactivateRfForEmergencyCall:: Calling Reference plugins functions (emergencycallrfadaptationref.dll)");
+        aStatus = KRequestPending;
+        TRequestStatus* status = &aStatus;
+        User::RequestComplete(status, KErrNone);
+        }
+ 	}
 
 /**
   Cancel the outstanding request. Reference implementation completes the requests immediately so there is nothing to cancel.
@@ -85,4 +138,26 @@
 */
 void CEmergencyCallRfAdaptationRef::Cancel()
 	{
+	if(!IsTestPsKeyDefined())
+        {
+        DEBUGPRINT1A("Cancel:: Calling Actual plugins functions (saaemergencycallrfadaptation.dll)");
+        iSaaEmergencyCallRfAdaptationDll->Cancel();
+        }
 	}
+
+/**
+    Helper function to check for P&S Key
+*/
+TBool CEmergencyCallRfAdaptationRef::IsTestPsKeyDefined()
+    {
+    TBool testPsKeyDefined = EFalse;
+    TInt result = RProperty::Get(KPropertyCategory, KEmergencyCallRfAdaptationPluginPropertyKey, testPsKeyDefined);
+    DEBUGPRINT3(_L("KEmergencyCallRfAdaptationPluginPropertyKey %d Error %d"), testPsKeyDefined, result);
+    if ((KErrNone != result) && (KErrNotFound != result))
+        {
+        //Could not retrieve property value. Tests might fail 
+        DEBUGPRINT1A("IsTestPsKeyDefined ERROR :: Could not retrieve property value)");
+        }
+    return testPsKeyDefined;
+    }
+
--- a/sysstatemgmt/systemstateplugins/adptplugin/src/miscadaptationref.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstateplugins/adptplugin/src/miscadaptationref.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -10,14 +10,23 @@
 //
 // Contributors:
 //
-// Description:
+// Description: This adaptation plugin implementation is for test/reference purposes.   
+// The loading of this plugin is controlled through test macro defined in the iby file "ssmcompatibility.iby".
+// If the macro "TEST_SSM_MACRO" is not defined, original plugins are loaded and this plugin is not loaded.
+// If the test P & S key is set in the test code, the calls are routed to the reference or dummy implementations.
+// Else the actual plugins are loaded and the calls are routed to the actual implementations.
+// The test P & S key which it looks for is KMiscPluginPropertyKey(0x2000E658)
 //
 
+#include "ssmdebug.h"
 #include "miscadaptationref.h"
 #include <ssm/startupadaptationcommands.h>
+#include <e32property.h> 
 
 _LIT(KTestCmdSecurityCheckTestFile, "c:\\cmdsecuritychecktest\\pinchecksecuritycaseno.txt");
 
+const TUint32 KMiscPluginPropertyKey = 0x2000E658;
+const TUid KPropertyCategory={0x2000D75B};              // tcustomcmd_server SID = KSsmServerName SID (changed in tcustomcmd_server.mmp file)
 /**
  Function to create new Misc Adaptation Plugin. Used for a collection of activities.
 
@@ -42,6 +51,7 @@
 CMiscAdaptationRef::~CMiscAdaptationRef()
 	{
 	iFs.Close();
+	iSaaMiscAdaptationLib.Close();
 	}
 
 CMiscAdaptationRef::CMiscAdaptationRef()
@@ -50,6 +60,11 @@
 
 void CMiscAdaptationRef::ConstructL()
 	{
+	DEBUGPRINT1A("Loading Actual plugins");
+    _LIT(KSaaMiscAdaptationDLL, "saamiscadaptation.dll");
+    User::LeaveIfError(iSaaMiscAdaptationLib.Load(KSaaMiscAdaptationDLL));
+    iSaaMiscAdaptationDll = (MMiscAdaptation *)(iSaaMiscAdaptationLib.Lookup(1)());   
+    
 	iTestCaseNum = 1;
 	User::LeaveIfError(iFs.Connect());
 	}
@@ -59,29 +74,45 @@
 */
 void CMiscAdaptationRef::Release()
 	{
+	if(!IsTestPsKeyDefined())
+	    {
+	    DEBUGPRINT1A("Release :: Calling Actual plugins functions (saamiscadaptation.dll)");
+	    iSaaMiscAdaptationDll->Release();
+	    }
 	delete this;
 	}
 
 /**
  Get the start-up mode from the Cooperating System.
- Reference implementation completes with KErrNone as a cooperating system does not exist on Techview/H4 hrp.
+ Reference implementation completes the request with KErrNone. This is required for automated testing.
+ Actual plugins return expected values and this can be verified by manual testing
 
  @param aModePckg should contain start-up of the Cooperating System on completion
  @param aStatus to complete when the operation has finished
 
  @see TRequestStatus
 */
-void CMiscAdaptationRef::GetGlobalStartupMode(TDes8& /*aModePckg*/, TRequestStatus& aStatus)
+void CMiscAdaptationRef::GetGlobalStartupMode(TDes8& aModePckg, TRequestStatus& aStatus)
 	{
-	aStatus = KRequestPending;
-	TRequestStatus* status = &aStatus;
-	User::RequestComplete(status, KErrNone);
+	if(!IsTestPsKeyDefined())
+	    {
+	    DEBUGPRINT1A("GetGlobalStartupMode :: Calling Actual plugins functions (saamiscadaptation.dll)");
+        iSaaMiscAdaptationDll->GetGlobalStartupMode(aModePckg,aStatus);
+	    }
+	else
+	    {
+	    DEBUGPRINT1A("GetGlobalStartupMode :: Calling ref plugins functions (miscadaptationref.dll)");
+        aStatus = KRequestPending;
+        TRequestStatus* status = &aStatus;
+        User::RequestComplete(status, KErrNone);        
+	    }
 	}
 
 /**
  Prepare language codes stored in the SIM in preferred language lists. The next call should be GetSimLanguagesL()
- Reference implementation completes with KErrNotSupported as SIM support is not available on Techview/H4 hrp.
-
+ Reference implementation completes with KErrNotSupported. This is required for automated testing.
+ Actual plugins return expected values and this can be verified by manual testing
+ 
  @param aPriority priority for which the language lists need to be prepared
  @param aSizePckg on return contains the size of the buffer, which a client should allocate and pass as one of the parameters (TInt aCount) to GetSimLanguagesL()
  @param aStatus to complete when the operation has finished
@@ -90,34 +121,62 @@
  @see TRequestStatus
  @see GetSimLanguagesL
 */
-void CMiscAdaptationRef::PrepareSimLanguages(TSsmLanguageListPriority /*aPriority*/, TDes8& /*aSizePckg*/, TRequestStatus& aStatus)
+void CMiscAdaptationRef::PrepareSimLanguages(TSsmLanguageListPriority aPriority, TDes8& aSizePckg, TRequestStatus& aStatus)
 	{
-	aStatus = KRequestPending;
-	TRequestStatus* status = &aStatus;
-	// No support for SIM on H4hrp/Techview.
-	User::RequestComplete(status, KErrNotSupported);
+	if(!IsTestPsKeyDefined())
+        {
+        DEBUGPRINT1A("PrepareSimLanguages :: Calling Actual plugins functions (saamiscadaptation.dll)");
+        iSaaMiscAdaptationDll->PrepareSimLanguages(aPriority,aSizePckg,aStatus);
+        }
+    else
+        {
+        DEBUGPRINT1A("PrepareSimLanguages :: Calling ref plugins functions (miscadaptationref.dll)");
+        aStatus = KRequestPending;
+        TRequestStatus* status = &aStatus;
+        // No support for SIM on H4hrp/Techview.
+        User::RequestComplete(status, KErrNotSupported);
+        }
 	}
 
 /**
  Get language codes stored in the SIM in preferred language lists. PrepareSimLanguages() call should precede this call.
- Reference implementation completes with KErrNotSupported as SIM support is not available on Techview/H4 hrp.
-
+ Reference implementation completes with KErrNotSupported.  This is required for automated testing.
+ Actual plugins return expected values and this can be verified by manual testing
+ 
  @param aBuf should contain the language lists on completion
  @param aCount to contain the count of the languages
 
  @see PrepareSimLanguages
 */
-void CMiscAdaptationRef::GetSimLanguagesL(CBufBase* /*aBuf*/, TInt /*aCount*/)
+void CMiscAdaptationRef::GetSimLanguagesL(CBufBase* aBuf, TInt aCount)
 	{
-	User::Leave(KErrNotSupported);
+	if(!IsTestPsKeyDefined())
+        {
+        DEBUGPRINT1A("GetSimLanguagesL :: Calling Actual plugins functions (saamiscadaptation.dll)");
+        iSaaMiscAdaptationDll->GetSimLanguagesL(aBuf,aCount);
+        }
+    else
+        {
+        DEBUGPRINT1A("GetSimLanguagesL :: Calling ref plugins functions (miscadaptationref.dll)");
+        User::Leave(KErrNotSupported);
+        }	
 	}
 
-void CMiscAdaptationRef::GetHiddenReset(TDes8& /*aHiddenResetPckg*/, TRequestStatus& aStatus)
+void CMiscAdaptationRef::GetHiddenReset(TDes8& aHiddenResetPckg, TRequestStatus& aStatus)
 	{
-	aStatus = KRequestPending;
-	TRequestStatus* status = &aStatus;
-	// No support for Reset in HRP/Techview.
-	User::RequestComplete(status, KErrNotSupported);
+	if(!IsTestPsKeyDefined())
+        {
+        DEBUGPRINT1A("GetHiddenReset :: Calling Actual plugins functions (saamiscadaptation.dll)");
+        iSaaMiscAdaptationDll->GetHiddenReset(aHiddenResetPckg,aStatus);
+        }
+    else
+        {
+        DEBUGPRINT1A("GetHiddenReset :: Calling ref plugins functions (miscadaptationref.dll)");
+        aStatus = KRequestPending;
+        TRequestStatus* status = &aStatus;
+        // No support for Reset in HRP/Techview.
+        User::RequestComplete(status, KErrNotSupported);        
+        }
 	}
 
 
@@ -127,11 +186,18 @@
 */
 void CMiscAdaptationRef::Cancel()
 	{
+	if(!IsTestPsKeyDefined())
+        {
+        DEBUGPRINT1A("Cancel :: Calling Actual plugins functions (saamiscadaptation.dll)");
+        iSaaMiscAdaptationDll->Cancel();
+        }
 	}
 
 /**
  Request the next security state.
- Techview/H4hrp does not support SIM operations so a reference implementation would always return 'KErrNotSupported'.
+ Reference implementation would always return 'KErrNotSupported'.  This is required for automated testing.
+ Actual plugins return expected values and this can be verified by manual testing
+  
  The function is modified to suit testing needs for PinCheck Security Command.
  A real implementation is intended to differ a lot based on the runtime changes/events on the device.
  
@@ -155,251 +221,276 @@
 */
 void CMiscAdaptationRef::SecurityStateChange(TInt aState, TDes8& aResponsePckg, TRequestStatus& aStatus)
 	{
-	aStatus = KRequestPending;
-	TRequestStatus* status = &aStatus;
-	StartupAdaptation::TSecurityStateInfo info = StartupAdaptation::EYes;
-	
-	//Read Test case number from the file 
-	TInt err = iFile.Open(iFs, KTestCmdSecurityCheckTestFile, EFileRead);
-	if (err == KErrNone)
-		{
-		TRAP(err,iTestCaseNum = iFile.ReadInt32L());
-		iFile.Close();
-		if(err)
-			{
-			RDebug::Printf("Error while reading tst case number from the file pinchecksecuritycaseno.txt");
-			User::RequestComplete(status, err);
-			return;
-			}
-		}	
-	switch(iTestCaseNum)
-		{
-		case EPINCHECK01:
-			switch(aState)
-			{
-			case StartupAdaptation::ESIMPresent:
-				info = StartupAdaptation::EYes;
-				break;
-            case StartupAdaptation::ESIMInvalid:
-                info = StartupAdaptation::ENo;
+	if(!IsTestPsKeyDefined())
+        {
+        DEBUGPRINT1A("SecurityStateChange:: Calling Actual plugins functions (saamiscadaptation.dll)");
+        iSaaMiscAdaptationDll->SecurityStateChange(aState,aResponsePckg,aStatus);
+        }
+    else
+        {
+        DEBUGPRINT1A("SecurityStateChange:: Calling ref plugins functions (miscadaptationref.dll)");
+        aStatus = KRequestPending;
+        TRequestStatus* status = &aStatus;
+        StartupAdaptation::TSecurityStateInfo info = StartupAdaptation::EYes;
+        
+        //Read Test case number from the file 
+        TInt err = iFile.Open(iFs, KTestCmdSecurityCheckTestFile, EFileRead);
+        if (err == KErrNone)
+            {
+            TRAP(err,iTestCaseNum = iFile.ReadInt32L());
+            iFile.Close();
+            if(err)
+                {
+                RDebug::Printf("Error while reading tst case number from the file pinchecksecuritycaseno.txt");
+                User::RequestComplete(status, err);
+                return;
+                }
+            }   
+        switch(iTestCaseNum)
+            {
+            case EPINCHECK01:
+                switch(aState)
+                {
+                case StartupAdaptation::ESIMPresent:
+                    info = StartupAdaptation::EYes;
+                    break;
+                case StartupAdaptation::ESIMInvalid:
+                    info = StartupAdaptation::ENo;
+                    break;
+                case StartupAdaptation::ESIMRejected:
+                    info = StartupAdaptation::ENo;
+                    break;
+                case StartupAdaptation::ESIMBlocked:
+                    info = StartupAdaptation::ENo;
+                    break;
+                case StartupAdaptation::EPINRequired:
+                    info = StartupAdaptation::EPIN1Required;
+                    break;
+                case StartupAdaptation::ESIMLock:
+                    info = StartupAdaptation::ESimLockOk;
+                    break;
+                case StartupAdaptation::ESecurityCheckOK:
+                    info = StartupAdaptation::EYes; 
+                    break;  
+                case StartupAdaptation::ESecurityCheckFailed:
+                    info = StartupAdaptation::EYes;
+                    break;  
+                default:
+                    break;
+                }
                 break;
-			case StartupAdaptation::ESIMRejected:
-				info = StartupAdaptation::ENo;
-				break;
-			case StartupAdaptation::ESIMBlocked:
-				info = StartupAdaptation::ENo;
-				break;
-			case StartupAdaptation::EPINRequired:
-				info = StartupAdaptation::EPIN1Required;
-				break;
-			case StartupAdaptation::ESIMLock:
-				info = StartupAdaptation::ESimLockOk;
-				break;
-			case StartupAdaptation::ESecurityCheckOK:
-				info = StartupAdaptation::EYes;	
-				break;	
-			case StartupAdaptation::ESecurityCheckFailed:
-				info = StartupAdaptation::EYes;
-				break;	
-			default:
-				break;
-			}
-			break;
-		case EPINCHECK02:
-			switch(aState)
-			{
-			case StartupAdaptation::ESIMPresent:
-				info = StartupAdaptation::EYes;
-				break;
-            case StartupAdaptation::ESIMInvalid:
-                info = StartupAdaptation::ENo;
+            case EPINCHECK02:
+                switch(aState)
+                {
+                case StartupAdaptation::ESIMPresent:
+                    info = StartupAdaptation::EYes;
+                    break;
+                case StartupAdaptation::ESIMInvalid:
+                    info = StartupAdaptation::ENo;
+                    break;
+                case StartupAdaptation::ESIMRejected:
+                    info = StartupAdaptation::EYes;
+                    break;
+                case StartupAdaptation::ESecurityCheckFailed:
+                    info = StartupAdaptation::EYes;
+                    break;  
+                default:
+                break;
+                }
                 break;
-			case StartupAdaptation::ESIMRejected:
-				info = StartupAdaptation::EYes;
-				break;
-			case StartupAdaptation::ESecurityCheckFailed:
-				info = StartupAdaptation::EYes;
-				break;	
-			default:
-			break;
-			}
-			break;
-		case EPINCHECK03:
-			switch(aState)
-			{
-			case StartupAdaptation::ESIMPresent:
-				info = StartupAdaptation::EYes;
-				break;
-            case StartupAdaptation::ESIMInvalid:
-                info = StartupAdaptation::ENo;
-                break;
-			case StartupAdaptation::ESIMRejected:
-				info = StartupAdaptation::ENo;
-				break;
-			case StartupAdaptation::ESIMBlocked:
-				info = StartupAdaptation::EPUK1Required;
-				break;	
-			case StartupAdaptation::ESIMLock:
-				info = StartupAdaptation::ESimLockOk;
-				break;
-			case StartupAdaptation::ESecurityCheckOK:
-				info = StartupAdaptation::EYes;	
-				break;	
-			case StartupAdaptation::ESecurityCheckFailed:
-				info = StartupAdaptation::EYes;
-				break;	
-			default:
-				break;
-			}
-			break;
-		case EPINCHECK04:
-			switch(aState)
-			{
-			case StartupAdaptation::ESIMPresent:
-				info = StartupAdaptation::EYes;
-				break;
-            case StartupAdaptation::ESIMInvalid:
-                info = StartupAdaptation::ENo;
+            case EPINCHECK03:
+                switch(aState)
+                {
+                case StartupAdaptation::ESIMPresent:
+                    info = StartupAdaptation::EYes;
+                    break;
+                case StartupAdaptation::ESIMInvalid:
+                    info = StartupAdaptation::ENo;
+                    break;
+                case StartupAdaptation::ESIMRejected:
+                    info = StartupAdaptation::ENo;
+                    break;
+                case StartupAdaptation::ESIMBlocked:
+                    info = StartupAdaptation::EPUK1Required;
+                    break;  
+                case StartupAdaptation::ESIMLock:
+                    info = StartupAdaptation::ESimLockOk;
+                    break;
+                case StartupAdaptation::ESecurityCheckOK:
+                    info = StartupAdaptation::EYes; 
+                    break;  
+                case StartupAdaptation::ESecurityCheckFailed:
+                    info = StartupAdaptation::EYes;
+                    break;  
+                default:
+                    break;
+                }
                 break;
-			case StartupAdaptation::ESIMRejected:
-				info = StartupAdaptation::ENo;
-				break;
-			case StartupAdaptation::ESIMBlocked:
-				info = StartupAdaptation::EPUK1Required;
-				break;	
-			case StartupAdaptation::ESIMLock:
-				info = StartupAdaptation::ESimLockOk;
-				break;
-			case StartupAdaptation::ESecurityCheckOK:
-				info = StartupAdaptation::EYes;	
-				break;	
-			case StartupAdaptation::ESecurityCheckFailed:
-				info = StartupAdaptation::EYes;
-				break;	
-			default:
-				break;
-			}	
-			break;
-		case EPINCHECK05:
-			switch(aState)
-			{
-			case StartupAdaptation::ESIMPresent:
-				info = StartupAdaptation::EYes;
-				break;
-            case StartupAdaptation::ESIMInvalid:
-                info = StartupAdaptation::ENo;
+            case EPINCHECK04:
+                switch(aState)
+                {
+                case StartupAdaptation::ESIMPresent:
+                    info = StartupAdaptation::EYes;
+                    break;
+                case StartupAdaptation::ESIMInvalid:
+                    info = StartupAdaptation::ENo;
+                    break;
+                case StartupAdaptation::ESIMRejected:
+                    info = StartupAdaptation::ENo;
+                    break;
+                case StartupAdaptation::ESIMBlocked:
+                    info = StartupAdaptation::EPUK1Required;
+                    break;  
+                case StartupAdaptation::ESIMLock:
+                    info = StartupAdaptation::ESimLockOk;
+                    break;
+                case StartupAdaptation::ESecurityCheckOK:
+                    info = StartupAdaptation::EYes; 
+                    break;  
+                case StartupAdaptation::ESecurityCheckFailed:
+                    info = StartupAdaptation::EYes;
+                    break;  
+                default:
+                    break;
+                }   
                 break;
-			case StartupAdaptation::ESIMRejected:
-				info = StartupAdaptation::ENo;
-				break;
-			case StartupAdaptation::ESIMBlocked:
-				info = StartupAdaptation::EUPUKRequired;
-				break;	
-			case StartupAdaptation::ESIMLock:
-				info = StartupAdaptation::ESimLockRestrictionOn;
-				break;
-			case StartupAdaptation::ESecurityCheckOK:
-				info = StartupAdaptation::EYes;	
-				break;	
-			case StartupAdaptation::ESecurityCheckFailed:
-				info = StartupAdaptation::EYes;
-				break;	
-			default:
-				break;	
-			}	
-			break;
-		case EPINCHECK06:
-			switch(aState)
-			{
-			case StartupAdaptation::ESIMPresent:
-				info = StartupAdaptation::EYes;
-				break;
-            case StartupAdaptation::ESIMInvalid:
-                info = StartupAdaptation::ENo;
+            case EPINCHECK05:
+                switch(aState)
+                {
+                case StartupAdaptation::ESIMPresent:
+                    info = StartupAdaptation::EYes;
+                    break;
+                case StartupAdaptation::ESIMInvalid:
+                    info = StartupAdaptation::ENo;
+                    break;
+                case StartupAdaptation::ESIMRejected:
+                    info = StartupAdaptation::ENo;
+                    break;
+                case StartupAdaptation::ESIMBlocked:
+                    info = StartupAdaptation::EUPUKRequired;
+                    break;  
+                case StartupAdaptation::ESIMLock:
+                    info = StartupAdaptation::ESimLockRestrictionOn;
+                    break;
+                case StartupAdaptation::ESecurityCheckOK:
+                    info = StartupAdaptation::EYes; 
+                    break;  
+                case StartupAdaptation::ESecurityCheckFailed:
+                    info = StartupAdaptation::EYes;
+                    break;  
+                default:
+                    break;  
+                }   
                 break;
-			case StartupAdaptation::ESIMRejected:
-				info = StartupAdaptation::ENo;
-				break;
-			case StartupAdaptation::ESIMBlocked:
-				info = StartupAdaptation::EUPUKRequired;
-				break;	
-			case StartupAdaptation::ESIMLock:
-				info = StartupAdaptation::ESimLockRestrictionPending;
-				break;
-			case StartupAdaptation::ESecurityCheckOK:
-				info = StartupAdaptation::EYes;	
-				break;	
-			case StartupAdaptation::ESecurityCheckFailed:
-				info = StartupAdaptation::EYes;	
-				break;	
-			default:
-				break;	
-			}
-			break;
-		case EPINCHECK07:
-			switch(aState)
-			{
-			case StartupAdaptation::ESIMPresent:
-				info = StartupAdaptation::EYes;
-				break;
-            case StartupAdaptation::ESIMInvalid:
-                info = StartupAdaptation::ENo;
+            case EPINCHECK06:
+                switch(aState)
+                {
+                case StartupAdaptation::ESIMPresent:
+                    info = StartupAdaptation::EYes;
+                    break;
+                case StartupAdaptation::ESIMInvalid:
+                    info = StartupAdaptation::ENo;
+                    break;
+                case StartupAdaptation::ESIMRejected:
+                    info = StartupAdaptation::ENo;
+                    break;
+                case StartupAdaptation::ESIMBlocked:
+                    info = StartupAdaptation::EUPUKRequired;
+                    break;  
+                case StartupAdaptation::ESIMLock:
+                    info = StartupAdaptation::ESimLockRestrictionPending;
+                    break;
+                case StartupAdaptation::ESecurityCheckOK:
+                    info = StartupAdaptation::EYes; 
+                    break;  
+                case StartupAdaptation::ESecurityCheckFailed:
+                    info = StartupAdaptation::EYes; 
+                    break;  
+                default:
+                    break;  
+                }
                 break;
-			case StartupAdaptation::ESIMRejected:
-				info = StartupAdaptation::ENo;
-				break;
-			case StartupAdaptation::ESIMBlocked:
-				info = StartupAdaptation::EUPUKRequired;
-				break;	
-			case StartupAdaptation::ESIMLock:
-				info = StartupAdaptation::ESimLockRestricted;
-				break;
-			case StartupAdaptation::ESecurityCheckOK:
-				info = StartupAdaptation::EYes;	
-				break;	
-			case StartupAdaptation::ESecurityCheckFailed:
-				info = StartupAdaptation::EYes;	
-				break;	
-			default:
-				break;	
-			}
-			break;
-		case EPINCHECK08:
-		switch(aState)
-			{
-			case StartupAdaptation::ESIMPresent:
-				info = StartupAdaptation::EYes;
-				break;
-			case StartupAdaptation::ESIMInvalid:
-			    info = StartupAdaptation::ENo;
-			    break;
-			case StartupAdaptation::ESIMRejected:
-				info = StartupAdaptation::ENo;
-				break;
-			case StartupAdaptation::ESIMBlocked:
-				info = StartupAdaptation::ENo;
-				break;
-			case StartupAdaptation::EPINRequired:
-				info = StartupAdaptation::EPIN1Required;
-				break;
-			case StartupAdaptation::ESIMLock:
-				info = StartupAdaptation::ESimLockOk;
-				break;
-			case StartupAdaptation::ESecurityCheckOK:
-				info = StartupAdaptation::EYes;	
-				break;	
-			case StartupAdaptation::ESecurityCheckFailed:
-				info = StartupAdaptation::EYes;	
-				break;	
-			default:
-				break;
-			}	
-			break;	
-		default:
-			break;
-		}
-	TPckgBuf<StartupAdaptation::TSecurityStateInfo> securityStateInfoResult(info);
-	aResponsePckg = securityStateInfoResult;	
-	User::RequestComplete(status, KErrNone);
+            case EPINCHECK07:
+                switch(aState)
+                {
+                case StartupAdaptation::ESIMPresent:
+                    info = StartupAdaptation::EYes;
+                    break;
+                case StartupAdaptation::ESIMInvalid:
+                    info = StartupAdaptation::ENo;
+                    break;
+                case StartupAdaptation::ESIMRejected:
+                    info = StartupAdaptation::ENo;
+                    break;
+                case StartupAdaptation::ESIMBlocked:
+                    info = StartupAdaptation::EUPUKRequired;
+                    break;  
+                case StartupAdaptation::ESIMLock:
+                    info = StartupAdaptation::ESimLockRestricted;
+                    break;
+                case StartupAdaptation::ESecurityCheckOK:
+                    info = StartupAdaptation::EYes; 
+                    break;  
+                case StartupAdaptation::ESecurityCheckFailed:
+                    info = StartupAdaptation::EYes; 
+                    break;  
+                default:
+                    break;  
+                }
+                break;
+            case EPINCHECK08:
+            switch(aState)
+                {
+                case StartupAdaptation::ESIMPresent:
+                    info = StartupAdaptation::EYes;
+                    break;
+                case StartupAdaptation::ESIMInvalid:
+                    info = StartupAdaptation::ENo;
+                    break;
+                case StartupAdaptation::ESIMRejected:
+                    info = StartupAdaptation::ENo;
+                    break;
+                case StartupAdaptation::ESIMBlocked:
+                    info = StartupAdaptation::ENo;
+                    break;
+                case StartupAdaptation::EPINRequired:
+                    info = StartupAdaptation::EPIN1Required;
+                    break;
+                case StartupAdaptation::ESIMLock:
+                    info = StartupAdaptation::ESimLockOk;
+                    break;
+                case StartupAdaptation::ESecurityCheckOK:
+                    info = StartupAdaptation::EYes; 
+                    break;  
+                case StartupAdaptation::ESecurityCheckFailed:
+                    info = StartupAdaptation::EYes; 
+                    break;  
+                default:
+                    break;
+                }   
+                break;  
+            default:
+                break;
+            }
+        TPckgBuf<StartupAdaptation::TSecurityStateInfo> securityStateInfoResult(info);
+        aResponsePckg = securityStateInfoResult;    
+        User::RequestComplete(status, KErrNone);
+        }
 	}
 
+/**
+    Helper function to check for P&S Key
+*/
+TBool CMiscAdaptationRef::IsTestPsKeyDefined()
+    {
+    TBool testPsKeyDefined = EFalse;
+    TInt result = RProperty::Get(KPropertyCategory, KMiscPluginPropertyKey, testPsKeyDefined);
+    DEBUGPRINT3(_L("KMiscPluginPropertyKey %d Error %d"), testPsKeyDefined, result);
+    if ((KErrNone != result) && (KErrNotFound != result))
+        {
+        //Could not retrieve property value. Tests might fail 
+        DEBUGPRINT1A("IsTestPsKeyDefined ERROR :: Could not retrieve property value)");
+        }
+    return testPsKeyDefined;
+    }
+
--- a/sysstatemgmt/systemstateplugins/adptplugin/src/rtcadaptationref.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstateplugins/adptplugin/src/rtcadaptationref.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -10,16 +10,26 @@
 //
 // Contributors:
 //
-// Description:
+// Description: This adaptation plugin implementation is for test/reference purposes.   
+// The loading of this plugin is controlled through test macro defined in the iby file "ssmcompatibility.iby".
+// If the macro "TEST_SSM_MACRO" is not defined, original plugins are loaded and this plugin is not loaded.
+// If the test P & S key is set in the test code, the calls are routed to the reference or dummy implementations.
+// Else the actual plugins are loaded and the calls are routed to the actual implementations.
+// The test P & S key which it looks for is KRtcAdaptationPluginPropertyKey (0x2000D76A)
 //
 
 #include "rtcadaptationref.h"
 
 #include <e32property.h>
+#include "ssmdebug.h"
 
 const TUid KAlarmServerUID = {0x101f5027};
 const TInt KTestRTCValueKey = 200;
 
+
+const TUint32 KRtcAdaptationPluginPropertyKey = 0x2000D76C;
+const TUid KPropertyCategory={0x2000D75B};
+
 /**
 Function to create new Rtc Adaptation Plugin.
 
@@ -34,11 +44,25 @@
 CRtcAdaptationRef* CRtcAdaptationRef::NewL()
 	{
 	CRtcAdaptationRef* self = new(ELeave) CRtcAdaptationRef;
+	
+	CleanupStack::PushL(self);
+	self->ConstructL();
+	CleanupStack::Pop();
+	
 	return self;	
 	}
 
+void CRtcAdaptationRef::ConstructL()
+    {
+    DEBUGPRINT1A("Loading Actual plugins");
+    _LIT(KSaaRtcAdaptationDLL, "saartcadaptation.dll");
+    User::LeaveIfError(iSaaRtcAdaptationLib.Load(KSaaRtcAdaptationDLL));
+    iSaaRtcAdaptationDll = (MRtcAdaptation *)(iSaaRtcAdaptationLib.Lookup(1)());    
+    }
+
 CRtcAdaptationRef::~CRtcAdaptationRef()
 	{
+	iSaaRtcAdaptationLib.Close();
 	}
 
 CRtcAdaptationRef::CRtcAdaptationRef()
@@ -50,28 +74,44 @@
 */
 void CRtcAdaptationRef::Release()
 	{
-	delete this;
+    if(!IsTestPsKeyDefined())
+        {
+        DEBUGPRINT1A("Release:: Calling Actual plugins functions (saartcadaptation.dll)");
+        iSaaRtcAdaptationDll->Release();
+        }
+    delete this;
 	}
 
 /**
  Check that the RTC is valid.
- Reference implementation completes the request with KErrNotSupported as support for RTC is not available on Techview/H4 hrp.
-
+ Reference implementation completes the request with KErrNotSupported. This is required for automated testing.
+ Actual plugins return expected values and this can be verified by manual testing
+ 
  @param aValidityPckg on return contains the status of the validity of the RTC as a boolean value
  @param aStatus to complete when the operation has finished
 
  @see TRequestStatus
 */
-void CRtcAdaptationRef::ValidateRtc(TDes8& /*aValidityPckg*/, TRequestStatus& aStatus)
+void CRtcAdaptationRef::ValidateRtc(TDes8& aValidityPckg, TRequestStatus& aStatus)
 	{
-	aStatus = KRequestPending;
-	TRequestStatus* status = &aStatus;
-	User::RequestComplete(status, KErrNotSupported);
+    if(!IsTestPsKeyDefined())
+        {
+        DEBUGPRINT1A("ValidateRtc:: Calling Actual plugins functions (saartcadaptation.dll)");
+        iSaaRtcAdaptationDll->ValidateRtc(aValidityPckg, aStatus);
+        }
+    else
+        {
+        DEBUGPRINT1A("ValidateRtc:: Calling ref plugins functions (rtcadaptationref.dll)");
+        aStatus = KRequestPending;
+        TRequestStatus* status = &aStatus;
+        User::RequestComplete(status, KErrNotSupported);
+        }
 	}
 
 /**
  Set a device wake-up alarm time, in UTC (coordinated universal time), in the RTC.
- Reference implementation completes the request with KErrNotSupported as support for RTC is not available on Techview/H4 hrp.
+ Reference implementation completes the request with KErrNotSupported. This is required for automated testing.
+ Actual plugins return expected values and this can be verified by manual testing
  For testing purposes it sets a pub sub property defined in test code.
 
  @param aAlarmTimePckg requested wake up time
@@ -81,19 +121,29 @@
 */
 void CRtcAdaptationRef::SetWakeupAlarm(TDesC8& aAlarmTimePckg, TRequestStatus& aStatus)
 	{
-	// Set this pub sub property (for testing purposes)
-	// The property is defined in the test code.  In normal operation this will fail silently because the property has not been defined.
-	RProperty::Set(KAlarmServerUID, KTestRTCValueKey, aAlarmTimePckg);
+    if(!IsTestPsKeyDefined())
+        {
+        DEBUGPRINT1A("SetWakeupAlarm:: Calling Actual plugins functions (saartcadaptation.dll)");
+        iSaaRtcAdaptationDll->SetWakeupAlarm(aAlarmTimePckg, aStatus);
+        }
+    else
+        {
+        DEBUGPRINT1A("SetWakeupAlarm:: Calling ref plugins functions (rtcadaptationref.dll)");
+        // Set this pub sub property (for testing purposes)
+        // The property is defined in the test code.  In normal operation this will fail silently because the property has not been defined.
+        RProperty::Set(KAlarmServerUID, KTestRTCValueKey, aAlarmTimePckg);
+        aStatus = KRequestPending;
+        TRequestStatus* status = &aStatus;
+        // No support for RTC on HRP/Techview.
+        User::RequestComplete(status, KErrNotSupported);
+        }
+	}
 
-	aStatus = KRequestPending;
-	TRequestStatus* status = &aStatus;
-	// No support for RTC on HRP/Techview.
-	User::RequestComplete(status, KErrNotSupported);
-	}
 
 /**
  Delete the current device wake-up alarm time in the RTC.
- Reference implementation completes the request with KErrNotSupported as support for RTC is not available on Techview/H4 hrp.
+ Reference implementation completes the request with KErrNotSupported. This is required for automated testing.
+ Actual plugins return expected values and this can be verified by manual testing
  For testing purposes it sets a pub sub property to a NULL value defined in test code.
 
  @param aStatus to complete when the operation has finished
@@ -102,16 +152,24 @@
 */
 void CRtcAdaptationRef::UnsetWakeupAlarm(TRequestStatus& aStatus)
 	{
-	// Set this pub sub property to a NULL value because we are unsetting the RTC (for testing purposes)
-	// The property is defined in the test code. In normal operation this will fail silently because the property has not been defined.
-	TTime nullTime(Time::NullTTime());
-	TPckgC<TTime> wakeupAlarmTimePckg(nullTime);
-	RProperty::Set(KAlarmServerUID, KTestRTCValueKey, wakeupAlarmTimePckg);
-
-	aStatus = KRequestPending;
-	TRequestStatus* status = &aStatus;
-	// No support for RTC on HRP/Techview.
-	User::RequestComplete(status, KErrNotSupported);
+    if(!IsTestPsKeyDefined())
+        {
+        DEBUGPRINT1A("UnsetWakeupAlarm:: Calling Actual plugins functions (saartcadaptation.dll)");
+        iSaaRtcAdaptationDll->UnsetWakeupAlarm(aStatus);
+        }
+    else
+        {
+        DEBUGPRINT1A("UnsetWakeupAlarm:: Calling ref plugins functions (rtcadaptationref.dll)");
+        // Set this pub sub property to a NULL value because we are unsetting the RTC (for testing purposes)
+        // The property is defined in the test code. In normal operation this will fail silently because the property has not been defined.
+        TTime nullTime(Time::NullTTime());
+        TPckgC<TTime> wakeupAlarmTimePckg(nullTime);
+        RProperty::Set(KAlarmServerUID, KTestRTCValueKey, wakeupAlarmTimePckg);
+        aStatus = KRequestPending;
+        TRequestStatus* status = &aStatus;
+        // No support for RTC on HRP/Techview.
+        User::RequestComplete(status, KErrNotSupported);
+        }
 	}
 
 /**
@@ -120,4 +178,25 @@
 */
 void CRtcAdaptationRef::Cancel()
 	{
+    if(!IsTestPsKeyDefined())
+        {
+        DEBUGPRINT1A("Cancel:: Calling Actual plugins functions (saartcadaptation.dll)");
+        iSaaRtcAdaptationDll->Cancel();
+        }
 	}
+
+/**
+    Helper function to check for P&S Key
+*/
+TBool CRtcAdaptationRef::IsTestPsKeyDefined()
+    {
+    TBool testPsKeyDefined = EFalse;
+    TInt result = RProperty::Get(KPropertyCategory, KRtcAdaptationPluginPropertyKey, testPsKeyDefined);
+    DEBUGPRINT3(_L("KRtcAdaptationPluginPropertyKey %d Error %d"), testPsKeyDefined, result);
+    if ((KErrNone != result) && (KErrNotFound != result))
+        {
+        //Could not retrieve property value. Tests might fail 
+        DEBUGPRINT1A("IsTestPsKeyDefined ERROR :: Could not retrieve property value)");
+        }
+    return testPsKeyDefined;
+    }
--- a/sysstatemgmt/systemstateplugins/adptplugin/src/simadaptationref.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstateplugins/adptplugin/src/simadaptationref.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -10,10 +10,20 @@
 //
 // Contributors:
 //
-// Description:
+// Description: This adaptation plugin implementation is for test/reference purposes.   
+// The loading of this plugin is controlled through test macro defined in the iby file "ssmcompatibility.iby".
+// If the macro "TEST_SSM_MACRO" is not defined, original plugins are loaded and this plugin is not loaded.
+// If the test P & S key is set in the test code, the calls are routed to the reference or dummy implementations.
+// Else the actual plugins are loaded and the calls are routed to the actual implementations.
+// The test P & S key which it looks for is KSimPluginPropertyKey (0x2000D76A)
 //
 
 #include "simadaptationref.h"
+#include "ssmdebug.h"
+#include <e32property.h> 
+
+const TUint32 KSimPluginPropertyKey = 0x2000D76B;
+const TUid KPropertyCategory={0x2000D75B};
 
 /**
 Function to create new Sim Adaptation Plugin.
@@ -40,6 +50,7 @@
 CSimAdaptationRef::~CSimAdaptationRef()
 	{
 	delete iTimer;
+	iSaaSimAdaptationLib.Close();
 	}
 
 CSimAdaptationRef::CSimAdaptationRef()
@@ -48,6 +59,11 @@
 
 void CSimAdaptationRef::ConstructL()
 	{
+	DEBUGPRINT1A("Loading Actual plugins");
+    _LIT(KSaaSimAdaptationDLL, "saaSimadaptation.dll");
+    User::LeaveIfError(iSaaSimAdaptationLib.Load(KSaaSimAdaptationDLL));
+    iSaaSimAdaptationDll = (MSimAdaptation *)(iSaaSimAdaptationLib.Lookup(1)()); 
+    
 	iTimer = CSimRefAdaptationTimer::NewL();
 	}
 
@@ -57,11 +73,20 @@
 	delete this;
 	}
 
-void CSimAdaptationRef::GetSimOwned(TDes8& /*aOwnedPckg*/, TRequestStatus& aStatus)
+void CSimAdaptationRef::GetSimOwned(TDes8& aOwnedPckg, TRequestStatus& aStatus)
 	{
-	aStatus = KRequestPending;
-	TRequestStatus* pStatus = &aStatus;
-	User::RequestComplete(pStatus, KErrNone);
+	if(!IsTestPsKeyDefined())
+        {
+        DEBUGPRINT1A("GetSimOwned:: Calling Actual plugins functions (saaSimadaptation.dll)");
+        iSaaSimAdaptationDll->GetSimOwned(aOwnedPckg,aStatus);
+        }
+    else
+        {
+        DEBUGPRINT1A("GetSimOwned :: Calling ref plugins functions (Simadaptationref.dll)");
+        aStatus = KRequestPending;
+        TRequestStatus* pStatus = &aStatus;
+        User::RequestComplete(pStatus, KErrNone);      
+        }	
 	}
 
 /**
@@ -70,10 +95,16 @@
 */
 void CSimAdaptationRef::GetCancel()
 	{
+	if(!IsTestPsKeyDefined())
+        {
+        DEBUGPRINT1A("GetCancel ::Calling Actual plugins functions (saaSimadaptation.dll)");
+        iSaaSimAdaptationDll->GetCancel();
+        }
 	}
 
 /**
-  The reference implementation completes with KErrNotSupported since there is no SIM support on HRP/Techview.
+  The reference implementation completes with KErrNotSupported. This is required for automated testing.
+  Actual plugins return expected values and this can be verified by manual testing
   On a device, Sim Adaptation Plug-in would complete 'aTypePckg' with one of the event types in TSsmSimEventType.
   
   
@@ -94,8 +125,23 @@
 */
 void CSimAdaptationRef::NotifySimEvent(TDes8& /*aTypePckg*/, TRequestStatus& aStatus)
 	{
-	aStatus = KRequestPending;
-	iTimer->After(2000000,aStatus);
+	if(!IsTestPsKeyDefined())
+        {
+        DEBUGPRINT1A("NotifySimEvent :: Calling Actual plugins functions (saaSimadaptation.dll)");
+        /* Only clayersup.dll has an outstanding request. If this is passed to the actual plugin, the
+        request will never complete till a SIM event happens. This would add the test code requests in a queue
+        and the test code waits indefinitely. Hence, complete the request with KErrCancel. This would free the 
+        queue for test code to be executed. It has not impact on the test environment */
+        TRequestStatus *request = &aStatus; 
+        User::RequestComplete(request, KErrCancel);
+        }
+    else
+        {
+        DEBUGPRINT1A("NotifySimEvent :: Calling ref plugins functions (Simadaptationref.dll)");
+        aStatus = KRequestPending;
+        iTimer->After(2000000,aStatus);      
+        }   
+
 	}
 
 /**
@@ -104,12 +150,36 @@
 */
 void CSimAdaptationRef::NotifyCancel()
 	{
-	if(iTimer->IsActive())
-		{
-		iTimer->Cancel();			
-		}
+	if(!IsTestPsKeyDefined())
+        {
+        DEBUGPRINT1A("NotifyCancel :: Calling Actual plugins functions (saaSimadaptation.dll)");
+        iSaaSimAdaptationDll->NotifyCancel();
+        }
+    else
+        {
+        DEBUGPRINT1A("NotifyCancel :: Calling ref plugins functions (Simadaptationref.dll)");
+        if(iTimer->IsActive())
+            {
+            iTimer->Cancel();           
+            }     
+        }	
 	}
 
+/**
+    Helper function to check for P&S Key
+*/
+TBool CSimAdaptationRef::IsTestPsKeyDefined()
+    {
+    TBool testPsKeyDefined = EFalse;
+    TInt result = RProperty::Get(KPropertyCategory, KSimPluginPropertyKey, testPsKeyDefined);
+    DEBUGPRINT3(_L("KSimPluginPropertyKey %d Error %d"), testPsKeyDefined, result);
+    if ((KErrNone != result) && (KErrNotFound != result))
+        {
+        //Could not retrieve property value. Tests might fail 
+        DEBUGPRINT1A("IsTestPsKeyDefined ERROR :: Could not retrieve property value)");
+        }
+    return testPsKeyDefined;
+    }
 
 
 CSimRefAdaptationTimer::CSimRefAdaptationTimer():CTimer(CActive::EPriorityUserInput)
--- a/sysstatemgmt/systemstateplugins/adptplugin/src/stateadaptationref.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstateplugins/adptplugin/src/stateadaptationref.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -10,10 +10,21 @@
 //
 // Contributors:
 //
-// Description:
+// Description: This adaptation plugin implementation is for test/reference purposes.   
+// The loading of this plugin is controlled through test macro defined in the iby file "ssmcompatibility.iby".
+// If the macro "TEST_SSM_MACRO" is not defined, original plugins are loaded and this plugin is not loaded.
+// If the test P & S key is set in the test code, the calls are routed to the reference or dummy implementations.
+// Else the actual plugins are loaded and the calls are routed to the actual implementations.
+// The test P & S key which it looks for is KStateAdaptationPluginPropertyKey (0x2000D76A)
 //
 
+#include <e32property.h>
+#include <ssm/ssmstate.h>
 #include "stateadaptationref.h"
+#include "ssmdebug.h"
+
+const TUint32 KStateAdaptationPluginPropertyKey = 0x2000D76A;
+const TUid KPropertyCategory={0x2000D75B};
 
 /**
 Static method to create new State Adaptation Plugin.
@@ -40,6 +51,7 @@
 CStateAdaptationRef::~CStateAdaptationRef()
 	{
 	delete iTimer;
+	iSaaStateAdaptationLib.Close();
 	}
 
 CStateAdaptationRef::CStateAdaptationRef()
@@ -48,6 +60,10 @@
 
 void CStateAdaptationRef::ConstructL()
 	{
+    DEBUGPRINT1A("Loading Actual plugins");
+    _LIT(KSaaStateAdaptationDLL, "saastateadaptation.dll");
+    User::LeaveIfError(iSaaStateAdaptationLib.Load(KSaaStateAdaptationDLL));
+    iSaaStateAdaptationDll = (MStateAdaptation *)(iSaaStateAdaptationLib.Lookup(1)()); 
 	iTimer = CStateRefAdaptationTimer::NewL();
 	}
 
@@ -57,39 +73,84 @@
 	delete this;
 	}
 
-void CStateAdaptationRef::RequestCoopSysStateChange(TSsmState /*aState*/, TRequestStatus& aStatus)
+void CStateAdaptationRef::RequestCoopSysStateChange(TSsmState aState, TRequestStatus& aStatus)
 	{
-	aStatus = KRequestPending;
-	TRequestStatus* status = &aStatus;
-	User::RequestComplete(status, KErrNone);
+	if(!IsTestPsKeyDefined())
+	    {
+	    DEBUGPRINT1A("RequestCoopSysStateChange:: Calling Actual plugins functions (saastateadaptation.dll)");
+	    iSaaStateAdaptationDll->RequestCoopSysStateChange(aState, aStatus);
+	    }
+	else
+	    {
+	    DEBUGPRINT1A("RequestCoopSysStateChange:: Calling ref plugins functions (stateadaptationref.dll)");
+	    aStatus = KRequestPending;
+	    TRequestStatus* status = &aStatus;
+	    User::RequestComplete(status, KErrNone);
+	    }
 	}
 
 void CStateAdaptationRef::RequestCoopSysSelfTest(TRequestStatus& aStatus)
 	{
-	aStatus = KRequestPending;
-	TRequestStatus* status = &aStatus;
-	User::RequestComplete(status, KErrNone);
+	if(!IsTestPsKeyDefined())
+        {
+        DEBUGPRINT1A("RequestCoopSysSelfTest:: Calling Actual plugins functions (saastateadaptation.dll)");
+        iSaaStateAdaptationDll->RequestCoopSysSelfTest(aStatus);
+        }
+    else
+        {
+        DEBUGPRINT1A("RequestCoopSysSelfTest:: Calling ref plugins functions (stateadaptationref.dll)");
+        aStatus = KRequestPending;
+        TRequestStatus* status = &aStatus;
+        User::RequestComplete(status, KErrNone);
+        }
 	}
 
-void CStateAdaptationRef::RequestCoopSysPerformRestartActions(TInt /*aReason*/, TRequestStatus& aStatus)
+void CStateAdaptationRef::RequestCoopSysPerformRestartActions(TInt aReason, TRequestStatus& aStatus)
 	{
-	aStatus = KRequestPending;
-	TRequestStatus* status = &aStatus;
-	User::RequestComplete(status, KErrNone);
+	if(!IsTestPsKeyDefined())
+        {
+        DEBUGPRINT1A("RequestCoopSysPerformRestartActions:: Calling Actual plugins functions (saastateadaptation.dll)");
+        iSaaStateAdaptationDll->RequestCoopSysPerformRestartActions(aReason, aStatus);
+        }
+    else
+        {
+        DEBUGPRINT1A("RequestCoopSysPerformRestartActions:: Calling ref plugins functions (stateadaptationref.dll)");
+        aStatus = KRequestPending;
+        TRequestStatus* status = &aStatus;
+        User::RequestComplete(status, KErrNone);
+        }
 	}
 
-void CStateAdaptationRef::RequestCoopSysPerformShutdownActions(TInt /*aReason*/, TRequestStatus& aStatus)
+void CStateAdaptationRef::RequestCoopSysPerformShutdownActions(TInt aReason, TRequestStatus& aStatus)
 	{
-	aStatus = KRequestPending;
-	TRequestStatus* status = &aStatus;
-	User::RequestComplete(status, KErrNone);
+	if(!IsTestPsKeyDefined())
+        {
+        DEBUGPRINT1A("RequestCoopSysPerformShutdownActions:: Calling Actual plugins functions (saastateadaptation.dll)");
+        iSaaStateAdaptationDll->RequestCoopSysPerformShutdownActions(aReason, aStatus);
+        }
+    else
+        {
+        DEBUGPRINT1A("RequestCoopSysPerformShutdownActions:: Calling ref plugins functions (stateadaptationref.dll)");
+        aStatus = KRequestPending;
+        TRequestStatus* status = &aStatus;
+        User::RequestComplete(status, KErrNone);
+        }
 	}
 
-void CStateAdaptationRef::RequestCoopSysPerformRfsActions(TSsmRfsType /*aRfsType*/, TRequestStatus& aStatus)
+void CStateAdaptationRef::RequestCoopSysPerformRfsActions(TSsmRfsType aRfsType, TRequestStatus& aStatus)
 	{
-	aStatus = KRequestPending;
-	TRequestStatus* status = &aStatus;
-	User::RequestComplete(status, KErrNone);
+	if(!IsTestPsKeyDefined())
+        {
+        DEBUGPRINT1A("RequestCoopSysPerformRfsActions:: Calling Actual plugins functions (saastateadaptation.dll)");
+        iSaaStateAdaptationDll->RequestCoopSysPerformRfsActions(aRfsType, aStatus);
+        }
+    else
+        {
+        DEBUGPRINT1A("RequestCoopSysPerformRfsActions:: Calling ref plugins functions (stateadaptationref.dll)");
+        aStatus = KRequestPending;
+        TRequestStatus* status = &aStatus;
+        User::RequestComplete(status, KErrNone);
+        }
 	}
 
 /**
@@ -98,10 +159,16 @@
 */
 void CStateAdaptationRef::RequestCancel()
 	{
+	if(!IsTestPsKeyDefined())
+        {
+        DEBUGPRINT1A("RequestCancel:: Calling Actual plugins functions (saastateadaptation.dll)");
+        iSaaStateAdaptationDll->RequestCancel();
+        }
 	}
 
 /**
-  The reference implementation completes with KErrNotSupported since there isn't a Cooperating System on HRP/Techview.
+  The reference implementation completes with KErrNotSupported. This is required for automated testing.
+  Actual plugins return expected values and this can be verified by manual testing
   On a device, State Adaptation Plug-in would request for notification from the Cooperating System for 'aEvent'.
   
   The above mentioned implementation is modified to facilitate testing and increase the code coverage of the Adaptation 
@@ -120,8 +187,22 @@
 */
 void CStateAdaptationRef::NotifyCoopSysEvent(TDes8& /*aEvent*/, TRequestStatus& aStatus)
 	{
-	aStatus = KRequestPending;
-	iTimer->After(2000000,aStatus);
+	if(!IsTestPsKeyDefined())
+        {
+        /* Only ssmpowersup.dll has an outstanding request. If this is passed to the actual plugin, the
+        request will never complete till a power event happens. This would add the test code requests in a queue
+        and the test code waits indefinitely. Hence, complete the request with KErrServerTerminated. This would free 
+        the queue for test code to be executed. It has not impact on the test environment */
+        aStatus = KRequestPending;
+        TRequestStatus* status = &aStatus;
+        User::RequestComplete(status, KErrServerTerminated);
+        }
+    else
+        {
+        DEBUGPRINT1A("NotifyCoopSysEvent:: Calling ref plugins functions (stateadaptationref.dll)");
+        aStatus = KRequestPending;
+        iTimer->After(2000000,aStatus);
+        }
 	}
 
 /**
@@ -130,13 +211,36 @@
 */
 void CStateAdaptationRef::NotifyCancel()
 	{
-	if(iTimer->IsActive())
-		{
-		iTimer->Cancel();			
-		}	
+	if(!IsTestPsKeyDefined())
+        {
+        DEBUGPRINT1A("NotifyCancel:: Calling Actual plugins functions (saastateadaptation.dll)");
+        iSaaStateAdaptationDll->NotifyCancel();
+        }
+    else
+        {
+        DEBUGPRINT1A("NotifyCancel:: Calling ref plugins functions (stateadaptationref.dll)");
+        if(iTimer->IsActive())
+            {
+            iTimer->Cancel();
+            }
+        }
 	}
 
-
+/**
+    Helper function to check for P&S Key
+*/
+TBool CStateAdaptationRef::IsTestPsKeyDefined()
+    {
+    TBool testPsKeyDefined = EFalse;
+    TInt result = RProperty::Get(KPropertyCategory, KStateAdaptationPluginPropertyKey, testPsKeyDefined);
+    DEBUGPRINT3(_L("KStateAdaptationPluginPropertyKey %d Error %d"), testPsKeyDefined, result);
+    if ((KErrNone != result) && (KErrNotFound != result))
+        {
+        //Could not retrieve property value. Tests might fail 
+        DEBUGPRINT1A("IsTestPsKeyDefined ERROR :: Could not retrieve property value)");
+        }
+    return testPsKeyDefined;
+    }
 
 CStateRefAdaptationTimer::CStateRefAdaptationTimer():CTimer(CActive::EPriorityUserInput)
 	{
--- a/sysstatemgmt/systemstateplugins/group/app-framework_ssplugins.mrp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstateplugins/group/app-framework_ssplugins.mrp	Thu Jul 22 16:45:41 2010 +0100
@@ -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	app-framework_ssplugins
 source	\sf\os\devicesrv\sysstatemgmt\systemstateplugins
 binary	\sf\os\devicesrv\sysstatemgmt\systemstateplugins\group	all
--- a/sysstatemgmt/systemstateplugins/gsapolicy/src/gsastatepolicynormal.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstateplugins/gsapolicy/src/gsastatepolicynormal.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -159,10 +159,11 @@
 
 	//Check if the requested transition is supported from current state
 	if (TransitionSupported(aRequest.State()))
-		{
-		if((NULL == aCurrent) && (NULL == aQueued))
+		{		
+		//Transition is allowed when there is no current and queued transitions.
+		//or allow substate(ESsmNormalRfOnSubState and ESsmNormalRfOffSubState)transition only when KSsmGracefulOffline is enabled and queue is empty.
+		if (((NULL == aCurrent) && (NULL == aQueued)) || (IsSsmGracefulOffline() && (NULL == aQueued)))
 			{
-			// SsmServer is idle
 			response = EDefinitelyAllowed;
 			}
 		else if((aRequest.State().MainState() == ESsmFail) || (aRequest.State().MainState() == ESsmShutdown))
--- a/sysstatemgmt/systemstateplugins/test/tappgsapolicy/resource/sspluginstest_tappgsapolicy.rss	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstateplugins/test/tappgsapolicy/resource/sspluginstest_tappgsapolicy.rss	Thu Jul 22 16:45:41 2010 +0100
@@ -22,8 +22,8 @@
 
 NAME STAG
 
-#include <techview/eikon.rh>
-#include <techview/eikon.rsg>
+#include <eikon.rh>
+#include <eikon.rsg>
 
 RESOURCE RSS_SIGNATURE { }
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysstatemgmt/systemstateplugins/test/tcmncustomcmd/group/sspluginstest_tcmncustomcmd.pkg	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,33 @@
+;
+; 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".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description: 
+;
+
+
+;Languages
+&EN
+
+
+;Localised Vendor name
+%{"SspluginsCmnCustomcmdTests EN"}
+
+; Vendor name
+: "SspluginsCmnCustomcmdTests"
+
+"\sf\os\devicesrv\sysstatemgmt\systemstateplugins\test\tcmncustomcmd\scripts\sspluginstest_cmncustomcmd_rendezvouswithestart.script"-"c:\devicesrv\sspluginstest\sspluginstest_cmncustomcmd_rendezvouswithestart.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstateplugins\test\tcmncustomcmd\scripts\sspluginstest_cmncustomcmd_persistreboots.script"-"c:\devicesrv\sspluginstest\sspluginstest_cmncustomcmd_persistreboots.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstateplugins\test\tcmncustomcmd\scripts\sspluginstest_cmncustomcmd_cancelmonitoring.script"-"c:\devicesrv\sspluginstest\sspluginstest_cmncustomcmd_cancelmonitoring.script"
+
+
+
--- a/sysstatemgmt/systemstateplugins/test/testapps/group/gsatestappgood.mmp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstateplugins/test/testapps/group/gsatestappgood.mmp	Thu Jul 22 16:45:41 2010 +0100
@@ -27,7 +27,8 @@
 USERINCLUDE   	../inc
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 MW_LAYER_SYSTEMINCLUDE_SYMBIAN
-SYSTEMINCLUDE	/epoc32/include/techview
+MW_LAYER_SYSTEMINCLUDE
+//SYSTEMINCLUDE	/epoc32/include/techview
 
 LIBRARY     euser.lib 
 LIBRARY		apparc.lib 
--- a/sysstatemgmt/systemstateplugins/test/tintadptplugin/group/bld.inf	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstateplugins/test/tintadptplugin/group/bld.inf	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -33,10 +33,12 @@
 
 PRJ_TESTMMPFILES
 tiadaptation_plugin.mmp
+definetestps.mmp
 
 
 PRJ_TESTEXPORTS
 sspluginstest_i_adaptation.iby			/epoc32/rom/include/sspluginstest_i_adaptation.iby
+definetestps.iby						/epoc32/rom/include/definetestps.iby
 
 // batch files for emulator / hardware test execution
 ../scripts/sspluginstest_adaptation_i_run.bat			/epoc32/data/z/sspluginstest/sspluginstest_adaptation_i_run.bat
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysstatemgmt/systemstateplugins/test/tintadptplugin/group/definetestps.iby	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +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".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+#ifndef __DEFINETEST_IBY__
+#define __DEFINETEST_IBY__
+
+file=ABI_DIR\BUILD_DIR\definetestps.exe	sys\bin\definetestps.exe
+
+data=EPOCROOT##epoc32\data\Z\private\10003a3f\apps\definetestps_reg.rsc	private\10003a3f\apps\definetestps_reg.rsc
+
+#endif // __DEFINETEST_IBY__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysstatemgmt/systemstateplugins/test/tintadptplugin/group/definetestps.mmp	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,51 @@
+// 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".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+//
+
+TARGET			definetestps.exe
+TARGETTYPE		exe
+CAPABILITY		WriteDeviceData
+
+UID           	0x100039CE 0x200315B2
+VENDORID 		0x70000001
+
+//Secure id of sysstatemgr.exe
+SECUREID		0x2000D75B
+
+SOURCEPATH    	../src
+SOURCE        	definetestps.cpp
+
+USERINCLUDE   	.
+USERINCLUDE   	../inc
+
+
+OS_LAYER_SYSTEMINCLUDE_SYMBIAN
+MW_LAYER_SYSTEMINCLUDE_SYMBIAN
+MW_LAYER_SYSTEMINCLUDE  
+
+
+// Registration file
+SOURCEPATH    	../src
+START RESOURCE	definetestps_reg.rss
+TARGETPATH		/private/10003a3f/apps
+END
+
+LIBRARY     euser.lib
+LIBRARY		apparc.lib
+LIBRARY		apgrfx.lib
+LIBRARY		cone.lib
+LIBRARY		eikcore.lib
+LIBRARY		ssmuiproviderdll.lib
+
+SMPSAFE
--- a/sysstatemgmt/systemstateplugins/test/tintadptplugin/group/sspluginstest_i_adaptation.iby	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstateplugins/test/tintadptplugin/group/sspluginstest_i_adaptation.iby	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -16,6 +16,8 @@
 #ifndef __SSPLUGINSTEST_I_ADAPTATION_IBY__
 #define __SSPLUGINSTEST_I_ADAPTATION_IBY__
 
+#include <definetestps.iby>
+
 // test server
 data=ABI_DIR\DEBUG_DIR\tiadaptation_plugin.exe			sys\bin\tiadaptation_plugin.exe
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysstatemgmt/systemstateplugins/test/tintadptplugin/group/sspluginstest_i_tadaptation.pkg	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,35 @@
+;
+; 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".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description: 
+;
+
+
+;Languages
+&EN
+
+
+;Localised Vendor name
+%{"SspluginsiAdaptationTests EN"}
+
+; Vendor name
+: "SspluginsiAdaptationTests"
+
+"\sf\os\devicesrv\sysstatemgmt\systemstateplugins\test\tintadptplugin\scripts\sspluginstest_adaptation_i_emergency.script"-"c:\devicesrv\sspluginstest\sspluginstest_adaptation_i_emergency.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstateplugins\test\tintadptplugin\scripts\sspluginstest_adaptation_i_misc.script"-"c:\devicesrv\sspluginstest\sspluginstest_adaptation_i_misc.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstateplugins\test\tintadptplugin\scripts\sspluginstest_adaptation_i_rtc.script"-"c:\devicesrv\sspluginstest\sspluginstest_adaptation_i_rtc.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstateplugins\test\tintadptplugin\scripts\sspluginstest_adaptation_i_sim.script"-"c:\devicesrv\sspluginstest\sspluginstest_adaptation_i_sim.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstateplugins\test\tintadptplugin\scripts\sspluginstest_adaptation_i_state.script"-"c:\devicesrv\sspluginstest\sspluginstest_adaptation_i_state.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstateplugins\test\tintadptplugin\scripts\sspluginstest_adaptation_i_statenotify.script"-"c:\devicesrv\sspluginstest\sspluginstest_adaptation_i_statenotify.script"
+
+
--- a/sysstatemgmt/systemstateplugins/test/tintadptplugin/group/tiadaptation_plugin.mmp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstateplugins/test/tintadptplugin/group/tiadaptation_plugin.mmp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -27,6 +27,9 @@
 UID				0x1000007A 0x10285A52	
 VENDORID		0x70000001
 
+//Secure id of sysstatemgr.exe
+SECUREID		0x2000D75B
+
 CAPABILITY 		PowerMgmt ReadDeviceData WriteDeviceData ProtServ SwEvent ReadUserData WriteUserData DiskAdmin
 
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysstatemgmt/systemstateplugins/test/tintadptplugin/inc/definetestps.h	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,76 @@
+// 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".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description: This is the header file for "DefineTestPs" app. This app is used to define the P & S keys required for activating the reference plugins.
+//
+
+/**
+ @file
+ @test
+ @internalComponent - Internal Symbian test code
+*/
+
+#ifndef __DEFINETESTPS_H
+#define __DEFINETESTPS_H
+
+/**
+Application class
+*/
+#include <eikapp.h>
+class CTestApplication : public CEikApplication
+	{
+public:
+	static CApaApplication* NewApplication();
+	~CTestApplication();
+	
+private:
+	CTestApplication();
+	
+	// from CApaApplication
+	TUid AppDllUid() const;
+	CApaDocument* CreateDocumentL();
+	};
+
+/**
+Document class
+*/
+#include <eikdoc.h>
+class CEikAppUi;
+class CEikApplication;
+class CTestDocument : public CEikDocument
+	{
+public:
+	static CTestDocument* NewL(CEikApplication& aApp);
+	~CTestDocument();
+	
+private:
+	CTestDocument(CEikApplication& aApp);
+	
+	// from CEikDocument
+	CEikAppUi* CreateAppUiL();
+	};
+
+/**
+Application UI class, root of all graphical user interface in this application
+*/
+#include <eikappui.h>
+class CTestAppUi : public CEikAppUi
+    {
+public:
+	CTestAppUi();
+	~CTestAppUi();
+	
+	// from CEikAppUi
+	void ConstructL();
+	};
+
+#endif // __DEFINETESTPS_H
--- a/sysstatemgmt/systemstateplugins/test/tintadptplugin/inc/ti_adaptationplugin_stepbase.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstateplugins/test/tintadptplugin/inc/ti_adaptationplugin_stepbase.h	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -27,6 +27,14 @@
 #include <test/testexecutestepbase.h>
 #include <ssm/ssmadaptationcli.h>
 
+//for define, set and unset of P&S keys.
+const TUint32 KEmergencyCallRfAdaptationPluginPropertyKey = 0x2000E657;
+const TUint32 KStateAdaptationPluginPropertyKey = 0x2000D76A;
+const TUint32 KRtcAdaptationPluginPropertyKey = 0x2000D76C;
+const TUint32 KSimPluginPropertyKey = 0x2000D76B;
+const TUint32 KMiscPluginPropertyKey = 0x2000E658;
+
+const TUid KPropertyCategory={0x2000D75B};
 
 class CTestAdaptStep : public CTestStep
 	{
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysstatemgmt/systemstateplugins/test/tintadptplugin/src/definetestps.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,154 @@
+// 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".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description: This app is used to define the P & S keys required for activating the reference plugins.
+//
+
+/**
+ @file
+ @test
+ @internalComponent - Internal Symbian test code
+*/
+
+#include <eikstart.h> 
+#include <eikapp.h>
+#include <e32property.h>
+#include "definetestps.h"
+#include "ti_adaptationplugin_stepbase.h"
+
+
+/**
+Standard DLL entry point function.
+Creates and returns an instance of the CApaApplication-derived class.
+@return an instance of the CApaApplication-derived class
+*/
+TInt E32Main()
+	{
+	return EikStart::RunApplication( CTestApplication::NewApplication );
+	}
+
+CTestApplication::CTestApplication()
+	{
+	}
+
+CTestApplication::~CTestApplication()
+	{
+ 	}
+		
+/**
+@return The application's UID 
+*/
+TUid CTestApplication::AppDllUid() const
+	{
+	const TUid dll = {0x200315B2};
+	return dll;
+	}
+
+/**
+@return CTestApplication or NULL if KErrNoMemory
+*/
+CApaApplication* CTestApplication::NewApplication()
+	{
+	// As the framework has at this point not started up enough, and therefore the TRAP-harness and 
+	// exception handlers aren’t available yet, this factory function is a non-leaving function and 
+	// can't use the new(Eleave) operator.
+	return new CTestApplication();
+	}
+	
+/**
+Called by the UI framework at application start-up to create an instance of the document class.
+@leave	KErrNoMemory
+@return A CTestDocument
+*/
+CApaDocument* CTestApplication::CreateDocumentL()
+	{
+	return CTestDocument::NewL(*this);
+	}
+
+CTestDocument::CTestDocument(CEikApplication& aApp) : CEikDocument(aApp)
+	{
+	}
+
+CTestDocument::~CTestDocument()
+	{
+	}
+
+/**
+Factory function for this class
+@return a new CEndTaskTestDocument instance.
+*/
+CTestDocument* CTestDocument::NewL(CEikApplication& aApp)
+	{
+	return new(ELeave) CTestDocument(aApp);
+	}
+
+
+/**
+Called by the UI framework to construct the application UI class. 
+Note that the app UI's ConstructL() is called by the UI framework.
+*/
+CEikAppUi* CTestDocument::CreateAppUiL()
+	{
+	return new(ELeave) CTestAppUi();
+	}
+
+CTestAppUi::CTestAppUi()
+	{
+	}
+
+CTestAppUi::~CTestAppUi()
+	{
+	}
+
+void CTestAppUi::ConstructL()
+	{
+	//This appplication is used to define the property for using dummy plugins. Uid3 of the application should be 
+	//same as the SSM's Secure Id. 
+	
+	
+	//Define the property for using Dummy plugins.
+	TInt result = KErrNone;
+	result = RProperty::Define(KPropertyCategory, KEmergencyCallRfAdaptationPluginPropertyKey, RProperty::EInt);
+	if ((KErrNone != result) && (KErrAlreadyExists !=result))
+        {
+        User::Leave(result);            
+        }
+	
+	
+	result = RProperty::Define(KPropertyCategory, KStateAdaptationPluginPropertyKey, RProperty::EInt);
+	if ((KErrNone != result) && (KErrAlreadyExists !=result))
+        {
+        User::Leave(result);            
+        }	
+	
+    result = RProperty::Define(KPropertyCategory, KRtcAdaptationPluginPropertyKey, RProperty::EInt);
+	if ((KErrNone != result) && (KErrAlreadyExists !=result))
+        {
+        User::Leave(result);            
+        }    
+
+    result = RProperty::Define(KPropertyCategory, KSimPluginPropertyKey, RProperty::EInt);
+	if ((KErrNone != result) && (KErrAlreadyExists !=result))
+        {
+        User::Leave(result);            
+        }   
+
+    result = RProperty::Define(KPropertyCategory, KMiscPluginPropertyKey, RProperty::EInt);
+	if ((KErrNone != result) && (KErrAlreadyExists !=result))
+        {
+        User::Leave(result);            
+        }
+	
+	RProcess::Rendezvous(KErrNone);
+	// Complete the UI framework's construction of the App UI.
+	BaseConstructL(CEikAppUi::ENoAppResourceFile);
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysstatemgmt/systemstateplugins/test/tintadptplugin/src/definetestps_reg.rss	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,33 @@
+// 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".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description: This is the registration resource file for "DefineTestPs" app. This app is used 
+// to define the P & S keys required for activating the reference plugins.
+//
+
+/**
+ @file
+ @test
+ @internalComponent - Internal Symbian test code
+*/
+
+#include <appinfo.rh>
+
+UID2 KUidAppRegistrationResourceFile
+UID3 0x200315B2
+
+RESOURCE APP_REGISTRATION_INFO
+	{
+	// filename of application binary (minus extension)
+	app_file="definetestps";
+	newfile = KAppDoesNotSupportNewFile;
+	}
--- a/sysstatemgmt/systemstateplugins/test/tintadptplugin/src/temergencycallrf_adaptationplugin_step.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstateplugins/test/tintadptplugin/src/temergencycallrf_adaptationplugin_step.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -157,10 +157,9 @@
 TInt RTestSsmEmergencyCallRfAdaptation::CleanupAdaptations()
 	{
 	TInt ret = KErrNone;
-	if(Handle())
-		{
-		ret =  SendReceive(EDebugCleanupAdaptations);
-		}
+	// Since actual plugins are being used, they cannot be unloaded.
+	// Hence return without doing anything. There will be HeapMarkEnd to check that
+	// memory is not leaked.
 	return ret;
 	}
 
--- a/sysstatemgmt/systemstateplugins/test/tintadptplugin/src/ti_adaptationplugin_stepbase.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstateplugins/test/tintadptplugin/src/ti_adaptationplugin_stepbase.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -21,6 +21,9 @@
 #include "ti_adaptationplugin_stepbase.h"
 
 #include <e32debug.h>
+#include <e32property.h>
+
+_LIT (KExeToDefineTestPS, "\\sys\\bin\\definetestps.exe");
 
 static TInt StopScheduler(TAny* aTestAdaptStep)
 	{
@@ -51,6 +54,41 @@
 
 TVerdict CTestAdaptStep::doTestStepPreambleL()
 	{
+	RProcess processHandle;
+	CleanupClosePushL(processHandle);
+	
+	//Start the test exe which defines property keys for loading reference plugins
+	    
+	TInt err = processHandle.Create(KExeToDefineTestPS, KNullDesC);
+	INFO_PRINTF2(_L("Process creation returned : %d"), err);
+	User::LeaveIfError(err);
+	processHandle.Resume();
+	
+    // wait for the newly created process to rendezvous
+    TRequestStatus status;
+    processHandle.Rendezvous(status);
+    User::WaitForRequest(status);
+    TInt retVal = status.Int();
+    INFO_PRINTF2(_L("iStatus.Int() returned : %d"), retVal);
+    TEST(KErrNone == retVal);
+    CleanupStack::PopAndDestroy();
+    
+	// Set all the property keys
+	err = RProperty::Set(KPropertyCategory, KEmergencyCallRfAdaptationPluginPropertyKey, 1);
+	TEST(KErrNone == err);
+	
+	err = RProperty::Set(KPropertyCategory, KStateAdaptationPluginPropertyKey, 1);
+	TEST(KErrNone == err);
+	
+	err = RProperty::Set(KPropertyCategory, KRtcAdaptationPluginPropertyKey, 1);
+	TEST(KErrNone == err);
+	
+	err = RProperty::Set(KPropertyCategory, KSimPluginPropertyKey, 1);
+	TEST(KErrNone == err);
+	
+	err = RProperty::Set(KPropertyCategory, KMiscPluginPropertyKey, 1);
+	TEST(KErrNone == err);
+	
 	INFO_PRINTF1(_L("Starting the scheduler in CTestEmergencyAdaptStep::doTestStepPreambleL ..."));
 	iActiveScheduler = new(ELeave) CActiveScheduler;
 	CActiveScheduler::Install (iActiveScheduler);
@@ -65,5 +103,22 @@
 /** */
 TVerdict CTestAdaptStep::doTestStepPostambleL()
 	{
+	//Unset all the PandS keys
+	TInt err = RProperty::Set(KPropertyCategory, KEmergencyCallRfAdaptationPluginPropertyKey, 0); 
+	TEST(KErrNone == err);
+	
+	err = RProperty::Set(KPropertyCategory, KStateAdaptationPluginPropertyKey, 0);
+	TEST(KErrNone == err);
+	
+	err = RProperty::Set(KPropertyCategory, KRtcAdaptationPluginPropertyKey, 0);
+	TEST(KErrNone == err);
+	
+	err = RProperty::Set(KPropertyCategory, KSimPluginPropertyKey, 0);
+	TEST(KErrNone == err);
+
+	err = RProperty::Set(KPropertyCategory, KMiscPluginPropertyKey, 0);
+	TEST(KErrNone == err);
+	
+	
 	return CTestStep::doTestStepPostambleL();
 	}
--- a/sysstatemgmt/systemstateplugins/test/tintadptplugin/src/tmisc_adaptationplugin_step.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstateplugins/test/tintadptplugin/src/tmisc_adaptationplugin_step.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -199,10 +199,9 @@
 TInt RTestSsmMiscAdaptation::CleanupAdaptations()
 	{
 	TInt ret = KErrNone;
-	if(Handle())
-		{
-		ret =  SendReceive(EDebugCleanupAdaptations);
-		}
+    // Since actual plugins are being used, they cannot be unloaded.
+    // Hence return without doing anything. There will be HeapMarkEnd to check that
+    // memory is not leaked.
 	return ret;
 	}
 
--- a/sysstatemgmt/systemstateplugins/test/tintadptplugin/src/trtc_adaptationplugin_step.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstateplugins/test/tintadptplugin/src/trtc_adaptationplugin_step.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -165,10 +165,9 @@
 TInt RTestSsmRtcAdaptation::CleanupAdaptations()
 	{
 	TInt ret = KErrNone;
-	if(Handle())
-		{
-		ret =  SendReceive(EDebugCleanupAdaptations);
-		}
+    // Since actual plugins are being used, they cannot be unloaded.
+    // Hence return without doing anything. There will be HeapMarkEnd to check that
+    // memory is not leaked.
 	return ret;
 	}
 
--- a/sysstatemgmt/systemstateplugins/test/tintadptplugin/src/tsim_adaptationplugin_step.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstateplugins/test/tintadptplugin/src/tsim_adaptationplugin_step.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -162,10 +162,9 @@
 TInt RTestSsmSimAdaptation::CleanupAdaptations()
 	{
 	TInt ret = KErrNone;
-	if(Handle())
-		{
-		ret =  SendReceive(EDebugCleanupAdaptations);
-		}
+    // Since actual plugins are being used, they cannot be unloaded.
+    // Hence return without doing anything. There will be HeapMarkEnd to check that
+    // memory is not leaked.
 	return ret;
 	}
 
--- a/sysstatemgmt/systemstateplugins/test/tintadptplugin/src/tstate_adaptationplugin_step.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstateplugins/test/tintadptplugin/src/tstate_adaptationplugin_step.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -176,10 +176,9 @@
 TInt RTestSsmStateAdaptation::CleanupAdaptations()
 	{
 	TInt ret = KErrNone;
-	if(Handle())
-		{
-		ret =  SendReceive(EDebugCleanupAdaptations);
-		}
+    // Since actual plugins are being used, they cannot be unloaded.
+    // Hence return without doing anything. There will be HeapMarkEnd to check that
+    // memory is not leaked.
 	return ret;
 	}
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysstatemgmt/systemstateplugins/test/tintconditionevaluator/group/sspluginstest_tintconditionevaluator.pkg	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,28 @@
+;
+; 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".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description: 
+;
+
+;Languages
+&EN
+
+
+;Localised Vendor name
+%{"Ssplugins_tintconditionevaluator EN"}
+
+; Vendor name
+: "Ssplugins_tintconditionevaluator"
+
+"\sf\os\devicesrv\sysstatemgmt\systemstateplugins\test\tintconditionevaluator\scripts\sspluginstest_conditionevaluator_evaluate.script"-"c:\devicesrv\sspluginstest\sspluginstest_conditionevaluator_evaluate.script"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysstatemgmt/systemstateplugins/test/tunitadptplugin/group/sspluginstest_tadaptation.pkg	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,31 @@
+;
+; 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".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description: 
+;
+
+;Languages
+&EN
+
+
+;Localised Vendor name
+%{"Ssplugins_TUnitAdptPlugin EN"}
+
+; Vendor name
+: "Ssplugins_TUnitAdptPlugin"
+
+"\sf\os\devicesrv\sysstatemgmt\systemstateplugins\test\tunitadptplugin\scripts\sspluginstest_adaptation_emergency.script"-"c:\devicesrv\sspluginstest\sspluginstest_adaptation_emergency.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstateplugins\test\tunitadptplugin\scripts\sspluginstest_adaptation_misc.script"-"c:\devicesrv\sspluginstest\sspluginstest_adaptation_misc.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstateplugins\test\tunitadptplugin\scripts\sspluginstest_adaptation_rtc.script"-"c:\devicesrv\sspluginstest\sspluginstest_adaptation_rtc.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstateplugins\test\tunitadptplugin\scripts\sspluginstest_adaptation_sim.script"-"c:\devicesrv\sspluginstest\sspluginstest_adaptation_sim.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstateplugins\test\tunitadptplugin\scripts\sspluginstest_adaptation_state.script"-"c:\devicesrv\sspluginstest\sspluginstest_adaptation_state.script"
--- a/sysstatemgmt/systemstateplugins/test/tunitadptplugin/group/tadaptation_plugin.mmp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstateplugins/test/tunitadptplugin/group/tadaptation_plugin.mmp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -22,11 +22,10 @@
 
 TARGET			tadaptation_plugin.exe
 TARGETTYPE		exe
-TARGETPATH	/sys/bin
-UID				0x1000007A 0x1028359E
+TARGETPATH		/sys/bin
+UID				0x1000007A 0x2000D75B
 VENDORID		0x70000001
 
-//CAPABILITY 		All -Tcb
 CAPABILITY 		PowerMgmt ReadDeviceData WriteDeviceData ProtServ SwEvent ReadUserData WriteUserData
 
 
--- a/sysstatemgmt/systemstateplugins/test/tunitadptplugin/src/temergencycallrf_adaptationplugin_step.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstateplugins/test/tunitadptplugin/src/temergencycallrf_adaptationplugin_step.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -22,8 +22,12 @@
 
 
 #include <s32mem.h>
+#include <e32property.h>
 #include "temergencycallrf_adaptationplugin_step.h"
 
+const TUint32 KEmergencyCallRfAdaptationPluginPropertyKey = 0x2000E657;
+const TUid KPropertyCategory={0x2000D75B};
+
 //
 // Run the tests
 //
@@ -73,10 +77,13 @@
 //from CAdaptationTestBase
 TVerdict CTestEmergencyCallRfAdaptationPlugin::doTestStepL()
 	{
-	TInt err = KErrNone;
-
 	__UHEAP_MARK;
 	
+	TInt err = RProperty::Define(KPropertyCategory, KEmergencyCallRfAdaptationPluginPropertyKey, RProperty::EInt);
+	TEST((KErrNone == err) || (KErrAlreadyExists == err));
+	err = RProperty::Set(KPropertyCategory, KEmergencyCallRfAdaptationPluginPropertyKey, 1);
+	TEST(KErrNone == err);
+	
 	TRAP(err, TestActivateRfForEmergencyCall());
 	TEST(iStatus.Int() == KErrDisconnected);
 	TEST(err == KErrNone);
@@ -97,6 +104,8 @@
 	TestCancel();
 	//TestRelease();			// have to test this part too ...
 
+	err = RProperty::Delete(KPropertyCategory, KEmergencyCallRfAdaptationPluginPropertyKey);
+	TEST(KErrNone == err);
 	__UHEAP_MARKEND;
 
 	return TestStepResult();
--- a/sysstatemgmt/systemstateplugins/test/tunitadptplugin/src/tmisc_adaptationplugin_step.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstateplugins/test/tunitadptplugin/src/tmisc_adaptationplugin_step.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -20,7 +20,7 @@
 */
 
 
-
+#include <e32property.h>
 #include <s32mem.h>
 #include "tmisc_adaptationplugin_step.h"
 
@@ -28,6 +28,9 @@
 // Run the tests
 //
 
+const TUid KPropertyCategory={0x2000D75B};              // tcustomcmd_server SID = KSsmServerName SID (changed in tcustomcmd_server.mmp file)
+const TUint32 KMiscPluginPropertyKey = 0x2000E658;
+
 CTestMiscAdaptationPlugin::CTestMiscAdaptationPlugin()
 	:CAdaptationTestBase(KTCTestMiscAdaptationPlugin)
 	{
@@ -174,6 +177,12 @@
 	{
 	__UHEAP_MARK;
 	
+	TInt err = RProperty::Define(KPropertyCategory, KMiscPluginPropertyKey, RProperty::EInt);
+	INFO_PRINTF2(_L("Defining KMiscPluginPropertyKey returns %d"), err);
+	TEST((KErrNone == err) || (KErrAlreadyExists == err));
+	err = RProperty::Set(KPropertyCategory, KMiscPluginPropertyKey, 1);
+	TEST(KErrNone == err);
+		
 	TestSecurityStateChange();
 
 	TestGetGlobalStartupMode();
@@ -200,7 +209,10 @@
 
 	TestCancel();
 	//TestRelease();			// have to test this part too ...
-
+	
+	err = RProperty::Delete(KPropertyCategory, KMiscPluginPropertyKey);
+	TEST(KErrNone == err);
+	
 	__UHEAP_MARKEND;
 
 	return TestStepResult();
--- a/sysstatemgmt/systemstateplugins/test/tunitadptplugin/src/trtc_adaptationplugin_step.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstateplugins/test/tunitadptplugin/src/trtc_adaptationplugin_step.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -20,14 +20,16 @@
 */
 
 
-
+#include <e32property.h>
 #include <s32mem.h>
 #include "trtc_adaptationplugin_step.h"
 
 //
 // Run the tests
 //
-
+_LIT (KExeToDefineTestPS, "\\sys\\bin\\definetestps.exe");
+const TUint32 KRtcAdaptationPluginPropertyKey = 0x2000D76C;
+const TUid KPropertyCategory={0x2000D75B};
 
 CTestRtcAdaptationPlugin::CTestRtcAdaptationPlugin()
 	:CAdaptationTestBase(KTCTestRtcAdaptationPlugin)
@@ -53,7 +55,7 @@
 	if(iSsmRtcAdaptation.Handle())
 		{
 		TEST(KErrNotSupported == status.Int());	
-		INFO_PRINTF3(_L("CTestRtcAdaptationPlugin::TestValidateRtc completed with %d error : expected %d>"),status.Int(),KErrNone);	
+		INFO_PRINTF3(_L("CTestRtcAdaptationPlugin::TestValidateRtc completed with %d error : expected %d>"),status.Int(),KErrNotSupported);	
 		}
 	else
 		{
@@ -74,7 +76,7 @@
 	if(iSsmRtcAdaptation.Handle())
 		{
 		TEST(KErrNotSupported == status.Int());	
-		INFO_PRINTF3(_L("CTestRtcAdaptationPlugin::TestSetWakeupAlarm completed with %d error : expected %d>"),status.Int(),KErrNone);	
+		INFO_PRINTF3(_L("CTestRtcAdaptationPlugin::TestSetWakeupAlarm completed with %d error : expected %d>"),status.Int(),KErrNotSupported);	
 		}
 	else
 		{
@@ -94,7 +96,7 @@
 	if(iSsmRtcAdaptation.Handle())
 		{
 		TEST(KErrNotSupported == status.Int());	
-		INFO_PRINTF3(_L("CTestRtcAdaptationPlugin::TestUnsetWakeupAlarm completed with %d error : expected %d>"),status.Int(),KErrNone);	
+		INFO_PRINTF3(_L("CTestRtcAdaptationPlugin::TestUnsetWakeupAlarm completed with %d error : expected %d>"),status.Int(),KErrNotSupported);	
 		}
 	else
 		{
@@ -114,9 +116,29 @@
 //from CAdaptationTestBase
 TVerdict CTestRtcAdaptationPlugin::doTestStepL()
 	{
-	TInt err = KErrNone;
-
 	__UHEAP_MARK;
+	
+	RProcess processHandle;
+    CleanupClosePushL(processHandle); 
+	        
+    //Start the test exe which defines startup related property keys 
+	            
+    TInt err = processHandle.Create(KExeToDefineTestPS, KNullDesC); 
+    INFO_PRINTF2(_L("Process creation returned : %d"), err);
+    User::LeaveIfError(err);
+	processHandle.Resume(); 
+	        
+	// wait for the newly created process to rendezvous 
+	TRequestStatus status; 
+	processHandle.Rendezvous(status); 
+	User::WaitForRequest(status); 
+	TInt retVal = status.Int(); 
+	INFO_PRINTF2(_L("iStatus.Int() returned : %d"), retVal); 
+	TEST(KErrNone == retVal); 
+	CleanupStack::PopAndDestroy();
+	
+    err = RProperty::Set(KPropertyCategory, KRtcAdaptationPluginPropertyKey, 1);
+    TEST(KErrNone == err);
 	TRAP(err, TestValidateRtc());
 	TEST(err == KErrNone);
 
@@ -142,7 +164,8 @@
 	TestCancel();
 	//TestRelease();			// have to test this part too ...
 
-
+    err = RProperty::Set(KPropertyCategory, KRtcAdaptationPluginPropertyKey, 0);
+    TEST(KErrNone == err);
 	__UHEAP_MARKEND;
 
 	return TestStepResult();
--- a/sysstatemgmt/systemstateplugins/test/tunitadptplugin/src/tsim_adaptationplugin_step.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstateplugins/test/tunitadptplugin/src/tsim_adaptationplugin_step.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -22,12 +22,14 @@
 
 
 #include <s32mem.h>
+#include <e32property.h>
 #include "tsim_adaptationplugin_step.h"
 
 //
 // Run the tests
 //
-
+const TUint32 KSimPluginPropertyKey = 0x2000D76B;
+const TUid KPropertyCategory={0x2000D75B};              // tcustomcmd_server SID = KSsmServerName SID (changed in tcustomcmd_server.mmp file)
 
 CTestSimAdaptationPlugin::CTestSimAdaptationPlugin()
 	:CAdaptationTestBase(KTCTestSimAdaptationPlugin)
@@ -102,10 +104,13 @@
 //from CAdaptationTestBase
 TVerdict CTestSimAdaptationPlugin::doTestStepL()
 	{
-	TInt err = KErrNone;
-
 	__UHEAP_MARK;
 	
+    TInt err = RProperty::Define(KPropertyCategory, KSimPluginPropertyKey, RProperty::EInt);
+    TEST((KErrNone == err) || (KErrAlreadyExists == err));
+    err = RProperty::Set(KPropertyCategory, KSimPluginPropertyKey, 1);
+    TEST(KErrNone == err);
+	
 	TRAP(err, TestGetSimOwned());
 	TEST(err == KErrNone);
 
@@ -128,6 +133,8 @@
 	TestGetCancel();
 	//TestRelease();			// have to test this part too ...
 
+    err = RProperty::Delete(KPropertyCategory, KSimPluginPropertyKey);
+    TEST(KErrNone == err);
 	__UHEAP_MARKEND;
 
 	return TestStepResult();
--- a/sysstatemgmt/systemstateplugins/test/tunitadptplugin/src/tstate_adaptationplugin_step.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstateplugins/test/tunitadptplugin/src/tstate_adaptationplugin_step.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -22,9 +22,13 @@
 
 
 #include <s32mem.h>
+#include <e32property.h>
 #include <ssm/ssmadaptation.h>
 #include "tstate_adaptationplugin_step.h"
 
+const TUint32 KStateAdaptationPluginPropertyKey = 0x2000D76A;
+const TUid KPropertyCategory={0x2000D75B};
+
 typedef MStateAdaptation* (*TFuncNewL)();
 
 CTestStateAdaptationPlugin::CTestStateAdaptationPlugin()
@@ -181,7 +185,10 @@
 //from CAdaptationTestBase
 TVerdict CTestStateAdaptationPlugin::doTestStepL()
 	{
-	TInt err = KErrNone;
+	TInt err = RProperty::Define(KPropertyCategory, KStateAdaptationPluginPropertyKey, RProperty::EInt);
+	TEST((KErrNone == err) || (KErrAlreadyExists == err));
+	err = RProperty::Set(KPropertyCategory, KStateAdaptationPluginPropertyKey, 1);
+	TEST(KErrNone == err);
 	
 	__UHEAP_MARK;
 	TRAP(err, TestRequestCoopSysStateChangeL());
@@ -256,6 +263,8 @@
 
 	TestNotifyCancel();
 	TEST(err == KErrNone);
-
+	
+	err = RProperty::Delete(KPropertyCategory, KStateAdaptationPluginPropertyKey);
+	TEST(KErrNone == err);
 	return TestStepResult();
 	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysstatemgmt/systemstateplugins/test/tunitconditionevaluator/group/sspluginstest_tunitconditionevaluator.pkg	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,28 @@
+;
+; 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".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description: 
+;
+
+;Languages
+&EN
+
+
+;Localised Vendor name
+%{"Ssplugins_TUnitConditionEvaluator EN"}
+
+; Vendor name
+: "Ssplugins_TUnitConditionEvaluator"
+
+"\sf\os\devicesrv\sysstatemgmt\systemstateplugins\test\tunitconditionevaluator\scripts\sspluginstest_cndeval_conditionevaluator.script"-"c:\devicesrv\sspluginstest\sspluginstest_cndeval_conditionevaluator.script"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysstatemgmt/systemstateplugins/test/tunitgsapolicy/group/sspluginstest_tgsa.pkg	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,31 @@
+;
+; 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".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description: 
+;
+
+;Languages
+&EN
+
+
+;Localised Vendor name
+%{"Ssplugins_TGsa EN"}
+
+; Vendor name
+: "Ssplugins_TGsa"
+
+"\sf\os\devicesrv\sysstatemgmt\systemstateplugins\test\tunitgsapolicy\scripts\sspluginstest_gsa_startup.script"-"c:\devicesrv\sspluginstest\sspluginstest_gsa_startup.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstateplugins\test\tunitgsapolicy\scripts\sspluginstest_gsa_normal.script"-"c:\devicesrv\sspluginstest\sspluginstest_gsa_normal.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstateplugins\test\tunitgsapolicy\scripts\sspluginstest_gsa_shutdown.script"-"c:\devicesrv\sspluginstest\sspluginstest_gsa_shutdown.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstateplugins\test\tunitgsapolicy\scripts\sspluginstest_gsa_fail.script"-"c:\devicesrv\sspluginstest\sspluginstest_gsa_fail.script"
+
--- a/sysstatemgmt/systemstateplugins/test/tunitgsapolicy/group/tgsa_server.mmp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstateplugins/test/tunitgsapolicy/group/tgsa_server.mmp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -34,6 +34,7 @@
 USERINCLUDE		../inc
 USERINCLUDE		../../../gsapolicy/inc
 USERINCLUDE		../../../localinc
+USERINCLUDE		../../../../ssmpolicyplugins/inc
 
 SOURCEPATH		../src
 SOURCE			tgsa_server.cpp
--- a/sysstatemgmt/systemstateplugins/test/tunitgsapolicy/src/tgsa_step_fail.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstateplugins/test/tunitgsapolicy/src/tgsa_step_fail.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -27,12 +27,19 @@
 #include <ssm/ssmcommandlist.h>
 #include <ssm/ssmcmd.hrh>
 #include <ssm/ssmcommand.h>
+#include "ssmsubstateext.hrh"
 
 #include "tgsa_step_fail.h"
 
-TSsmCommandType ArrFail[] = { ESsmCmdPublishSystemState, ESsmCmdPersistHalAttributes, 
-							ESsmCmdFinaliseDrives, ESsmCmdPowerOff };
-
+TSsmCommandType ArrFail[] = {   ESsmCmdCustomCommand,       //r_cmd_sastate
+                                ESsmCmdPublishSystemState,  //r_cmd_publishstate
+                                ESsmCmdSetPAndSKey,         //r_cmd_psstate
+                                ESsmCmdCustomCommand,       //r_cmd_cancelmonitoring
+                                ESsmCmdSetPAndSKey,         //r_cmd_killsplash
+                                ESsmCmdCustomCommand,       //r_cmd_contactservice
+                                ESsmCmdStartApp,            //r_cmd_sysap
+                                ESsmCmdMultipleWait         //r_cmd_multiwaitforever
+                                };
 CGsaFailTest::~CGsaFailTest()
 	{
 	}
@@ -112,8 +119,10 @@
  void CGsaFailTest::doTestPrepareCommandListL()
 	{
 	INFO_PRINTF1(_L("> CGsaFailTest::doTestPrepareCommandListL"));
-	TestPrepareCommandListL(ESsmFail ,KSsmAnySubState, KErrNone);
-	TestPrepareCommandListL(ESsmFail ,KSsmAnySubState, KErrNone);
+	//The default substate in the actual (fail policy) is mapped to 
+	//ESsmStateFail = 0x30
+	//Hence testing for the same.
+	TestPrepareCommandListL(ESsmFail ,ESsmStateFail , KErrNone);
 	TestPrepareCommandListL(ESsmFail ,100, KErrNotFound);
 	}
 
@@ -125,7 +134,7 @@
 	{
 	INFO_PRINTF1(_L("> CGsaFailTest::doTestCommandListL"));
 
-	TestCommandListL(ESsmFail, KSsmAnySubState, (sizeof(ArrFail)/sizeof(ArrFail[0])));
+	TestCommandListL(ESsmFail, ESsmStateFail, (sizeof(ArrFail)/sizeof(ArrFail[0])));
 	}
 
 /**
@@ -137,11 +146,11 @@
 	{
 	CGsaStatePolicyFail* policy = CreateAndInitializeFailPolicyLC();
 
-	TSsmState state(ESsmFail, KSsmAnySubState);
+	TSsmState state(ESsmFail, ESsmStateFail);
 	TSsmState result(0, 0);
 	TestGetNextState(policy, state, KErrNone, result);
 
-	TSsmState firstState(ESsmFail, KSsmAnySubState);
+	TSsmState firstState(ESsmFail, ESsmStateFail);
 	TestGetNextState(policy, firstState, KErrNone, result);
 
 	TSsmState unknownState(ESsmFail, 100);
@@ -266,7 +275,7 @@
 void CGsaFailTest::TestGetNextState(CGsaStatePolicyFail* aPolicy, TSsmState aCurrentTransition, TInt aError, TSsmState aResult)
 	{
 	TRequestStatus trs;
-	TSsmState state(ESsmFail, KSsmAnySubState);
+	TSsmState state(ESsmFail, ESsmStateFail);
 	aPolicy->PrepareCommandList(state, KErrNone, trs);
 	StartScheduler();
 	User::WaitForRequest(trs);
--- a/sysstatemgmt/systemstateplugins/test/tunitgsapolicy/src/tgsa_step_shutdown.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstateplugins/test/tunitgsapolicy/src/tgsa_step_shutdown.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -27,12 +27,24 @@
 #include <ssm/ssmcommandlist.h>
 #include <ssm/ssmcmd.hrh>
 #include <ssm/ssmcommand.h>
+#include <ssmsubstateext.hrh> 
 
 #include "tgsa_step_shutdown.h"
 
-TSsmCommandType ArrCriticalShutdown[] = { ESsmCmdPublishSystemState};
-TSsmCommandType ArrNonCriticalShutdown[] = { ESsmCmdPublishSystemState, ESsmCmdPersistHalAttributes, ESsmCmdFinaliseDrives};
-TSsmCommandType ArrPowerOffShutdown[] = { ESsmCmdPublishSystemState, ESsmCmdPowerOff };
+TSsmCommandType ArrCriticalShutdown[] = {   ESsmCmdCustomCommand,       //r_cmd_sastate
+                                            ESsmCmdPublishSystemState,  //r_cmd_publishstate
+                                            ESsmCmdSetPAndSKey,         //r_cmd_psstate
+                                            ESsmCmdCustomCommand,       //r_cmd_cancelmonitoring
+                                            ESsmCmdCustomCommand        //r_cmd_shutdownapps
+                                            };
+TSsmCommandType ArrNonCriticalShutdown[] = {ESsmCmdPublishSystemState,  //r_cmd_publishstate 
+                                            ESsmCmdSetPAndSKey,         //r_cmd_killsplash
+                                            ESsmCmdCustomCommand,       //r_cmd_sashutdown
+                                            ESsmCmdFinaliseDrives       //r_cmd_finalisedrives
+                                            };
+TSsmCommandType ArrPowerOffShutdown[] = {   ESsmCmdPublishSystemState,  //r_cmd_publishstate
+                                            ESsmCmdPowerOff             //r_cmd_poweroff 
+                                            };
 
 const TUint16 KUnknownState = 100;
 
@@ -132,11 +144,11 @@
 	{
 	INFO_PRINTF1(_L("> CGsaShutdownTest::doTestCommandListL"));
 
-	TestCommandListL(ESsmShutdown, ESsmShutdownSubStateCritical, 1);
+	TestCommandListL(ESsmShutdown, ESsmShutdownSubStateCritical, (sizeof(ArrCriticalShutdown)/sizeof(ArrCriticalShutdown[0])));
 	// KSsmAnySubState
-	TestCommandListL(ESsmShutdown, KSsmAnySubState, 1);
-	TestCommandListL(ESsmShutdown, ESsmShutdownSubStateNonCritical, 3);
-	TestCommandListL(ESsmShutdown, ESsmShutdownSubStatePowerOff, 2);
+	TestCommandListL(ESsmShutdown, KSsmAnySubState, (sizeof(ArrCriticalShutdown)/sizeof(ArrCriticalShutdown[0])));
+	TestCommandListL(ESsmShutdown, ESsmShutdownSubStateNonCritical, (sizeof(ArrNonCriticalShutdown)/sizeof(ArrNonCriticalShutdown[0])));
+	TestCommandListL(ESsmShutdown, ESsmShutdownSubStatePowerOff, (sizeof(ArrPowerOffShutdown)/sizeof(ArrPowerOffShutdown[0])));
 	}
 
 /**
--- a/sysstatemgmt/systemstateplugins/test/tunitgsapolicy/src/tgsa_step_startup.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstateplugins/test/tunitgsapolicy/src/tgsa_step_startup.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -27,10 +27,20 @@
 #include <ssm/ssmcommandlist.h>
 #include <ssm/ssmsubstates.hrh>
 #include <ssm/ssmcommand.h>
+#include <ssmsubstateext.hrh>
 
 
 #ifdef SYMBIAN_SSM_GRACEFUL_SHUTDOWN
-TSsmCommandType ArrCriticalStartUp[] = { ESsmCmdCustomCommand,ESsmCmdPublishSystemState,ESsmCmdStartProcess, ESsmCmdStartProcess, ESsmCmdStartProcess, ESsmCmdStartProcess,ESsmCmdStartProcess, ESsmCmdSetPAndSKey, ESsmCmdStartProcess, ESsmCmdStartProcess, ESsmCmdStartProcess, ESsmCmdLoadSup };
+TSsmCommandType ArrCriticalStartUp[] = {ESsmCmdPublishSystemState,  //r_cmd_publishstate
+                                        ESsmCmdStartProcess,        //r_cmd_sysagt
+                                        ESsmCmdCustomCommand,       //r_cmd_initpskeys
+                                        ESsmCmdCustomCommand,       //r_cmd_checkuserdrive
+                                        ESsmCmdCustomCommand,       //r_cmd_deltempfiles
+                                        ESsmCmdStartProcess,        //r_cmd_reservedisk
+                                        ESsmCmdStartProcess,        //r_cmd_sysmon
+                                        ESsmCmdStartProcess,        //r_cmd_ssmutilsrv
+                                        ESsmCmdMultipleWait         //r_cmd_multiwaitforever
+                                        };
 #else
 TSsmCommandType ArrCriticalStartUp[] = { ESsmCmdCustomCommand,ESsmCmdPublishSystemState,ESsmCmdStartProcess, ESsmCmdStartProcess, ESsmCmdStartProcess, ESsmCmdStartProcess,ESsmCmdStartProcess, ESsmCmdSetPAndSKey, ESsmCmdStartProcess, ESsmCmdStartProcess, ESsmCmdStartProcess };
 #endif
@@ -39,8 +49,45 @@
 #ifdef TEST_SSM_GRACEFUL_OFFLINE
 TSsmCommandType ArrNonCriticalStartUp[] = { ESsmCmdSetPAndSKey, ESsmCmdSetPAndSKey,ESsmCmdSetPAndSKey,ESsmCmdPublishSystemState ,ESsmCmdStartProcess,ESsmCmdStartProcess,ESsmCmdStartProcess,ESsmCmdStartProcess,ESsmCmdStartProcess,ESsmCmdStartProcess,ESsmCmdAMAStarter};
 #else
-TSsmCommandType ArrNonCriticalStartUp[] = { ESsmCmdPublishSystemState ,ESsmCmdStartProcess,ESsmCmdStartProcess,ESsmCmdStartProcess,ESsmCmdStartProcess,ESsmCmdStartProcess,ESsmCmdStartProcess,ESsmCmdAMAStarter};
+TSsmCommandType ArrNonCriticalStartUp[] = { ESsmCmdCustomCommand,       //r_cmd_sastate
+                                            ESsmCmdPublishSystemState,  //r_cmd_publishstate
+                                            ESsmCmdSetPAndSKey,         //r_cmd_psstate
+                                            ESsmCmdCustomCommand,       //r_cmd_startupmode
+                                            ESsmCmdLoadSup,             //r_cmd_loadpowersup
+                                            ESsmCmdCustomCommand,       //r_cmd_rfsfirstboot
+                                            ESsmCmdCustomCommand,       //r_cmd_rfsdeep
+                                            ESsmCmdCustomCommand,       //r_cmd_rfsnormal
+                                            ESsmCmdCustomCommand,       //r_cmd_initclkeys
+                                            ESsmCmdCustomCommand,       //r_cmd_initramdrive
+                                            ESsmCmdStartProcess,        //r_cmd_wserv
+                                            ESsmCmdStartProcess,        //r_cmd_splash
+                                            ESsmCmdStartProcess,        //r_cmd_tzsrv
+                                            ESsmCmdStartProcess,        //r_cmd_mediator
+                                            ESsmCmdStartProcess,        //r_cmd_hwrmsrv
+                                            ESsmCmdCustomCommand,       //r_cmd_rtc
+                                            ESsmCmdMultipleWait,        //r_cmd_multiwaitforever1
+                                            ESsmCmdStartProcess,        //r_cmd_dbrecovery
+                                            ESsmCmdStartProcess,        //r_cmd_accsrv
+                                            ESsmCmdCustomCommand,       //r_cmd_selectlanguage
+                                            ESsmCmdMultipleWait,        //r_cmd_multiwaitforever2
+                                            ESsmCmdLoadSup,             //r_cmd_loadlocalesup
+                                            ESsmCmdLoadSup,             //r_cmd_loadcollation
+                                            ESsmCmdLoadSup,             //r_cmd_loadregion
+                                            ESsmCmdLoadSup,             //r_cmd_loaduilanguage
+                                            ESsmCmdCustomCommand,       //r_cmd_aknstart
+                                            ESsmCmdWaitForApparcInit,   //r_cmd_apparc_init
+                                            ESsmCmdCustomCommand        //r_cmd_rfspostui
+                                            };
 #endif
+TSsmCommandType ArrCriticalAppsStartUp[] = {ESsmCmdCustomCommand,       //r_cmd_sastate
+                                            ESsmCmdPublishSystemState,  //r_cmd_publishstate
+                                            ESsmCmdSetPAndSKey,         //r_cmd_psstate
+                                            ESsmCmdCustomCommand,       //r_cmd_selftest
+                                            ESsmCmdStartProcess,        //r_cmd_cfserver
+                                            ESsmCmdStartApp,            //r_cmd_sysap
+                                            ESsmCmdStartProcess,        //r_cmd_profmon
+                                            ESsmCmdMultipleWait         //r_cmd_multiwaitforever
+                                            };
 
 CGsaStartupTest::~CGsaStartupTest()
 	{
@@ -123,9 +170,8 @@
 	INFO_PRINTF1(_L("> CGsaStartupTest::doTestPrepareCommandListL"));
 	TestPrepareCommandListL(ESsmStartup ,ESsmStartupSubStateCriticalStatic, KErrNone);
 	TestPrepareCommandListL(ESsmStartup ,KSsmAnySubState, KErrNone);
-	TestPrepareCommandListL(ESsmStartup ,ESsmStartupSubStateCriticalDynamic, KErrNone);
-	TestPrepareCommandListL(ESsmStartup ,ESsmStartupSubStateNetworkingCritical, KErrNone);
 	TestPrepareCommandListL(ESsmStartup ,ESsmStartupSubStateNonCritical, KErrNone);
+	TestPrepareCommandListL(ESsmStartup ,ESsmStateStartingCriticalApps, KErrNone); //ESsmStateStartingCriticalApps = 0x31
 	TestPrepareCommandListL(ESsmStartup ,100, KErrNotFound);
 	}
 
@@ -139,10 +185,8 @@
 	INFO_PRINTF1(_L("> CGsaStartupTest::doTestCommandListL"));
 
 	TestCommandListL(ESsmStartup, ESsmStartupSubStateCriticalStatic, sizeof(ArrCriticalStartUp) / sizeof(ArrCriticalStartUp[0]));
-	TestCommandListL(ESsmStartup, KSsmAnySubState, sizeof(ArrCriticalStartUp) / sizeof(ArrCriticalStartUp[0]));
-	TestCommandListL(ESsmStartup, ESsmStartupSubStateCriticalDynamic, sizeof(ArrDynamicStartUp) / sizeof(ArrDynamicStartUp[0]));
-	TestCommandListL(ESsmStartup, ESsmStartupSubStateNetworkingCritical, sizeof(ArrNetworkingStartUp) / sizeof(ArrNetworkingStartUp[0]));
 	TestCommandListL(ESsmStartup, ESsmStartupSubStateNonCritical, sizeof(ArrNonCriticalStartUp) / sizeof(ArrNonCriticalStartUp[0]));
+	TestCommandListL(ESsmStartup, ESsmStateStartingCriticalApps, sizeof(ArrCriticalAppsStartUp) / sizeof(ArrCriticalAppsStartUp[0]));	
 	}
 
 /**
@@ -156,46 +200,22 @@
 	CGsaStatePolicyStartup* policy = CreateAndInitializeStartUpPolicyLC();
 
 	TSsmState state(ESsmStartup, KSsmAnySubState);
-	TSsmState result(ESsmStartup, ESsmStartupSubStateCriticalDynamic);
-	// KSsmAnySubState (KSsmAnySubState) will return ESsmStartUpSubStateCriticalDynamic only for the first time, 
+	TSsmState result(ESsmStartup, ESsmStartupSubStateNonCritical);
+	// KSsmAnySubState (KSsmAnySubState) will return ESsmStartupSubStateNonCritical only for the first time, 
 	// next call will always return the next sub state for transition.
 	TestGetNextState(policy, state, KErrNone, result);
 
 	TSsmState firstState(ESsmStartup, ESsmStartupSubStateCriticalStatic);
-	TSsmState firstResult(ESsmStartup, ESsmStartupSubStateCriticalDynamic);
+	TSsmState firstResult(ESsmStartup, ESsmStartupSubStateNonCritical);
 	TestGetNextState(policy, firstState, KErrNone, firstResult);
 
-	TSsmState secondState(ESsmStartup, ESsmStartupSubStateCriticalDynamic);
-	TSsmState secondResult(ESsmStartup, ESsmStartupSubStateNetworkingCritical);
+	TSsmState secondState(ESsmStartup, ESsmStartupSubStateNonCritical);
+	TSsmState secondResult(ESsmStartup, ESsmStateStartingCriticalApps);
 	TestGetNextState(policy, secondState, KErrNone, secondResult);
 
-	TSsmState thirdState(ESsmStartup, ESsmStartupSubStateNetworkingCritical);
-	TSsmState thirdResult(ESsmStartup, ESsmStartupSubStateNonCritical);
+	TSsmState thirdState(ESsmStartup, ESsmStateStartingCriticalApps);
+	TSsmState thirdResult(ESsmStartup, ESsmStateSelfTestOK);
 	TestGetNextState(policy, thirdState, KErrNone, thirdResult);
-#ifdef __WINS__
-	TSsmState fourthState(ESsmStartup, ESsmStartupSubStateNonCritical);
-	TSsmState fourthResult(ESsmNormal, KSsmAnySubState);
-	TestGetNextState(policy, fourthState, KErrNone, fourthResult);
-#else
-	TSsmState fourthState(ESsmStartup, ESsmStartupSubStateNonCritical);
-	TSsmState fourthResult(ESsmStartup, 0x48);//Added 0x48 sub-state for new test for ARMV5 
-	TestGetNextState(policy, fourthState, KErrNone, fourthResult);
-	//This new state test Added for the one more sub-state available in ARMV5 compare to WINSCW
-	TSsmState fourthToNextState(ESsmStartup, 0x48);
-	TSsmState fourthToNextStateResult(ESsmNormal, KSsmAnySubState);
-	TestGetNextState(policy, fourthToNextState, KErrNone, fourthToNextStateResult);
-#endif
-
-	TSsmState fifthState(ESsmStartup, KSsmAnySubState);
-	TSsmState fifthResult(ESsmStartup, ESsmStartupSubStateCriticalDynamic);
-	// KSsmAnySubState (0xffff) will return ESsmStartUpSubStateCriticalDynamic only for the first time, 
-	// next call will always return the next sub state for transition.
-	TestGetNextState(policy, fifthState, KErrNone, fifthResult);
-	
-	//Commented this test because CGsaStatePolicyStartup::GETNExtstate panicks if substate is unknown
-	//TSsmState unknownState(ESsmStartup, 100);
-	//TSsmState knownResult(ESsmStartup, 0);
-	//TestGetNextState(policy, unknownState, KErrNone, knownResult);
 
 	CleanupStack::PopAndDestroy(policy);
 	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysstatemgmt/systemstateplugins/test/tunitutilityplugin/group/sspluginstest_tutility.pkg	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "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: 
+;
+
+;Languages
+&EN
+
+
+;Localised Vendor name
+%{"Ssplugins_TUtility EN"}
+
+; Vendor name
+: "Ssplugins_TUtility"
+
+"\sf\os\devicesrv\sysstatemgmt\systemstateplugins\test\tunitutilityplugin\scripts\sspluginstest_utility.script"-"c:\devicesrv\sspluginstest\sspluginstest_utility.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstateplugins\test\tunitutilityplugin\scripts\sspluginstest_unit_utility.script"-"c:\devicesrv\sspluginstest\sspluginstest_unit_utility.script"
+
--- a/sysstatemgmt/systemstatereferenceplugins/clayer/src/starterclient.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatereferenceplugins/clayer/src/starterclient.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -337,31 +337,54 @@
 
 EXPORT_C TInt RStarterSession::ResetNetwork()
 	{
+	TInt requestResult;
 	RSsmStateManager session;
 	// Set session to use the handle stored in this
 	session.SetHandle(Handle());
-
-	// Make request and return success.
-	TUint rfStatusPropertyKey = CSsmUiSpecific::RFStatusPropertyKey();
-	TSsmSwp swpRFStatus(rfStatusPropertyKey, ESsmRfOff);
-
-	RSsmSystemWideProperty swp;
-	swp.Connect(rfStatusPropertyKey);
+	
+	//Perform state transition instead of SwP transition if KSsmGracefulOffline is enabled
+	if (IsSsmGracefulOffline())
+		{
+		DEBUGPRINT1A( "KSsmGracefulOffline is enabled perform state transition" );
+		TSsmStateTransition stateinfo(ESsmNormal, ESsmNormalRfOffSubState, KSsmCLayerNullReason);
+		// Make request for substate transition to offline
+		requestResult = session.RequestStateTransition(stateinfo);
+		DEBUGPRINT2A( "State transition to ESsmNormalRfOffSubState returned : %d", requestResult);
+		if (KErrNone == requestResult)
+			{
+			TSsmStateTransition stateinfo(ESsmNormal, ESsmNormalRfOnSubState, KSsmCLayerNullReason);
+			// Make request for substate transition to online
+			requestResult = session.RequestStateTransition(stateinfo);
+			DEBUGPRINT2A( "State transition to ESsmNormalRfOnSubState returned : %d", requestResult);
+			}
+		}
+	else
+		{
+		// Make request and return success.
+		TUint rfStatusPropertyKey = CSsmUiSpecific::RFStatusPropertyKey();
+		TSsmSwp swpRFStatus(rfStatusPropertyKey, ESsmRfOff);
 
-	TRequestStatus status;
-	//Subscribe for SwP changes
-	swp.Subscribe(status);
+		RSsmSystemWideProperty swp;
+		swp.Connect(rfStatusPropertyKey);
+
+		TRequestStatus status;
+		//Subscribe for SwP changes
+		swp.Subscribe(status);
 
-	TInt requestResult= session.RequestSwpChange(swpRFStatus);
-	if(KErrNone == requestResult)
-		{
-		// Wait for SwP Change
-	    User::WaitForRequest(status);
-		swpRFStatus.Set(rfStatusPropertyKey, ESsmRfOn);
 		requestResult = session.RequestSwpChange(swpRFStatus);
+		DEBUGPRINT2A( "RF SwP transition to ESsmRfOff returned : %d", requestResult);
+		if (KErrNone == requestResult)
+			{
+			// Wait for SwP Change
+			User::WaitForRequest(status);
+			swpRFStatus.Set(rfStatusPropertyKey, ESsmRfOn);
+			requestResult = session.RequestSwpChange(swpRFStatus);
+			DEBUGPRINT2A( "RF SwP transition to ESsmRfOn returned : %d", requestResult);
+			}
+		swp.Close();
 		}
-	swp.Close();
 	// Session is not closed before returning as this owns the handle
+	DEBUGPRINT2A( "ResetNetwork() is returning requestResult as: %d", requestResult);
 	return requestResult;
 	}
 
--- a/sysstatemgmt/systemstatereferenceplugins/custcmd/group/ssmuiproviderdlldefault.mmp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatereferenceplugins/custcmd/group/ssmuiproviderdlldefault.mmp	Thu Jul 22 16:45:41 2010 +0100
@@ -35,15 +35,33 @@
 NOEXPORTLIBRARY
 
 SOURCEPATH		../src
+// This is a temporary fix for fixing the build issues arising out of XSymbian code
+// getting compiled before xS60 code is in the mainline. This will be removed after
+// the merged package issues are resolved
+#ifdef FF_SIMLESS_OFFLINE_SUPPORT
 SOURCE			ssmuiproviderdlldefault.cpp
+#else //FF_SIMLESS_OFFLINE_SUPPORT
+SOURCE			ssmuiproviderdllref.cpp
+#endif //FF_SIMLESS_OFFLINE_SUPPORT
 
 USERINCLUDE 	../inc
 USERINCLUDE		../../localinc
 USERINCLUDE		../../clayer/inc
 
+#ifdef FF_SIMLESS_OFFLINE_SUPPORT
+USERINCLUDE		../../../ssmmapperutility/inc
+USERINCLUDE		../../../ssmmapperutility/pubsub
+USERINCLUDE		../../../ssmpolicyplugins/inc
+#endif //FF_SIMLESS_OFFLINE_SUPPORT
+
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 
 LIBRARY			euser.lib
 LIBRARY			efsrv.lib
+#ifdef FF_SIMLESS_OFFLINE_SUPPORT
+LIBRARY         platformenv.lib
+LIBRARY         ssmcmn.lib
+LIBRARY         ssmmapperutility.lib
+#endif //FF_SIMLESS_OFFLINE_SUPPORT
 
 SMPSAFE
--- a/sysstatemgmt/systemstatereferenceplugins/custcmd/inc/ssmuiproviderdll.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatereferenceplugins/custcmd/inc/ssmuiproviderdll.h	Thu Jul 22 16:45:41 2010 +0100
@@ -63,6 +63,9 @@
 private:
 	CSsmUiSpecific();
 	void ConstructL();
+	
+    //Helper function to check for P&S Key
+    static TBool IsTestPsKeyDefined();
 private:
 	TStrtSecurityStatus iStrtSecurityStatus;
 	TInt iReferenceCount;
--- a/sysstatemgmt/systemstatereferenceplugins/custcmd/src/ssmsecuritychecknotifier.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatereferenceplugins/custcmd/src/ssmsecuritychecknotifier.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -26,6 +26,7 @@
 #include "ssmsecuritychecknotifier.h"
 #include "ssmdebug.h"
 #include "ssmuiproviderdll.h"
+#include "ssmrefcustomcmdcommon.h"
 #include <ssm/ssmstateawaresession.h>
 #include <e32def.h>
 #include <startupdomaindefs.h>
@@ -200,21 +201,27 @@
 	//Get the current state of the system
 	TSsmState currentState = ssmStateAwareSession.State();
 
+	//Close the state aware session
+	ssmStateAwareSession.Close();
+
 	TBool isDlgCancellable;
 
 	//Is system in start up state
 	if ( currentState.MainState() == ESsmStartup )
 		{
+		TInt securityPhaseVal = EStarterSecurityPhaseUninitialized;
+		TInt errorCode = RProperty::Get(CSsmUiSpecific::StarterPSUid(), KStarterSecurityPhase, securityPhaseVal);
+		DEBUGPRINT3A("Getting the KStarterSecurityPhase completed with errorcode %d and its value is %d", errorCode, securityPhaseVal);
+		User::LeaveIfError(errorCode);
+
 		//TSsmStartupSubStateExt::ESsmStateNonCritical
-		iAfterStartup = ( 0x34 == currentState.SubState() ) ? ETrue : EFalse;
+		iAfterStartup = ( 0x34 == currentState.SubState() && securityPhaseVal > EStarterSecurityPhaseSimNok ) ? ETrue : EFalse;
 		}
 	else
 		{
 		iAfterStartup = ETrue;
 		}
-	
-	//Close the state aware session
-	ssmStateAwareSession.Close();
+	DEBUGPRINT2A("iAfterStartup is %d", iAfterStartup);
 
 	//Notifier dialogue is not cancellable if system is in startup state and
 	//requested for PUK1 or PUK2 or UPUK code
--- a/sysstatemgmt/systemstatereferenceplugins/custcmd/src/ssmuiproviderdlldefault.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatereferenceplugins/custcmd/src/ssmuiproviderdlldefault.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -22,8 +22,20 @@
 #include "ssmpanic.h"
 #include <e32property.h>
 #include "ssmdebug.h"
+#include <f32file.h>
+#include <ctsydomainpskeys.h>
+#include <mmtsy_names.h>
+#include <pathinfo.h>
+#include <securitynotification.h>
+#include <ssm/ssmstate.h>
+#include <startupdomainpskeys.h>
+#include "ssmmapperutilitystatic.h"
+#include "ssmmapperutilityinternalpskeys.h"
+#include "ssmsubstateext.hrh"
+#include "ssmswp.hrh"
+#include "trace.h"
 
-const TUid KPSStartupUid = {0x2000E65E};
+const TUid KPSStartupDefaultUid = {0x2000E65E};
 const TUid KSecurityPinNotifierUid = {0x2000E667};
 const TUid KScreenOutputChannel = {0x10009D48};
 const TUid KEmergencyCallPropertyCategory = {0x2001032C};
@@ -40,8 +52,17 @@
 //Number of clusterSize to be reserve for phone memory space 
 const TInt KNumberOfCluster = 2;
 
-_LIT(KTsyModuleName, "mm.tsy");
-_LIT(KTsyPhoneName, "GsmPhone1");
+//For test code
+/** Channel used to communicate with Security Notifier. */
+static const TUid KSecurityNotifierChannel = { 0x1000598F };
+
+// Type definitions for a buffer containing a drive id (drive letter + :).
+const TInt KDriveIdLength = 2;
+typedef TBuf<KDriveIdLength> TDriveId;
+
+const TUint32 KMiscPluginPropertyKey = 0x2000E658;
+const TUid KPropertyCategory={0x2000D75B};              // tcustomcmd_server SID = KSsmServerName SID (changed in tcustomcmd_server.mmp file)
+
 
 CSsmUiSpecific::CSsmUiSpecific()
 : iReferenceCount(1), iReservedPhoneMemory(0)
@@ -55,36 +76,85 @@
 
 EXPORT_C TUid CSsmUiSpecific::StartupPSUid()
 	{
-	return KPSStartupUid;
+	if (!IsTestPsKeyDefined())
+        {
+        DEBUGPRINT1A("StartupPSUid :: Calling S60 plugins functions ");
+        return KPSUidStartup;        
+        }
+    else
+        {
+        DEBUGPRINT1A("StartupPSUid :: Calling Symbian(dummy) plugins functions ");
+        return KPSStartupDefaultUid;
+        }	
 	}
 
 EXPORT_C TUid CSsmUiSpecific::SecurityPinNotifierUid()
 	{
-	return KSecurityPinNotifierUid;
+	if (!IsTestPsKeyDefined())
+        {
+        DEBUGPRINT1A("SecurityPinNotifierUid :: Calling S60 plugins functions ");
+        return KSecurityNotifierUid;  
+        }
+    else
+        {
+        DEBUGPRINT1A("SecurityPinNotifierUid :: Calling Symbian(dummy) plugins functions ");
+        return KSecurityPinNotifierUid;
+        }   
+
 	}
 
 EXPORT_C TUint CSsmUiSpecific::EmergencyCallPropertyKey()
 	{
-	return KEmergencyCallPropertyKey;
+	if (!IsTestPsKeyDefined())
+        {
+        DEBUGPRINT1A("EmergencyCallPropertyKey :: Calling S60 plugins functions ");
+        return KCTsyCallState;       
+        }
+    else
+        {
+        DEBUGPRINT1A("EmergencyCallPropertyKey :: Calling Symbian(dummy) plugins functions ");
+        return KEmergencyCallPropertyKey;
+        }   
+
 	}
 
 EXPORT_C TUid CSsmUiSpecific::EmergencyCallPropertyCategory()
 	{
-	return KEmergencyCallPropertyCategory;
+	if (!IsTestPsKeyDefined())
+        {
+        DEBUGPRINT1A("EmergencyCallPropertyCategory :: Calling S60 plugins functions ");
+        return KPSUidCtsyCallInformation;       
+        }
+    else
+        {
+        DEBUGPRINT1A("EmergencyCallPropertyCategory :: Calling Symbian(dummy) plugins functions ");
+        return KEmergencyCallPropertyCategory;
+        }   
+
 	}
 
 EXPORT_C TBool CSsmUiSpecific::IsSimSupported()
 	{
-	return ETrue;
+	if (!IsTestPsKeyDefined())
+        {
+        DEBUGPRINT1A("IsSimSupported :: Calling S60 plugins functions ");
+        return SsmMapperUtility::FeatureStatus( TUid::Uid( KFeatureIdSimCard ) );       
+        }
+    else
+        {
+        DEBUGPRINT1A("IsSimSupported :: Calling Symbian(dummy) plugins functions ");
+        return ETrue;
+        }   
+
 	}
 
 EXPORT_C void CSsmUiSpecific::SetSecurityStatus(const TStrtSecurityStatus& aSecurityStatus)
-	{
+	{   
 	iStrtSecurityStatus = aSecurityStatus;
 	}
 
 EXPORT_C TStrtSecurityStatus CSsmUiSpecific::SecurityStatus() const
-	{
+	{   
 	return iStrtSecurityStatus;
 	}
 
@@ -127,83 +197,269 @@
 
 EXPORT_C TUid CSsmUiSpecific::ScreenOutputChannelUid()
 	{
-	return KScreenOutputChannel;
+	if (!IsTestPsKeyDefined())
+        {
+        DEBUGPRINT1A("ScreenOutputChannelUid :: Calling S60 plugins functions ");
+        return KSecurityNotifierChannel;       
+        }
+    else
+        {
+        DEBUGPRINT1A("ScreenOutputChannelUid :: Calling Symbian(dummy) plugins functions ");
+        return KScreenOutputChannel;
+        }   
+
 	}
 
 EXPORT_C TUint CSsmUiSpecific::SimStatusPropertyKey()
 	{
-	return KSimStatusPropertyKey;
+	if (!IsTestPsKeyDefined())
+        {
+        DEBUGPRINT1A("SimStatusPropertyKey :: Calling S60 plugins functions ");
+        return KPSSimStatus;        
+        }
+    else
+        {
+        DEBUGPRINT1A("SimStatusPropertyKey :: Calling Symbian(dummy) plugins functions ");
+        return KSimStatusPropertyKey;
+        }   
 	}
 
 EXPORT_C TBool CSsmUiSpecific::IsSimStateChangeAllowed()
 	{
-	return ETrue;
+	if (!IsTestPsKeyDefined())
+        {
+        DEBUGPRINT1A("IsSimStateChangeAllowed :: Calling S60 plugins functions ");
+        TSsmState state;
+        TInt err = SsmMapperUtility::GetCurrentState( state );
+        ERROR( err, "Failed to get current state" );
+        return ( err == KErrNone &&
+                 ( state.MainState() == ESsmStartup && state.SubState() == ESsmStateSecurityCheck ) ||
+                 ( state.MainState() == ESsmStartup && state.SubState() == ESsmStateNonCritical ) ||
+                   state.MainState() == ESsmNormal );        
+        }
+    else
+        {
+        DEBUGPRINT1A("IsSimStateChangeAllowed :: Calling Symbian(dummy) plugins functions ");
+        return ETrue;
+        }   
+
 	}
 
 EXPORT_C TBool CSsmUiSpecific::IsAmaStarterSupported()
 	{
-	return ETrue;
+	if (!IsTestPsKeyDefined())
+        {
+        DEBUGPRINT1A("IsAmaStarterSupported :: Calling S60 plugins functions ");
+        return SsmMapperUtility::FeatureStatus( TUid::Uid( KFeatureIdExtendedStartup ) );       
+        }
+    else
+        {
+        DEBUGPRINT1A("IsAmaStarterSupported :: Calling Symbian(dummy) plugins functions ");
+        return ETrue;
+        }   
+
 	}
 
 EXPORT_C HBufC* CSsmUiSpecific::GetTsyModuleNameL()
 	{
-	HBufC* tstModuleName = KTsyModuleName().AllocL();
-	return tstModuleName;
+    DEBUGPRINT1A("GetTsyModuleNameL :: Calling S60 plugins functions ");
+    /*****************************************************
+    *   Series 60 Customer / TSY
+    *   Needs customer TSY implementation
+    *****************************************************/
+
+    HBufC* name = KMmTsyModuleName().AllocL();
+    INFO_1( "TSY name: %S", name );
+    return name;      
 	}
 
 EXPORT_C TUid CSsmUiSpecific::StarterPSUid()
 	{
-	return KSecurityStatusPropertyCategory;
+	if (!IsTestPsKeyDefined())
+        {
+        DEBUGPRINT1A("StarterPSUid :: Calling S60 plugins functions ");
+        return KPSStarterUid;        
+        }
+    else
+        {
+        DEBUGPRINT1A("StartupPSUid :: Calling Symbian(dummy) plugins functions ");
+        return KSecurityStatusPropertyCategory;
+        }   
 	}
 
 EXPORT_C HBufC* CSsmUiSpecific::PhoneTsyNameL()
 	{
-	HBufC* tsyPhoneName = KTsyPhoneName().AllocL();
-	return tsyPhoneName;
+    DEBUGPRINT1A("PhoneTsyNameL :: Calling S60 plugins functions ");
+    /*****************************************************
+    *   Series 60 Customer / TSY
+    *   Needs customer TSY implementation
+    *****************************************************/
+
+    HBufC* name = KMmTsyPhoneName().AllocL();
+    INFO_1( "Phone name: %S", name );
+    return name;     
 	}
 
 EXPORT_C TBool CSsmUiSpecific::IsSimPresent()
 	{
-	return ETrue;
+	if (!IsTestPsKeyDefined())
+        {
+        DEBUGPRINT1A("IsSimPresent :: Calling S60 plugins functions ");
+        TInt value( 0 );
+        TInt err = RProperty::Get( SsmMapperUtility::PsUid( KPSUidStartup ), KPSSimStatus, value );
+        ERROR( err, "Failed to get value of KPSUidStartup::KPSSimStatus" );
+        return ( err == KErrNone &&
+                 ( value == ESimUsable ||
+                   value == ESimReadable ||
+                   value == ESimNotReady ) );       
+        }
+    else
+        {
+        DEBUGPRINT1A("IsSimPresent :: Calling Symbian(dummy) plugins functions ");
+        return ETrue;
+        }   
 	}
 
 EXPORT_C TBool CSsmUiSpecific::IsSimlessOfflineSupported()
 	{
-	return ETrue;
+	if (!IsTestPsKeyDefined())
+        {
+        DEBUGPRINT1A("IsSimlessOfflineSupported :: Calling S60 plugins functions ");
+        return SsmMapperUtility::FeatureStatus(
+            TUid::Uid( KFeatureIdFfSimlessOfflineSupport ) );      
+        }
+    else
+        {
+        DEBUGPRINT1A("IsSimlessOfflineSupported :: Calling Symbian(dummy) plugins functions ");
+        return ETrue;
+        }   
 	}
 
 EXPORT_C TBool CSsmUiSpecific::IsNormalBoot()
 	{
-	return ETrue;
+	if (!IsTestPsKeyDefined())
+        {
+        DEBUGPRINT1A("IsNormalBoot :: Calling S60 plugins functions ");
+        TInt value( 0 );
+        TInt errorCode = RProperty::Get( SsmMapperUtility::PsUid( KPSUidStartup ), KPSStartupReason, value );
+        ERROR( errorCode, "Failed to get value of KPSUidStartup::KPSStartupReason" );
+
+        TBool ret = ( errorCode == KErrNone && value == ENormalStartup );
+        INFO_1( "Is normal boot = %d", ret );
+        return ret;     
+        }
+    else
+        {
+        DEBUGPRINT1A("IsNormalBoot :: Calling Symbian(dummy) plugins functions ");
+        return ETrue;
+        }   
 	}
 
 EXPORT_C TBool CSsmUiSpecific::IsSimChangedReset()
 	{
-	return ETrue;
+	if (!IsTestPsKeyDefined())
+        {
+        DEBUGPRINT1A("IsSimChangedReset :: Calling S60 plugins functions ");
+        TUid startupPsUid( SsmMapperUtility::PsUid( KPSUidStartup ) );
+        TInt value( 0 );
+        TInt errorCode = RProperty::Get( startupPsUid, KPSStartupReason, value );
+        ERROR( errorCode, "Failed to get value of KPSUidStartup::KPSStartupReason" );
+
+        TBool ret( EFalse );
+        if ( errorCode == KErrNone && value == ESIMStatusChangeReset )
+            {
+            errorCode = RProperty::Get( startupPsUid, KPSSimChanged, value );
+            ret = ( errorCode == KErrNone && value == ESimChanged );
+            }
+
+        INFO_1( "Is SIM changed reset = %d", ret );
+        return ret;       
+        }
+    else
+        {
+        DEBUGPRINT1A("IsSimChangedReset :: Calling Symbian(dummy) plugins functions ");
+        return ETrue;
+        }   
 	}
 
 EXPORT_C TUint CSsmUiSpecific::RFStatusPropertyKey()
 	{
-	return KRFStatusPropertyKey;
+	if (!IsTestPsKeyDefined())
+        {
+        DEBUGPRINT1A("RFStatusPropertyKey :: Calling S60 plugins functions ");
+        return SWP_UID_SSM_RF_STATUS;        
+        }
+    else
+        {
+        DEBUGPRINT1A("RFStatusPropertyKey :: Calling Symbian(dummy) plugins functions ");
+        return KRFStatusPropertyKey;
+        }   
 	}
 
 EXPORT_C TUid CSsmUiSpecific::RFStatusPropertyCategory()
 	{
-	return KRFStatusPropertyCategory;
+	if (!IsTestPsKeyDefined())
+        {
+        DEBUGPRINT1A("RFStatusPropertyCategory :: Calling S60 plugins functions ");
+        return TUid::Uid( SWP_UID_SSM_RF_STATUS );       
+        }
+    else
+        {
+        DEBUGPRINT1A("RFStatusPropertyCategory :: Calling Symbian(dummy) plugins functions ");
+        return KRFStatusPropertyCategory;
+        }   
 	}
+
 EXPORT_C TUint CSsmUiSpecific::ValidateRTCPropertyKey()
     {
-    return KValidateRTCPropertyKey;
+    if (!IsTestPsKeyDefined())
+        {
+        DEBUGPRINT1A("ValidateRTCPropertyKey :: Calling S60 plugins functions ");
+        return KRTCPropertyKey;       
+        }
+    else
+        {
+        DEBUGPRINT1A("ValidateRTCPropertyKey :: Calling Symbian(dummy) plugins functions ");
+        return KValidateRTCPropertyKey;
+        }   
+
     }
 
 EXPORT_C TUid CSsmUiSpecific::ValidateRTCPropertyCategory()
     {
-    return KValidateRTCPropertyCategory;
+    if (!IsTestPsKeyDefined())
+        {
+        DEBUGPRINT1A("ValidateRTCPropertyCategory :: Calling S60 plugins functions ");
+        return KPSStarterUid;        
+        }
+    else
+        {
+        DEBUGPRINT1A("ValidateRTCPropertyCategory :: Calling Symbian(dummy) plugins functions ");
+        return KValidateRTCPropertyCategory;
+        }   
     }
 
 EXPORT_C TInt CSsmUiSpecific::PhoneMemoryRootDriveId()
 	{
-	return EDriveC;
+	if (!IsTestPsKeyDefined())
+        {
+        DEBUGPRINT1A("PhoneMemoryRootDriveId :: Calling S60 plugins functions ");
+        TInt driveId = EDriveC;
+        TDriveId driveIdBuf = PathInfo::PhoneMemoryRootPath().Left( KDriveIdLength );
+        if ( driveIdBuf.Length() > 0 )
+            {
+            TInt err = RFs::CharToDrive( driveIdBuf[0], driveId ) ;
+            INFO_1( "PhoneMemoryRootDriveId - CharToDrive returns: %d", err );            
+            }
+
+        INFO_1( "Phone memory root path ID: %d", driveId );
+        return driveId;      
+        }
+    else
+        {
+        DEBUGPRINT1A("PhoneMemoryRootDriveId :: Calling Symbian(dummy) plugins functions ");
+        return EDriveC;
+        }   
 	}
 
 /**
@@ -215,6 +471,21 @@
 	}
 
 /**
+    Helper function to check for P&S Key
+*/
+TBool CSsmUiSpecific::IsTestPsKeyDefined()
+    {
+    TBool testPsKeyDefined = EFalse;
+    TInt result = RProperty::Get(KPropertyCategory, KMiscPluginPropertyKey, testPsKeyDefined);
+    DEBUGPRINT3(_L("KMiscPluginPropertyKey %d Error %d"), testPsKeyDefined, result);
+    if ((KErrNone != result) && (KErrNotFound != result))
+        {
+        User::Leave(result);
+        }
+    return testPsKeyDefined;
+    }
+
+/**
 Reserve two ClusterSize in Phone Memory Space on H/W
 and 512 bytes for __WINS__
 @return KErrNone if successful or systemwide error
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysstatemgmt/systemstatereferenceplugins/custcmd/src/ssmuiproviderdllref.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,278 @@
+// 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"
+// 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:
+//
+
+/**
+ @internalComponent
+ @released
+*/
+
+#include "ssmuiproviderdll.h"
+#include "ssmpanic.h"
+#include <e32property.h>
+#include "ssmdebug.h"
+
+const TUid KPSStartupUid = {0x2000E65E};
+const TUid KSecurityPinNotifierUid = {0x2000E667};
+const TUid KScreenOutputChannel = {0x10009D48};
+const TUid KEmergencyCallPropertyCategory = {0x2001032C};
+
+const TUint KEmergencyCallPropertyKey = 0x0101;
+const TUint KSimStatusPropertyKey = 0x0102;
+
+const TUid KSecurityStatusPropertyCategory =  {0x2000E664};
+
+const TUid KRFStatusPropertyCategory = {0x2000D75B};
+const TUint KRFStatusPropertyKey = 0x2001D2A9;
+const TUid KValidateRTCPropertyCategory = {0x2000D75B};
+const TUint KValidateRTCPropertyKey = 0x2001D2AB;
+//Number of clusterSize to be reserve for phone memory space 
+const TInt KNumberOfCluster = 2;
+
+_LIT(KTsyModuleName, "mm.tsy");
+_LIT(KTsyPhoneName, "GsmPhone1");
+
+CSsmUiSpecific::CSsmUiSpecific()
+: iReferenceCount(1), iReservedPhoneMemory(0)
+	{
+	}
+
+EXPORT_C CSsmUiSpecific::~CSsmUiSpecific()
+	{
+	iReservedPhoneMemoryFs.Close();
+	}
+
+EXPORT_C TUid CSsmUiSpecific::StartupPSUid()
+	{
+	return KPSStartupUid;
+	}
+
+EXPORT_C TUid CSsmUiSpecific::SecurityPinNotifierUid()
+	{
+	return KSecurityPinNotifierUid;
+	}
+
+EXPORT_C TUint CSsmUiSpecific::EmergencyCallPropertyKey()
+	{
+	return KEmergencyCallPropertyKey;
+	}
+
+EXPORT_C TUid CSsmUiSpecific::EmergencyCallPropertyCategory()
+	{
+	return KEmergencyCallPropertyCategory;
+	}
+
+EXPORT_C TBool CSsmUiSpecific::IsSimSupported()
+	{
+	return ETrue;
+	}
+
+EXPORT_C void CSsmUiSpecific::SetSecurityStatus(const TStrtSecurityStatus& aSecurityStatus)
+	{
+	iStrtSecurityStatus = aSecurityStatus;
+	}
+
+EXPORT_C TStrtSecurityStatus CSsmUiSpecific::SecurityStatus() const
+	{
+	return iStrtSecurityStatus;
+	}
+
+EXPORT_C CSsmUiSpecific* CSsmUiSpecific::InstanceL()
+	{
+	CSsmUiSpecific* self;
+
+	//Check Tls data
+	if (NULL == Dll::Tls())
+		{
+		//Instantiate CSsmUiSpecific if TLS is null
+		self = new (ELeave) CSsmUiSpecific();
+		CleanupStack::PushL(self);
+		self->ConstructL();
+		//Copy CSsmUiSpecific pointer in TLS
+		User::LeaveIfError(Dll::SetTls(self));
+		CleanupStack::Pop(self);
+		}
+	else
+		{
+		//CSsmUiSpecific has already been instantiated
+		self = static_cast<CSsmUiSpecific*>(Dll::Tls());
+		++self->iReferenceCount;
+		}
+	return self;
+	}
+
+EXPORT_C void CSsmUiSpecific::Release()
+	{
+	   TAny* tlsPtr = Dll::Tls();
+	__ASSERT_DEBUG(NULL != tlsPtr, User::Panic(KPanicSsmUiSpecific, KErrNotFound));
+ 
+    CSsmUiSpecific* self = static_cast<CSsmUiSpecific*>(tlsPtr);
+    if (0 == --self->iReferenceCount)
+        {
+        Dll::FreeTls();
+        delete self;
+        }
+	}
+
+EXPORT_C TUid CSsmUiSpecific::ScreenOutputChannelUid()
+	{
+	return KScreenOutputChannel;
+	}
+
+EXPORT_C TUint CSsmUiSpecific::SimStatusPropertyKey()
+	{
+	return KSimStatusPropertyKey;
+	}
+
+EXPORT_C TBool CSsmUiSpecific::IsSimStateChangeAllowed()
+	{
+	return ETrue;
+	}
+
+EXPORT_C TBool CSsmUiSpecific::IsAmaStarterSupported()
+	{
+	return ETrue;
+	}
+
+EXPORT_C HBufC* CSsmUiSpecific::GetTsyModuleNameL()
+	{
+	HBufC* tstModuleName = KTsyModuleName().AllocL();
+	return tstModuleName;
+	}
+
+EXPORT_C TUid CSsmUiSpecific::StarterPSUid()
+	{
+	return KSecurityStatusPropertyCategory;
+	}
+
+EXPORT_C HBufC* CSsmUiSpecific::PhoneTsyNameL()
+	{
+	HBufC* tsyPhoneName = KTsyPhoneName().AllocL();
+	return tsyPhoneName;
+	}
+
+EXPORT_C TBool CSsmUiSpecific::IsSimPresent()
+	{
+	return ETrue;
+	}
+
+EXPORT_C TBool CSsmUiSpecific::IsSimlessOfflineSupported()
+	{
+	return ETrue;
+	}
+
+EXPORT_C TBool CSsmUiSpecific::IsNormalBoot()
+	{
+	return ETrue;
+	}
+
+EXPORT_C TBool CSsmUiSpecific::IsSimChangedReset()
+	{
+	return ETrue;
+	}
+
+EXPORT_C TUint CSsmUiSpecific::RFStatusPropertyKey()
+	{
+	return KRFStatusPropertyKey;
+	}
+
+EXPORT_C TUid CSsmUiSpecific::RFStatusPropertyCategory()
+	{
+	return KRFStatusPropertyCategory;
+	}
+EXPORT_C TUint CSsmUiSpecific::ValidateRTCPropertyKey()
+    {
+    return KValidateRTCPropertyKey;
+    }
+
+EXPORT_C TUid CSsmUiSpecific::ValidateRTCPropertyCategory()
+    {
+    return KValidateRTCPropertyCategory;
+    }
+
+EXPORT_C TInt CSsmUiSpecific::PhoneMemoryRootDriveId()
+	{
+	return EDriveC;
+	}
+
+/**
+Leaving construction inside ConstructL
+*/
+void CSsmUiSpecific::ConstructL()
+	{
+	User::LeaveIfError( iReservedPhoneMemoryFs.Connect() );
+	}
+
+/**
+Reserve two ClusterSize in Phone Memory Space on H/W
+and 512 bytes for __WINS__
+@return KErrNone if successful or systemwide error
+*/
+EXPORT_C TInt CSsmUiSpecific::ReservePhoneMemorySpace()
+    {
+	TVolumeIOParamInfo volumeParamInfo; 
+	const TInt phoneMemoryDriveID = PhoneMemoryRootDriveId();
+	TInt errorCode = iReservedPhoneMemoryFs.VolumeIOParam(phoneMemoryDriveID, volumeParamInfo); 
+	if( KErrNone == errorCode )
+		{
+#ifdef __WINS__
+		//512 bytes for __WINS__
+		const TInt reservedMemory = 512;
+#else
+		//Reserving two clusterSize Phone memory 
+		const TInt reservedMemory = KNumberOfCluster * (volumeParamInfo.iClusterSize);
+#endif //__WINS__
+		errorCode = iReservedPhoneMemoryFs.ReserveDriveSpace(phoneMemoryDriveID, reservedMemory);
+
+		if ( KErrNone == errorCode )
+			{
+			iReservedPhoneMemory = reservedMemory;
+			}
+		}
+    return errorCode;
+    }
+
+/**
+Free reserved bytes from Phone Memory Space. If aSpaceToFree is 0 bytes 
+then free complete reserved memory
+@param aSpaceToFree request to free memory
+@return KErrNone if successful or systemwide error
+*/
+EXPORT_C TInt CSsmUiSpecific::FreeReservedPhoneMemorySpace(const TInt aSpaceToFree)
+    {
+    TInt errorCode(KErrGeneral);
+	DEBUGPRINT3A("Reserved memory is = %d bytes, Request to free memory is = %d bytes", iReservedPhoneMemory, aSpaceToFree);
+    if(0 < iReservedPhoneMemory)
+        {
+		if(0 == aSpaceToFree)
+		    {
+		   	//Free complete reserved phone memory
+			errorCode = iReservedPhoneMemoryFs.ReserveDriveSpace( PhoneMemoryRootDriveId(), 0 );
+			DEBUGPRINT2A("Freeing memory completed with = %d", errorCode);
+			iReservedPhoneMemory = 0; 
+		    }
+		else
+		    {
+		    TInt newReserveSize = iReservedPhoneMemory - aSpaceToFree;
+		    newReserveSize = newReserveSize >= 0 ? newReserveSize : 0;
+		    errorCode = iReservedPhoneMemoryFs.ReserveDriveSpace( PhoneMemoryRootDriveId(), newReserveSize );
+			DEBUGPRINT2A("Freeing partial phone memory completed with = %d", errorCode);
+		    if(KErrNone == errorCode)
+			    {
+			    iReservedPhoneMemory = newReserveSize;
+			    }
+		    }
+    	}
+    return errorCode;
+    }
--- a/sysstatemgmt/systemstatereferenceplugins/group/app-framework_ssrefplugins.mrp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatereferenceplugins/group/app-framework_ssrefplugins.mrp	Thu Jul 22 16:45:41 2010 +0100
@@ -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	app-framework_ssrefplugins
 source	\sf\os\devicesrv\sysstatemgmt\systemstatereferenceplugins
 binary	\sf\os\devicesrv\sysstatemgmt\systemstatereferenceplugins\group	all
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysstatemgmt/systemstatereferenceplugins/test/tclayer/group/ssrefpluginstest_tclayer.pkg	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,33 @@
+;
+; 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".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description: 
+;
+
+;Languages
+&EN
+
+
+;Localised Vendor name
+%{"Ssrefplugins_TClayer EN"}
+
+; Vendor name
+: "Ssrefplugins_TClayer"
+
+"\sf\os\devicesrv\sysstatemgmt\systemstatereferenceplugins\test\tclayer\scripts\ssrefpluginstest_clayer_startersession.script"-"c:\devicesrv\ssrefpluginstest\ssrefpluginstest_clayer_startersession.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatereferenceplugins\test\tclayer\scripts\ssrefpluginstest_clayer_startupadaptationadapter.script"-"c:\devicesrv\ssrefpluginstest\ssrefpluginstest_clayer_startupadaptationadapter.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatereferenceplugins\test\tclayer\scripts\ssrefpluginstest_clayer_ssmpropertyobserver.script"-"c:\devicesrv\ssrefpluginstest\ssrefpluginstest_clayer_ssmpropertyobserver.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatereferenceplugins\test\tclayer\scripts\ssrefpluginstest_clayer_ssmsimstatusobserver.script"-"c:\devicesrv\ssrefpluginstest\ssrefpluginstest_clayer_ssmsimstatusobserver.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatereferenceplugins\test\tclayer\scripts\ssrefpluginstest_clayer_ssmsecurityeventobserver.script"-"c:\devicesrv\ssrefpluginstest\ssrefpluginstest_clayer_ssmsecurityeventobserver.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatereferenceplugins\test\tclayer\scripts\ssrefpluginstest_clayer_startersessionwithssm.script"-"c:\devicesrv\ssrefpluginstest\ssrefpluginstest_clayer_startersessionwithssm.script"
+
--- a/sysstatemgmt/systemstatereferenceplugins/test/tclayer/group/tclayer_server.mmp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatereferenceplugins/test/tclayer/group/tclayer_server.mmp	Thu Jul 22 16:45:41 2010 +0100
@@ -25,8 +25,9 @@
 TARGETPATH		/sys/bin
 UID				0x1000007A 0xA00056EB
 VENDORID		0x70000001
-// Use KPSUidStartup as the secure id of this test server to allow P+S keys to be defined
-SECUREID 		0x101F8766
+SECUREID 		0x2000D75B
+
+CAPABILITY 		WriteDeviceData   
 
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 
@@ -47,6 +48,7 @@
 LIBRARY			etel.lib
 LIBRARY			etelmm.lib
 LIBRARY			centralrepository.lib
+LIBRARY			ws32.lib
 
 // testcode
 SOURCEPATH		../src
--- a/sysstatemgmt/systemstatereferenceplugins/test/tclayer/scripts/ssrefpluginstest_clayer_ssmsimstatusobserver.script	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatereferenceplugins/test/tclayer/scripts/ssrefpluginstest_clayer_ssmsimstatusobserver.script	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -15,9 +15,7 @@
 
 PRINT Run SSM SIM Status Observer tests
 
-PRINT Swapping SID over to CSsmUiSpecific::StartupPSUid()
-RUN_PROGRAM -1 setcap tclayer_server.exe 0 -SID 2000e65e tclayer_serverSID.exe
-LOAD_SUITE tclayer_serverSID
+LOAD_SUITE tclayer_server
 
 START_TESTCASE 			DEVSRVS-SSREFPLUGINS-CLAYER-0023
 //! @SYMTestCaseID 		DEVSRVS-SSREFPLUGINS-CLAYER-0023
@@ -38,6 +36,6 @@
 //! 					are no panics.
 //! 				All methods handle the object data appropriately, with no errors reported and there
 //! 					are no panics.
-RUN_TEST_STEP 100 tclayer_serverSID CCLayerTestSsmSimStatusObserver
+RUN_TEST_STEP 100 tclayer_server CCLayerTestSsmSimStatusObserver
 END_TESTCASE 			DEVSRVS-SSREFPLUGINS-CLAYER-0023
 
--- a/sysstatemgmt/systemstatereferenceplugins/test/tclayer/src/tclayer_step_ssmsecurityeventobserver.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatereferenceplugins/test/tclayer/src/tclayer_step_ssmsecurityeventobserver.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -19,6 +19,8 @@
  @internalComponent - Internal Symbian test code  
 */
 
+#include <e32property.h>
+#include <w32std.h>
 #include "ssmdebug.h"
 #include "strtsecphaseobserver.h"
 #include "ssmsecurityeventobserver.h"
@@ -33,6 +35,8 @@
 
 //Exe name which defines security state PS keys
 _LIT (KExeToDefineSecurityStatePS, "\\sys\\bin\\definesecuritystateps.exe");
+const TUint32 KMiscPluginPropertyKey = 0x2000E658;
+const TUid KPropertyCategory={0x2000D75B};
 
 CLayerTestSsmEventObserver::CLayerTestSsmEventObserver()
 	{
@@ -60,15 +64,31 @@
 
 	//Start the test exe which defines security state related property keys
 	RProcess processHandle;
+	CleanupClosePushL(processHandle);
 	processHandle.Create(KExeToDefineSecurityStatePS, KNullDesC);
 	processHandle.Resume();
-	processHandle.Close();
+	TRequestStatus status;
+    processHandle.Rendezvous(status);
+    User::WaitForRequest(status);
+	        
+    TInt retVal = status.Int();
+    INFO_PRINTF2(_L("retVal = %d"),retVal);
+    TEST(KErrNone == retVal);
+    // leave if the process has not started properly
+    User::LeaveIfError(retVal);
+    CleanupStack::PopAndDestroy();
+	//processHandle.Close();
+    
+    TInt error = RProperty::Define(KPropertyCategory, KMiscPluginPropertyKey, RProperty::EInt);
+    TInt error1 = RProperty::Set(KPropertyCategory, KMiscPluginPropertyKey, 1);
+    INFO_PRINTF3(_L("Defining and setting property returned %d & %d"), error, error1);
 
 	return CTestStep::doTestStepPreambleL();
 	}
 
 TVerdict CLayerTestSsmEventObserver::doTestStepPostambleL()
 	{
+    TInt error = RProperty::Delete(KPropertyCategory, KMiscPluginPropertyKey);
 	return CTestStep::doTestStepPostambleL();
 	}
 
@@ -82,6 +102,9 @@
 
 void CLayerTestSsmEventObserver::SimulatePasswordEntry()
 	{
+    /*RWsSession wsSession;
+    wsSession.Connect();*/
+    
 	TRawEvent eventDown;
 	TRawEvent eventUp;
 
@@ -90,12 +113,21 @@
 	UserSvr::AddEvent(eventDown);
 	eventUp.Set(TRawEvent::EKeyUp, EStdKeyComma);
 	UserSvr::AddEvent(eventUp);
+	User::After(1000000);
 
-	eventDown.Set(TRawEvent::EKeyDown, EStdKeyEnter);
+/*    eventDown.Set(TRawEvent::EKeyDown, EStdKeyEnter);
+    UserSvr::AddEvent(eventDown);
+    eventUp.Set(TRawEvent::EKeyUp, EStdKeyEnter);
+    UserSvr::AddEvent(eventUp);*/
+    
+	eventDown.Set(TRawEvent::EButton1Down, 60, 600);
 	UserSvr::AddEvent(eventDown);
-	eventUp.Set(TRawEvent::EKeyUp, EStdKeyEnter);
+	eventUp.Set(TRawEvent::EButton1Up, 60, 600);
 	UserSvr::AddEvent(eventUp);
 	User::After(1000000);
+	
+   /* wsSession.Flush();
+    wsSession.Close();*/
 	}
 
 void CLayerTestSsmEventObserver::CallBackRunL()
--- a/sysstatemgmt/systemstatereferenceplugins/test/tclayer/src/tclayer_step_ssmsimstatusobserver.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatereferenceplugins/test/tclayer/src/tclayer_step_ssmsimstatusobserver.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -185,8 +185,9 @@
 	__UHEAP_MARK;
 	
 	// Delete any existing defines, ignore return value
-	(void) RProperty::Delete(CSsmUiSpecific::StartupPSUid(), KPSSimChanged);
-	(void) RProperty::Delete(CSsmUiSpecific::StartupPSUid(), KPSSimOwned);
+	TInt err1 = RProperty::Delete(CSsmUiSpecific::StartupPSUid(), KPSSimChanged);
+	TInt err2 = RProperty::Delete(CSsmUiSpecific::StartupPSUid(), KPSSimOwned);
+	INFO_PRINTF3(_L("Value of err1 & err2 = %d & %d"), err1, err2);
 	TInt err = KErrNone;
 	
 	INFO_PRINTF1(_L("Constructing SSM SIM publish cmd"));	
@@ -230,6 +231,7 @@
 	
 	INFO_PRINTF1(_L("Initializing SSM SIM status observer without defining SIM changed property"));
 	err = RProperty::Define(CSsmUiSpecific::StartupPSUid(), KPSSimOwned, RProperty::EInt);
+	INFO_PRINTF2(_L("Define returns err = %d") ,err);
 	TEST(err == KErrNone);
 	simCustomCmd->Execute(emptyBuf, iRequestStatus);
 	
--- a/sysstatemgmt/systemstatereferenceplugins/test/tclayer/src/tclayer_step_startersession.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatereferenceplugins/test/tclayer/src/tclayer_step_startersession.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -335,28 +335,35 @@
 	INFO_PRINTF1(_L("Deleting splash screen property"));
 	ret = RProperty::Delete(KPSUidStartup, KPSSplashShutdown);
 	TEST(ret == KErrNone || ret == KErrNotFound);
+	INFO_PRINTF2(_L("ret val is : %d"), ret);
 		
 	
 	INFO_PRINTF1(_L("Ending splashscreen without defining property"));
 	ret = starterSession.EndSplashScreen();
 	TEST(ret == KErrNotFound);
+	INFO_PRINTF2(_L("ret val is : %d"), ret);
 	
 	INFO_PRINTF1(_L("Defining splash screen property"));
 	// In a test enviroment we don't need to worry about protecting the property
 	// so allow anything to change it
 	_LIT_SECURITY_POLICY_PASS(KAllPass); //lint !e648 Suppress overflow in computing constant for operation
 	ret = RProperty::Define(KPSUidStartup, KPSSplashShutdown, RProperty::EInt, KAllPass, KAllPass);
+	INFO_PRINTF3(_L("KPSUidStartup = %x, KPSSplashShutdown = %x"), KPSUidStartup, KPSSplashShutdown);
 	TEST(ret == KErrNone);
+	INFO_PRINTF2(_L("ret val is : %d"), ret);
 	
 	INFO_PRINTF1(_L("Ending splashscreen with property defined"));
 	ret = starterSession.EndSplashScreen();
 	TEST(ret == KErrNone);
+	INFO_PRINTF2(_L("ret val is : %d"), ret);
 	
 	INFO_PRINTF1(_L("Reading splash screen property"));
 	TInt value;
 	ret = RProperty::Get(KPSUidStartup, KPSSplashShutdown, value);
 	TEST(ret == KErrNone);
+	INFO_PRINTF2(_L("ret val is : %d"), ret);
 	TEST(value == ESplashShutdown);
+	INFO_PRINTF3(_L("Property value is : %d .Expected : %d"), ret, ESplashShutdown);
 	
 	INFO_PRINTF1(_L("Close on connected RStartSession"));
 	starterSession.Close();
--- a/sysstatemgmt/systemstatereferenceplugins/test/tclayer/src/tclayer_step_startupadaptationadapter.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatereferenceplugins/test/tclayer/src/tclayer_step_startupadaptationadapter.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -1740,11 +1740,11 @@
 	}
 
 // declare exported functions for test AFSS-CLAYER-0019
-MEmergencyCallRfAdaptation* CreateEmergencyCallRfAdaptationL(void);
-MMiscAdaptation* CreateMiscAdaptationL(void);
-MRtcAdaptation* CreateRtcAdaptationL(void);
-MSimAdaptation* CreateSimAdaptationL(void);
-MStateAdaptation* CreateStateAdaptationL(void);
+IMPORT_C MEmergencyCallRfAdaptation* CreateEmergencyCallRfAdaptationL(void);
+IMPORT_C MMiscAdaptation* CreateMiscAdaptationL(void);
+IMPORT_C MRtcAdaptation* CreateRtcAdaptationL(void);
+IMPORT_C MSimAdaptation* CreateSimAdaptationL(void);
+IMPORT_C MStateAdaptation* CreateStateAdaptationL(void);
 
 /**
 Old Test CaseID 		AFSS-CLAYER-0019
--- a/sysstatemgmt/systemstatereferenceplugins/test/tintcustcmd/group/definesecuritystateps.mmp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatereferenceplugins/test/tintcustcmd/group/definesecuritystateps.mmp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -17,7 +17,7 @@
 
 TARGET			definesecuritystateps.exe
 TARGETTYPE		exe
-CAPABILITY  	none
+CAPABILITY  	WriteDeviceData
 
 UID           	0x100039CE 0x2000E664
 VENDORID 		0x70000001
@@ -32,7 +32,7 @@
 
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 MW_LAYER_SYSTEMINCLUDE_SYMBIAN 
-SYSTEMINCLUDE	/epoc32/include/techview
+
 
 // Registration file
 SOURCEPATH    	../src
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysstatemgmt/systemstatereferenceplugins/test/tintcustcmd/group/ssrefpluginstest_tintcustcmd.pkg	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,32 @@
+;
+; Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
+; All rights reserved.
+; This component and the accompanying materials are made available
+; under the terms of "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: 
+;
+
+;Languages
+&EN
+
+
+;Localised Vendor name
+%{"Ssrefplugins_TIntCustCmd EN"}
+
+; Vendor name
+: "Ssrefplugins_TIntCustCmd"
+
+"\sf\os\devicesrv\sysstatemgmt\systemstatereferenceplugins\test\tintcustcmd\scripts\ssrefpluginstest_custcmd_simsecuritypincheck.script"-"c:\devicesrv\ssrefpluginstest\ssrefpluginstest_custcmd_simsecuritypincheck.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatereferenceplugins\test\tintcustcmd\scripts\ssrefpluginstest_custcmd_activateemergencycallcheck.script"-"c:\devicesrv\ssrefpluginstest\ssrefpluginstest_custcmd_activateemergencycallcheck.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatereferenceplugins\test\tintcustcmd\scripts\ssrefpluginstest_custcmd_deactivateemergencycallcheck.script"-"c:\devicesrv\ssrefpluginstest\ssrefpluginstest_custcmd_deactivateemergencycallcheck.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatereferenceplugins\test\tintcustcmd\scripts\ssrefpluginstest_custcmd_devicesecuritypincheck.script"-"c:\devicesrv\ssrefpluginstest\ssrefpluginstest_custcmd_devicesecuritypincheck.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatereferenceplugins\test\tintcustcmd\scripts\ssrefpluginstest_custcmd_int_execute.script"-"c:\devicesrv\ssrefpluginstest\ssrefpluginstest_custcmd_int_execute.script"
+
--- a/sysstatemgmt/systemstatereferenceplugins/test/tintcustcmd/group/tcustomcmd_server.mmp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatereferenceplugins/test/tintcustcmd/group/tcustomcmd_server.mmp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -47,6 +47,15 @@
 SOURCE			tcustcmd_step_devicesecuritypincheck.cpp
 SOURCE			tcustcmd_step_int_execute.cpp
 
+USERINCLUDE 	../../../custcmd/inc
+SOURCEPATH		../../../custcmd/src
+SOURCE			ssmsecuritychecknotifier.cpp
+
+#ifndef TEST_CUSTCMD
+#define TEST_CUSTCMD
+MACRO TEST_CUSTCMD_MACRO
+#endif
+
 LIBRARY			euser.lib
 LIBRARY			efsrv.lib
 LIBRARY			testexecuteutils.lib
--- a/sysstatemgmt/systemstatereferenceplugins/test/tintcustcmd/src/tcustcmd_step_devicesecuritypincheck.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatereferenceplugins/test/tintcustcmd/src/tcustcmd_step_devicesecuritypincheck.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -84,17 +84,6 @@
 
 	iAsyncStopScheduler = new(ELeave) CAsyncCallBack(CActive::EPriorityIdle);
 	
-	//Start the test exe which defines startup related property keys
-	RProcess processHandle;
-	
-	TInt temp = processHandle.Create(KExeToDefineStartUpPS, KNullDesC);
-	processHandle.Resume();
-	processHandle.Close();
-		
-	processHandle.Create(KExeToDefineStartUpStatePS, KNullDesC);
-	processHandle.Resume();
-	processHandle.Close();
-
 	//For stopping the key simulation
 	iStopSimulatekey = CStopSimulateDevicekey::NewL(this);
  	
--- a/sysstatemgmt/systemstatereferenceplugins/test/tintcustcmd/src/tcustcmd_step_simsecuritypincheck.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatereferenceplugins/test/tintcustcmd/src/tcustcmd_step_simsecuritypincheck.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -20,6 +20,7 @@
 #include <s32file.h>
 
 const TInt KNumOfTestCases = 8;
+const TUint32 KMiscPluginPropertyKey = 0x2000E658;
 
 static TInt CustomCmdTestSecurityCheckCallBackL(TAny* aCustomCmdTestSecurityPinCheck)
 	{
@@ -35,6 +36,8 @@
 */
 void CCustomCmdTestSecurityPinCheck::CallBackForEnterPin()
 	{
+	const TInt okButtonPos1 = 60; //the position of ok button
+	const TInt okButtonPos2 = 600; //the position of ok button
 	iAsyncStopScheduler->CallBack();
 	
 	RWsSession wsSession;
@@ -52,9 +55,9 @@
 		User::After(100000);
 		}
 	
-	eventDown.Set(TRawEvent::EKeyDown, EStdKeyEnter);
+	eventDown.Set(TRawEvent::EButton1Down, okButtonPos1,okButtonPos2);
 	UserSvr::AddEvent(eventDown);
-	eventUp.Set(TRawEvent::EKeyUp, EStdKeyEnter);
+	eventUp.Set(TRawEvent::EButton1Up, okButtonPos1,okButtonPos2);
 	UserSvr::AddEvent(eventUp);
 	User::After(100000);
 		
@@ -91,6 +94,11 @@
 
 	iAsyncStopScheduler = new(ELeave) CAsyncCallBack(CActive::EPriorityIdle);
 	
+	TInt err = RProperty::Define(KPropertyCategory, KMiscPluginPropertyKey, RProperty::EInt);
+	TEST ((KErrNone == err) || (KErrAlreadyExists == err));
+	err = RProperty::Set(KPropertyCategory, KMiscPluginPropertyKey, 1);
+	TEST (KErrNone == err);
+	
 	//Start the test exe which defines startup related property keys
 	RProcess processHandle;
 	CleanupClosePushL(processHandle);
@@ -108,23 +116,36 @@
 	User::LeaveIfError(retVal);
 	CleanupStack::PopAndDestroy();
 	
+	//Start the test exe which defines startup state related property keys
 	RProcess processHandle1;
-	TInt err1 = processHandle1.Create(KExeToDefineStartUpStatePS, KNullDesC);
-	INFO_PRINTF2(_L("KExeToDefineStartUpStatePS ret is %d"), err1);
+	CleanupClosePushL(processHandle1);
+	err = processHandle1.Create(KExeToDefineStartUpStatePS, KNullDesC);
+	INFO_PRINTF2(_L("KExeToDefineStartUpStatePS ret is %d"), err);
+	User::LeaveIfError(err);
 	processHandle1.Resume();
-	processHandle1.Close();
+	
+	// wait for the newly created process to rendezvous
+	processHandle1.Rendezvous(status);
+	User::WaitForRequest(status);
+	retVal = status.Int();
+	//leave if the process has not started properly
+	INFO_PRINTF2(_L("KExeToDefineStartUpStatePS rendezvous returns %d"), retVal);
+    User::LeaveIfError(retVal);
+    CleanupStack::PopAndDestroy();
 
 	//there are 8 different scenarios to test the custom command. Check the test spec for the scenarios.
  	//CMiscAdaptationRef::SecurityStateChange() has been changed to simulate the scenarios.
 	//CMiscAdaptationRef::SecurityStateChange() uses KTestCmdSecurityCheckTestFile to get the scenario number
 	//connect to file server
+
     User::LeaveIfError(iFs.Connect());
-	TInt err = iFs.MkDirAll(KDirNameOfTestCasesNumFile);
+	err = iFs.MkDirAll(KDirNameOfTestCasesNumFile);
 	if (KErrAlreadyExists != err && KErrNone != err)
 		{
 		User::Leave(err);
 		}
 	err = iFile.Replace(iFs, KTestCmdSecurityCheckTestFile, EFileWrite | EFileStream);
+	TEST(KErrNone == err);
 	iFile.Close();
 	
 	//For stopping the key simulation when execution behaviour is deferredwaitforsignal and fireandforget
@@ -135,7 +156,8 @@
 	TEST(KErrNone == connect);
 	
 	//RProperty property;
-	iProperty.Define(KCustomcmdServerSID, iSwp.Key(), RProperty::EInt);
+	err = iProperty.Define(KCustomcmdServerSID, iSwp.Key(), RProperty::EInt);
+	TEST ((KErrNone == err) || (KErrAlreadyExists == err));
 	
 	// Register mapping between keys and swp policy DLL (done once per ssmserver)
 	INFO_PRINTF1(_L("Registering swp..."));
@@ -455,6 +477,8 @@
 TVerdict CCustomCmdTestSecurityPinCheck::doTestStepPostambleL()
 	{
 	TEST(KErrNone == iProperty.Delete(KCustomcmdServerSID, iSwp.Key()));
+	TInt err = RProperty::Delete(KPropertyCategory, KMiscPluginPropertyKey);
+	TEST (KErrNone == err);
 	iProperty.Close();
 	iClient.Close();
 	//delete the file		
--- a/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/group/defineemergencycallps.mmp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/group/defineemergencycallps.mmp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -17,7 +17,7 @@
 
 TARGET			defineemergencycallps.exe
 TARGETTYPE		exe
-CAPABILITY  	none
+CAPABILITY  	WriteDeviceData
 
 UID           	0x100039CE 0x2001032C
 VENDORID 		0x70000001
@@ -32,7 +32,7 @@
 
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 MW_LAYER_SYSTEMINCLUDE_SYMBIAN 
-SYSTEMINCLUDE	/epoc32/include/techview
+MW_LAYER_SYSTEMINCLUDE
 
 // Registration file
 SOURCEPATH    	../src
--- a/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/group/definestartupps.mmp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/group/definestartupps.mmp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -15,7 +15,7 @@
 
 TARGET			definestartupps.exe
 TARGETTYPE		exe
-CAPABILITY  	none
+CAPABILITY  	WriteDeviceData
 
 UID           	0x100039CE 0x2000E65E
 VENDORID 		0x70000001
@@ -30,7 +30,6 @@
 
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 MW_LAYER_SYSTEMINCLUDE_SYMBIAN 
-SYSTEMINCLUDE	/epoc32/include/techview
 
 // Registration file
 SOURCEPATH    	../src
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/group/ssrefpluginstest_tuintcustcmd.pkg	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,39 @@
+;
+; 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".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description: 
+;
+
+;Languages
+&EN
+
+
+;Localised Vendor name
+%{"Ssrefplugins_TUnitCustCmd EN"}
+
+; Vendor name
+: "Ssrefplugins_TUnitCustCmd"
+
+"\sf\os\devicesrv\sysstatemgmt\systemstatereferenceplugins\test\tunitcustcmd\scripts\ssrefpluginstest_custcmd_coopsysperformrestartactions.script"-"c:\devicesrv\ssrefpluginstest\ssrefpluginstest_custcmd_coopsysperformrestartactions.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatereferenceplugins\test\tunitcustcmd\scripts\ssrefpluginstest_custcmd_coopsysperformrfsactions.script"-"c:\devicesrv\ssrefpluginstest\ssrefpluginstest_custcmd_coopsysperformrfsactions.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatereferenceplugins\test\tunitcustcmd\scripts\ssrefpluginstest_custcmd_coopsysperformshutdownactions.script"-"c:\devicesrv\ssrefpluginstest\ssrefpluginstest_custcmd_coopsysperformshutdownactions.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatereferenceplugins\test\tunitcustcmd\scripts\ssrefpluginstest_custcmd_coopsysselftest.script"-"c:\devicesrv\ssrefpluginstest\ssrefpluginstest_custcmd_coopsysselftest.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatereferenceplugins\test\tunitcustcmd\scripts\ssrefpluginstest_custcmd_activaterfforemergencycall.script"-"c:\devicesrv\ssrefpluginstest\ssrefpluginstest_custcmd_activaterfforemergencycall.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatereferenceplugins\test\tunitcustcmd\scripts\ssrefpluginstest_custcmd_deactivaterfforemergencycall.script"-"c:\devicesrv\ssrefpluginstest\ssrefpluginstest_custcmd_deactivaterfforemergencycall.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatereferenceplugins\test\tunitcustcmd\scripts\ssrefpluginstest_custcmd_coopsysstatechange.script"-"c:\devicesrv\ssrefpluginstest\ssrefpluginstest_custcmd_coopsysstatechange.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatereferenceplugins\test\tunitcustcmd\scripts\ssrefpluginstest_custcmd_publishstartupmode.script"-"c:\devicesrv\ssrefpluginstest\ssrefpluginstest_custcmd_publishstartupmode.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatereferenceplugins\test\tunitcustcmd\scripts\ssrefpluginstest_custcmd_execute.script"-"c:\devicesrv\ssrefpluginstest\ssrefpluginstest_custcmd_execute.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatereferenceplugins\test\tunitcustcmd\scripts\ssrefpluginstest_custcmd_publishsimownedandchanged.script"-"c:\devicesrv\ssrefpluginstest\ssrefpluginstest_custcmd_publishsimownedandchanged.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatereferenceplugins\test\tunitcustcmd\scripts\ssrefpluginstest_custcmd_simsecuritycheck.script"-"c:\devicesrv\ssrefpluginstest\ssrefpluginstest_custcmd_simsecuritycheck.script"
+"\sf\os\devicesrv\sysstatemgmt\systemstatereferenceplugins\test\tunitcustcmd\scripts\ssrefpluginstest_custcmd_devicesecuritycheck.script"-"c:\devicesrv\ssrefpluginstest\ssrefpluginstest_custcmd_devicesecuritycheck.script"
+
--- a/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/group/testpinnotifier.rss	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/group/testpinnotifier.rss	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -19,8 +19,13 @@
  @internalComponent - Internal Symbian test code 
 */
 
-#include <techview/eikon.rh>
-#include <techview/eikon.rsg>
+#include <avkon.rh>
+#include <avkon.rsg>
+
+#include <eikon.rh>
+#include <eikon.rsg>
+
+#define qtn_sen_pindlg_auth_title             "Security check"
 
 NAME SPIN
 
@@ -30,21 +35,31 @@
 
 RESOURCE TBUF16 { buf=""; }
 
+
+
 RESOURCE DIALOG r_security_pin
 	{
-	title="Security check";
-	buttons=R_EIK_BUTTONS_CANCEL_OK;
+    flags = EGeneralQueryFlags;
+    title="Security check";
+	buttons=R_AVKON_SOFTKEYS_OK_CANCEL;
 
 	items =
 		{
-		DLG_LINE
-			{
-			type = EEikCtSecretEd; //Control factory id.
-			id = 0;
-			control = SECRETED
-				{
-				num_letters=8;
-				};
-			}
+		DLG_LINE 
+		    {
+		    type = EAknCtQuery;
+		    id = EGeneralQuery;
+		    control = AVERELL_DATA_QUERY 
+		        {
+		        layout = EPinLayout;
+		        label = qtn_sen_pindlg_auth_title;
+		        control = SECRETED 
+		            {
+		            num_letters = 8   ;//KSenMaxPasswordLength
+		            };
+		        };
+		    }
 		};
 	}
+
+RESOURCE TBUF r_pinnotdlg_auth_title                { buf = qtn_sen_pindlg_auth_title; }
--- a/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/group/testpinnotifierplugin.mmp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/group/testpinnotifierplugin.mmp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -35,7 +35,6 @@
 
 OS_LAYER_SYSTEMINCLUDE_SYMBIAN
 MW_LAYER_SYSTEMINCLUDE_SYMBIAN
-SYSTEMINCLUDE 	/epoc32/include/techview
 #ifndef SYMBIAN_OLD_EXPORT_LOCATION
 SYSTEMINCLUDE   /epoc32/include/platform/app
 #endif
@@ -49,7 +48,7 @@
 TARGET testpinnotifierplugin.rsc
 END
 
-SOURCEPATH	    ./../src
+SOURCEPATH	    ../src
 SOURCE  testpinnotifierplugin.cpp
 
 LIBRARY euser.lib
--- a/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/group/tunitcustcmd_server.mmp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/group/tunitcustcmd_server.mmp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -101,6 +101,7 @@
 LIBRARY			centralrepository.lib
 LIBRARY			ssmuiproviderdll.lib
 LIBRARY			ssmadaptationcli.lib
+LIBRARY			ws32.lib
 
 LIBRARY		etelmm.lib //Device security check
 LIBRARY		etel.lib //Device security check
--- a/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/inc/testpinnotifierplugin.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/inc/testpinnotifierplugin.h	Thu Jul 22 16:45:41 2010 +0100
@@ -26,7 +26,7 @@
 #include <e32std.h>
 #include <e32base.h>
 #include <eiknotapi.h>
-#include <techview/eikdialg.h>
+#include <eikdialg.h>
 #include <e32cmn.h>
 
 
--- a/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/scripts/ssrefpluginstest_custcmd_activaterfforemergencycall.script	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/scripts/ssrefpluginstest_custcmd_activaterfforemergencycall.script	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -13,7 +13,7 @@
 // Description:
 //
 
-PRINT Run CCustomCmdTestDeactivateRfForEmergencyCall tests
+PRINT Run CCustomCmdTestActivateRfForEmergencyCall tests
 
 LOAD_SUITE tunitcustcmd_server
 
@@ -30,5 +30,5 @@
 //! 					2.	Initialize - Initialising the custom cmd
 //! 					3.	Execute - Executing the custom cmd
 //! @SYMTestExpectedResults 	Command should execute normally and should complete with KErrNone.
-RUN_TEST_STEP 100 tunitcustcmd_server CCustomCmdTestDeactivateRfForEmergencyCall
+RUN_TEST_STEP 100 tunitcustcmd_server CCustomCmdTestActivateRfForEmergencyCall
 END_TESTCASE 			DEVSRVS-SSREFPLUGINS-CUSTCMD-0001
--- a/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/scripts/ssrefpluginstest_custcmd_deactivaterfforemergencycall.script	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/scripts/ssrefpluginstest_custcmd_deactivaterfforemergencycall.script	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -13,7 +13,7 @@
 // Description:
 //
 
-PRINT Run CCustomCmdTestActivateRfForEmergencyCall tests
+PRINT Run CCustomCmdTestDeactivateRfForEmergencyCall tests
 
 LOAD_SUITE tunitcustcmd_server
 
@@ -30,6 +30,6 @@
 //! 					2.	Initialize - Initialising the custom cmd
 //! 					3.	Execute - Executing the custom cmd
 //! @SYMTestExpectedResults Command should execute normally and should complete with KErrNone.
-RUN_TEST_STEP 100 tunitcustcmd_server CCustomCmdTestActivateRfForEmergencyCall
+RUN_TEST_STEP 100 tunitcustcmd_server CCustomCmdTestDeactivateRfForEmergencyCall
 END_TESTCASE 			DEVSRVS-SSREFPLUGINS-CUSTCMD-0008
 
--- a/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/src/tcmd_step_activaterfforemergencycall.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/src/tcmd_step_activaterfforemergencycall.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -22,6 +22,9 @@
 #include "tcmd_step_activaterfforemergencycall.h"
 #include "ssmcustomcmdfactory.h"
 #include "cmdactivaterfforemergencycall.h"
+#include <e32property.h>
+const TUint32 KEmergencyCallRfAdaptationPluginPropertyKey = 0x2000E657;
+const TUid KPropertyCategory={0x2000D75B};
 
 CCustomCmdTestActivateRfForEmergencyCall::~CCustomCmdTestActivateRfForEmergencyCall()
 	{
@@ -41,6 +44,11 @@
 	{
 	_LIT(KTESTLOG, "TestCustomCmdActivateRfForEmergencyCallL");
 	INFO_PRINTF1(KTESTLOG);
+	// Setting the P and S key will route the request to the reference plugins instead of the actual plugins
+	TInt err = RProperty::Define(KPropertyCategory, KEmergencyCallRfAdaptationPluginPropertyKey, RProperty::EInt);
+	TEST(KErrNone == err || KErrAlreadyExists == err);
+    err = RProperty::Set(KPropertyCategory, KEmergencyCallRfAdaptationPluginPropertyKey, 1);
+    TEST(KErrNone == err);
 
 	//Create Deactivate Rf For Emergency Call custom command
 	MSsmCustomCommand* customCmdActivateRfForEmergencyCall = SsmCustomCmdFactory::CmdActivateRfForEmergencyCallNewL();
@@ -56,12 +64,11 @@
 	//Command parameter is not used inside the Execute. So passing any dummy data should be fine
 	//Execute the command
 	customCmdActivateRfForEmergencyCall->Execute(dummy, status);
-	TEST(KRequestPending == status.Int());
 
 	//Wait for the request to be completed
 	User::WaitForRequest(status);
 	TEST(KErrNone == status.Int());
-
+	
 	//Execute the command once again
 	customCmdActivateRfForEmergencyCall->Execute(dummy, status);
 
@@ -73,12 +80,14 @@
 	//checking the status to KErrNone instead of KErrCancel.
 	User::WaitForRequest(status);
 	TEST(KErrNone == status.Int());
-
+	
 	//Close the command
 	customCmdActivateRfForEmergencyCall->Close();
 
 	//Releasing the comand will delete itself.
 	customCmdActivateRfForEmergencyCall->Release();
+	err = RProperty::Delete(KPropertyCategory, KEmergencyCallRfAdaptationPluginPropertyKey);
+	TEST(KErrNone == err);
 	}
 
 TVerdict CCustomCmdTestActivateRfForEmergencyCall::doTestStepL()
--- a/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/src/tcmd_step_coopsysperformrestartactions.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/src/tcmd_step_coopsysperformrestartactions.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -22,6 +22,10 @@
 #include "tcmd_step_coopsysperformrestartactions.h"
 #include "ssmcustomcmdfactory.h"
 #include "cmdcoopsysperformrestartactions.h"
+#include <e32property.h>
+
+const TUint32 KStateAdaptationPluginPropertyKey = 0x2000D76A;
+const TUid KPropertyCategory={0x2000D75B};
 
 CCustomCmdTestCoopSysPerformRestartActions::~CCustomCmdTestCoopSysPerformRestartActions()
 	{
@@ -39,6 +43,12 @@
 
 void CCustomCmdTestCoopSysPerformRestartActions::TestCustomCmdCoopSysPerformRestartActionsL()
 	{
+	// Setting the P and S key will route the request to the reference plugins instead of the actual plugins
+    TInt err = RProperty::Define(KPropertyCategory, KStateAdaptationPluginPropertyKey, RProperty::EInt);
+    TEST(KErrNone == err || KErrAlreadyExists == err);
+    err = RProperty::Set(KPropertyCategory, KStateAdaptationPluginPropertyKey, 1);
+    TEST(KErrNone == err);
+    
 	_LIT(KTESTLOG, "TestCustomCmdCoopSysPerformRestartActionsL");
 	INFO_PRINTF1(KTESTLOG);
 
@@ -80,6 +90,9 @@
 	
 	//Releasing the comand will delete itself.
 	customCmdCoopSysPerformRestartActions->Release();
+	
+	err = RProperty::Delete(KPropertyCategory, KStateAdaptationPluginPropertyKey);
+    TEST(KErrNone == err);
 	}
 
 TVerdict CCustomCmdTestCoopSysPerformRestartActions::doTestStepL()
--- a/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/src/tcmd_step_coopsysperformrfsactions.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/src/tcmd_step_coopsysperformrfsactions.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -22,6 +22,10 @@
 #include "tcmd_step_coopsysperformrfsactions.h"
 #include "ssmcustomcmdfactory.h"
 #include "cmdcoopsysperformrfsactions.h"
+#include <e32property.h>
+
+const TUint32 KStateAdaptationPluginPropertyKey = 0x2000D76A;
+const TUid KPropertyCategory={0x2000D75B};
 
 CCustomCmdTestCoopSysPerformRfsActions::~CCustomCmdTestCoopSysPerformRfsActions()
 	{
@@ -39,6 +43,11 @@
 
 void CCustomCmdTestCoopSysPerformRfsActions::TestCustomCmdCoopSysPerformRfsActionsL()
 	{
+	// Setting the P and S key will route the request to the reference plugins instead of the actual plugins
+    TInt err = RProperty::Define(KPropertyCategory, KStateAdaptationPluginPropertyKey, RProperty::EInt);
+    TEST(KErrNone == err || KErrAlreadyExists == err);
+    err = RProperty::Set(KPropertyCategory, KStateAdaptationPluginPropertyKey, 1);
+    TEST(KErrNone == err);
 	_LIT(KTESTLOG, "TestCustomCmdCoopSysPerformRfsActionsL");
 	INFO_PRINTF1(KTESTLOG);
 
@@ -87,6 +96,8 @@
 	
 	//Releasing the comand will delete itself.
 	customCmdCoopSysPerformRfsActions->Release();
+	err = RProperty::Delete(KPropertyCategory, KStateAdaptationPluginPropertyKey);
+	TEST(KErrNone == err);
 	}
 
 TVerdict CCustomCmdTestCoopSysPerformRfsActions::doTestStepL()
--- a/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/src/tcmd_step_coopsysperformshutdownactions.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/src/tcmd_step_coopsysperformshutdownactions.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -22,6 +22,10 @@
 #include "tcmd_step_coopsysperformshutdownactions.h"
 #include "ssmcustomcmdfactory.h"
 #include "cmdcoopsysperformshutdownactions.h"
+#include <e32property.h>
+
+const TUint32 KStateAdaptationPluginPropertyKey = 0x2000D76A;
+const TUid KPropertyCategory={0x2000D75B};
 
 CCustomCmdTestCoopSysPerformShutdownActions::~CCustomCmdTestCoopSysPerformShutdownActions()
 	{
@@ -39,6 +43,11 @@
 
 void CCustomCmdTestCoopSysPerformShutdownActions::TestCustomCmdCoopSysPerformShutdownActionsL()
 	{
+	// Setting the P and S key will route the request to the reference plugins instead of the actual plugins
+    TInt err = RProperty::Define(KPropertyCategory, KStateAdaptationPluginPropertyKey, RProperty::EInt);
+    TEST(KErrNone == err || KErrAlreadyExists == err);
+    err = RProperty::Set(KPropertyCategory, KStateAdaptationPluginPropertyKey, 1);
+    TEST(KErrNone == err);
 	_LIT(KTESTLOG, "TestCustomCmdCoopSysPerformShutdownActionsL");
 	INFO_PRINTF1(KTESTLOG);
 
@@ -81,6 +90,8 @@
 	
 	//Releasing the comand will delete itself.
 	customCmdCoopSysPerformShutdownActions->Release();
+	err = RProperty::Delete(KPropertyCategory, KStateAdaptationPluginPropertyKey);
+    TEST(KErrNone == err);
 	}
 
 TVerdict CCustomCmdTestCoopSysPerformShutdownActions::doTestStepL()
--- a/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/src/tcmd_step_coopsysselftest.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/src/tcmd_step_coopsysselftest.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -22,6 +22,10 @@
 #include "tcmd_step_coopsysselftest.h"
 #include "ssmcustomcmdfactory.h"
 #include "cmdcoopsysselftest.h"
+#include <e32property.h>
+
+const TUint32 KStateAdaptationPluginPropertyKey = 0x2000D76A;
+const TUid KPropertyCategory={0x2000D75B};
 
 CCustomCmdTestCoopSysSelfTest::~CCustomCmdTestCoopSysSelfTest()
 	{
@@ -39,6 +43,11 @@
 
 void CCustomCmdTestCoopSysSelfTest::TestCustomCmdCoopSysSelfTestL()
 	{
+	// Setting the P and S key will route the request to the reference plugins instead of the actual plugins
+    TInt err = RProperty::Define(KPropertyCategory, KStateAdaptationPluginPropertyKey, RProperty::EInt);
+    TEST(KErrNone == err || KErrAlreadyExists == err);
+    err = RProperty::Set(KPropertyCategory, KStateAdaptationPluginPropertyKey, 1);
+    TEST(KErrNone == err);
 	_LIT(KTESTLOG, "TestCustomCmdCoopSysSelfTestL");
 	INFO_PRINTF1(KTESTLOG);
 
@@ -80,6 +89,8 @@
 	
 	//Releasing the comand will delete itself.
 	customCmdCoopSysSelfTest->Release();
+	err = RProperty::Delete(KPropertyCategory, KStateAdaptationPluginPropertyKey);
+	TEST(KErrNone == err);
 	}
 
 TVerdict CCustomCmdTestCoopSysSelfTest::doTestStepL()
--- a/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/src/tcmd_step_coopsysstatechange.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/src/tcmd_step_coopsysstatechange.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -22,7 +22,10 @@
 #include "tcmd_step_coopsysstatechange.h"
 #include "ssmcustomcmdfactory.h"
 #include <ssm/ssmstate.h>
+#include <e32property.h>
 #include "cmdcoopsysstatechange.h"
+const TUint32 KStateAdaptationPluginPropertyKey = 0x2000D76A;
+const TUid KPropertyCategory={0x2000D75B};
 
 CCustomCmdTestCoopSysStateChange::~CCustomCmdTestCoopSysStateChange()
 	{
@@ -40,6 +43,12 @@
 
 void CCustomCmdTestCoopSysStateChange::TestCustomCmdCoopSysStateChangeL()
 	{
+	// Setting the P and S key will route the request to the reference plugins instead of the actual plugins
+	TInt err = RProperty::Define(KPropertyCategory, KStateAdaptationPluginPropertyKey, RProperty::EInt);
+	TEST(KErrNone == err || KErrAlreadyExists == err);
+	err = RProperty::Set(KPropertyCategory, KStateAdaptationPluginPropertyKey, 1);
+	TEST(KErrNone == err);
+	
 	_LIT(KTESTLOG, "TestCustomCmdCoopSysStateChangeL");
 	INFO_PRINTF1(KTESTLOG);
 
@@ -79,6 +88,8 @@
 	
 	//Releasing the comand will delete itself.
 	customCmdCoopSysStateChange->Release();
+	err = RProperty::Delete(KPropertyCategory, KStateAdaptationPluginPropertyKey);
+	TEST(KErrNone == err);
 	}
 
 TVerdict CCustomCmdTestCoopSysStateChange::doTestStepL()
--- a/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/src/tcmd_step_deactivaterfforemergencycall.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/src/tcmd_step_deactivaterfforemergencycall.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -22,6 +22,9 @@
 #include "tcmd_step_deactivaterfforemergencycall.h"
 #include "ssmcustomcmdfactory.h"
 #include "cmddeactivaterfforemergencycall.h"
+#include <e32property.h>
+const TUint32 KEmergencyCallRfAdaptationPluginPropertyKey = 0x2000E657;
+const TUid KPropertyCategory={0x2000D75B};
 
 CCustomCmdTestDeactivateRfForEmergencyCall::~CCustomCmdTestDeactivateRfForEmergencyCall()
 	{
@@ -41,6 +44,11 @@
 	{
 	_LIT(KTESTLOG, "TestCustomCmdDeactivateRfForEmergencyCallL");
 	INFO_PRINTF1(KTESTLOG);
+	// Setting the P and S key will route the request to the reference plugins instead of the actual plugins
+	TInt err = RProperty::Define(KPropertyCategory, KEmergencyCallRfAdaptationPluginPropertyKey, RProperty::EInt);
+	TEST(KErrNone == err || KErrAlreadyExists == err);
+    err = RProperty::Set(KPropertyCategory, KEmergencyCallRfAdaptationPluginPropertyKey, 1);
+    TEST(KErrNone == err);
 
 	//Create Deactivate Rf For Emergency Call custom command
 	MSsmCustomCommand* customCmdDeactivateRfForEmergencyCall = CCustomCmdDeactivateRfForEmergencyCall::NewL();
@@ -56,12 +64,12 @@
 	//Command parameter is not used inside the Execute. So passing any dummy data should be fine
 	//Execute the command
 	customCmdDeactivateRfForEmergencyCall->Execute(dummy, status);
-	TEST(KRequestPending == status.Int());
 
+	
 	//Wait for the request to be completed
 	User::WaitForRequest(status);
 	TEST(KErrNone == status.Int());
-
+	
 	//Execute the command once again
 	customCmdDeactivateRfForEmergencyCall->Execute(dummy, status);
 
@@ -72,12 +80,14 @@
 	//is called it might have completed executing Execute() function. Thats is the reason for 
 	//checking the status to KErrNone instead of KErrCancel.
 	TEST(KErrNone == status.Int());
-
+	
 	//Close the command
 	customCmdDeactivateRfForEmergencyCall->Close();
 
 	//Releasing the comand will delete itself.
 	customCmdDeactivateRfForEmergencyCall->Release();
+	err = RProperty::Delete(KPropertyCategory, KEmergencyCallRfAdaptationPluginPropertyKey);
+	TEST(KErrNone == err);
 	}
 
 TVerdict CCustomCmdTestDeactivateRfForEmergencyCall::doTestStepL()
--- a/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/src/tcmd_step_devicesecuritycheck.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/src/tcmd_step_devicesecuritycheck.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -23,6 +23,11 @@
 #include "ssmsecuritychecknotifier.h"
 #include "ssmuiproviderdll.h"
 #include "ssmcustomcmdfactory.h"
+#include <w32std.h>
+#include <s32file.h>
+
+const TUid KPropertyCategory={0x2000D75B}; 
+const TUint32 KMiscPluginPropertyKey = 0x2000E658;
 
 CCustomCmdTestDeviceSecurityCheck::~CCustomCmdTestDeviceSecurityCheck()
 	{
@@ -44,6 +49,10 @@
 	iActiveScheduler = new(ELeave) CActiveScheduler;
 	CActiveScheduler::Install (iActiveScheduler);
 	iActiveSchedulerWait = new(ELeave) CActiveSchedulerWait;
+	TInt err = RProperty::Define(KPropertyCategory, KMiscPluginPropertyKey, RProperty::EInt);
+	TEST(KErrNone == err || KErrAlreadyExists == err);
+	err = RProperty::Set(KPropertyCategory, KMiscPluginPropertyKey, 1);
+	TEST(KErrNone == err);
 
 	//Needed for calling calback for stopping active scheduler
 	iAsyncStopScheduler = new(ELeave) CAsyncCallBack(CActive::EPriorityIdle);
@@ -52,12 +61,20 @@
 
 TVerdict CCustomCmdTestDeviceSecurityCheck::doTestStepPostambleL()
 	{
+	TInt err = RProperty::Delete(KPropertyCategory, KMiscPluginPropertyKey);
+	TEST(KErrNone == err);
 	return CTestStep::doTestStepPostambleL();
 	}
 
 void CCustomCmdTestDeviceSecurityCheck::SimulatePasswordEntry()
 	{
-	//Simulate the key press ,(comma) in to pin notifier dialogue
+    RWsSession wsSession;
+    TInt err = wsSession.Connect();
+    TEST(KErrNone == err);
+    
+    const TInt okButtonPos1 = 60; //the position of ok button
+    const TInt okButtonPos2 = 600; //the position of ok button
+    //Simulate the key press ,(comma) in to pin notifier dialogue
 	TRawEvent eventDown;
 	TRawEvent eventUp;
 
@@ -80,11 +97,14 @@
 		iWrongPwd = EFalse;
 		}
 
-	eventDown.Set(TRawEvent::EKeyDown, EStdKeyEnter);
-	UserSvr::AddEvent(eventDown);
-	eventUp.Set(TRawEvent::EKeyUp, EStdKeyEnter);
-	UserSvr::AddEvent(eventUp);
-	User::After(100000);
+    eventDown.Set(TRawEvent::EButton1Down, okButtonPos1,okButtonPos2);
+    UserSvr::AddEvent(eventDown);
+    eventUp.Set(TRawEvent::EButton1Up, okButtonPos1,okButtonPos2);
+    UserSvr::AddEvent(eventUp);
+    User::After(100000);
+    
+    wsSession.Flush();
+    wsSession.Close();
 	}
 
 static TInt CallBackL(TAny* aCCustomCmdTestSimSecurityCheck)
@@ -145,13 +165,9 @@
 
 	TestLockPhoneDeviceRespReceivedHelperL();
 
-#ifdef __WINS__
 	INFO_PRINTF3(_L("Result at line %d is %d "),__LINE__ + 1, iRequest.Int());
 	TEST(KErrNone == iRequest.Int());
-#else
-	INFO_PRINTF3(_L("Result at line %d is %d "),__LINE__ + 1, iRequest.Int());
-	TEST(KErrNotSupported == iRequest.Int());
-#endif
+
 	}
 
 void CCustomCmdTestDeviceSecurityCheck::TestLockPhoneDeviceRespReceived2L()
@@ -160,14 +176,16 @@
 	iCustomCmdDevSecurityCheck->iLockInfo.iStatus = RMobilePhone::EStatusLockUnknown;
 
 	TestLockPhoneDeviceRespReceivedHelperL();
-	INFO_PRINTF3(_L("Result at line %d is %d "),__LINE__ + 1, iRequest.Int());
-	TEST(KErrNotSupported == iRequest.Int());
+
 
-/*#ifdef __WINS__
-	TEST(KErrNone == iRequest.Int());
+#ifdef __WINS__
+	INFO_PRINTF3(_L("Result at line %d is %d "),__LINE__ + 1, iRequest.Int());
+	TEST(KErrNotFound == iRequest.Int());
 #else
-	TEST(KErrNotSupported == iRequest.Int());
-#endif*/
+    INFO_PRINTF3(_L("Result at line %d is %d "),__LINE__ + 1, iRequest.Int());
+	TEST(KErrNone == iRequest.Int());
+#endif
+    INFO_PRINTF1(_L("TestLockPhoneDeviceRespReceived2L"));
 	}
 
 void CCustomCmdTestDeviceSecurityCheck::TestLockPhoneDeviceRespReceived3L()
@@ -224,8 +242,13 @@
 	iAsyncStopScheduler->CallBack();
 	iActiveSchedulerWait->Start();
 
-	INFO_PRINTF3(_L("Result at line %d is %d "),__LINE__ + 1, iRequest.Int());
-	TEST(KErrNotSupported == iRequest.Int());
+#ifdef __WINS__
+    INFO_PRINTF3(_L("Result at line %d is %d "),__LINE__ + 1, iRequest.Int());
+	TEST(KErrNotFound == iRequest.Int());
+#else
+    INFO_PRINTF3(_L("Result at line %d is %d "),__LINE__ + 1, iRequest.Int());	
+    TEST(KErrNone == iRequest.Int());
+#endif
 	}
 
 void CCustomCmdTestDeviceSecurityCheck::TestLockPhoneToIccRespReceivedHelperL()
--- a/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/src/tcmd_step_execute.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/src/tcmd_step_execute.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -1,4 +1,4 @@
-// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+// 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 "Eclipse Public License v1.0"
@@ -21,6 +21,9 @@
 */
 
 #include "tcmd_step_execute.h"
+#include <e32property.h>
+const TUint32 KRtcAdaptationPluginPropertyKey = 0x2000D76C;
+const TUid KPropertyCategory={0x2000D75B};
 
 /**
  This function is wrapped in  Callback and used to stop the CActiveScheduler
@@ -84,19 +87,29 @@
 void CTestCustomCmdExecute::TestCustomCmdValidateRTC()
     {
     INFO_PRINTF1(_L("TestCustomCmdValidateRTC started"));
+    // Setting the P and S key will route the request to the reference plugins instead of the actual plugins
+    TInt err = RProperty::Define(KPropertyCategory, KRtcAdaptationPluginPropertyKey, RProperty::EInt);
+    TEST(KErrNone == err || KErrAlreadyExists == err);
+    err = RProperty::Set(KPropertyCategory, KRtcAdaptationPluginPropertyKey, 1);
+    TEST(KErrNone == err);
+    
     //Create ValidateRTC custom command
     MSsmCustomCommand* customCmdValidateRTC = SsmCustomCmdFactory::CmdValidateRTCNewL();
     customCmdValidateRTC->Initialize(iCmdEnv);
     ExecuteCommand(customCmdValidateRTC);
+    // In the reference plugins, the API completes with KErrNotSupported. Hence we check for the same
     TEST(KErrNotSupported == iStatus.Int());
     ExecuteCommand(customCmdValidateRTC);
     customCmdValidateRTC->ExecuteCancel();
+    // In the reference plugins, the API completes with KErrNotSupported. Hence we check for the same
     TEST(KErrNotSupported == iStatus.Int());
     //Close the command
     customCmdValidateRTC->Close();
     //Releasing the comand will delete itself.
     customCmdValidateRTC->Release();
-    INFO_PRINTF3(_L("TestCustomCmdValidateRTC completed with %d Expected %d"),iStatus.Int(),KErrNotSupported);
+    INFO_PRINTF3(_L("TestCustomCmdValidateRTC completed with %d Expected %d"),iStatus.Int(),KErrNone);
+    err = RProperty::Delete(KPropertyCategory, KRtcAdaptationPluginPropertyKey);
+    TEST(KErrNone == err);
     }
 
 /**
--- a/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/src/tcmd_step_publishstartupmode.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/src/tcmd_step_publishstartupmode.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -38,6 +38,8 @@
 //Exe name which defines startup PS keys
 _LIT (KExeToDefineStartUpPS, "\\sys\\bin\\definestartupps.exe");
 _LIT(KStartUpPSKeys, "startupkeys");
+const TUint32 KMiscPluginPropertyKey = 0x2000E658;
+const TUid KPropertyCategory={0x2000D75B};
 
 CCustomCmdTestPublishStartupMode::~CCustomCmdTestPublishStartupMode()
 	{
@@ -93,11 +95,17 @@
     
         //Needed for calling callback for stopping active scheduler
         iAsyncStopScheduler = new(ELeave) CAsyncCallBack(CActive::EPriorityIdle);
-    
+        
+        // Setting the P and S key will route the request to the reference plugins instead of the actual plugins
+        TInt err = RProperty::Define(KPropertyCategory, KMiscPluginPropertyKey, RProperty::EInt);
+        TEST(KErrNone == err || KErrAlreadyExists == err);
+        err = RProperty::Set(KPropertyCategory, KMiscPluginPropertyKey, 1);
+        TEST (KErrNone == err);
+
         INFO_PRINTF1(_L("Define global startup mode property"));
     
         //Start the test exe which defines startup related property keys
-        TInt err = process.Create(KExeToDefineStartUpPS, KStartUpPSKeys());
+        err = process.Create(KExeToDefineStartUpPS, KStartUpPSKeys());
         INFO_PRINTF2(_L("Define global startup mode property process created with %d"), err);
         TEST(KErrNone == err);
         User::LeaveIfError(err);
@@ -116,6 +124,11 @@
 
 TVerdict CCustomCmdTestPublishStartupMode::doTestStepPostambleL()
 	{
+	if (iTestStepName == KTestPublishStartupModeWithCap)
+	    {
+	    TInt err = RProperty::Delete(KPropertyCategory, KMiscPluginPropertyKey);
+	    TEST (KErrNone == err);
+	    }
 	return CTestStep::doTestStepPostambleL();
 	}
 
@@ -201,8 +214,8 @@
 	TEST(iRequestStatus == KErrNone);
 	
     err = RProperty::Get(CSsmUiSpecific::StartupPSUid(), KPSGlobalStartupMode, startUpMode);
-    INFO_PRINTF3(_L("Startup mode is %d ; Expected %d"), startUpMode, 0);
-    TEST(startUpMode == 0);
+    INFO_PRINTF3(_L("Startup mode is %d ; Expected %d"), startUpMode, EStartupModeNormal);
+    TEST(startUpMode == EStartupModeNormal);
 	
     // Hidden Reset functionality is not supported in techview\hrp, so the request will be completed with KErrNotSupported
     // And the hidden reset reason would same as we set in the test code, ie., ENormalStartup.
@@ -230,6 +243,7 @@
 void CCustomCmdTestPublishStartupMode::doTestFactoryCreateAndExecuteCancelL()
 	{
 	INFO_PRINTF1(_L("Entering test for factory create, execute cancel and destroy"));
+		
 	__UHEAP_MARK;
 	
 	INFO_PRINTF1(_L("Testing factory create for publish startup mode"));
--- a/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/src/tcmd_step_simsecuritycheck.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/src/tcmd_step_simsecuritycheck.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -40,6 +40,9 @@
 // Use to write the PIN Check Security test case nos.
 _LIT(KTestCmdSecurityCheckTestFile, "c:\\cmdsecuritychecktest\\pinchecksecuritycaseno.txt");
 
+const TUid KPropertyCategory={0x2000D75B};
+const TUint32 KMiscPluginPropertyKey = 0x2000E658;
+
 static TInt CallBack2L(TAny* aCCustomCmdTestSecurityCheck);
 
 CCustomCmdTestSimSecurityCheck::~CCustomCmdTestSimSecurityCheck()
@@ -65,6 +68,14 @@
 	
 	//Needed fro calling calback for stopping active scheduler
 	iAsyncStopScheduler = new(ELeave) CAsyncCallBack(CActive::EPriorityIdle);
+	
+    TInt err = RProperty::Define(KPropertyCategory, KMiscPluginPropertyKey, RProperty::EInt);
+	INFO_PRINTF2(_L("Define Test Property returns : %d "), err);
+	TEST(KErrNone == err || KErrAlreadyExists == err);
+    err = RProperty::Set(KPropertyCategory, KMiscPluginPropertyKey, 1);
+	INFO_PRINTF2(_L("Set Test Property returns : %d "), err);
+	TEST(KErrNone == err);
+
 
 	RProcess processHandle;
 	CleanupClosePushL(processHandle);
@@ -98,7 +109,7 @@
 	
 	//connect to file server
 	User::LeaveIfError(iFs.Connect());
-	TInt err = iFs.MkDirAll(KDirNameOfTestCasesNumFile);
+	err = iFs.MkDirAll(KDirNameOfTestCasesNumFile);
 	if (KErrAlreadyExists != err && KErrNone != err)
 		{
 		INFO_PRINTF1(_L("Leaving as it could not create directory"));
@@ -125,6 +136,8 @@
 	{
 	iFs.Delete(KTestCmdSecurityCheckTestFile);
 	iFs.Close();
+	TInt err = RProperty::Delete(KPropertyCategory, KMiscPluginPropertyKey);
+	TEST(KErrNone == err);
 	return CTestStep::doTestStepPostambleL();
 	}
 
@@ -170,9 +183,11 @@
 	
 	TUid uid1 = CSsmUiSpecific::StartupPSUid();
 	TEST(KPSStartupUid == uid1);
+	INFO_PRINTF3(_L("Test GeneralL : KPSStartupUid = %d ; Got from CSsmUiSpecific::StartupPSUid = %d "), KPSStartupUid, uid1);
 
 	TUid uid2 = CSsmUiSpecific::SecurityPinNotifierUid();
 	TEST(KSecurityPinNotifierUid == uid2);
+	INFO_PRINTF3(_L("Test GeneralL : KSecurityPinNotifierUid = %d ; Got from CSsmUiSpecific::SecurityPinNotifierUid = %d "), KPSStartupUid, uid2);
 	
 	TEST( CSsmUiSpecific::IsSimlessOfflineSupported() );
 	
@@ -953,6 +968,8 @@
 
 void CCustomCmdTestSimSecurityCheck::SimulatePasswordEntry()
 	{
+    const TInt okButtonPos1 = 60; //the position of ok button
+    const TInt okButtonPos2 = 600; //the position of ok button
 	TRawEvent eventDown;
 	TRawEvent eventUp;
 
@@ -963,11 +980,11 @@
 	UserSvr::AddEvent(eventUp);
 	User::After(100000);
 
-	eventDown.Set(TRawEvent::EKeyDown, EStdKeyEnter);
-	UserSvr::AddEvent(eventDown);
-	eventUp.Set(TRawEvent::EKeyUp, EStdKeyEnter);
-	UserSvr::AddEvent(eventUp);
-	User::After(100000);
+    eventDown.Set(TRawEvent::EButton1Down, okButtonPos1,okButtonPos2);
+    UserSvr::AddEvent(eventDown);
+    eventUp.Set(TRawEvent::EButton1Up, okButtonPos1, okButtonPos2);
+    UserSvr::AddEvent(eventUp);
+    User::After(100000);
 	}
 
 void CCustomCmdTestSimSecurityCheck::CallBack3RunL()
--- a/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/src/testpinnotifierplugin.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/systemstatereferenceplugins/test/tunitcustcmd/src/testpinnotifierplugin.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -21,13 +21,13 @@
 
 #include "testpinnotifierplugin.h"
 #include <ssm/ssmuiproviderdll.h>
-#include <techview/eikdialg.h>
+#include <eikdialg.h>
 #include <testpinnotifier.rsg>
 #include <bautils.h>
 #include <eikenv.h>
 #include <uikon.hrh>
 #include <ecom/implementationproxy.h>
-#include <techview/eikseced.h>
+#include <eikseced.h>
 #include <e32property.h>
 
 const TUint KCustomcmdServerPropertyKey = 0x0012AC;
@@ -36,8 +36,6 @@
 _LIT(KPinNotifierResFileNameAndPath,"\\resource\\apps\\testpinnotifier.rsc");
 _LIT(KPinNotifierTitle,"Security Check");
 
-//Hardcoding security pin code.
-_LIT(KPinCode,","); 
 
 CArrayPtr<MEikSrvNotifierBase2>* NotifierArrayL()
 	{
@@ -69,8 +67,12 @@
 
 CSecurityPinNotifier::TNotifierInfo CSecurityPinNotifier::RegisterL()
 	{
-	iInfo.iUid = CSsmUiSpecific::SecurityPinNotifierUid();
-	iInfo.iChannel = CSsmUiSpecific::ScreenOutputChannelUid();
+	const TUid KSecurityPinNotifierUid = {0x2000E667};
+	iInfo.iUid = KSecurityPinNotifierUid;
+
+	const TUid KScreenOutputChannel = {0x10009D48};	
+	iInfo.iChannel = KScreenOutputChannel;
+
 	iInfo.iPriority = ENotifierPriorityVHigh;
 	return iInfo;
 	}
@@ -160,19 +162,7 @@
 	securityResultBuffer = KErrGeneral; 
 	if (iMessage != RMessagePtr2())
 		{
-   		TBuf<5> newPINValueVerify;
-
-   		//Get pinter for the secret editor control
-   		CEikSecretEditor* pinEditor = static_cast<CEikSecretEditor*>(Control(0));
-   		pinEditor->GetText(newPINValueVerify);
-
-		//Verify the entered pin number
-		if(0 == newPINValueVerify.Compare(KPinCode))
-			{
-			securityResultBuffer = KErrNone;
-			}
-
-		pinEditor->Reset();	
+   		securityResultBuffer = KErrNone;
 		iMessage.Write(iReplySlot,securityResultBuffer);
 		iMessage.Complete(KErrNone);	
 		// Set this swp to indicate to stop the active schaduler
--- a/sysstatemgmt/tsrc/public/basic/MT_SysLangUtil/MT_SysLangUtil.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,175 +0,0 @@
-/*
-* Copyright (c) 2002 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:  ?Description
-*
-*/
-
-
-//  CLASS HEADER
-#include "MT_SysLangUtil.h"
-
-//  EXTERNAL INCLUDES
-#include <EUnitMacros.h>
-#include <EUnitDecorators.h>
-#include <syslangutil.h>
-
-// CONSTRUCTION
-MT_SysLangUtil* MT_SysLangUtil::NewL()
-    {
-    MT_SysLangUtil* self = MT_SysLangUtil::NewLC();
-    CleanupStack::Pop();
-    return self;
-    }
-
-MT_SysLangUtil* MT_SysLangUtil::NewLC()
-    {
-    MT_SysLangUtil* self = new( ELeave ) MT_SysLangUtil();
-    CleanupStack::PushL( self );
-    self->ConstructL();
-    return self;
-    }
-
-// Destructor (virtual by CBase)
-MT_SysLangUtil::~MT_SysLangUtil()
-    {
-    Teardown();
-    }
-
-// Default constructor
-MT_SysLangUtil::MT_SysLangUtil()
-    {
-    }
-
-// Second phase construct
-void MT_SysLangUtil::ConstructL()
-    {
-    // The ConstructL from the base class CEUnitTestSuiteClass must be called.
-    // It generates the test case table.
-    CEUnitTestSuiteClass::ConstructL();
-    }
-
-//  METHODS
-void MT_SysLangUtil::SetupL()
-    {
-    User::LeaveIfError( iFs.Connect() );    
-    }
-
-void MT_SysLangUtil::Teardown()
-    {
-    iFs.Close();
-    }
-    
-void MT_SysLangUtil::T_SysLangUtil_IsValidLanguageL()
-    {
-    // Get default language 
-    TInt language = 0;
-    TInt result = SysLangUtil::GetDefaultLanguage( language );
-    EUNIT_ASSERT_EQUALS( result, KErrNone );
-    
-    // Default language should be valid language
-    TBool valid = SysLangUtil::IsValidLanguage( language );
-    EUNIT_ASSERT( valid );
-    
-    // Default language should be valid language
-    valid = SysLangUtil::IsValidLanguage( language, &iFs );
-    EUNIT_ASSERT( valid );        
-    }
-    
-void MT_SysLangUtil::T_SysLangUtil_GetDefaultLanguageL()
-    {
-    // Get default language 
-    TInt language = 0;
-    TInt result = SysLangUtil::GetDefaultLanguage( language );
-    EUNIT_ASSERT_EQUALS( result, KErrNone );
-    
-    result = SysLangUtil::GetDefaultLanguage( language, &iFs );
-    EUNIT_ASSERT_EQUALS( result, KErrNone );    
-    }
-    
-void MT_SysLangUtil::T_SysLangUtil_GetInstalledLanguagesL()
-    {
-    // Create array for languages
-    CArrayFixFlat<TInt>* array = new( ELeave ) CArrayFixFlat<TInt>( 3 );
-    CleanupStack::PushL( array );
-
-    // Get installed languages
-    TInt res = SysLangUtil::GetInstalledLanguages( array );
-    EUNIT_ASSERT_EQUALS( res, KErrNone );
-    
-    array->Reset();
-    res = SysLangUtil::GetInstalledLanguages( array, &iFs );
-    EUNIT_ASSERT_EQUALS( res, KErrNone );    
-    
-    TInt count = array->Count();
-    EUNIT_ASSERT(  count > 0 );
-        
-    // Assert that each received language is a valid language
-    for( TInt i = 0; i < count; ++i )
-    	{
-    	EUNIT_ASSERT( SysLangUtil::IsValidLanguage( array->At( i ) ) );
-    	}
-    
-    CleanupStack::PopAndDestroy( array );
-    }
-
-void MT_SysLangUtil::T_SysLangUtil_RestoreSIMLanguageL()
-    {
-    // Get default language 
-    TInt language = 0;
-    TInt result = SysLangUtil::GetDefaultLanguage( language );
-    EUNIT_ASSERT_EQUALS( result, KErrNone );
-    
-    // Default language should be valid language
-    TInt res = SysLangUtil::RestoreSIMLanguage( language );    
-    EUNIT_ASSERT_EQUALS( res, KErrNone );
-
-    // Default language should be valid language
-    res = SysLangUtil::RestoreSIMLanguage( language, &iFs );    
-    EUNIT_ASSERT_EQUALS( res, KErrNone );    
-    }
-    
-//  TEST TABLE
-EUNIT_BEGIN_TEST_TABLE(
-    MT_SysLangUtil,
-    "SysLangUtil API Test",
-    "MODULE" )
-
-EUNIT_TEST(
-    "#1 Test IsValidLanguage()",
-    "SysLangUtil",
-    "IsValidLanguage",
-    "FUNCTIONALITY",
-    SetupL, T_SysLangUtil_IsValidLanguageL, Teardown)
-    
-EUNIT_TEST(
-    "#2 Test GetDefaultLanguage()",
-    "SysLangUtil",
-    "GetDefaultLanguage",
-    "FUNCTIONALITY",
-    SetupL, T_SysLangUtil_GetDefaultLanguageL, Teardown)
-    
-EUNIT_TEST(
-    "#3 Test GetInstalledLanguages()",
-    "SysLangUtil",
-    "GetInstalledLanguages",
-    "FUNCTIONALITY",
-    SetupL, T_SysLangUtil_GetInstalledLanguagesL, Teardown)
-    
-EUNIT_TEST(
-    "#4 Test RestoreSIMLanguage()",
-    "SysLangUtil",
-    "RestoreSIMLanguage",
-    "FUNCTIONALITY",
-    SetupL, T_SysLangUtil_RestoreSIMLanguageL, Teardown)    
-EUNIT_END_TEST_TABLE
--- a/sysstatemgmt/tsrc/public/basic/MT_SysLangUtil/MT_SysLangUtil.h	Wed Jun 23 22:58:50 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-/*
-* Copyright (c) 2002 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:  ?Description
-*
-*/
-
-
-#ifndef __MT_SYSLANGUTIL_H__
-#define __MT_SYSLANGUTIL_H__
-
-//  EXTERNAL INCLUDES
-#include <CEUnitTestSuiteClass.h>
-#include <EUnitDecorators.h>
-#include <f32file.h>
-
-//  CLASS DEFINITION
-/**
- * SysLangUtil API test
- */
-NONSHARABLE_CLASS( MT_SysLangUtil )
-	: public CEUnitTestSuiteClass
-    {
-    public:     // Constructors and destructors
-        /**
-         * Two phase construction
-         */
-        static MT_SysLangUtil* NewL();
-        static MT_SysLangUtil* NewLC();
-        /**
-         * Destructor
-         */
-        ~MT_SysLangUtil();
-
-    private:    // Constructors and destructors
-        MT_SysLangUtil();
-        void ConstructL();
-
-    private:    // New methods
-         void SetupL();        
-         void Teardown();        
-         void T_SysLangUtil_IsValidLanguageL();        
-         void T_SysLangUtil_GetDefaultLanguageL();        
-         void T_SysLangUtil_GetInstalledLanguagesL();        
-         void T_SysLangUtil_RestoreSIMLanguageL();
-        
-    private:    // Data		
-        EUNIT_DECLARE_TEST_TABLE;
-        
-        // Own: file server session
-        RFs iFs;
-    };
-
-#endif      //  __MT_SYSLANGUTIL_H__
--- a/sysstatemgmt/tsrc/public/basic/MT_SysLangUtil/MT_SysLangUtil_DllMain.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-/*
-* Copyright (c) 2002 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:  ?Description
-*
-*/
-
-
-//  CLASS HEADER
-#include "MT_SysLangUtil.h"
-
-//  EXTERNAL INCLUDES
-#include <CEUnitTestSuite.h>
-
-EXPORT_C MEUnitTest* CreateTestSuiteL()
-    {
-    return MT_SysLangUtil::NewL();
-    }
--- a/sysstatemgmt/tsrc/public/basic/bwins/mt_rstartersessionU.DEF	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/tsrc/public/basic/bwins/mt_rstartersessionU.DEF	Thu Jul 22 16:45:41 2010 +0100
@@ -1,2 +1,3 @@
 EXPORTS
-	?CreateTestSuiteL@@YAPAVMEUnitTest@@XZ @ 1 NONAME ; class MEUnitTest * __cdecl CreateTestSuiteL(void)
+	?LibEntryL@@YAPAVMT_RStarterSession@@AAVCTestModuleIf@@@Z @ 1 NONAME ; class MT_RStarterSession * LibEntryL(class CTestModuleIf &)
+
--- a/sysstatemgmt/tsrc/public/basic/eabi/mt_rstartersessionU.DEF	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/tsrc/public/basic/eabi/mt_rstartersessionU.DEF	Thu Jul 22 16:45:41 2010 +0100
@@ -1,3 +1,3 @@
 EXPORTS
-	_Z16CreateTestSuiteLv @ 1 NONAME
+	_Z9LibEntryLR13CTestModuleIf @ 1 NONAME
 
--- a/sysstatemgmt/tsrc/public/basic/group/bld.inf	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/tsrc/public/basic/group/bld.inf	Thu Jul 22 16:45:41 2010 +0100
@@ -1,5 +1,5 @@
 /*
-* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies). 
+* Copyright (c) 2004-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"
@@ -11,19 +11,20 @@
 *
 * Contributors:
 *
-* Description:
+* Description: Unit test code for RStarterSession class
 *
 */
-
-
 PRJ_PLATFORMS
     ARMV5 GCCE WINSCW
 
 PRJ_EXPORTS
 
+PRJ_TESTEXPORTS
+../init/mt_rstartersession.ini  /epoc32/winscw/c/testframework/mt_rstartersession.ini
+../rom/mt_rstartersession.iby     CORE_OS_LAYER_IBY_EXPORT_PATH( mt_rstartersession.iby )
+
 PRJ_MMPFILES
 
-
 PRJ_TESTMMPFILES
 mt_rstartersession.mmp
 
--- a/sysstatemgmt/tsrc/public/basic/group/mt_rstartersession.mmp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/tsrc/public/basic/group/mt_rstartersession.mmp	Thu Jul 22 16:45:41 2010 +0100
@@ -11,33 +11,30 @@
 *
 * Contributors:
 *
-* Description:
+* Description: Unit test code for RStarterSession class
 *
 */
 
-
 #include <platform_paths.hrh>
 
 TARGET          MT_RStarterSession.dll
 TARGETTYPE      dll
-UID             0x1000af5a 0x01700000
 
+UID             0x1000008D 0x101FB3E7
+VENDORID        VID_DEFAULT
 CAPABILITY      ALL -TCB
-VENDORID        VID_DEFAULT
 
 SOURCEPATH      ../mt_rstartersession
 SOURCE          MT_RStarterSession.cpp
-SOURCE          MT_RStarterSession_DllMain.cpp
 
 USERINCLUDE     ../mt_rstartersession
 
-SYSTEMINCLUDE    /epoc32/include/platform/digia/eunit
+OS_LAYER_SYSTEMINCLUDE
 
 OS_LAYER_SYSTEMINCLUDE
 
-LIBRARY         EUnit.lib
-LIBRARY         EUnitUtil.lib
 LIBRARY         euser.lib
+LIBRARY     	stiftestinterface.lib
 LIBRARY         StarterClient.lib
 
 SMPSAFE
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysstatemgmt/tsrc/public/basic/group/mt_rstartersession.pkg	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "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: Unit test code for RStarterSession class
+;
+;Languages
+&EN
+
+#{"mt_rstartersession"},(0x101FB3A7),1,0,0,TYPE=SA
+
+;Localised Vendor name
+%{"mt_rstartersession EN"}
+
+; Vendor name
+: "mt_rstartersession"
+
+"\epoc32\release\armv5\urel\MT_RStarterSession.dll" - "c:\sys\bin\MT_RStarterSession.dll"
+"..\init\MT_RStarterSession.ini"-"c:\testframework\MT_RStarterSession.ini"
+
--- a/sysstatemgmt/tsrc/public/basic/mt_rstartersession/MT_RStarterSession.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/tsrc/public/basic/mt_rstartersession/MT_RStarterSession.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -11,7 +11,7 @@
 *
 * Contributors:
 *
-* Description:
+* Description:	Unit test code for RStarterSession class
 *
 */
 
@@ -20,30 +20,30 @@
 #include "MT_RStarterSession.h"
 
 //  EXTERNAL INCLUDES
-#include <EUnitMacros.h>
-#include <EUnitDecorators.h>
+#include <stifparser.h>
+#include <stiftestinterface.h>
 
 
 //  INTERNAL INCLUDES
 #include <starterclient.h>
 #include <starter.hrh>
 
-// CONSTRUCTION
-MT_RStarterSession* MT_RStarterSession::NewL()
+// ---------------------------------------------------------
+// MT_RStarterSession::LibEntryL
+// Returns: Poiter to MT_RStarterSession class
+// ---------------------------------------------------------
+EXPORT_C MT_RStarterSession* LibEntryL( CTestModuleIf& aTestModuleIf )
     {
-    MT_RStarterSession* self = MT_RStarterSession::NewLC();
-    CleanupStack::Pop();
-
-    return self;
+	RDebug::Printf("MT_RStarterSession* LibEntryL");
+    MT_RStarterSession* libEntry( MT_RStarterSession::NewL( aTestModuleIf ) );
+    return libEntry;
     }
 
-MT_RStarterSession* MT_RStarterSession::NewLC()
+// CONSTRUCTION
+MT_RStarterSession* MT_RStarterSession::NewL(CTestModuleIf& aTestModuleIf)
     {
-    MT_RStarterSession* self = new( ELeave ) MT_RStarterSession();
-    CleanupStack::PushL( self );
-
-    self->ConstructL();
-
+	  RDebug::Printf("MT_RStarterSession* NewL");
+    MT_RStarterSession* self = new ( ELeave ) MT_RStarterSession( aTestModuleIf );
     return self;
     }
 
@@ -54,28 +54,163 @@
     }
 
 // Default constructor
-MT_RStarterSession::MT_RStarterSession()
+MT_RStarterSession::MT_RStarterSession(CTestModuleIf& /*aTestModuleIf*/)
     {
     }
 
-// Second phase construct
-void MT_RStarterSession::ConstructL()
+// -----------------------------------------------------------------------------
+// MT_SysLangUtil::Case
+// Returns a test case by number.
+//
+// This function contains an array of all available test cases
+// i.e pair of case name and test function. If case specified by parameter
+// aCaseNumber is found from array, then that item is returned.
+//
+// The reason for this rather complicated function is to specify all the
+// test cases only in one place. It is not necessary to understand how
+// function pointers to class member functions works when adding new test
+// cases. See function body for instructions how to add new test case.
+// -----------------------------------------------------------------------------
+//
+const TCaseInfo MT_RStarterSession::Case( const TInt aCaseNumber ) const
     {
-    // The ConstructL from the base class CEUnitTestSuiteClass must be called.
-    // It generates the test case table.
-    CEUnitTestSuiteClass::ConstructL();
+
+    /**
+    * To add new test cases, implement new test case function and add new
+    * line to KCases array specify the name of the case and the function
+    * doing the test case
+    * In practice, do following
+    * 1) Make copy of existing test case function and change its name
+    *    and functionality. Note that the function must be added to
+    *    CenRepNotifyHandlerTest.cpp file and to CenRepNotifyHandlerTest.h
+    *    header file.
+    * 2) Add entry to following KCases array either by using FUNCENTRY or
+    *    ENTRY macro.
+    * ENTRY macro takes two parameters: test case name and test case
+    * function name.
+    * FUNCENTRY macro takes only test case function name as a parameter and uses
+    * that as a test case name and test case function name.
+    */
+	RDebug::Printf("MT_RStarterSession* case");
+    static TCaseInfoInternal const KCases[] =
+        {
+        // To add new test cases, add new items to this array       
+        ENTRY( "1 [RStarterSession] Test ConectL", &MT_RStarterSession::T_RStarterSession_Connect ),
+        ENTRY( "2 [RStarterSession] Test SetState to Normal", &MT_RStarterSession::T_RStarterSession_SetStateToNormal),
+        ENTRY( "3 [RStarterSession] Test SetStateti Alarm", &MT_RStarterSession::T_RStarterSession_SetStateToAlarm),
+        ENTRY( "4 [RStarterSession] Test SetState to Charging", &MT_RStarterSession::T_RStarterSession_SetStateToCharging),
+        ENTRY( "5 [RStarterSession] Test SetState to OffLine", &MT_RStarterSession::T_RStarterSession_SetStateToOffLine),
+        ENTRY( "6 [RStarterSession] Test SetState to BTSap", &MT_RStarterSession::T_RStarterSession_SetStateToBTSap),
+        ENTRY( "7 [RStarterSession] Test ResetNetwork", &MT_RStarterSession::T_RStarterSession_ResetNetwork),       
+        ENTRY( "8 [RStarterSession] Test IsRTCTimeValid", &MT_RStarterSession::T_RStarterSession_IsRTCTimeValid),
+        ENTRY( "9 [RStarterSession] Test ActivateRfForEmergencyCall", &MT_RStarterSession::T_RStarterSession_ActivateRfForEmergencyCall ),
+        ENTRY( "10 [RStarterSession] Test DeactivateRfAfterEmergencyCall", &MT_RStarterSession::T_RStarterSession_DeactivateRfAfterEmergencyCall),
+        ENTRY( "11 [RStarterSession] Test EndSplashScreen", &MT_RStarterSession::T_RStarterSession_EndSplashScreen),
+        ENTRY( "12 [RStarterSession] Test Reset", &MT_RStarterSession::T_RStarterSession_Reset),
+        ENTRY( "13 [RStarterSession] Test Shutdown", &MT_RStarterSession:: T_RStarterSession_Shutdown)        
+        };
+
+    // Verify that case number is valid
+    if( (TUint) aCaseNumber >= sizeof( KCases ) / sizeof( TCaseInfoInternal ) )
+        {
+        // Invalid case, construct empty object
+        TCaseInfo null( (const TText*) L"" );
+        null.iMethod = NULL;
+        return null;
+        }
+
+    // Construct TCaseInfo object and return it
+    TCaseInfo tmp ( KCases[aCaseNumber].iCaseName );
+    tmp.iMethod = KCases[aCaseNumber].iMethod;
+    tmp.iIsOOMTest = KCases[ aCaseNumber ].iIsOOMTest;
+    tmp.iFirstMemoryAllocation = KCases[ aCaseNumber ].iFirstMemoryAllocation;
+    tmp.iLastMemoryAllocation = KCases[ aCaseNumber ].iLastMemoryAllocation;
+
+    return tmp;
+    }
+
+// -----------------------------------------------------------------------------
+// MT_SysLangUtil::GetTestCasesL
+// GetTestCases is used to inquire test cases from the Test Module. Test
+// cases are stored to array of test cases. The Test Framework will be
+// the owner of the data in the RPointerArray after GetTestCases return
+// and it does the memory deallocation.
+// -----------------------------------------------------------------------------
+//
+TInt MT_RStarterSession::GetTestCasesL( const TFileName& /*aConfig*/,
+    RPointerArray<TTestCaseInfo>& aTestCases )
+    {
+	RDebug::Printf("MT_RStarterSession* gettestcase");
+    // Loop through all test cases and create new
+    // TTestCaseInfo items and append items to aTestCase array
+    for( TInt i = 0; Case(i).iMethod != NULL; i++ )
+        {
+
+        // Allocate new TTestCaseInfo from heap for a testcase definition.
+        TTestCaseInfo* newCase = new( ELeave ) TTestCaseInfo;
+
+        // PushL TTestCaseInfo to CleanupStack.
+        CleanupStack::PushL( newCase );
+
+        // Set number for the testcase.
+        // When the testcase is run, this comes as a parameter to RunTestCaseL.
+        newCase->iCaseNumber = i;
+
+        // Set title for the test case. This is shown in UI to user.
+        newCase->iTitle.Copy( Case(i).iCaseName );
+
+        // Append TTestCaseInfo to the testcase array. After appended
+        // successfully the TTestCaseInfo object is owned (and freed)
+        // by the TestServer.
+        User::LeaveIfError(aTestCases.Append ( newCase ) );
+
+        // Pop TTestCaseInfo from the CleanupStack.
+        CleanupStack::Pop( newCase );
+        }
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// MT_SysLangUtil::RunTestCaseL
+// RunTestCaseL is used to run an individual test case specified
+// by aTestCase. Test cases that can be run may be requested from
+// Test Module by GetTestCases method before calling RunTestCase.
+// -----------------------------------------------------------------------------
+//
+TInt MT_RStarterSession::RunTestCaseL( const TInt aCaseNumber,
+    const TFileName& /*aConfig*/,
+    TTestResult& aResult )
+    {
+
+    // Return value
+    TInt execStatus = KErrNone;
+
+    // Get the pointer to test case function
+    TCaseInfo tmp = Case ( aCaseNumber );
+
+    // Check that case number was valid
+    if ( tmp.iMethod != NULL )
+        {
+        // Valid case was found, call it via function pointer
+        iMethod = tmp.iMethod;
+        execStatus  = ( this->*iMethod )( aResult );
+        }
+    else
+        {
+        // Valid case was not found, return error.
+        execStatus = KErrNotFound;
+        }
+
+    // Return case execution status (not the result of the case execution)
+    return execStatus;
     }
 
 //  METHODS
-
-
-void MT_RStarterSession::SetupEmptyL(  )
-    {
-    }
     
 void MT_RStarterSession::SetupL(  )
     {
-    iRStarterSession.Connect();
+    TInt err = iRStarterSession.Connect();
+    RDebug::Print(_L("MT_RStarterSession* SetupL Connected to RStarterSession with % error"),err);
     }
     
 void MT_RStarterSession::Teardown(  )
@@ -83,155 +218,195 @@
     iRStarterSession.Close();
     }
     
-void MT_RStarterSession::TeardownEmpty(  )
-    {
-    }
-    
-void MT_RStarterSession::T_RStarterSession_ConnectL(  )
+TInt MT_RStarterSession::T_RStarterSession_Connect( TTestResult& aResult )
     {
     RStarterSession session;
     TInt err = session.Connect();
     
-    EUNIT_PRINT( _L("Connect() err = %d"), err );
-    EUNIT_ASSERT_DESC( err == KErrNone, "Incorrect return value");
-    
+    if ( err != KErrNone )
+        {
+        _LIT( KDescription, "Incorrect return value in T_RStarterSession_Connect" );
+        aResult.SetResult( err, KDescription );
+        return err;
+        }
     session.Close();
-    }
-    
-void MT_RStarterSession::T_RStarterSession_SetStateL(  )
-    {
-    // Perhaps test also other values...
-    TInt err = iRStarterSession.SetState( RStarterSession::ENormal );
-    EUNIT_PRINT( _L("SetState() err = %d"), err );
-    EUNIT_ASSERT_DESC( err == KErrNone, "Incorrect return value");
-    }
-    
-void MT_RStarterSession::T_RStarterSession_ResetL(  )
-    {
-    // Perhaps test also other values...
-    iRStarterSession.Reset( (RStarterSession::TResetReason)-1 );
-    }
-    
-void MT_RStarterSession::T_RStarterSession_ShutdownL(  )
-    {
-    EUNIT_PRINT( _L("Calling Shutdown()") );
-    iRStarterSession.Shutdown( );
-    }
-    
-void MT_RStarterSession::T_RStarterSession_ResetNetworkL(  )
-    {
-    TInt err = iRStarterSession.ResetNetwork( );
-    EUNIT_PRINT( _L("ResetNetwork() err = %d"), err );
-    
-    EUNIT_ASSERT_DESC( err == KErrNone, "Incorrect return value");
+    return err;
     }
     
-void MT_RStarterSession::T_RStarterSession_IsRTCTimeValidL(  )
-    {
-    TBool valid = iRStarterSession.IsRTCTimeValid();
-    EUNIT_PRINT( _L("IsRTCTimeValid() returned = %d"), valid );
-    }
-    
-void MT_RStarterSession::T_RStarterSession_ActivateRfForEmergencyCallL(  )
+TInt MT_RStarterSession::T_RStarterSession_SetStateToNormal( TTestResult& aResult )
     {
-    TInt err = iRStarterSession.ActivateRfForEmergencyCall( );
-    EUNIT_PRINT( _L("ActivateRfForEmergencyCall() err = %d"), err );
-    // Do not check the return value since in some cases it is normal that
-    // KErrGeneral(-2) is returned
-    //EUNIT_ASSERT_DESC( err == KErrNone, "Incorrect return value" );
+    SetupL();
+    // State transition from Normal to normal
+    TInt err = iRStarterSession.SetState( RStarterSession::ENormal );
+    
+    if ( (err != KErrArgument) && (err != KErrGeneral) && (err != KErrNone)) 
+        {
+        _LIT( KDescription, "Incorrect return value in T_RStarterSession_SetStateToNormal " );
+        aResult.SetResult( err, KDescription );
+        return err;
+        }
+    Teardown();
+    return KErrNone;
     }
+
+TInt MT_RStarterSession::T_RStarterSession_SetStateToAlarm( TTestResult& aResult )
+    {
+    SetupL();
+    // State transition from normal to Alarm 
+    TInt err = iRStarterSession.SetState( RStarterSession::EAlarm );
     
-void MT_RStarterSession::T_RStarterSession_DeactivateRfAfterEmergencyCallL(  )
+    if ( err != KErrNotSupported ) 
+        {
+        _LIT( KDescription, "Incorrect return value T_RStarterSession_SetStateToAlarm" );
+        aResult.SetResult( err, KDescription );
+        return err;
+        }
+    Teardown();
+    return KErrNone;
+    }
+
+TInt MT_RStarterSession::T_RStarterSession_SetStateToCharging( TTestResult& aResult )
     {
-    TInt err = iRStarterSession.DeactivateRfAfterEmergencyCall( );
-    EUNIT_PRINT( _L("DeactivateRfAfterEmergencyCall() err = %d"), err );
-    EUNIT_ASSERT_DESC( err == KErrNone, "Incorrect return value" );
+    SetupL();
+    // State transition from normal to ECharging
+    TInt err = iRStarterSession.SetState( RStarterSession::ECharging );
+    
+    if ( err != KErrNotSupported ) 
+        {
+        _LIT( KDescription, "Incorrect return value in T_RStarterSession_SetStateEToCharging " );	
+        aResult.SetResult( err, KDescription );
+        return err;
+        }
+    Teardown();
+    return KErrNone;
+    }
 
-    // Activate RF again
-    err = iRStarterSession.ActivateRfForEmergencyCall( );
-    EUNIT_PRINT( _L("ActivateRfForEmergencyCall() err = %d"), err );
-    // Do not check the return value since in some cases it is normal that
-    // KErrGeneral(-2) is returned
-    //EUNIT_ASSERT_DESC( err == KErrNone, "Incorrect return value" );
+TInt MT_RStarterSession::T_RStarterSession_SetStateToOffLine( TTestResult& aResult )
+    {
+    SetupL();
+    // State transition from normal to EOffline
+    TInt err = iRStarterSession.SetState( RStarterSession::EOffline );
+    
+    if ( err != KErrNone ) 
+        {
+        _LIT( KDescription, "Incorrect return value in T_RStarterSession_SetStateTOOffLine " );
+        aResult.SetResult( err, KDescription );
+        return err;
+        }
+    Teardown();
+    return err;
     }
-    
-void MT_RStarterSession::T_RStarterSession_EndSplashScreenL(  )
+
+TInt MT_RStarterSession::T_RStarterSession_SetStateToBTSap( TTestResult& aResult )
     {
-    TInt err = iRStarterSession.EndSplashScreen( );
-    EUNIT_PRINT( _L("EndSplashScreen() err = %d"), err );
-    EUNIT_ASSERT_DESC( err == KErrNone, "Incorrect return value" );
+    SetupL();
+    // State transition from ENormal to EBTSap
+    TInt err = iRStarterSession.SetState( RStarterSession::EBTSap );
+    
+    if ( err != KErrNone ) 
+        {
+        _LIT( KDescription, "Incorrect return value in T_RStarterSession_SetStateToBTSap " );	
+        aResult.SetResult( err, KDescription );
+        return err;
+        }
+    Teardown();    
+    return err;
     }
     
-//  TEST TABLE
-EUNIT_BEGIN_TEST_TABLE(
-    MT_RStarterSession,
-    "Add test suite description here.",
-    "UNIT" )
-
-EUNIT_TEST(
-    "Connect - test0",
-    "RStarterSession",
-    "Connect - test0",
-    "FUNCTIONALITY",
-    SetupEmptyL, T_RStarterSession_ConnectL, TeardownEmpty)
+TInt MT_RStarterSession::T_RStarterSession_Reset( TTestResult& aResult )
+    {
+    SetupL();
+    // Other values will be tested in BAT testing (Manual testing)...
+    iRStarterSession.Reset( (RStarterSession::TResetReason)-1 );
+    // Make request and ignore return value
+    _LIT( KDescription, "T_RStarterSession_Reset - Calling Reset()" );
+    aResult.SetResult( KErrNone, KDescription );
+    Teardown();
+    return KErrNone;
+    }
     
-EUNIT_TEST(
-    "SetState - test1",
-    "RStarterSession",
-    "SetState - test1",
-    "FUNCTIONALITY",
-    SetupL, T_RStarterSession_SetStateL, Teardown)
+TInt MT_RStarterSession::T_RStarterSession_Shutdown(TTestResult& aResult  )
+    {
+    SetupL();
+    iRStarterSession.Shutdown( );
+    _LIT( KDescription, "T_RStarterSession_Shutdown - Calling Shutdown()" );
+    aResult.SetResult( KErrNone, KDescription );
+    Teardown();
+    return KErrNone;
+    }
     
-EUNIT_TEST(
-    "Reset - test2",
-    "RStarterSession",
-    "Reset - test2",
-    "FUNCTIONALITY",
-    SetupL, T_RStarterSession_ResetL, Teardown)
-    
-EUNIT_TEST(
-    "ResetNetwork - test4",
-    "RStarterSession",
-    "ResetNetwork - test4",
-    "FUNCTIONALITY",
-    SetupL, T_RStarterSession_ResetNetworkL, Teardown)
+TInt MT_RStarterSession::T_RStarterSession_ResetNetwork(TTestResult& aResult  )
+    {
+    SetupL();
+    TInt err = iRStarterSession.ResetNetwork( );   
+    if ( err != KErrNone )
+        {
+        _LIT( KDescription, "T_RStarterSession_ResetNetwork - Incorrect return value in " );
+        aResult.SetResult( err, KDescription );
+        return err;
+        }
+    Teardown();
+    return err;
+    }
     
-EUNIT_TEST(
-    "IsRTCTimeValid - test5",
-    "RStarterSession",
-    "IsRTCTimeValid - test5",
-    "FUNCTIONALITY",
-    SetupL, T_RStarterSession_IsRTCTimeValidL, Teardown)
+TInt MT_RStarterSession::T_RStarterSession_IsRTCTimeValid(TTestResult& aResult  )
+    {
+    SetupL();
+    TBool valid = iRStarterSession.IsRTCTimeValid();
+    if ( !valid )
+        {
+        _LIT( KDescription, "Incorrect return value in T_RStarterSession_IsRTCTimeValid  " );
+        aResult.SetResult( valid, KDescription );
+        return valid;
+        }
+    Teardown();
+    return KErrNone;
+    }
     
-EUNIT_TEST(
-    "ActivateRfForEmergencyCall - test6",
-    "RStarterSession",
-    "ActivateRfForEmergencyCall - test6",
-    "FUNCTIONALITY",
-    SetupL, T_RStarterSession_ActivateRfForEmergencyCallL, Teardown)
+TInt MT_RStarterSession::T_RStarterSession_ActivateRfForEmergencyCall(TTestResult& aResult  )
+    {
+    SetupL();
+    TInt err = iRStarterSession.ActivateRfForEmergencyCall( );
+
+    if (( err != KErrNone) && (err != KErrGeneral))
+        {
+        _LIT( KDescription, "Incorrect return value in T_RStarterSession_ActivateRfForEmergencyCall" );
+        aResult.SetResult( err, KDescription );
+        return err;
+        }
+    Teardown();
+    return err;
+    }
     
-EUNIT_TEST(
-    "DeactivateRfAfterEmergencyCall - test7",
-    "RStarterSession",
-    "DeactivateRfAfterEmergencyCall - test7",
-    "FUNCTIONALITY",
-    SetupL, T_RStarterSession_DeactivateRfAfterEmergencyCallL, Teardown)
+TInt MT_RStarterSession::T_RStarterSession_DeactivateRfAfterEmergencyCall( TTestResult& aResult )
+    {
+    SetupL();
+    TInt err = iRStarterSession.DeactivateRfAfterEmergencyCall( );
     
-EUNIT_TEST(
-    "EndSplashScreen - test8",
-    "RStarterSession",
-    "EndSplashScreen - test8",
-    "FUNCTIONALITY",
-    SetupL, T_RStarterSession_EndSplashScreenL, Teardown)
+    if (( err != KErrNone) && (err != KErrGeneral))
+        {
+        _LIT( KDescription, "Incorrect return value in T_RStarterSession_DeactivateRfAfterEmergencyCall" );
+        aResult.SetResult( err, KDescription );
+        return err;
+        }
+    // Activate RF again
+    err = iRStarterSession.ActivateRfForEmergencyCall( );
+    Teardown();
+    return err;
+    }
     
-/*    
-EUNIT_TEST(
-    "Shutdown - test3",
-    "RStarterSession",
-    "Shutdown - test3",
-    "FUNCTIONALITY",
-    SetupL, T_RStarterSession_ShutdownL, Teardown)*/
-    
-EUNIT_END_TEST_TABLE
+TInt MT_RStarterSession::T_RStarterSession_EndSplashScreen( TTestResult& aResult )
+    {
+    SetupL();
+    TInt err = iRStarterSession.EndSplashScreen( );
+    if ( err != KErrNone )
+        {
+        _LIT( KDescription, "Incorrect return value in T_RStarterSession_EndSplashScreen" );
+        aResult.SetResult( err, KDescription );
+        return err;
+        }
+    Teardown();
+    return err;
+    }
 
-//  END OF FILE
+//END OF FILE
--- a/sysstatemgmt/tsrc/public/basic/mt_rstartersession/MT_RStarterSession.h	Wed Jun 23 22:58:50 2010 +0100
+++ b/sysstatemgmt/tsrc/public/basic/mt_rstartersession/MT_RStarterSession.h	Thu Jul 22 16:45:41 2010 +0100
@@ -11,39 +11,50 @@
 *
 * Contributors:
 *
-* Description:
+* Description: Unit test code for RStarterSession class
 *
 */
-
-
 #ifndef __MT_RSTARTERSESSION_H__
 #define __MT_RSTARTERSESSION_H__
 
+#if defined (_MSC_VER) && (_MSC_VER >= 1000)
+#pragma once
+#endif
+// Function pointer related internal definitions
+#ifndef __GCC32__
+#define GETPTR
+#else
+#define GETPTR &
+#endif  
+#define ENTRY(str,func) {_S(str), GETPTR func,0,0,0}
+#define FUNCENTRY(func) {_S(#func), GETPTR func,0,0,0}
+
 //  EXTERNAL INCLUDES
-#include <CEUnitTestSuiteClass.h>
-#include <EUnitDecorators.h>
-
+#include <stiftestmodule.h>
 
 //  INTERNAL INCLUDES
 #include <starterclient.h>
 
-//  FORWARD DECLARATIONS
-
-
+// FORWARD DECLARATIONS
+class TCaseInfo;
+class MT_RStarterSession;
+// DESCRIPTION
+// This a Test Module interface template
+// that does not really do anything.
+typedef TInt ( MT_RStarterSession::*TestFunction )( TTestResult& );
 //  CLASS DEFINITION
 /**
  *
  */
 NONSHARABLE_CLASS( MT_RStarterSession )
-	: public CEUnitTestSuiteClass
+	: public CTestModuleBase
     {
     public:     // Constructors and destructors
 
         /**
          * Two phase construction
          */
-        static MT_RStarterSession* NewL();
-        static MT_RStarterSession* NewLC();
+        static MT_RStarterSession* NewL(CTestModuleIf& aTestModuleIf);
         /**
          * Destructor
          */
@@ -51,31 +62,85 @@
 
     private:    // Constructors and destructors
 
-        MT_RStarterSession();
-        void ConstructL();
+        MT_RStarterSession( CTestModuleIf& aTestModuleIf );
+        
+        /**
+        * Function returning test case name and pointer to test case function
+        */
+        const TCaseInfo Case( const TInt aCaseNumber ) const;
+
+   	public: // Functions from base classes
 
+        // @see CTestModuleBase
+        virtual TInt GetTestCasesL( const TFileName& aTestCaseFile,
+        RPointerArray<TTestCaseInfo>& aTestCases );
+
+        // @see CTestModuleBase
+        virtual TInt RunTestCaseL( const TInt aCaseNumber,
+        const TFileName& aTestCaseFile,
+		TTestResult& aResult );
+            
     private:    // New methods
 
         void SetupL();
-        void SetupEmptyL();
         void Teardown();
-        void TeardownEmpty();
 
-        void T_RStarterSession_ConnectL();
-        void T_RStarterSession_SetStateL();
-        void T_RStarterSession_ResetL();
-        void T_RStarterSession_ShutdownL();
-        void T_RStarterSession_ResetNetworkL();
-        void T_RStarterSession_IsRTCTimeValidL();
-        void T_RStarterSession_ActivateRfForEmergencyCallL();
-        void T_RStarterSession_DeactivateRfAfterEmergencyCallL();
-        void T_RStarterSession_EndSplashScreenL();
+        TInt T_RStarterSession_Connect(TTestResult& aResult);
+        TInt T_RStarterSession_SetState(TTestResult& aResult);
+        TInt T_RStarterSession_SetStateToNormal(TTestResult& aResult);
+        TInt T_RStarterSession_SetStateToAlarm(TTestResult& aResult);
+        TInt T_RStarterSession_SetStateToCharging(TTestResult& aResult);
+        TInt T_RStarterSession_SetStateToOffLine(TTestResult& aResult);
+        TInt T_RStarterSession_SetStateToBTSap(TTestResult& aResult);
+        TInt T_RStarterSession_Reset(TTestResult& aResult);
+        TInt T_RStarterSession_Shutdown(TTestResult& aResult);
+        TInt T_RStarterSession_ResetNetwork(TTestResult& aResult);
+        TInt T_RStarterSession_IsRTCTimeValid(TTestResult& aResult);
+        TInt T_RStarterSession_ActivateRfForEmergencyCall(TTestResult& aResult);
+        TInt T_RStarterSession_DeactivateRfAfterEmergencyCall(TTestResult& aResult);
+        TInt T_RStarterSession_EndSplashScreen(TTestResult& aResult);
 
     private:    // Data
-		
+		TestFunction    iMethod;
         RStarterSession iRStarterSession;
-        EUNIT_DECLARE_TEST_TABLE; 
+
+    };
+
+// Function pointer related internal definitions
+
+// Hack around known GCC bug.
+#ifndef __GCC32__
+    #define GETPTR
+#else
+    #define GETPTR &
+#endif
+
 
+// An internal structure containing a test case name and
+// the pointer to function doing the test
+class TCaseInfoInternal
+    {
+    public:
+        const TText* iCaseName;
+        TestFunction iMethod;
+        TBool           iIsOOMTest;
+        TInt            iFirstMemoryAllocation;
+        TInt            iLastMemoryAllocation;
+    };
+
+// An internal structure containing a test case name and
+// the pointer to function doing the test
+class TCaseInfo
+    {
+    public:
+        TPtrC iCaseName;
+        TestFunction iMethod;
+        TBool           iIsOOMTest;
+        TInt            iFirstMemoryAllocation;
+        TInt            iLastMemoryAllocation;
+    TCaseInfo( const TText* a ) : iCaseName( ( TText* ) a )
+        {
+        };
     };
 
 #endif      //  __MT_RSTARTERSESSION_H__
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/sysstatemgmt/tsrc/public/basic/rom/mt_rstartersession.iby	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +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".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Unit test code for RStarterSession class
+* Image description file for rstartersession test
+*
+*/
+
+#ifndef MT_RSTARTERSESSION_IBY
+#define MT_RSTARTERSESSION_IBY
+
+file=ABI_DIR\BUILD_DIR\MT_RStarterSession.dll SHARED_LIB_DIR\MT_RStarterSession.dll
+
+#endif // 	MT_RSTARTERSESSION_IBY
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemhealthmanagement/layers.sysdef.xml	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,111 @@
+<?xml version="1.0"?>
+<!DOCTYPE SystemDefinition [
+ <!ELEMENT SystemDefinition (systemModel?, build?)>
+ <!ATTLIST SystemDefinition
+  name CDATA #REQUIRED
+  schema CDATA #REQUIRED>
+ <!ELEMENT systemModel (layer+)>
+ <!ELEMENT layer (logicalset* | module*)*>
+ <!ATTLIST layer
+  name CDATA #REQUIRED
+  levels CDATA #IMPLIED
+  span CDATA #IMPLIED>
+ <!ELEMENT logicalset (logicalsubset* | module* | unit* | package* | prebuilt*)*>
+ <!ATTLIST logicalset 
+  name CDATA #REQUIRED
+  levels CDATA #IMPLIED  
+  span CDATA #IMPLIED
+  level CDATA #IMPLIED>
+ <!ELEMENT logicalsubset (module* | unit* | package* | prebuilt*)*>
+ <!ATTLIST logicalsubset name CDATA #REQUIRED>
+ <!ELEMENT module (component* | unit* | package* | prebuilt*)*>
+ <!ATTLIST module
+  name CDATA #REQUIRED
+  level CDATA #IMPLIED>
+ <!ELEMENT component (unit* | package* | prebuilt*)*>
+ <!ATTLIST component name CDATA #REQUIRED>
+ <!ELEMENT unit EMPTY>
+ <!ATTLIST unit
+  unitID ID #REQUIRED
+  name CDATA #REQUIRED
+  mrp CDATA #REQUIRED
+  filter CDATA #IMPLIED
+  bldFile CDATA #REQUIRED
+  priority CDATA #IMPLIED
+  contract CDATA #IMPLIED>
+ <!ELEMENT package EMPTY>
+ <!ATTLIST package
+  name CDATA #REQUIRED
+  mrp CDATA #REQUIRED
+  filter CDATA #IMPLIED
+  contract CDATA #IMPLIED>
+ <!ELEMENT prebuilt EMPTY>
+ <!ATTLIST prebuilt
+  name CDATA #REQUIRED
+  version CDATA #REQUIRED
+  late (Y|N) #IMPLIED
+  filter CDATA #IMPLIED
+  contract CDATA #IMPLIED>
+ <!ELEMENT build (option* | target+ | targetList+ | unitList+ | configuration+)*>
+ <!ELEMENT unitList (unitRef+)>
+ <!ATTLIST unitList
+  name ID #REQUIRED
+  description CDATA #REQUIRED>
+ <!ELEMENT unitRef EMPTY>
+ <!ATTLIST unitRef unit IDREF #REQUIRED>
+ <!ELEMENT targetList EMPTY>
+ <!ATTLIST targetList
+  name ID #REQUIRED
+  description CDATA #REQUIRED
+  target IDREFS #REQUIRED>
+ <!ELEMENT target EMPTY>
+ <!ATTLIST target
+  name ID #REQUIRED
+  abldTarget CDATA #REQUIRED
+  description CDATA #REQUIRED>
+ <!ELEMENT option EMPTY>
+ <!ATTLIST option
+  name ID #REQUIRED
+  abldOption CDATA #REQUIRED
+  description CDATA #REQUIRED
+  enable (Y | N | y | n) #REQUIRED>
+ <!ELEMENT configuration (unitListRef+ | layerRef+ | task+)*>
+ <!ATTLIST configuration
+  name ID #REQUIRED
+  description CDATA #REQUIRED
+  filter CDATA #REQUIRED>
+ <!ELEMENT task ( unitListRef* , (buildLayer | specialInstructions))>
+ <!ELEMENT unitListRef EMPTY>
+ <!ATTLIST unitListRef unitList IDREF #REQUIRED>
+ <!ELEMENT layerRef EMPTY>
+ <!ATTLIST layerRef layerName CDATA #REQUIRED>
+ <!ELEMENT buildLayer EMPTY>
+ <!ATTLIST buildLayer
+  command CDATA #REQUIRED
+  targetList IDREFS #IMPLIED
+  unitParallel (Y | N | y | n) #REQUIRED
+  targetParallel (Y | N | y | n) #IMPLIED>
+ <!ELEMENT specialInstructions EMPTY>
+ <!ATTLIST specialInstructions
+  name CDATA #REQUIRED
+  cwd CDATA #REQUIRED
+  command CDATA #REQUIRED>
+  <!ENTITY layer_real_source_path "sf/os/devicesrv/systemhealthmanagement" >
+]>
+
+<SystemDefinition name="Dvscode" schema="1.4.0">
+  <systemModel>
+    <layer name="os_layer">
+		<module name="DeviceSrv_DFS">
+			<unit name="systemhealthmgr" unitID="sos.systemhealthmgr" bldFile="&layer_real_source_path;/systemhealthmgr/group" mrp="&layer_real_source_path;/systemhealthmgr/group/app-framework_shma.mrp"/>
+		</module>
+    </layer>
+	
+	<layer name="api_test_layer">
+		<module name="DeviceSrv_DFS">
+			<unit name="systemhealthmgr" unitID="sos.systemhealthmgr_test" bldFile="&layer_real_source_path;/systemhealthmgr/group" mrp="&layer_real_source_path;/systemhealthmgr/group/app-framework_shma.mrp"/>
+		</module>
+	</layer>
+
+  </systemModel>
+</SystemDefinition>
\ No newline at end of file
--- a/systemhealthmanagement/systemhealthmgr/group/app-framework_shma.mrp	Wed Jun 23 22:58:50 2010 +0100
+++ b/systemhealthmanagement/systemhealthmgr/group/app-framework_shma.mrp	Thu Jul 22 16:45:41 2010 +0100
@@ -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	app-framework_shma
 source	\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr
 binary	\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\group	all
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemhealthmanagement/systemhealthmgr/test/trestartsys/group/shmatest_trestartsys.pkg	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "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: 
+;
+
+;Languages
+&EN
+
+
+;Localised Vendor name
+%{"Shmatest_TRestartSys EN"}
+
+; Vendor name
+: "Shmatest_TRestartSys"
+
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\trestartsys\scripts\shmatest_restartsyswithmode.script"-"c:\devicesrv\shmatest\shmatest_restartsyswithmode.script"
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\trestartsys\scripts\shmatest_restartsysabort.script"-"c:\devicesrv\shmatest\shmatest_restartsysabort.script"
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemhealthmanagement/systemhealthmgr/test/tstartsafe/group/shmatest_tstartsafe.pkg	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,43 @@
+;
+; 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".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description: 
+;
+
+;Languages
+&EN
+
+
+;Localised Vendor name
+%{"Shmatest_TStartSafe EN"}
+
+; Vendor name
+: "Shmatest_TStartSafe"
+
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tstartsafe\scripts\shmatest_startsafe_appasynchstart.script"-"c:\devicesrv\shmatest\shmatest_startsafe_appasynchstart.script"
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tstartsafe\scripts\shmatest_startsafe_appretry.script"-"c:\devicesrv\shmatest\shmatest_startsafe_appretry.script"
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tstartsafe\scripts\shmatest_startsafe_appstart.script"-"c:\devicesrv\shmatest\shmatest_startsafe_appstart.script"
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tstartsafe\scripts\shmatest_startsafe_appstartapparcinit.script"-"c:\devicesrv\shmatest\shmatest_startsafe_appstartapparcinit.script"
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tstartsafe\scripts\shmatest_startsafe_apptimeout.script"-"c:\devicesrv\shmatest\shmatest_startsafe_apptimeout.script"
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tstartsafe\scripts\shmatest_startsafe_apptimesucc.script"-"c:\devicesrv\shmatest\shmatest_startsafe_apptimesucc.script"
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tstartsafe\scripts\shmatest_startsafe_procasynchstart.script"-"c:\devicesrv\shmatest\shmatest_startsafe_procasynchstart.script"
+;"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tstartsafe\scripts\shmatest_startsafe_procfailsysrestart.script"-"c:\devicesrv\shmatest\shmatest_startsafe_procfailsysrestart.script"
+;"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tstartsafe\scripts\shmatest_startsafe_procmonsysrestart.script"-"c:\devicesrv\shmatest\shmatest_startsafe_procmonsysrestart.script"
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tstartsafe\scripts\shmatest_startsafe_procretry.script"-"c:\devicesrv\shmatest\shmatest_startsafe_procretry.script"
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tstartsafe\scripts\shmatest_startsafe_procstart.script"-"c:\devicesrv\shmatest\shmatest_startsafe_procstart.script"
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tstartsafe\scripts\shmatest_startsafe_procstartmon.script"-"c:\devicesrv\shmatest\shmatest_startsafe_procstartmon.script"
+;"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tstartsafe\scripts\shmatest_startsafe_proctimeout.script"-"c:\devicesrv\shmatest\shmatest_startsafe_proctimeout.script"
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tstartsafe\scripts\shmatest_startsafe_proctimesucc.script"-"c:\devicesrv\shmatest\shmatest_startsafe_proctimesucc.script"
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tstartsafe\scripts\shmatest_startsafe_errors.script"-"c:\devicesrv\shmatest\shmatest_startsafe_errors.script"
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tstartsafe\scripts\shmatest_startsafe_appstartrverror.script"-"c:\devicesrv\shmatest\shmatest_startsafe_appstartrverror.script"
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tstartsafe\scripts\shmatest_startsafe_procstartrverror.script"-"c:\devicesrv\shmatest\shmatest_startsafe_procstartrverror.script"
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemhealthmanagement/systemhealthmgr/test/tstartupproperties/group/shmatest_tstartupproperties.pkg	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "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: 
+;
+
+;Languages
+&EN
+
+
+;Localised Vendor name
+%{"Shmatest_TStartupProperties EN"}
+
+; Vendor name
+: "Shmatest_TStartupProperties"
+
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tstartupproperties\scripts\shmatest_startupproperties_defval.script"-"c:\devicesrv\shmatest\shmatest_startupproperties_defval.script"
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tstartupproperties\scripts\shmatest_startupproperties_internalexternal.script"-"c:\devicesrv\shmatest\shmatest_startupproperties_internalexternal.script"
+
--- a/systemhealthmanagement/systemhealthmgr/test/tsysmon/data/tsysmon.ini	Wed Jun 23 22:58:50 2010 +0100
+++ b/systemhealthmanagement/systemhealthmgr/test/tsysmon/data/tsysmon.ini	Thu Jul 22 16:45:41 2010 +0100
@@ -58,7 +58,7 @@
 Filename=sysmontest_register_protserv+powermgmt.exe
 Policy=ERestartOSWithMode
 Mode=0
-ExpectedResult=0
+ExpectedResult=-5
 TestDereg=true
 DeregExpectedResult=0
 
@@ -82,7 +82,7 @@
 Filename=sysmontest_selfregister_protserv+powermgmt.exe
 Policy=ERestartOSWithMode
 Mode=0
-ExpectedResult=0
+ExpectedResult=-5
 TestDereg=true
 DeregExpectedResult=0
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/systemhealthmanagement/systemhealthmgr/test/tsysmon/group/shmatest_tsysmon.pkg	Thu Jul 22 16:45:41 2010 +0100
@@ -0,0 +1,63 @@
+;
+; 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".
+;
+; Initial Contributors:
+; Nokia Corporation - initial contribution.
+;
+; Contributors:
+;
+; Description: 
+;
+
+;Languages
+&EN
+
+
+;Localised Vendor name
+%{"Shmatest_TSysMon EN"}
+
+; Vendor name
+: "Shmatest_TSysMon"
+
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tsysmon\scripts\shmatest_sysmon_procmoninit.script"-"c:\devicesrv\shmatest\shmatest_sysmon_procmoninit.script"
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tsysmon\scripts\shmatest_sysmon_multiprocmon.script"-"c:\devicesrv\shmatest\shmatest_sysmon_multiprocmon.script"
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tsysmon\scripts\shmatest_sysmon_procrestart.script"-"c:\devicesrv\shmatest\shmatest_sysmon_procrestart.script"
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tsysmon\scripts\shmatest_sysmon_restartthrottle.script"-"c:\devicesrv\shmatest\shmatest_sysmon_restartthrottle.script"
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tsysmon\scripts\shmatest_sysmon_procmonignore.script"-"c:\devicesrv\shmatest\shmatest_sysmon_procmonignore.script"
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tsysmon\scripts\shmatest_sysmon_selfmonignore.script"-"c:\devicesrv\shmatest\shmatest_sysmon_selfmonignore.script"
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tsysmon\scripts\shmatest_sysmon_noprocmon.script"-"c:\devicesrv\shmatest\shmatest_sysmon_noprocmon.script"
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tsysmon\scripts\shmatest_sysmon_selfmoncancel.script"-"c:\devicesrv\shmatest\shmatest_sysmon_selfmoncancel.script"
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tsysmon\scripts\shmatest_sysmon_selfmoncancel2.script"-"c:\devicesrv\shmatest\shmatest_sysmon_selfmoncancel2.script"
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tsysmon\scripts\shmatest_sysmon_nomoncancel.script"-"c:\devicesrv\shmatest\shmatest_sysmon_nomoncancel.script"
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tsysmon\scripts\shmatest_sysmon_loadsysmon.script"-"c:\devicesrv\shmatest\shmatest_sysmon_loadsysmon.script"
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tsysmon\scripts\shmatest_sysmon_oom.script"-"c:\devicesrv\shmatest\shmatest_sysmon_oom.script"
+
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tsysmon\scripts\shmatest_sysmon_conndiscon.script"-"c:\devicesrv\shmatest\shmatest_sysmon_conndiscon.script"
+
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tsysmon\scripts\shmatest_sysmon_reg1proctwice.script"-"c:\devicesrv\shmatest\shmatest_sysmon_reg1proctwice.script"
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tsysmon\scripts\shmatest_sysmon_reg2procs.script"-"c:\devicesrv\shmatest\shmatest_sysmon_reg2procs.script"
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tsysmon\scripts\shmatest_sysmon_regeiofcapsnops.script"-"c:\devicesrv\shmatest\shmatest_sysmon_regeiofcapsnops.script"
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tsysmon\scripts\shmatest_sysmon_regeiofcapsok.script"-"c:\devicesrv\shmatest\shmatest_sysmon_regeiofcapsok.script"
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tsysmon\scripts\shmatest_sysmon_regeroscapsnops.script"-"c:\devicesrv\shmatest\shmatest_sysmon_regeroscapsnops.script"
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tsysmon\scripts\shmatest_sysmon_regeroscapsok.script"-"c:\devicesrv\shmatest\shmatest_sysmon_regeroscapsok.script"
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tsysmon\scripts\shmatest_sysmon_regeroswmcapsnopm.script"-"c:\devicesrv\shmatest\shmatest_sysmon_regeroswmcapsnopm.script"
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tsysmon\scripts\shmatest_sysmon_regeroswmcapsnops.script"-"c:\devicesrv\shmatest\shmatest_sysmon_regeroswmcapsnops.script"
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tsysmon\scripts\shmatest_sysmon_regeroswmcapsok.script"-"c:\devicesrv\shmatest\shmatest_sysmon_regeroswmcapsok.script"
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tsysmon\scripts\shmatest_sysmon_regselfeiofcapsok.script"-"c:\devicesrv\shmatest\shmatest_sysmon_regselfeiofcapsok.script"
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tsysmon\scripts\shmatest_sysmon_regselferoscapsnops.script"-"c:\devicesrv\shmatest\shmatest_sysmon_regselferoscapsnops.script"
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tsysmon\scripts\shmatest_sysmon_regselferoscapsok.script"-"c:\devicesrv\shmatest\shmatest_sysmon_regselferoscapsok.script"
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tsysmon\scripts\shmatest_sysmon_regselferoswmcapsnopm.script"-"c:\devicesrv\shmatest\shmatest_sysmon_regselferoswmcapsnopm.script"
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tsysmon\scripts\shmatest_sysmon_regselferoswmcapsnops.script"-"c:\devicesrv\shmatest\shmatest_sysmon_regselferoswmcapsnops.script"
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tsysmon\scripts\shmatest_sysmon_regselferoswmcapsok.script"-"c:\devicesrv\shmatest\shmatest_sysmon_regselferoswmcapsok.script"
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tsysmon\scripts\shmatest_sysmon_regcritical.script"-"c:\devicesrv\shmatest\shmatest_sysmon_regcritical.script"
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tsysmon\scripts\shmatest_sysmon_regecnorcapsok.script"-"c:\devicesrv\shmatest\shmatest_sysmon_regecnorcapsok.script"
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tsysmon\scripts\shmatest_sysmon_regecnorcapsnops.script"-"c:\devicesrv\shmatest\shmatest_sysmon_regecnorcapsnops.script"
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tsysmon\scripts\shmatest_sysmon_regselfecnorcapsok.script"-"c:\devicesrv\shmatest\shmatest_sysmon_regselfecnorcapsok.script"
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tsysmon\scripts\shmatest_sysmon_regselfecnorcapsnops.script"-"c:\devicesrv\shmatest\shmatest_sysmon_regselfecnorcapsnops.script"
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tsysmon\scripts\shmatest_sysmon_cancelallmonitors.script"-"c:\devicesrv\shmatest\shmatest_sysmon_cancelallmonitors.script"
+"\sf\os\devicesrv\systemhealthmanagement\systemhealthmgr\test\tsysmon\scripts\shmatest_sysmon_cancelallmonwithssmsid.script"-"c:\devicesrv\shmatest\shmatest_sysmon_cancelallmonwithssmsid.script"
--- a/systemhealthmanagement/systemhealthmgr/test/tsysmon/src/tsysmon_stepcancelallmonitors.cpp	Wed Jun 23 22:58:50 2010 +0100
+++ b/systemhealthmanagement/systemhealthmgr/test/tsysmon/src/tsysmon_stepcancelallmonitors.cpp	Thu Jul 22 16:45:41 2010 +0100
@@ -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 "Eclipse Public License v1.0"
@@ -176,6 +176,7 @@
         iAppStartSignalSem.Wait();
 
         INFO_PRINTF2(_L("Process killed with %d"), err);
+        User::After(2000000);
         TEST(EFalse == Exists(KTestAppGood));
         }