diff -r 000000000000 -r 4e1aa6a622a0 sysstatemgmt/systemstatereferenceplugins/clayer/inc/startupadaptationcommands.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sysstatemgmt/systemstatereferenceplugins/clayer/inc/startupadaptationcommands.h Tue Feb 02 00:53:00 2010 +0200 @@ -0,0 +1,786 @@ +/* +* Copyright (c) 2004-2009 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of "Eclipse Public License v1.0" +* 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: +* Name : startupadaptationcommands.h +* Part of : System Startup / Starter +* Interface : Domain, Startup Adaptation API +* This header file defines the startup adaptation API commands +* and their parameters. +* This file contains the following sections: +* - Command definitions +* - Command parameter definitions +* - Response parameter definitions +* Version : %version: ou1s60rt#12.1.4 % +* This material, including documentation and any related computer +* programs, is protected by copyright controlled by Nokia. All +* rights are reserved. Copying, including reproducing, storing, +* adapting or translating, any or all of this material requires the +* prior written consent of Nokia. This material also contains +* confidential information which may not be disclosed to others +* without the prior written consent of Nokia. +* Template version: 4.0 +* Nokia Core OS * +* +*/ + + + +#ifndef __STARTUPADAPTATIONCOMMANDS_H__ +#define __STARTUPADAPTATIONCOMMANDS_H__ + +#include + +/***************************************************** +* Series 60 Customer +* Needs customer implementation +*****************************************************/ + +/** +* All command and event definitions of Startup Adaptation API belong to +* StartupAdaptation namespace. +* +* @file +* @publishedPartner +* @released +* +*/ +namespace StartupAdaptation + { + + /** + * Command definitions + * All commands contain a command id and a set of parameters. The command ids + * are defined first and after that parameters for each command. + * + * This interface is asynchronous. A command is interpreted of being + * completed after a response for that command is received. + * + * @param field means the parameter for the command. + * @return field means the parameter for the response. + */ + enum TCommand + { + /** + * This command is used to change the global state of an S60 device. + * + * When changing the global state, S60 starter server issues a state + * change command to startup adaptation via the startup adaptation API. + * After receiving a response, S60 starter server will publish the new + * state using Publish & Subscribe and execute operations required in + * that state. + * + * @param TGlobalStateChangePckg The requested global state. + * @return TResponsePckg The success status of the state change. + */ + EGlobalStateChange = 100, + + /** + * Security state change request. Used only when global state is security + * check. + * + * @param TSecurityStateChangePckg The requested security state. + * @return TSecurityStateResponsePckg The success status of the state + * change and, if the operation was successful, additional information + * which depends on the state. + */ + ESecurityStateChange = 101, + + /** + * Get global startup mode. + * + * The global startup mode indicates the mode in which the device has + * been started. The startup mode can also be seen as a reason for the + * startup. + * + * @param None. + * @return TGlobalStartupModeResponsePckg The success status of the + * operation and, if the operation was successful, the global startup + * mode. + */ + EGetGlobalStartupMode = 102, + + /** + * Request Domestic OS to perform self tests. + * + * Before launching any software components that are using some specific + * hardware, self-tests need to be executed for the hardware. This + * command is used to request licensee-specific self-tests to be + * executed. It is allowed to perform the self-tests before this command, + * but when this command is issued, S60 starter server expects to get the + * result of the self-tests. + * + * @param None. + * @return TResponsePckg The success status of the self tests. + */ + EExecuteSelftests = 103, + + /** + * Get the language codes that are stored in the SIM card preferred + * language lists. + * + * Primary language list will be queried first. Unless it contains + * at least one language that can be taken into use, the secondary + * preferred list will be queried for. Only if there is no acceptable + * languages in the secondary list either, will the tertiary list be + * queried for. + * + * @param TLanguageListPriorityPckg. + * @return TLanguageListResponsePckg The list of languages mapped to + * Symbian language codes. + */ + EGetSIMLanguages = 104, + + /** + * This command is used to check the validity of Real Time Clock (RTC). + * + * @param None. + * @return TResponsePckg The success status of the operation. KErrNone + * if the RTC time is valid, any other value indicates that it is not + * valid. + */ + EValidateRTCTime = 107, + + /** + * Query whether the current SIM card is different from the previous one. + * + * The SIM changed status indicates whether the currently inserted SIM + * card has changed since the last startup. This information can be used + * for example to query whether the user wants to clear phone call logs. + * + * S60 starter server makes this query only if there is a SIM card + * present. This command will only be issued in ESWStateCriticalPhaseOK + * state. + * + * @param None. + * @return TBooleanResponsePckg Success status of the operation, and if + * the operation was successful, indication whether the SIM card has been + * changed after the last boot or not. + */ + EGetSimChanged = 108, //This Enum should not be used. + + /** + * Query whether the current SIM card is among the last used cards. + * + * It is up to the startup adaptation to decide the number of SIM cards + * that are considered owned. + * + * If the SIM owned status is false, then the SIM changed status must be + * true. + * + * S60 starter server makes this query only if there is a SIM card + * present. This command will only be issued in ESWStateCriticalPhaseOK + * state. + * + * @param None. + * @return TBooleanResponsePckg Success status of the operation, and if + * the operation was successful, indication whether the SIM card is among + * the five last used cards or not. + */ + EGetSimOwned = 109, + + /** + * This command is used to set a wake-up alarm time so that the device is + * powered up by an alarm when it goes off, i.e. the device will be + * started in the alarm mode. + * + * @see Command EGetGlobalStartupMode. + * + * @param TWakeupAlarmPckg The time for the alarm. + * @return TResponsePckg Success status of the operation. + */ + ESetWakeupAlarm = 110, + + /** + * This command is used to cancel a wake-up alarm. + * + * @param None. + * @return None Cancels must always succeed. + */ + ECancelWakeupAlarm = 111, + + /** + * A reboot request. + * + * This command is used to inform the startup adaptation that a reset + * will be executed. The command also reports the reason for the reset + * in case there is a need for some licensee-specific actions. + * + * This command will only be executed in the state ESWStateShuttingDown. + * After receiving a response to the command, the S60 starter server will + * only clean up itself and then call UserHal::SwitchOff(). + * + * @param TResetReasonPckg The reason for resetting. + * @return TResponsePckg Success status of the operation. + */ + EExecuteReset = 112, + + /** + * A shutdown request. + * + * This command is used to inform the startup adaptation that the device + * is going to be shut down. + * + * This command will only be executed in the state ESWStateShuttingDown. + * After receiving a response to the command, the S60 starter server will + * only clean up itself and then call UserHal::SwitchOff(). + * + * @param None. + * @return TResponsePckg Success status of the operation. + */ + EExecuteShutdown = 113, + + /** + * Restore the factory settings of Domestic OS. + * + * Restoring factory settings may require some licensee-specific actions + * to be performed. This command is used to request those actions to be + * executed. The command will be issued during start-up sequence + * following a reset caused by user-initiated RFS operation. + * + * @param TRFSReasonPckg Indicates whether normal or deep RFS is + * required. + * @return TResponsePckg Success status of the operation. + */ + EExecuteDOSRfs = 114, + + /** + * Activate RF tranceiver for making an emergency call. + * + * Emergency calls have a high priority in S60 devices. Emergency calls + * must be allowed whenever they are technically possible. There are two + * cases, where the state of the device does not allow a mobile + * originated call, but it must allow an emergency call. + * - When the device is in offline mode. Applies also for the global + * state ESWStateEmergencyCallsOnly. + * - When the device startup is in progress and RF transceiver is not + * yet switched on. + * This command is used to switch RF transceiver on for making an + * emergency call. As soon as the emergency call is finished, there will + * be a command for switching RF transceiver off. + * + * @see Command EDeactivateRfAfterEmergencyCall. + * + * @param None. + * @return TResponsePckg Success status of the operation. + */ + EActivateRfForEmergencyCall = 115, + + /** + * Deactivate RF transceiver after making an emergency call. + * + * This command is used to switch RF transceiver off after an emergency + * call. + * + * @see Command EActivateRfForEmergencyCall. + * + * @param None. + * @return TResponsePckg Success status of the operation. + */ + EDeactivateRfAfterEmergencyCall = 116, + + /** + * Query whether the current boot is a hidden reset. + * Hidden reset means that boot-time queries and animations should not + * be shown to the user. + * + * Boot-time queries and animations will be hidden from the user if the + * system is executing a controlled reset (EExecuteReset command) or + * this query returns ETrue. + * + * This query should return ETrue if the ongoing boot is caused by SW + * reset (either controlled, initiated by EExecuteReset command, or + * uncontrolled, caused by critical SW failure). + * This query should return EFalse if the ongoing boot is initiated by + * any other means (such as user pressing the power key or a wakeup + * alarm occurring). + * + * This command will always be issued in ESWStateStartingUiServices + * state. + */ + EGetHiddenReset = 117 + + }; + + /* + * ========================================================================== + * Command parameter definitions + * ========================================================================== + */ + + /** + * Parameter definition for EGlobalStateChange. + * Parameter indicates the global state to move to. + * + * Possible state transitions are: + * ESWStateStartingUiServices -> ESWStateStartingCriticalApps + * ESWStateStartingCriticalApps -> ESWStateSelfTestOK + * ESWStateSelfTestOK -> ESWStateSecurityCheck + * ESWStateSelfTestOK -> ESWStateCharging + * ESWStateSelfTestOK -> ESWStateAlarm + * ESWStateSelfTestOK -> ESWStateTest + * ESWStateSecurityCheck -> ESWStateCriticalPhaseOK + * ESWStateSecurityCheck -> ESWStateEmergencyCallsOnly + * ESWStateCriticalPhaseOK -> ESWStateNormalRfOn + * ESWStateCriticalPhaseOK -> ESWStateNormalRfOff + * ESWStateNormalRfOn -> ESWStateNormalRfOff + * ESWStateNormalRfOn -> ESWStateNormalBTSap + * ESWStateNormalRfOff -> ESWStateNormalRfOn + * ESWStateNormalRfOff -> ESWStateNormalBTSap + * ESWStateNormalBTSap -> ESWStateNormalRfOn + * ESWStateNormalBTSap -> ESWStateNormalRfOff + * ESWStateCharging -> ESWStateChargingToAlarm + * ESWStateCharging -> ESWStateChargingToNormal + * ESWStateAlarm -> ESWStateAlarmToCharging + * ESWStateAlarm -> ESWStateAlarmToNormal + * ESWStateChargingToAlarm -> ESWStateAlarm + * ESWStateAlarmToCharging -> ESWStateCharging + * ESWStateChargingToNormal -> ESWStateSecurityCheck + * ESWStateAlarmToNormal -> ESWStateSecurityCheck + * (Any state except ESWStateStartingUiServices, ESWStateTest, + * ESWStateFatalStartupError and ESWStateShuttingDown) -> ESWStateFatalStartupError + * (Any state except ESWStateTest and ESWStateShuttingDown) -> ESWStateShuttingDown + */ + enum TGlobalState + { + ESWStateStartingUiServices = 100, + ESWStateStartingCriticalApps, + ESWStateSelfTestOK, + + // States for the security check phase. + ESWStateSecurityCheck, + ESWStateCriticalPhaseOK, + ESWStateEmergencyCallsOnly, + + // Terminal states defined by the boot mode (and some other variables such as offline mode). + ESWStateTest, + ESWStateCharging, + ESWStateAlarm, + ESWStateNormalRfOn, + ESWStateNormalRfOff, + ESWStateNormalBTSap, + + // States for notifying adaptation about a terminal state change. + ESWStateAlarmToCharging, + ESWStateChargingToAlarm, + ESWStateChargingToNormal, + ESWStateAlarmToNormal, + + // Shutdown-related states. + ESWStateShuttingDown, + + // Error states. + ESWStateFatalStartupError + }; + + /** + * Buffer descriptor containing TGlobalState object. + */ + typedef TPckgBuf TGlobalStateChangePckg; + + /** + * Parameter definition for ESecurityStateChange. + * Parameter indicates the security state to move to. + * + * Possible state transitions are: + * ESIMPresent -> ESIMReadable + * ESIMPresent -> ESIMLessOfflineSupported + * ESIMReadable -> ESIMInvalid + * ESIMInvalid -> ESecurityCheckFailed + * ESIMInvalid -> ESIMRejected + * ESIMRejected -> ESIMBlocked + * ESIMRejected -> ESecurityCheckFailed + * ESIMBlocked -> EPINRequired + * ESIMBlocked -> EAskPUK + * EPINRequired -> EAskPIN + * EPINRequired -> ESIMCodesOK + * EAskPIN -> EAskPUK + * EAskPIN -> ESIMCodesOK + * EAskPUK -> ESIMCodesOK + * EAskPUK -> ESecurityCheckFailed + * ESIMCodesOK -> ESIMLock + * ESIMCodesOK -> ESECCodeRequired + * ESIMLock -> ESecurityCheckOK + * ESIMLock -> ESecurityCheckFailed + * ESIMLessOfflineSupported -> ESIMLock + * ESIMLessOfflineSupported -> ESECCodeRequired + * ESIMLessOfflineSupported -> ESecurityCheckFailed + * ESECCodeRequired -> EAskSEC + * ESECCodeRequired -> ESECCodeOK + * EAskSEC -> ESECBlocked + * EAskSEC -> ESECCodeOK + * ESECBlocked -> EAskSEC + * ESECCodeOK -> ESIMLock + */ + enum TSecurityState + { + ESIMPresent = 100, ///< Response param: Yes/No + ESIMReadable, ///< Response param: None (wait until SIM readable) + ESIMRejected, ///< Response param: Yes/No + ESIMBlocked, ///< Response param: No/PUK1/UPUK + EPINRequired, ///< Response param: No/PIN1/UPIN + ESECCodeRequired, ///< Response param: No/SEC/Master + + ESIMLessOfflineSupported,///< Response param: None (inform adaptation only) + ESIMLock, ///< Response param: SimLockRestricted/SimLockRestrictionOn/ + ///< SimLockRestrictionPending/SimLockOk + ESECBlocked, ///< Response param: None (inform adaptation only) + + EAskPIN, ///< Response param: None (inform adaptation only) + EAskPUK, ///< Response param: None (inform adaptation only) + EAskSEC, ///< Response param: None (inform adaptation only) + ESIMCodesOK, ///< Response param: None (inform adaptation only) + ESECCodeOK, ///< Response param: None (inform adaptation only) + ESecurityCheckOK, ///< Response param: None (inform adaptation only) + ESecurityCheckFailed, ///< Response param: None (inform adaptation only) + ESIMInvalid ///< Response param: Yes/No + }; + + /** + * Buffer descriptor containing TSecurityState object. + */ + typedef TPckgBuf TSecurityStateChangePckg; + + + /** + * Parameter definition for EGetSIMLanguages. + */ + enum TLanguageListPriority + { + /** + * Return list of language codes based on the most preferred language + * list. In GSM the most preferred language list is stored in EF_LI + * (see 3GPP TS 31.102). + */ + EPrimaryLanguages = 100, + /** + * Return list of language codes based on the second preferred language + * list. In GSM the second preferred language list is stored in EF_PL + * (see 3GPP TS 51.011). + */ + ESecondaryLanguages, + /** + * Return list of language codes based on the third preferred language + * list. In GSM the third preferred language list is stored in EF_LP + * (see 3GPP TS 51.011). + */ + ETertiaryLanguages, + }; + + /** + * Buffer descriptor containing TLanguageListPriority object. + */ + typedef TPckgBuf TLanguageListPriorityPckg; + + /** + * Parameter definition for ESetWakeupAlarm and ECancelWakeupAlarm. + */ + NONSHARABLE_STRUCT( TWakeupAlarmTime ) + { + /** + * The local time for the alarm. Startup adaptation needs to take the + * offsets into account. + */ + TTime iTime; + /** + * Universal time offset in seconds. + */ + TTimeIntervalSeconds iUniversalTimeOffset; + /** + * Daylight saving offset in seconds, if not taken into account by the + * universal time offset parameter. + */ + TTimeIntervalSeconds iDaylightSavingOffset; + }; + + /** + * Buffer descriptor containing TWakeupAlarmTime object. + */ + typedef TPckgBuf TWakeupAlarmPckg; + + /** + * Parameter definition for EExecuteReset. + */ + enum TResetReason + { + /** A reset due to display language switch. */ + ELanguageSwitchReset = 100, + /** A reset due to restoring factory settings. */ + ENormalRFSReset = 101, + /** A reset due to restoring factory settings (deep). */ + EDeepRFSReset = 102, + /** A reset due to firmware update. */ + EFirmwareUpdate = 104, + /** A reset due to an error. */ + EUnknownReset = 105, + /** A reset due to removing operator settings. */ + EOperatorSettingReset = 106, + /** A reset due to network mode change. */ + ENetworkModeChangeReset = 107, + /** A reset due removing/inserting SIM card. */ + ESIMStatusChangeReset = 108, + EDRMReset = 109, + /** A reset after restoring backed-up data. */ + EDataRestoreReset = 110, + /** A reset required by Field Test software. */ + EFieldTestReset = 111 + }; + + /** + * Buffer descriptor containing TResetReason object. + */ + typedef TPckgBuf TResetReasonPckg; + + + /** + * Parameter definition for EExecuteDOSRfs. + */ + enum TRFSReason + { + ENormalRFS = 100, + EDeepRFS + }; + + /** + * Buffer descriptor containing TRFSReason object. + */ + typedef TPckgBuf TRFSReasonPckg; + + /* + * ========================================================================== + * Response parameter definitions + * ========================================================================== + */ + + /** + * Parameter definition for command responses that need only success or + * failure information. + */ + typedef TPckgBuf TResponsePckg; + + + /** + * Parameter definition for ESecurityStateChange command response. + */ + enum TSecurityStateInfo + { + EYes = 100, + ENo, + + EPUK1Required, // Only for SIMBlocked + EUPUKRequired, // Only for SIMBlocked + + EPIN1Required, // Only for PINRequired + EUPINRequired, // Only for PINRequired + + ESecurityCodeRequired, // Only for SECCodeRequired + EMasterCodeRequired, // Only for SECCodeRequired + + ESimLockRestricted, // Only for SIMLock + ESimLockRestrictionOn, // Only for SIMLock + ESimLockRestrictionPending, // Only for SIMLock + ESimLockOk, // Only for SIMLock + + ENoValue // For SIMReadable, SIMLessOfflineSupported, + // SECBlocked, AskPIN, AskPUK, AskSEC, + // SIMCodesOK, SECCodeOK, + // SecurityCheckOK, SecurityCheckFailed + }; + + /** + * Parameter definition for ESecurityStateChange command response. + */ + NONSHARABLE_STRUCT( TSecurityStateResponse ) + { + /** + * Indicates whether operation was successful or if not, the reason why. + */ + TInt iErrorCode; + /** + * Response value. Valid only if iErrorCode is KErrNone. + */ + TSecurityStateInfo iValue; + }; + + /** + * Buffer descriptor containing TSecurityStateResponse object. + */ + typedef TPckgBuf TSecurityStateResponsePckg; + + + /** + * Parameter definition for EGetGlobalStartupMode command response. + */ + enum TGlobalStartupMode + { + ENormal = 100, + EAlarm, + ECharging, + ETest + }; + + /** + * Parameter definition for EGetGlobalStartupMode command response. + */ + struct TGlobalStartupModeResponse + { + /** + * Indicates whether operation was successful or if not, the reason why. + */ + TInt iErrorCode; + /** + * Response value. Valid only if iErrorCode is KErrNone. + */ + TGlobalStartupMode iValue; + }; + + /** + * Buffer descriptor containing TGlobalStartupModeResponse object. + */ + typedef TPckgBuf TGlobalStartupModeResponsePckg; + + + /** + * Enumeration of preferred languages for EGetSIMLanguages command response. + * + * Implementation should map each entry in the physical list stored in + * SIM card to a corresponding S60 preferred language code (one of the values + * of TPreferredLanguage enumerations). + * Implementation may skip the entries for which there is no corresponding + * value in the TPreferredLanguage enumeration. + */ + + enum TPreferredLanguage + { // ISO 639 GSM 0338 + EPrefLangEnglish = 1, // EN 1 + EPrefLangFrench = 2, // FR 3 + EPrefLangGerman = 3, // DE 0 + EPrefLangSpanish = 4, // ES 4 + EPrefLangItalian = 5, // IT 2 + EPrefLangSwedish = 6, // SV 6 + EPrefLangDanish = 7, // DA 7 + EPrefLangNorwegian = 8, // NO 10 + EPrefLangFinnish = 9, // FI 9 + EPrefLangPortuguese = 13, // PT 8 + EPrefLangTurkish = 14, // TR 12 + EPrefLangIcelandic = 15, // IS 36 + EPrefLangRussian = 16, // RU 35 + EPrefLangHungarian = 17, // HU 13 + EPrefLangDutch = 18, // NL 5 + EPrefLangCzech = 25, // CS 32 + EPrefLangSlovak = 26, // SK + EPrefLangPolish = 27, // PL 14 + EPrefLangSlovenian = 28, // SL + EPrefLangPrcChinese = 31, // ZH + EPrefLangJapanese = 32, // JA + EPrefLangThai = 33, // TH + EPrefLangArabic = 37, // AR 34 + EPrefLangTagalog = 39, // TL + EPrefLangBulgarian = 42, // BG + EPrefLangCatalan = 44, // CA + EPrefLangCroatian = 45, // HR + EPrefLangEstonian = 49, // ET + EPrefLangFarsi = 50, // FA + EPrefLangGreek = 54, // EL 11 + EPrefLangHebrew = 57, // IW 33 + EPrefLangHindi = 58, // HI + EPrefLangIndonesian = 59, // IN + EPrefLangKorean = 65, // KO + EPrefLangLatvian = 67, // LV + EPrefLangLithuanian = 68, // LT + EPrefLangMalay = 70, // MS + EPrefLangMarathi = 72, // MR + EPrefLangRomanian = 78, // RO + EPrefLangSerbian = 79, // SR + EPrefLangUkrainian = 93, // UK + EPrefLangUrdu = 94, // UR + EPrefLangVietnamese = 96, // VI + EPrefLangBasque = 102, // EU + EPrefLangGalician = 103 // GL + }; + + + /** + * Array of preferred languages for EGetSIMLanguages command response. + */ + typedef RArray RLanguageList; + + + /** + * Parameter definition for EGetSIMLanguages command response. + */ + NONSHARABLE_CLASS( RLanguageListResponse ) + { + private: + RLanguageListResponse( const RLanguageListResponse& ); + RLanguageListResponse& operator= ( const RLanguageListResponse& ); + + public: + + /** + * Constructor. + */ + inline RLanguageListResponse(); + + /** + * Closes the language code array and frees all memory allocated to the + * array. + * + * The function must be called before this object is destroyed. + */ + inline void Close(); + + /** + * Use KErrNotFound to indicate that there is no SIM card present or the + * SIM card does not contain the requested list. + */ + TInt iErrorCode; + + /** + * Array of zero or more languages codes. + */ + RLanguageList iLanguages; + }; + + /** + * Pointer descriptor representing an RLanguageListResponse object. + */ + typedef TPckg TLanguageListResponsePckg; + + + /** + * Parameter definition for command responses that need success or failure + * information and a boolean return value. + */ + struct TBooleanResponse + { + /** + * Indicates whether operation was successful or if not, the reason why. + */ + TInt iErrorCode; + /** + * Response value. Valid only if iErrorCode is KErrNone. + */ + TBool iValue; + }; + + /** + * Buffer descriptor containing TBooleanResponse object. + */ + typedef TPckgBuf TBooleanResponsePckg; + + } + +#include + +#endif // __STARTUPADAPTATIONCOMMANDS_H__