sysstatemgmt/systemstarter/inc/startup.rh
changeset 0 4e1aa6a622a0
equal deleted inserted replaced
-1:000000000000 0:4e1aa6a622a0
       
     1 // Copyright (c) 2005-2009 Nokia Corporation and/or its subsidiary(-ies).
       
     2 // All rights reserved.
       
     3 // This component and the accompanying materials are made available
       
     4 // under the terms of "Eclipse Public License v1.0"
       
     5 // which accompanies this distribution, and is available
       
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     7 //
       
     8 // Initial Contributors:
       
     9 // Nokia Corporation - initial contribution.
       
    10 //
       
    11 // Contributors:
       
    12 //
       
    13 // Description:
       
    14 // This file has been deprecated and use ssmcmd.rh instead 
       
    15 // This file contains the basic definitions required for the system starter. It should be
       
    16 // included by all resources files used to drive the starter. This file can be replaced, but
       
    17 // any replacement must implement anything marked "REQUIRED".
       
    18 // DO NOT PUT RESOURCE STATEMENTS IN THIS FILE!
       
    19 // 
       
    20 //
       
    21 
       
    22 #include "startup.hrh"
       
    23 
       
    24 #ifdef SYMBIAN_PROCESS_MONITORING_AND_STARTUP
       
    25 #include "e32modes.h"
       
    26 #endif
       
    27 
       
    28 /**
       
    29 @publishedPartner
       
    30 @deprecated Instead of this use SSM_COMMAND_LIST_ROOT
       
    31 
       
    32 REQUIRED:
       
    33 Entry point used by the starter to find the first STAGE_INFO structure.
       
    34 The starter looks for a resource of this type with a resource id of 1 and uses
       
    35 the link to find the first state info resource
       
    36 **/
       
    37 STRUCT STARTUP_ENTRY_POINT
       
    38 	{
       
    39     	LLINK entry_point = 0;
       
    40 	}
       
    41 
       
    42 /**
       
    43 @publishedPartner
       
    44 @deprecated Instead of this use SSM_PUBLISH_SYSTEM_STATE
       
    45 
       
    46 REQUIRED:
       
    47 This structure defines the information needed by a startup state. The
       
    48 STARTUP_ENTRY_POINT member "entry_point" MUST point to a STATE_INFO resource
       
    49 **/
       
    50 STRUCT STATE_INFO
       
    51 	{
       
    52     BYTE id = 0;		// VALUE REQUIRED: must be defined and unique
       
    53     LTEXT name = "";
       
    54     LLINK command_list = 0;	// VALUE REQUIRED: must point to a COMMAND_ARRAY resource
       
    55     LLINK next = 0;		// VALUE REQUIRED: must point to a STATE_INFO resource (or be 0)
       
    56 
       
    57     // specify how many times to re-attempt state change after a state transition failure.
       
    58     // (Can be ERetry0 or ERetry1)
       
    59     WORD no_of_retries_on_failure = ERetry0;
       
    60 
       
    61     // Specify action when state transition fails after the specified number of retries.
       
    62     // (Can be EIgnoreFailure or EPanicOnFailure).
       
    63     WORD action_on_failure = EIgnoreFailure;
       
    64 	}
       
    65 
       
    66 /**
       
    67 @publishedPartner
       
    68 @deprecated Instead of this use  SSM_START_PROCESS_INFO
       
    69 
       
    70 Structures that can go in the COMMAND_ARRAY.
       
    71 REQUIRED: any structure added here must start with a WORD item,
       
    72 which is initialised with a unique value for that structure (see enumeration
       
    73 TStartupCommandType declared in startup.hrh)
       
    74 Must also have a valid path to a process to start.
       
    75 **/
       
    76 STRUCT START_PROCESS_INFO					// For starting processes
       
    77 	{
       
    78 	WORD type = EStartupProcess;			// do not change
       
    79 	LTEXT path = "";						// VALUE REQUIRED
       
    80 	LTEXT args = "";						// Passed to the command line of the started process
       
    81 	WORD start_method = EFireAndForget;		// can also be EWaitForStart or EDeferredWaitForStart
       
    82 	LONG timeout = 0;						// In milliseconds only used for EWaitForStart
       
    83 	WORD fail_on_error = EPanicOnCommandFailure; // can be EIgnoreCommandFailure
       
    84 	WORD no_of_retries_on_failure = 0; 		// only used for EWaitForStart
       
    85 	}
       
    86 
       
    87 #ifdef SYMBIAN_PROCESS_MONITORING_AND_STARTUP
       
    88 /** This should be used instead of START_PROCESS_INFO if monitoring or advanced recovery options are desired.
       
    89 @publishedPartner
       
    90 @deprecated Instead of this use SSM_START_PROCESS_INFO
       
    91 **/
       
    92 STRUCT START_PROCESS_INFO2                                       // For starting processes
       
    93 	{
       
    94 	WORD type = EStartupProcess2;			// do not change
       
    95 	LTEXT path = "";						// VALUE REQUIRED
       
    96 	LTEXT args = "";						// Passed to the command line of the started process
       
    97 	WORD start_method = EFireAndForget;		// can also be EWaitForStart or EDeferredWaitForStart
       
    98 	LONG timeout = 0;						// In milliseconds only used for EWaitForStart
       
    99 	WORD retry_failure_recovery_method = ERestartOS; 	// can also be EIgnoreOnFailure or ERestartOSWithMode
       
   100 	WORD no_of_retries_on_failure = 0; 		// only used for EWaitForStart
       
   101 	WORD monitor = 0;  						// can be 1 if monitoring required
       
   102 	WORD retry_failure_recovery_startup_mode = EStartupModeUndefined;
       
   103 	}
       
   104 #endif
       
   105 
       
   106 
       
   107 /**
       
   108 @publishedPartner
       
   109 @deprecated Instead of this use SSM_START_APP_INFO
       
   110 **/
       
   111 STRUCT START_APP_INFO						// For starting apps
       
   112 	{
       
   113 	WORD type = EStartupApp;				// do not change
       
   114 	LTEXT path = "";						// VALUE REQUIRED
       
   115 	LTEXT args = "";						// Ignored for backward compatibility
       
   116 	WORD start_method = EFireAndForget; 	// can also be EWaitForStart or EDeferredWaitForStart
       
   117 	WORD viewless = 0;   					// can be 1
       
   118 	WORD start_in_background = 0; 			// can be 1
       
   119 	LONG timeout = 0;						// In milliseconds only used for EWaitForStart
       
   120 	WORD fail_on_error = EPanicOnCommandFailure; // can be EIgnoreCommandFailure
       
   121 	WORD no_of_retries_on_failure = 0;  	// only used for EWaitForStart
       
   122 	}
       
   123 
       
   124 #ifdef SYMBIAN_PROCESS_MONITORING_AND_STARTUP
       
   125 /** This should be used instead of START_APP_INFO if monitoring or advanced recovery options are desired.
       
   126 @publishedPartner
       
   127 @deprecated Instead of this use SSM_START_APP_INFO
       
   128 **/
       
   129 STRUCT START_APP_INFO2						// For starting apps
       
   130 	{
       
   131 	WORD type = EStartupApp2;				// do not change
       
   132 	LTEXT path = "";						// VALUE REQUIRED
       
   133 	LTEXT args = "";						// Passed to the "Tail End" of the application command line
       
   134 	WORD start_method = EFireAndForget; 	// can also be EWaitForStart or EDeferredWaitForStart
       
   135 	WORD viewless = 0;   					// can be 1
       
   136 	WORD start_in_background = 0; 			// can be 1
       
   137 	LONG timeout = 0;						// In milliseconds only used for EWaitForStart
       
   138 	WORD retry_failure_recovery_method = ERestartOS; 	// can also be EIgnoreOnFailure or ERestartOSWithMode
       
   139 	WORD no_of_retries_on_failure = 0;  	// only used for EWaitForStart
       
   140 
       
   141 	WORD monitor = 0;  						// can be 1 if monitoring required
       
   142 	WORD retry_failure_recovery_startup_mode = EStartupModeUndefined;
       
   143 	}
       
   144 #endif
       
   145 
       
   146 
       
   147 /**
       
   148 @publishedPartner
       
   149 @deprecated Instead of this use SSM_SET_PUBLISH_AND_SUBSCRIBE 
       
   150 **/
       
   151 STRUCT SPLASH_SCREEN			// For starting or killing the splash screen
       
   152 	{
       
   153 	WORD type = EStartupSplashScreen;	// Must not be changed
       
   154 	// EITHER specify kill = 1 OR give the path to the splash exe
       
   155 	WORD kill = 0;
       
   156 	LTEXT path = "";
       
   157 	}
       
   158 
       
   159 /**
       
   160 This command is used to force apparc server to initialise its list with information 
       
   161 about installed applications. This command is added anywhere after apparc server 
       
   162 is started to get past the stage where all app info is not yet available.
       
   163 
       
   164 Apparc must be initialised to support rule-based launching and launching of 
       
   165 non-native applications.
       
   166 
       
   167 @publishedPartner
       
   168 @deprecated Instead of this use SSM_START_APP_INFO
       
   169 **/
       
   170 STRUCT INIT_APPARC
       
   171 	{
       
   172 	WORD type = EInitAppArcServer;
       
   173 	}
       
   174 
       
   175 /**
       
   176 This command is used for starting a function within a custom DLL using the
       
   177 ordinal specified.
       
   178 
       
   179 @publishedPartner
       
   180 @deprecated Instead of this use SSM_START_CUSTOM_COMMAND 
       
   181 **/
       
   182 STRUCT START_DLL_INFO
       
   183 	{
       
   184 	WORD type = EStartupDLL;		// Must not be changed
       
   185 	LTEXT DLLName = ""; 	// VALUE REQUIRED.
       
   186 							// DLL name (without the .dll extension).
       
   187 	BYTE ordinal = 1; // VALUE REQUIRED
       
   188  	WORD fail_on_error = EPanicOnCommandFailure; // can be EIgnoreCommandFailure
       
   189 	BYTE no_of_retries_on_failure = 0; // Re-attempts to make if DLL fails to
       
   190 	                                   // load or the DLL function returns an
       
   191 	                                   // error code
       
   192 	LLINK custom_dll_data_link = 0; // VALUE REQUIRED. link to the licensee specific dll data
       
   193 	}
       
   194 
       
   195 /**
       
   196 This command checks that processes/apps previously started with start_method
       
   197 EDeferredWaitForStart have now made a rendezvous. A timer can be started and if
       
   198 all deferred commands have not started the action specified in the fail_on_error
       
   199 field is taken.
       
   200 If the timeout value is zero the system will wait indefinitely until all deferred
       
   201 commands have completed.
       
   202 
       
   203 @publishedPartner
       
   204 @deprecated Instead of this use SSM_MULTIPLE_WAIT
       
   205 **/
       
   206 STRUCT MULTIPLE_WAIT
       
   207 	{
       
   208 	WORD type = EMultipleWait; // Must not be changed
       
   209 	LONG timeout = 0; // In milliseconds.
       
   210  	WORD fail_on_error = EPanicOnCommandFailure ; // can be EIgnoreCommandFailure
       
   211 	}
       
   212 
       
   213 #ifdef SYMBIAN_PROCESS_MONITORING_AND_STARTUP
       
   214 /**
       
   215 @publishedPartner
       
   216 @deprecated Instead of this use SSM_START_AMA_STARTER
       
   217 **/
       
   218 STRUCT START_AMA_STARTER			// For starting AMAStarter with a particular DSC
       
   219 	{
       
   220 	WORD type = EStartupAMAStarter;		// Must not be changed
       
   221 	LONG dsc_id = 0x2000836D;		// DSC id for AMAStarter
       
   222 	}
       
   223 #endif
       
   224 /**
       
   225 @publishedPartner
       
   226 @deprecated Instead of this use SSM_COMMAND_LIST
       
   227 
       
   228 REQUIRED: Lists the commands to be executed in a given startup state.
       
   229 **/
       
   230 STRUCT COMMAND_ARRAY
       
   231     {
       
   232     STRUCT commands[];
       
   233     }