diff -r 000000000000 -r 4e1aa6a622a0 sysstatemgmt/systemstatemgr/inc/ssmcmd.rh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sysstatemgmt/systemstatemgr/inc/ssmcmd.rh Tue Feb 02 00:53:00 2010 +0200 @@ -0,0 +1,450 @@ +// 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: +// + +#ifndef __SSMCMD_RH__ +#define __SSMCMD_RH__ + +#include +#include + +/** +The first resource in all command list resource files must be +a SSM_COMMAND_LIST_ROOT resource. +Identifies the resource format version a command list resource +file was built with. +Also identifies a resource containing mappings between command list ids +requested by a policy and the resource containing the associated command list. + +@publishedPartner +@released +*/ +STRUCT SSM_COMMAND_LIST_ROOT + { + WORD version = ESsmInitialVersion; // Must not be changed + WORD reserved1 = 0; // Must not be changed + LLINK command_list_mapping; // SSM_COMMAND_LIST_MAPPING + } + + +STRUCT SSM_COMMAND_LIST_MAPPING + { + STRUCT mappings[]; // SSM_COMMANDLISTID_TO_RESOURCEID + } + + +STRUCT SSM_COMMANDLISTID_TO_RESOURCEID + { + LONG command_list_id = -1; + LLINK resource_id = -1; + } + + +/** +List of commands. + +@publishedPartner +@released +*/ +STRUCT SSM_COMMAND_LIST + { + LONG delay_between_commands = 0; // Delay between executing commands in milliseconds + LLINK commands[]; + } + + +/** +Conditional reason information for including commands within command lists. + +@publishedPartner +@released +*/ +STRUCT SSM_SYMBIAN_CONDITIONAL_INFORMATION + { + LONG software_reason = EUnconditionalSoftwareReason; + LONG hardware_reason = EUnconditionalHardwareReason; + } + +/** +Struct for publishing a system state change. + +@publishedPartner +@released +*/ +STRUCT SSM_PUBLISH_SYSTEM_STATE + { + LLINK conditional_information = 0; // Must be the first entry in this struct - Zero means command is unconditional + WORD type = ESsmCmdPublishSystemState; // Must be the second entry in this struct and must not be changed +#ifndef SYMBIAN_SSM_FLEXIBLE_MERGE + WORD version = ECmdPublishSystemStateInitialVersion; // Must be the third entry in this struct +#else + WORD version = ECmdPublishSystemStateVersionWithPriority; // This version supports priority of the command +#endif + WORD severity = ECmdIgnoreFailure; // Can have a higher severity defined in TCmdErrorSeverity + BYTE execution_behaviour = ESsmWaitForSignal; // Can also be ESsmDeferredWaitForSignal or ESsmFireAndForget + BYTE direction = 2; // The direction to traverse the domain state list (2=ETraverseDefault) + WORD retries = 0; // Number of times to retry on failure + BYTE failure_policy = 1; // Whether to stop on failure or continue (0=ETransitionFailureStop, 1=ETransitionFailureContinue) +#ifdef SYMBIAN_SSM_FLEXIBLE_MERGE + WORD priority = KDefaultCommandPriority; // The order of the command in the list - range can be from 0x00 to 0xffffu +#endif + } + + +/** +Struct for publishing a system-wide property change. + +@publishedPartner +@released +*/ +STRUCT SSM_PUBLISH_SYSTEM_WIDE_PROPERTY + { + LLINK conditional_information = 0; // Must be the first entry in this struct - Zero means command is unconditional + WORD type = ESsmCmdPublishSwp; // Must be the second entry in this struct and must not be changed +#ifndef SYMBIAN_SSM_FLEXIBLE_MERGE + WORD version = ECmdPublishSwpInitialVersion; // Must be the third entry in this struct +#else + WORD version = ECmdPublishSwpVersionWithPriority; // This version supports priority of the command +#endif + WORD severity = ECmdIgnoreFailure; // Can have a higher severity defined in TCmdErrorSeverity + BYTE execution_behaviour = ESsmWaitForSignal; // Can also be ESsmDeferredWaitForSignal or ESsmFireAndForget +#ifdef SYMBIAN_SSM_FLEXIBLE_MERGE + WORD priority = KDefaultCommandPriority; // The order of the command in the list - range can be from 0x00 to 0xffffu +#endif + } + + +/** +Struct for starting a custom command. + +@publishedPartner +@released +*/ +STRUCT SSM_START_CUSTOM_COMMAND + { + LLINK conditional_information = 0; // Must be the first entry in this struct - Zero means command is unconditional + WORD type = ESsmCmdCustomCommand; // Must be the second entry in this struct and must not be changed +#ifndef SYMBIAN_SSM_FLEXIBLE_MERGE + WORD version = ECmdCustomCommandInitialVersion; // Must be the third entry in this struct +#else + WORD version = ECmdCustomCommandVersionWithPriority; // This version supports priority of the command +#endif + WORD severity = ECmdIgnoreFailure; // Can have a higher severity defined in TCmdErrorSeverity + BYTE execution_behaviour = ESsmWaitForSignal; // Can also be ESsmDeferredWaitForSignal or ESsmFireAndForget + LTEXT dllname = ""; // VALUE REQUIRED - DLL name + LONG ordinal = 1; // Ordinal number for the function + BYTE unload_on_finish = EUnloadOnCommandCompletion; // Whether to unload dll on command completion or not at all + WORD retries = 0; // Re-attempts to make if DLL fails to load or the DLL function returns an error code + LLINK dll_data = 0; // Optional data to be passed as a parameter to the custom command limited to KMaxDLLParams +#ifdef SYMBIAN_SSM_FLEXIBLE_MERGE + WORD priority = KDefaultCommandPriority; // The order of the command in the list - range can be from 0x00 to 0xffffu +#endif + } + +/** +Struct for starting AMAStarter with a particular DSC. + +@publishedPartner +@released +*/ +STRUCT SSM_START_AMA_STARTER + { + LLINK conditional_information = 0; // Must be the first entry in this struct - Zero means command is unconditional + WORD type = ESsmCmdAMAStarter; // Must be the second entry in this struct and must not be changed +#ifndef SYMBIAN_SSM_FLEXIBLE_MERGE + WORD version = ECmdAmaStarterInitialVersion; // Must be the third entry in this struct +#else + WORD version = ECmdAmaStarterVersionWithPriority; // This version supports priority of the command +#endif + WORD severity = ECmdIgnoreFailure; // Can have a higher severity defined in TCmdErrorSeverity + BYTE execution_behaviour = ESsmWaitForSignal; // Can also be ESsmDeferredWaitForSignal or ESsmFireAndForget + LONG dsc_id = KDefaultSymbianDsc; // DSC id for AMAStarter +#ifdef SYMBIAN_SSM_FLEXIBLE_MERGE + WORD priority = KDefaultCommandPriority; // The order of the command in the list - range can be from 0x00 to 0xffffu +#endif + } + +/** +Struct for checking that all preceding commands with execution_behaviour=ESsmDeferredWaitForSignal have finished. + +@publishedPartner +@released +*/ +STRUCT SSM_MULTIPLE_WAIT + { + LLINK conditional_information = 0; // Must be the first entry in this struct - Zero means command is unconditional + WORD type = ESsmCmdMultipleWait; // Must be the second entry in this struct and must not be changed +#ifndef SYMBIAN_SSM_FLEXIBLE_MERGE + WORD version = ECmdMultipleWaitInitialVersion; // Must be the third entry in this struct +#else + WORD version = ECmdMultipleWaitVersionWithPriority; // This version supports priority of the command +#endif //SYMBIAN_SSM_FLEXIBLE_MERGE + LONG timeout = 0; // In milliseconds. +#ifdef SYMBIAN_SSM_FLEXIBLE_MERGE +/** +There must be at least one multiple wait command with priority lower than the deferred wait for command in the list +*/ + WORD priority = KDefaultCommandPriority; // The order of the command in the list - range can be from 0x00 to 0xffffu +#endif //SYMBIAN_SSM_FLEXIBLE_MERGE + } + +/** +Struct for setting the publish and subscribe key + +@publishedPartner +@released +*/ +STRUCT SSM_SET_PUBLISH_AND_SUBSCRIBE + { + LLINK conditional_information = 0; // Must be the first entry in this struct - Zero means command is unconditional + WORD type = ESsmCmdSetPAndSKey; // Must be the second entry in this struct and must not be changed +#ifndef SYMBIAN_SSM_FLEXIBLE_MERGE + WORD version = ECmdSetPAndSKeyInitialVersion; // Must be the third entry in this struct +#else + WORD version = ECmdSetPAndSKeyVersionWithPriority; // This version supports priority of the command +#endif + WORD severity = ECmdIgnoreFailure; // Can have a higher severity defined in TCmdErrorSeverity + LONG category = 0; // Category of the P&S key + LONG key = 0; // P & S key + WORD value = 0; // Value of P & S key +#ifdef SYMBIAN_SSM_FLEXIBLE_MERGE + WORD priority = KDefaultCommandPriority; // The order of the command in the list - range can be from 0x00 to 0xffffu +#endif + } + +/** +Struct for starting applications using Apparc. + +@publishedPartner +@released +*/ +STRUCT SSM_START_APP_INFO + { + LLINK conditional_information = 0; // Must be the first entry in this struct - Zero means command is unconditional + WORD type = ESsmCmdStartApp; // Must be the second entry in this struct and must not be changed +#ifndef SYMBIAN_SSM_FLEXIBLE_MERGE + WORD version = ECmdStartAppInitialVersion; // Must be the third entry in this struct +#else + WORD version = ECmdStartAppVersionWithPriority; // This version supports priority of the command +#endif + WORD severity = ECmdIgnoreFailure; // Can have a higher severity defined in TCmdErrorSeverity + LTEXT name = ""; // VALUE REQUIRED - full path to the application + LTEXT args = ""; // Passed to the "Tail End" at the command line see CApaCommandLine. Maximum argument length allowed is 256 chars. + BYTE execution_behaviour = ESsmFireAndForget; // Can also be ESsmWaitForSignal or ESsmDeferredWaitForSignal + LONG timeout = 0; // Time in milliseconds for every retry on failure + WORD retries = 0; // Number of times to retry on failure + BYTE viewless = 0; // Set to 1 if app is viewless + BYTE background = 0; // Set to 1 if app should be launched in the background + LLINK monitor_info = 0; // zero means no monitoring is required, SSM_MONITOR_INFO should be used if monitoring is required +#ifdef SYMBIAN_SSM_FLEXIBLE_MERGE + WORD priority = KDefaultCommandPriority; // The order of the command in the list - range can be from 0x00 to 0xffffu +#endif + } + +/** +Struct for starting processes. + +@publishedPartner +@released +*/ +STRUCT SSM_START_PROCESS_INFO + { + LLINK conditional_information = 0; // Must be the first entry in this struct - Zero means command is unconditional + WORD type = ESsmCmdStartProcess; // Must be the second entry in this struct and must not be changed +#ifndef SYMBIAN_SSM_FLEXIBLE_MERGE + WORD version = ECmdStartProcessInitialVersion; // Must be the third entry in this struct +#else + WORD version = ECmdStartProcessVersionWithPriority; // This version supports priority of the command +#endif + WORD severity = ECmdIgnoreFailure; // Can have a higher severity defined in TCmdErrorSeverity + LTEXT name = ""; // VALUE REQUIRED - full path to the process + LTEXT args = ""; // Passed to the "Tail End" at the command line see CApaCommandLine. Maximum argument length allowed is 256 chars. + BYTE execution_behaviour = ESsmFireAndForget; // Can also be ESsmWaitForSignal or ESsmDeferredWaitForSignal + LONG timeout = 0; // Time in milliseconds for every retry on failure + WORD retries = 0; // Number of times to retry on failure + LLINK monitor_info = 0; // zero means no monitoring is required, SSM_MONITOR_INFO should be used if monitoring is required +#ifdef SYMBIAN_SSM_FLEXIBLE_MERGE + WORD priority = KDefaultCommandPriority; // The order of the command in the list - range can be from 0x00 to 0xffffu +#endif + } + +/** +Struct for monitoring information. + +@publishedPartner +@released +*/ +STRUCT SSM_MONITOR_INFO + { + WORD type = ESsmMonitorInfo; // Must be the first entry in this struct and must not be changed + WORD version = ESsmMonitorInfoInitialVersion; // Must be the second entry in this struct + BYTE restart_policy=ESsmIgnoreOnFailure; // OS Restart policy to be used if component restarting has failed + BYTE restart_mode; // Restart mode when restart_policy=ESsmRestartOSWithMode + LONG timeout = 0; // Delay in milliseconds between retries + WORD retries = 0; // Number of times to attempt to restart a failed component + } + +/** +Struct for waiting for apparc server to initialise. + +@publishedPartner +@released +*/ +STRUCT SSM_WAIT_FOR_APPARC_INIT + { + LLINK conditional_information = 0; // Must be the first entry in this struct - Zero means command is unconditional + WORD type = ESsmCmdWaitForApparcInit; // Must be the second entry in this struct and must not be changed +#ifndef SYMBIAN_SSM_FLEXIBLE_MERGE + WORD version = ECmdWaitForApparcInitInitialVersion; // Must be the third entry in this struct +#else + WORD version = ECmdWaitForApparcInitVersionWithPriority; // This version supports priority of the command +#endif + WORD severity = ECmdIgnoreFailure; // Can have a higher severity defined in TCmdErrorSeverity +#ifdef SYMBIAN_SSM_FLEXIBLE_MERGE + WORD priority = KDefaultCommandPriority; // The order of the command in the list - range can be from 0x00 to 0xffffu +#endif + } + +/** +Struct for loading a State Utility Plugin (SUP). +SUPs are typechecked using UID2 which must be set to KSsmUtilityPluginDllTypeUidValue. +SUPs can only be loaded from ROM file system (Z:). + +@see MSsmUtility +@see RSsmSusCli +@publishedPartner +@released +*/ +STRUCT SSM_START_SSM_UTILITY_PLUGIN + { + LLINK conditional_information = 0; // Must be the first entry in this struct - Zero means command is unconditional + WORD type = ESsmCmdLoadSup; // Must be the second entry in this struct and must not be changed +#ifndef SYMBIAN_SSM_FLEXIBLE_MERGE + WORD version = ECmdLoadSupInitialVersion; // Must be the third entry in this struct +#else + WORD version = ECmdLoadSupVersionWithPriority; // This version supports priority of the command +#endif + WORD severity = ECmdIgnoreFailure; // Can have a higher severity defined in TCmdErrorSeverity + BYTE execution_behaviour = ESsmWaitForSignal; // Can also be ESsmDeferredWaitForSignal or ESsmFireAndForget + LTEXT filename = ""; // VALUE REQUIRED - DLL filename only, no drive or path. + LONG uid3 = 0; // Optional DLL UID3. Use if you want to enforce UID3 is what you expect it to be. + LONG ordinal = 1; // Ordinal number for the function: static MSsmUtility* NewL() + WORD retries = 0; // Re-attempts to make if DLL fails to load or the DLL function returns an error code +#ifdef SYMBIAN_SSM_FLEXIBLE_MERGE + WORD priority = KDefaultCommandPriority; // The order of the command in the list - range can be from 0x00 to 0xffffu +#endif + } + + +/** +Struct for initiating a device restart or shutdown. + +@publishedPartner +@released +*/ +STRUCT SSM_POWER_OFF + { + LLINK conditional_information = 0; // Must be the first entry in this struct - Zero means command is unconditional + WORD type = ESsmCmdPowerOff; // Must be the second entry in this struct and must not be changed + WORD version = ECmdPowerOffInitialVersion; // Must be the third entry in this struct + WORD severity = ECmdIgnoreFailure; // Can have a higher severity defined in TCmdErrorSeverity + WORD power_state = 0; // VALUE REQUIRED - TPowerState value + } + + +/** +Struct for requesting a system-wide property change. + +@publishedPartner +@released +*/ +STRUCT SSM_REQUEST_SYSTEM_WIDE_PROPERTY + { + LLINK conditional_information = 0; // Must be the first entry in this struct - Zero means command is unconditional + WORD type = ESsmCmdReqSwProperty; // Must be the second entry in this struct and must not be changed +#ifndef SYMBIAN_SSM_FLEXIBLE_MERGE + WORD version = ECmdReqSwPropertyInitialVersion; // Must be the third entry in this struct +#else + WORD version = ECmdReqSwPropertyVersionWithPriority; // This version supports priority of the command +#endif + WORD severity = ECmdIgnoreFailure; // Can have a higher severity defined in TCmdErrorSeverity + BYTE execution_behaviour = ESsmWaitForSignal; // Can also be ESsmDeferredWaitForSignal or ESsmFireAndForget + LONG key = 0; // VALUE REQUIRED - system-wide property key + LONG value = 0; // VALUE REQUIRED - system-wide property value +#ifdef SYMBIAN_SSM_FLEXIBLE_MERGE + WORD priority = KDefaultCommandPriority; // The order of the command in the list - range can be from 0x00 to 0xffffu +#endif + } + + +/** +Struct for creating a system-wide property. + +@publishedPartner +@released +*/ +STRUCT SSM_CREATE_SYSTEM_WIDE_PROPERTY + { + LLINK conditional_information = 0; // Must be the first entry in this struct - Zero means command is unconditional + WORD type = ESsmCmdCreateSwp; // Must be the second entry in this struct and must not be changed +#ifndef SYMBIAN_SSM_FLEXIBLE_MERGE + WORD version = ECmdCreateSwpInitialVersion; // Must be the third entry in this struct +#else + WORD version = ECmdCreateSwpVersionWithPriority; // This version supports priority of the command +#endif + WORD severity = ECmdIgnoreFailure; // Can have a higher severity defined in TCmdErrorSeverity + LONG key = 0; // VALUE REQUIRED - system-wide property UID key + LONG value = 0; // Optional default value to set the key to + LTEXT filename = ""; // VALUE REQUIRED - name of the dll implementing the MSsmSwpPolicy interface - filename only, no drive, path or suffix. +#ifdef SYMBIAN_SSM_FLEXIBLE_MERGE + WORD priority = KDefaultCommandPriority; // The order of the command in the list - range can be from 0x00 to 0xffffu +#endif + } + + +/** +Struct for finalising drives. Causes the RFs.FinaliseDrives() function to be called. + +@publishedPartner +@released +*/ +STRUCT SSM_FINALISE_DRIVES + { + LLINK conditional_information = 0; // Must be the first entry in this struct - Zero means command is unconditional + WORD type = ESsmCmdFinaliseDrives; // Must be the second entry in this struct and must not be changed + WORD version = ECmdFinaliseDrivesInitialVersion;// Must be the third entry in this struct + WORD severity = ECmdIgnoreFailure; // Can have a higher severity defined in TCmdErrorSeverity + } + + +/** +Struct for persisting HAL attributes. Causes the BaflUtils::PersistHAL() function to be called. + +@publishedPartner +@released +*/ +STRUCT SSM_PERSIST_HAL_ATTRIBUTES + { + LLINK conditional_information = 0; // Must be the first entry in this struct - Zero means command is unconditional + WORD type = ESsmCmdPersistHalAttributes; // Must be the second entry in this struct and must not be changed + WORD version = ECmdPersistHalAttributesInitialVersion; // Must be the third entry in this struct + WORD severity = ECmdIgnoreFailure; // Can have a higher severity defined in TCmdErrorSeverity + } + + + + +#endif // __SSMCMD_RH__ + +