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