diff -r 185201be11b0 -r 516af714ebb4 memspy/Driver/Kernel/Include/MemSpyDriverPAndS.h --- a/memspy/Driver/Kernel/Include/MemSpyDriverPAndS.h Thu Sep 02 22:05:40 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,113 +0,0 @@ -/* -* Copyright (c) 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: -* -*/ - -#ifndef MEMSPYDRIVERPANDS_H -#define MEMSPYDRIVERPANDS_H - -// System includes -#include -#include -#include -#include - -// User includes -#include "MemSpyDriverLog.h" -#include - - -/** - * Spoof TProperty, the kernel-side object that encapsulates all P&S keys - */ -class TMemSpyProperty - { -public: - // The property attributes. - // Meaningful for defined properties only (ie. iType != RProperty::ETypeLimit) - // Constant while the property is defined - inline TUint32 Owner() { return iOwner; } - -public: - const TUint iCategory; - const TUint iKey; - -public: - // iType == RProperty::ETypeLimit means not defined - TUint8 iType; // updates require the system lock AND the feature lock - // reads require only one of them - // The property attributes. - // Meaningful for defined properties only (ie. iType != RProperty::ETypeLimit) - // Constant while the property is defined - TUint8 iAttr; - TCompiledSecurityPolicy iReadPolicy; - TCompiledSecurityPolicy iWritePolicy; - TUint32 iOwner; - - TUint iRefCount; // protected by the feature lock - TProperty* iNext; // hash table collision list link - - // protected by the feature lock - - class TBuf - { // Viraiable-size buffer for byte array property values - public: - static TBuf* New(TInt aSize); - - TUint16 iBufSize; // buffer size - constant - TUint16 iSize; // actual property size - protected by the system lock - TUint8 iBytes[1]; // byte array - protected by the system lock - }; - - // The property value - // Meaningful for defined properties only (ie. iType != RProperty::ETypeLimit) - union // the value (ie. iValue or iBuf->iBytes) is protected by the system lock - { - TBuf* iBuf; // pointer updates of a defined property (eg. buffer - // reallocation) require the system AND the feature locks; - // pointer reads (eg to get/set byte values) require any of them - TInt iValue; - }; - - // Called with system or feature locked - TInt Size() - { - return iBuf ? iBuf->iSize : 0; - } - - // Called with system or feature locked - TUint8* Buf() - { - return iBuf ? iBuf->iBytes : NULL; - } - - SDblQue iPendingQue; // pending subscriptions - protected by the system lock - }; - - - -/** - * Spoof of DPropertyRef - the kernel-side object that represents user-side P&S property keys - */ -class DMemSpyPropertyRef : public DObject - { -public: - TMemSpyProperty* iProp; - TRequestStatus* iStatus; - DThread* iClient; - TPropertySubsRequest iSubs; - }; - - -#endif