startup/stem_shutdowncmdlists.rss
author William Roberts <williamr@symbian.org>
Sun, 10 Oct 2010 16:22:15 +0100
changeset 13 4f959124999b
permissions -rw-r--r--
Added group & startup directories, which build "stem_" versions of the myriad ssmcmdlist resources in private\2000d75b This has a USERINCLUDE into sf\os\devicesrv to get some unpublished header files.

/*
* 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"
* 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 list for the Selftest OK startup state.
*
*/

#include <ssm/conditionresourcetypes.rh>
#include <ssm/ssmcmd.rh>

#include "ssmsubstateext.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 = ESsmErrorShutdown;
            resource_id = r_initialcmds;
            },
        SSM_COMMANDLISTID_TO_RESOURCEID
            {
            command_list_id = ESsmNormalShutdown;
            resource_id = r_initialcmds;
            },
        SSM_COMMANDLISTID_TO_RESOURCEID
            {
            command_list_id = ESsmShutdownSubStateCritical;
            resource_id = r_criticalcmds;
            },
        SSM_COMMANDLISTID_TO_RESOURCEID
            {
            command_list_id = ESsmShutdownSubStateNonCritical;
            resource_id = r_noncriticalcmds;
            },
        SSM_COMMANDLISTID_TO_RESOURCEID
            {
            command_list_id = ESsmShutdownSubStatePowerOff;
            resource_id = r_poweroffcmds;
            }
        };
    }

// ===========================================================================
// Command lists in alphabetical order
// ===========================================================================
//

// ---------------------------------------------------------------------------
// r_criticalcmds
// ---------------------------------------------------------------------------
//
RESOURCE SSM_COMMAND_LIST r_criticalcmds
    {
    commands =
        {
        r_cmd_sastate,          // This needs to be the first command in state, prio 0xFFF2
        r_cmd_publishstate,     // prio 0xFFF1
        r_cmd_psstate,          // prio 0xFFF0
        r_cmd_cancelmonitoring, // prio 0xFFE8
	r_cmd_shutdownapps      // prio 0xFFE7
        };
    }

// ---------------------------------------------------------------------------
// r_initialcmds
// ---------------------------------------------------------------------------
//
RESOURCE SSM_COMMAND_LIST r_initialcmds
    {
    commands =
        {
        r_cmd_publishstate	// prio 0xFFF1
        };
    }

// ---------------------------------------------------------------------------
// r_noncriticalcmds
// ---------------------------------------------------------------------------
//
RESOURCE SSM_COMMAND_LIST r_noncriticalcmds
    {
    commands =
        {
        r_cmd_publishstate,     // prio 0xFFF1
        // prio 0xFFE7
        r_cmd_killsplash,
        r_cmd_finalisedrives,
        r_cmd_sashutdown
        };
    }

// ---------------------------------------------------------------------------
// r_poweroffcmds
// ---------------------------------------------------------------------------
//
RESOURCE SSM_COMMAND_LIST r_poweroffcmds
    {
    commands =
        {
        r_cmd_publishstate,     // prio 0xFFF1
        r_cmd_poweroff          // This is always the last command
        };
    }

// ===========================================================================
// Command items in alphabetical order
// ===========================================================================
//
// ---------------------------------------------------------------------------
// r_cmd_cancelmonitoring
// This command should be executed before shutdown apps
// ---------------------------------------------------------------------------
//
RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_cancelmonitoring
	{
	priority = 0xFFE8;
	severity = ECmdCriticalSeverity;
	dllname = "cmncustomcmds.dll";
	ordinal = 3; // Request to the sysmon server to cancel all the outstanding monitors
	retries = 2;
	}

// ---------------------------------------------------------------------------
// r_cmd_shutdownapps
// ---------------------------------------------------------------------------
//
RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_shutdownapps
    {
    priority = 0xFFE7;
    dllname = "akncustcmds.dll";
    ordinal = 3; // AknShutdownApps
    }

// ---------------------------------------------------------------------------
// r_cmd_finalisedrives
// ---------------------------------------------------------------------------
//
RESOURCE SSM_FINALISE_DRIVES r_cmd_finalisedrives
    {
//    priority = 0xFFE7;
    }

// ---------------------------------------------------------------------------
// r_cmd_killsplash
// ---------------------------------------------------------------------------
//
RESOURCE SSM_SET_PUBLISH_AND_SUBSCRIBE r_cmd_killsplash
    {
    priority = 0xFFE7;
    category = 0x101F8766; // KPSUidStartup
    key      = 0x00000301; // KPSSplashShutdown
    value    = 101;        // ESplashShutdown
    }

// ---------------------------------------------------------------------------
// r_cmd_poweroff
// ---------------------------------------------------------------------------
//
RESOURCE SSM_POWER_OFF r_cmd_poweroff
    {
    power_state = 1; // EPwStandby
    }

// ---------------------------------------------------------------------------
// r_cmd_psstate
// ---------------------------------------------------------------------------
//
RESOURCE SSM_SET_PUBLISH_AND_SUBSCRIBE r_cmd_psstate
    {
    priority = 0xFFF0;
    severity = ECmdCriticalSeverity;
    category = 0x101F8766; // KPSUidStartup
    key      = 0x00000041; // KPSGlobalSystemState
    value    = 117;        // ESwStateShuttingDown
    }

// ---------------------------------------------------------------------------
// r_cmd_publishstate
// ---------------------------------------------------------------------------
//
RESOURCE SSM_PUBLISH_SYSTEM_STATE r_cmd_publishstate
    {
    priority = 0xFFF1;
    severity = ECmdCriticalSeverity;
    direction = 1;  // ETraverseChildrenFirst, Transition children first for graceful shutdown.
    retries = 2;
    }

// ---------------------------------------------------------------------------
// r_cmd_sashutdown
// ---------------------------------------------------------------------------
//
RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_sashutdown
    {
    priority = 0xFFE7;
    dllname = "ssmsystemcmds.dll";
    ordinal = 7; // SaShutdown
    retries = 2;
    }

// ---------------------------------------------------------------------------
// r_cmd_sastate
// ---------------------------------------------------------------------------
//
RESOURCE SSM_START_CUSTOM_COMMAND r_cmd_sastate
    {
    priority = 0xFFF2;
    severity = ECmdCriticalSeverity;
    dllname = "customcmds.dll";
    ordinal = 8;
    unload_on_finish = ENeverUnload;
    retries = 2;
    dll_data = r_dlldata_sastate;
    }

// ===========================================================================
// DLL data items in alphabetical order
// ===========================================================================
//

// ---------------------------------------------------------------------------
// r_dlldata_sastate
// ---------------------------------------------------------------------------
//
RESOURCE CMD_PARAM_STATE_CHANGE r_dlldata_sastate
    {
    mainstate = 2; // ESsmShutdown
    substate = 0xFFFF; // KSsmAnySubState, saastateadapataion expects this
    }