// 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 __SSMSUBSTATES_HRH__
#define __SSMSUBSTATES_HRH__


/**
 This enum contains sub-states for Startup System State.
 It matches TStartupStateIdentifier in sysstart (startup.hrh) for backwards compatibility.

 @publishedPartner
 @released
 */
enum TSsmStartupSubStates
	{
	/** Undefined state */
	ESsmStartupSubStateUndefined = 0x00,

	/** Reserved for future use
	@internalComponent */
	ESsmStartupSubStateReserved1 = 0x08,

	/** Within this state all ROM based(static) components or resources
	that are critical to the operation of the phone function are started. */
	ESsmStartupSubStateCriticalStatic = 0x10,

	/** Reserved for future use
	@internalComponent */
	ESsmStartupSubStateReserved2 = 0x18,

	/** Within this state all non-ROM based(dynamic) components or resources
	that are critical to the operation of the phone function are started. */
	ESsmStartupSubStateCriticalDynamic = 0x20,

	/** Networking state */
	ESsmStartupSubStateNetworkingCritical = 0x28,

	/** Within this state all ROM based(static) or non-ROM based(dynamic) components or 
	resources that are non-critical to the operation of the phone function are started. */
	ESsmStartupSubStateNonCritical = 0x30,

	/** Reserved for future use. 
	@internalComponent */
	ESsmStartupSubStateReserved3 = 0x38,

	/** Reserved for future use.
	@internalComponent */
	ESsmStartupSubStateReserved4 = 0x40

	/**
	Additional states for use 0x48 - 0xFF
	*/
	};




/**
This enum contains sub-states for Normal System State.

 @publishedPartner
 @released
 */
enum TSsmNormalSubStates
	{
	/** Undefined state */
	ESsmNormalSubStateUndefined = 0x00,

	/** Reserved for future use
	@internalComponent */
	ESsmNormalSubStateReserved1 = 0x08,
	
	/** Publishes the state. */
	ESsmNormalSubState = 0x10,

	/** Reserved for future use.
	@internalComponent*/
	ESsmNormalSubStateReserved2 = 0x18,

	/** Reserved for future use.
	@internalComponent*/
	ESsmNormalSubStateReserved3 = 0x20,
	
	/** This state is valid only when patchable constant KSsmGracefulOffline is enabled*/
	ESsmNormalRfOnSubState = 0x28,
	
	/** This state is valid only when patchable constant KSsmGracefulOffline is enabled*/
	ESsmNormalRfOffSubState = 0x30

	/**
	Additional states for use 0x38 - 0xFF
	*/
	};

/**
This enum contains sub-states for Fail System State.

 @publishedPartner
 @released
 */
enum TSsmFailSubStates
	{
	/** Undefined state */
	ESsmFailSubStateUndefined = 0x00,

	/** Reserved for future use
	@internalComponent */
	ESsmFailSubStateReserved1 = 0x08,

	/** Publishes the state and issues a device poweroff. */
	ESsmFailSubStatePowerOff = 0x10,

	/** Reserved for future use.
	@internalComponent */
	ESsmFailSubStateReserved2 = 0x18,

	/** Publishes the state and issues a device restart. */
	ESsmFailSubStateRestart = 0x20,

	/** Reserved for future use.
	@internalComponent */
	ESsmFailSubStateReserved3 = 0x28

	/**
	Additional states for use 0x30 - 0xFF
	*/
	};

/**
This enum contains sub-states for Shutdown System State.

 @publishedPartner
 @released
 */
enum TSsmShutdownSubStates
	{
	/** Undefined state */
	ESsmShutdownSubStateUndefined = 0x00,

	/** Reserved for future use
	@internalComponent */
	ESsmShutdownSubStateReserved1 = 0x08,

	/** Within this state all components or resources that are critical and have registered for the shutdown notification
	are given notification to carryout shutdown activities. */
	ESsmShutdownSubStateCritical = 0x10,

	/** Reserved for future use. 
	@internalComponent */
	ESsmShutdownSubStateReserved2 = 0x18,

	/** Within this state all components or resources that are non-critical and have registered for the shutdown notification
	are given notification to carryout shutdown activities. */
	ESsmShutdownSubStateNonCritical = 0x20,

	/** Reserved for future use.
	@internalComponent */
	ESsmShutdownSubStateReserved3 = 0x28,

	/** Power Off state. */
	ESsmShutdownSubStatePowerOff = 0x30,

	/** Restart the device.  */
	ESsmShutdownSubStateReStart = 0x38,

	/** Reserved for future use.
	@internalComponent */
	ESsmShutdownSubStateReserved4 = 0x40	

	/**
	Additional states for use 0x48 - 0xFF
	*/
	};


/**
This enum contains sub-states for Emergency Calls System State.

 @publishedPartner
 @released
 */
enum TSsmEmergencyCallSubStates
	{
	/** Undefined state */
	ESsmEmergencyCallSubStateUndefined = 0x00,

	/** Reserved for future use
	@internalComponent */
	ESsmEmergencyCallSubStateReserved1 = 0x08,

	/**
	@internalComponent
	Reserved for future use.
	*/
	ESsmEmergencyCallsEnabledSubState = 0x10,

	/**
	@internalComponent
	Reserved for future use.
	*/
	ESsmEmergencyCallsDisabledSubState = 0x18,

	/**
	@internalComponent
	Reserved for future use.
	*/
	ESsmEmergencyCallsEnabledSubStateReserved2 = 0x20

	/**
	Additional states for use 0x28 - 0xFF
	*/
	};

/**
This enum contains sub-states for Back-up System State.

 @publishedPartner
 @released
 */
enum TSsmBackupSubStates
	{
	/** Undefined state */
	ESsmBackupSubStateUndefined = 0x00,

	/** Reserved for future use
	@internalComponent */
	ESsmBackupSubStateReserved1 = 0x08,

	/**
	@internalComponent
	Reserved for future use.
	*/
	ESsmBackupSubState = 0x10,

	/**
	@internalComponent
	Reserved for future use.
	*/
	ESsmBackupSubStateReserved2 = 0x18

	/**
	Additional states for use 0x20 - 0xFF
	*/
	};

/**
This enum contains sub-states for Restore System State.

 @publishedPartner
 @released
 */
enum TSsmRestoreSubStates
	{
	/** Undefined state */
	ESsmRestoreSubStateUndefined = 0x00,

	/** Reserved for future use
	@internalComponent */
	ESsmRestoreSubStateReserved1 = 0x08,

	/**
	@internalComponent
	Reserved for future use.
	*/
	ESsmRestoreSubState = 0x10,

	/**
	@internalComponent
	Reserved for future use.
	*/
	ESsmRestoreSubStateReserved2 = 0x18

	/**
	Additional states for use 0x20 - 0xFF
	*/
	};

#endif	//__SSMSUBSTATES_HRH__
