diff -r 000000000000 -r c6b0df440bee dbgsrv/coredumpserver/interface/server/coredumpserverapi.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dbgsrv/coredumpserver/interface/server/coredumpserverapi.h Tue Mar 02 10:33:16 2010 +0530 @@ -0,0 +1,340 @@ +// Copyright (c) 2007-2009 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: +// Definitions used between the Core Dump Server interface library and the server. +// + + + +/** + @file + @publishedPartner + @released +*/ + +#ifndef CORE_DUMP_SERVER_API_H +#define CORE_DUMP_SERVER_API_H + +#include +#include + +/** Core Dump Server executable name */ +_LIT(KCoreDumpServerName, "coredump_svr"); + +/** Core Dump Server UID */ +const TUid KCoreDumpServUid = { 0x10282FE5 }; + +/** Core Dump Server major version */ +const TUint KCoreDumpServMajorVersionNumber=1; + +/** Core Dump Server minor version */ +const TUint KCoreDumpServMinorVersionNumber=1; + +/** Core Dump Server build number */ +const TUint KCoreDumpServBuildVersionNumber=2; + +/** @see ECrashMediaName + * Length of each entry in the property ECrashMediaName + */ +const TInt KMaxEntryLength = 160; + +/** @see ECrashMediaName + * Number of entries in the property ECrashMediaName + */ +const TInt KNumofEntries = 5; + +/** @see ECrashMediaName + * Size of Media Name in the property ECrashMediaName + */ +const TInt KMaxMediaLength = 148; + +/** @see ECrashMediaName + * Length of UID in the property ECrashMediaName + */ +const TInt KMaxUIDLength = 10; + +/** @see ECrashMediaName + * Length of the status in the property ECrashMediaName + */ +const TInt KMaxStatusLength = 1; + +/** @see ECrashMediaName + * Length of the end character in the property ECrashMediaName + */ +const TInt KMaxEndLength = 1; + +/** @see ECrashMediaName + * Length of the crash progress buffer ECrashProgress + */ +const TInt KMaxCrashProgressBuffer = 50; + +enum TCoreDumpConfigParameters + { + ECrashEventTypes, + EPreCrashEventAction, + EPostCrashEventAction, + ELastParam + }; + +/** +Core Dump Server client-server requests +@internalTechnology +*/ +enum TCoreDumpServRqst + { + /** Obtain a plugin list. + @see RCoreDumpSession::GetPluginListL(). */ + ECoreDumpServGetPluginList, + + /** Generic call to obtain data about a list from the Core Dump Server. + @see RCoreDumpSession::GetListLC(). */ + ECoreDumpGetListInfo, + + /** Generic call to obtain the list from the Core Dump Server. + @see RCoreDumpSession::GetListLC(). */ + ECoreDumpGetListData, + + /** Request the loading or unloading of a plugin. + @see RCoreDumpSession::PluginRequestL(). */ + ECoreDumpPluginRequest, + + /** Obtain the current number of configuration parameters. + @see RCoreDumpSession::GetNumberConfigParametersL(). */ + ECoreDumpGetNumberConfigParams, + + /** Obtain a configuration parameter. + @see RCoreDumpSession::GetConfigParameterL(). */ + ECoreDumpGetConfigParam, + + /** Change a configuration parameter. + @see RCoreDumpSession::SetConfigParameterL(). */ + ECoreDumpSetConfigParam, + + + /** Unused */ + ECoreDumpAttachThread, + + /** Unused */ + ECoreDumpDetachThread, + + /** Unused */ + ECoreDumpAttachProcess, + + /** Unused */ + ECoreDumpDetachProcess, + + /** Request the observation of a target or the cancellation of an observation. + @see RCoreDumpSession::ObservationRequestL(). */ + ECoreDumpObservationRequest, + + /** Request the restoration of a configuration. + @see RCoreDumpSession::LoadConfigL(). */ + ECoreDumpLoadConfig, + + /** Request the saving of a configuration. + @see RCoreDumpSession::SaveConfigL(). */ + ECoreDumpSaveConfig, + + /** Deletes a crash in the flash partition */ + ECoreDumpDeleteLogRequest, + + /** Deletes entire flash partition */ + ECoreDumpDeleteCrashPartitionRequest, + + /** Processes a crash in the flash partition */ + ECoreDumpProcessFlashCrash, + + /** Asynchronously processes a crash */ + ECoreDumpProcessCrashAsync, + + /** Cancel asynchronous processesing a crash */ + ECoreDumpCancelProcessCrashAsync, + + /** Guard */ + ECoreDumpServEndMarker + + }; + +/** Number of asynchronous requests */ +#define KTTMaxAsyncRequests (4) + +/** Default number of message slots per session +Same as KTTMaxAsyncRequests as synchronous requests provided +by framework */ +#define KTTDefaultMessageSlots (KTTMaxAsyncRequests) + + +/** +@internalTechnology +Number of plugin details in a plugin transfer block. +Used between server library and cds +*/ +#define KNumPluginDetails 5 + + +/** +@internalTechnology +Class used for transfering fixed sized blocks of plugin information +between the Core Dump Server and its clients. This makes it easier +accross the client/server interface. +@see TPluginInfo +*/ +class TPluginInfoBlock +{ +public: + + /** + A simple array is used as the transfer block across the + process boundary. + */ + TPluginInfo plugins[ KNumPluginDetails ]; +}; + + +/** +Enumerations that identify the RProperty objects shared between various parts +of the core dump server system, plugins and clients. + +The properties are defined by the Core Dump Session at startup. +These properties have the uid of the Core Dump Server. + +@publishedPartner +@released +@see CCoreDumpSession::ConstructL(). +*/ +enum TCrashProgress + { + /** Current crash status. Updated by formatters during a crash. + RProperty of type RProperty::EText. */ + ECrashProgress, + + /** Cancels the generation of a crash when set to non-zero. + RProperty of type RProperty::EInt. */ + ECancelCrash, + + /** Number of crashes served by this session of the Core Dump Server. + RProperty of type RProperty::EInt. */ + ECrashCount, + + /** Name of the Crash Media Dump created. Updated by the CDS/Formatter + RProperty of type RProperty::EText. */ + ECrashMediaName + }; + + + +/** +@publishedPartner +@released + +Class for requesting lists from the Core Dump Server. +The requestor appends the results of each request to obtain an entire list. +Uses "TInfoBlock" classes to transfer data accross the process boundary. +*/ +class TListRequest +{ +public: + + /** Type of data to supply for this request */ + enum TListRequestType + { + /** This request is for the formatter plugin list */ + EFormatterList, + + /** This request is for the writer plugin list */ + EWriterList, + + /** This request is for the thread list */ + EThreadList, + + /** This request is for the process list */ + EProcessList, + + /** This request is for the executable list */ + EExecutableList, + + /** This request is for the crashes in flash */ + ECrashList, + + /** + @internalTechnology + Last marker + */ + EUnknownRequest + + }; + + /** Type of data to supply for this request */ + TListRequestType iListType; + + /** Sub identifiers for the request. These are auxiliary ids that + can be used to refine the request. */ + TUint32 iSubId1; + TUint32 iSubId2; + + /** Requestor sets iIndex. iIndex==0 means the supplier should refresh the + list and supply from index 0. iIndex > 0 means supply element + [iIndex-1] and onwards. Requestor should thus increase iIndex + by how many elements were supplied on each call. */ + TUint iIndex; + + /** Supplier writes iSupplied according to how many items + it copied into the buffer on this call */ + TUint iSupplied; + + /** Supplier writes iRemaining to indicate how many items it + has yet to supply. */ + TUint iRemaining; + + /** Number of bytes required to hold the resulting data */ + TUint iRequiredDescriptorSize; + + /** + Spare variables for future expansion. + @internalTechnology */ + TUint32 iSpare0; + /** @internalTechnology */ + TUint32 iSpare1; + /** @internalTechnology */ + TUint32 iSpare2; + /** @internalTechnology */ + TUint32 iSpare3; + +}; + +/** +@publishedPartner +@released + +Class for requesting change in configuration parameter from the CDS and loaded plugins. +*/ +class TConfigRequest +{ +public: + /** Type of data to supply for this request */ + COptionConfig::TParameterSource iSource; + + /** Sub identifiers for the request. These are auxiliary ids that + can be used to refine the request. */ + TUint32 iIndex; + TUint32 iInstance; + + /** + Spare variables for future expansion. + @internalTechnology */ + TUint32 iSpare0; + /** @internalTechnology */ + TUint32 iSpare1; +}; + +#endif // CORE_DUMP_SERVER_API_H