1 // Copyright (c) 2007-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 the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members
5 // which accompanies this distribution, and is available
6 // at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
8 // Initial Contributors:
9 // Nokia Corporation - initial contribution.
14 // Definitions used between the Core Dump Server interface library and the server.
25 #ifndef CORE_DUMP_SERVER_API_H
26 #define CORE_DUMP_SERVER_API_H
28 #include <plugindata.h>
30 /** Core Dump Server executable name */
31 _LIT(KCoreDumpServerName, "coredump_svr");
33 /** Core Dump Server UID */
34 const TUid KCoreDumpServUid = { 0x10282FE5 };
36 /** Core Dump Server major version */
37 const TUint KCoreDumpServMajorVersionNumber=1;
39 /** Core Dump Server minor version */
40 const TUint KCoreDumpServMinorVersionNumber=0;
42 /** Core Dump Server build number */
43 const TUint KCoreDumpServBuildVersionNumber=1;
46 Core Dump Server client-server requests
49 enum TCoreDumpServRqst
51 /** Obtain a plugin list.
52 @see RCoreDumpSession::GetPluginListL(). */
53 ECoreDumpServGetPluginList,
55 /** Generic call to obtain data about a list from the Core Dump Server.
56 @see RCoreDumpSession::GetListLC(). */
59 /** Generic call to obtain the list from the Core Dump Server.
60 @see RCoreDumpSession::GetListLC(). */
63 /** Request the loading or unloading of a plugin.
64 @see RCoreDumpSession::PluginRequestL(). */
65 ECoreDumpPluginRequest,
67 /** Obtain the current number of configuration parameters.
68 @see RCoreDumpSession::GetNumberConfigParametersL(). */
69 ECoreDumpGetNumberConfigParams,
71 /** Obtain a configuration parameter.
72 @see RCoreDumpSession::GetConfigParameterL(). */
73 ECoreDumpGetConfigParam,
75 /** Change a configuration parameter.
76 @see RCoreDumpSession::SetConfigParameterL(). */
77 ECoreDumpSetConfigParam,
81 ECoreDumpAttachThread,
84 ECoreDumpDetachThread,
87 ECoreDumpAttachProcess,
90 ECoreDumpDetachProcess,
92 /** Request the observation of a target or the cancellation of an observation.
93 @see RCoreDumpSession::ObservationRequestL(). */
94 ECoreDumpObservationRequest,
96 /** Request the restoration of a configuration.
97 @see RCoreDumpSession::LoadConfigL(). */
100 /** Request the saving of a configuration.
101 @see RCoreDumpSession::SaveConfigL(). */
105 ECoreDumpServEndMarker
109 /** Number of asynchronous requests */
110 #define KTTMaxAsyncRequests (4)
112 /** Default number of message slots per session
113 Same as KTTMaxAsyncRequests as synchronous requests provided
115 #define KTTDefaultMessageSlots (KTTMaxAsyncRequests)
120 Number of plugin details in a plugin transfer block.
121 Used between server library and cds
123 #define KNumPluginDetails 5
128 Class used for transfering fixed sized blocks of plugin information
129 between the Core Dump Server and its clients. This makes it easier
130 accross the client/server interface.
133 class TPluginInfoBlock
138 A simple array is used as the transfer block across the
141 TPluginInfo plugins[ KNumPluginDetails ];
146 Enumerations that identify the RProperty objects shared between various parts
147 of the core dump server system, plugins and clients.
149 The properties are defined by the Core Dump Session at startup.
150 These properties have the uid of the Core Dump Server.
154 @see CCoreDumpSession::ConstructL().
158 /** Current crash status. Updated by formatters during a crash.
159 RProperty of type RProperty::EText. */
162 /** Cancels the generation of a crash when set to non-zero.
163 RProperty of type RProperty::EInt. */
166 /** Number of crashes served by this session of the Core Dump Server.
167 RProperty of type RProperty::EInt. */
177 Class for requesting lists from the Core Dump Server.
178 The requestor appends the results of each request to obtain an entire list.
179 Uses "T<type>InfoBlock" classes to transfer data accross the process boundary.
185 /** Type of data to supply for this request */
186 enum TListRequestType
188 /** This request is for the formatter plugin list */
191 /** This request is for the writer plugin list */
194 /** This request is for the thread list */
197 /** This request is for the process list */
200 /** This request is for the executable list */
211 /** Type of data to supply for this request */
212 TListRequestType iListType;
214 /** Sub identifiers for the request. These are auxiliary ids that
215 can be used to refine the request. */
219 /** Requestor sets iIndex. iIndex==0 means the supplier should refresh the
220 list and supply from index 0. iIndex > 0 means supply element
221 [iIndex-1] and onwards. Requestor should thus increase iIndex
222 by how many elements were supplied on each call. */
225 /** Supplier writes iSupplied according to how many items
226 it copied into the buffer on this call */
229 /** Supplier writes iRemaining to indicate how many items it
230 has yet to supply. */
233 /** Number of bytes required to hold the resulting data */
234 TUint iRequiredDescriptorSize;
237 Spare variables for future expansion.
238 @internalTechnology */
240 /** @internalTechnology */
242 /** @internalTechnology */
244 /** @internalTechnology */
251 #endif // CORE_DUMP_SERVER_API_H