|
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 } |