1.1 --- a/epoc32/include/e32cmn.h Wed Mar 31 12:27:01 2010 +0100
1.2 +++ b/epoc32/include/e32cmn.h Wed Mar 31 12:33:34 2010 +0100
1.3 @@ -1,9 +1,9 @@
1.4 // Copyright (c) 1994-2009 Nokia Corporation and/or its subsidiary(-ies).
1.5 // All rights reserved.
1.6 // This component and the accompanying materials are made available
1.7 -// 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
1.8 +// under the terms of the License "Eclipse Public License v1.0"
1.9 // which accompanies this distribution, and is available
1.10 -// at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
1.11 +// at the URL "http://www.eclipse.org/legal/epl-v10.html".
1.12 //
1.13 // Initial Contributors:
1.14 // Nokia Corporation - initial contribution.
1.15 @@ -1718,22 +1718,6 @@
1.16 typedef TBuf<KMaxName> TName;
1.17
1.18
1.19 -
1.20 -
1.21 -/**
1.22 -@internalTechnology
1.23 -*/
1.24 -typedef TBuf<KMaxKernelName> TKName;
1.25 -
1.26 -
1.27 -/**
1.28 -@internalTechnology
1.29 -*/
1.30 -typedef TBuf<KMaxInfoName> TInfoName;
1.31 -
1.32 -
1.33 -
1.34 -
1.35 /**
1.36 @publishedAll
1.37 @released
1.38 @@ -1791,12 +1775,6 @@
1.39
1.40
1.41
1.42 -/**
1.43 -@internalComponent
1.44 -*/
1.45 -typedef TBuf<KMaxDeviceInfo> TDeviceInfo;
1.46 -
1.47 -
1.48
1.49 /**
1.50 @publishedAll
1.51 @@ -1815,11 +1793,6 @@
1.52
1.53
1.54
1.55 -typedef TBuf<KMaxPassword> TPassword;
1.56 -
1.57 -
1.58 -
1.59 -
1.60 /**
1.61 @publishedAll
1.62 @released
1.63 @@ -2182,17 +2155,75 @@
1.64 TInt iY;
1.65 };
1.66
1.67 +
1.68 +
1.69 +
1.70 /**
1.71 -@internalTechnology
1.72 -@prototype For now, only intended to be used by TRwEvent and the Windows Server
1.73 +@publishedAll
1.74 +@prototype
1.75
1.76 Stores a three-dimensional point in Cartesian or polar co-ordinates.
1.77 -
1.78 Its data members (iX, iY and iZ) are public and can be manipulated directly.
1.79 +
1.80 */
1.81 class TPoint3D
1.82 {
1.83 public:
1.84 +#ifndef __KERNEL_MODE__
1.85 + enum TUninitialized { EUninitialized };
1.86 +
1.87 + /**
1.88 + TUninitialized Constructor
1.89 + */
1.90 + TPoint3D(TUninitialized) {}
1.91 + /**
1.92 + Constructs default TPoint3D, initialising its iX , iY and iZ members to zero.
1.93 + */
1.94 + inline TPoint3D();
1.95 + /**
1.96 + Constructs TPoint3D with the specified x,y and z co-ordinates.
1.97 + */
1.98 + inline TPoint3D(TInt aX,TInt aY,TInt aZ);
1.99 + /**
1.100 + Copy Construct from TPoint , initialises Z co-ordinate to Zero
1.101 + */
1.102 + inline TPoint3D(const TPoint& aPoint);
1.103 +
1.104 + IMPORT_C TBool operator==(const TPoint3D& aPoint3D) const;
1.105 + IMPORT_C TBool operator!=(const TPoint3D& aPoint3D) const;
1.106 +
1.107 + IMPORT_C TPoint3D& operator-=(const TPoint3D& aPoint3D);
1.108 + IMPORT_C TPoint3D& operator-=(const TPoint& aPoint);
1.109 +
1.110 + IMPORT_C TPoint3D& operator+=(const TPoint3D& aPoint3D);
1.111 + IMPORT_C TPoint3D& operator+=(const TPoint& aPoint);
1.112 +
1.113 + IMPORT_C TPoint3D operator-(const TPoint3D& aPoint3D) const;
1.114 + IMPORT_C TPoint3D operator-(const TPoint& aPoint) const;
1.115 +
1.116 + IMPORT_C TPoint3D operator+(const TPoint3D& aPoint3D) const;
1.117 + IMPORT_C TPoint3D operator+(const TPoint& aPoint) const;
1.118 + /**
1.119 + Unary minus operator. The operator returns the negation of this Point3D
1.120 + */
1.121 + IMPORT_C TPoint3D operator-() const;
1.122 +
1.123 + /**
1.124 + Set Method to set the xyz co-ordinates of TPoint3D
1.125 + */
1.126 + IMPORT_C void SetXYZ(TInt aX,TInt aY,TInt aZ);
1.127 +
1.128 + /**
1.129 + TPoint3D from TPoint, sets the Z co-ordinate to Zero
1.130 + */
1.131 + IMPORT_C void SetPoint(const TPoint& aPoint);
1.132 +
1.133 + /**
1.134 + Returns TPoint from TPoint3D
1.135 + */
1.136 + IMPORT_C TPoint AsPoint() const;
1.137 +#endif
1.138 +public:
1.139 /**
1.140 The x co-ordinate.
1.141 */
1.142 @@ -2207,6 +2238,8 @@
1.143 TInt iZ;
1.144 };
1.145
1.146 +
1.147 +
1.148 /**
1.149 @internalTechnology
1.150 @prototype For now, only intended to be used by TRwEvent and the Windows Server
1.151 @@ -2363,9 +2396,12 @@
1.152 {
1.153 public:
1.154 /**
1.155 - @internalComponent
1.156 + @publishedAll
1.157 + @released
1.158 +
1.159 + Read/Write attributes for the handle.
1.160 */
1.161 - enum
1.162 + enum TAttributes
1.163 {
1.164 EReadAccess=0x1,
1.165 EWriteAccess=0x2,
1.166 @@ -2466,6 +2502,66 @@
1.167 @publishedAll
1.168 @released
1.169
1.170 +A read-write lock.
1.171 +
1.172 +This is a lock for co-ordinating readers and writers to shared resources.
1.173 +It is designed to allow multiple concurrent readers.
1.174 +It is not a kernel side object and so does not inherit from RHandleBase.
1.175 +*/
1.176 +class RReadWriteLock
1.177 + {
1.178 +public:
1.179 + enum TReadWriteLockPriority
1.180 + {
1.181 + /** Pending writers always get the lock before pending readers */
1.182 + EWriterPriority,
1.183 + /** Lock is given alternately to pending readers and writers */
1.184 + EAlternatePriority,
1.185 + /** Pending readers always get the lock before pending writers - beware writer starvation! */
1.186 + EReaderPriority,
1.187 + };
1.188 + enum TReadWriteLockClientCategoryLimit
1.189 + {
1.190 + /** Maximum number of clients in each category: read locked, read lock pending, write lock pending */
1.191 + EReadWriteLockClientCategoryLimit = KMaxTUint16
1.192 + };
1.193 +
1.194 +public:
1.195 + inline RReadWriteLock();
1.196 + IMPORT_C TInt CreateLocal(TReadWriteLockPriority aPriority = EWriterPriority);
1.197 + IMPORT_C void Close();
1.198 +
1.199 + IMPORT_C void ReadLock();
1.200 + IMPORT_C void WriteLock();
1.201 + IMPORT_C TBool TryReadLock();
1.202 + IMPORT_C TBool TryWriteLock();
1.203 + IMPORT_C TBool TryUpgradeReadLock();
1.204 + IMPORT_C void DowngradeWriteLock();
1.205 + IMPORT_C void Unlock();
1.206 +
1.207 +private:
1.208 + RReadWriteLock(const RReadWriteLock& aLock);
1.209 + RReadWriteLock& operator=(const RReadWriteLock& aLock);
1.210 +
1.211 + TInt UnlockWriter();
1.212 + TInt UnlockAlternate();
1.213 + TInt UnlockReader();
1.214 +
1.215 +private:
1.216 + volatile TUint64 iValues; // Bits 0-15: readers; bit 16: writer; bits 32-47: readersPending; bits 48-63: writersPending
1.217 + TReadWriteLockPriority iPriority;
1.218 + RSemaphore iReaderSem;
1.219 + RSemaphore iWriterSem;
1.220 + TUint32 iSpare[4]; // Reserved for future development
1.221 + };
1.222 +
1.223 +
1.224 +
1.225 +
1.226 +/**
1.227 +@publishedAll
1.228 +@released
1.229 +
1.230 The user-side handle to a logical channel.
1.231
1.232 The class provides functions that are used to open a channel
1.233 @@ -2663,10 +2759,13 @@
1.234 };
1.235
1.236
1.237 - enum TFlags {ESingleThreaded=1, EFixedSize=2, ETraceAllocs=4};
1.238 + enum TFlags {ESingleThreaded=1, EFixedSize=2, ETraceAllocs=4, EMonitorMemory=8,};
1.239 struct SCheckInfo {TBool iAll; TInt iCount; const TDesC8* iFileName; TInt iLineNum;};
1.240 - struct SRAllocatorBurstFail {TInt iBurst; TInt iRate; TInt iUnused[2];}; /**< @internalComponent*/
1.241 +#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
1.242 + struct SRAllocatorBurstFail {TInt iBurst; TInt iRate; TInt iUnused[2];};
1.243 +#endif
1.244 enum {EMaxHandles=32};
1.245 +
1.246 public:
1.247 inline RAllocator();
1.248 #ifndef __KERNEL_MODE__
1.249 @@ -2767,25 +2866,22 @@
1.250 */
1.251 TInt allocCount;
1.252 };
1.253 -
1.254 - /**
1.255 - @internalComponent
1.256 - */
1.257 - struct _s_align {char c; double d;};
1.258 -
1.259 -
1.260 +
1.261 /**
1.262 @internalComponent
1.263 */
1.264 struct SHeapCellInfo { RHeap* iHeap; TInt iTotalAlloc; TInt iTotalAllocSize; TInt iTotalFree; TInt iLevelAlloc; SDebugCell* iStranded; };
1.265
1.266 -
1.267 - /**
1.268 - The default cell alignment.
1.269 - */
1.270 + /**
1.271 + @internalComponent
1.272 + */
1.273 + struct _s_align {char c; double d;};
1.274 +
1.275 + /**
1.276 + The default cell alignment.
1.277 + */
1.278 enum {ECellAlignment = sizeof(_s_align)-sizeof(double)};
1.279
1.280 -
1.281 /**
1.282 Size of a free cell header.
1.283 */
1.284 @@ -2828,11 +2924,16 @@
1.285 @internalComponent
1.286 */
1.287 enum TDefaultShrinkRatios {EShrinkRatio1=256, EShrinkRatioDflt=512};
1.288 -
1.289 - /**
1.290 +
1.291 +#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
1.292 + /**
1.293 @internalComponent
1.294 */
1.295 +#else
1.296 +private:
1.297 +#endif
1.298 typedef void (*TWalkFunc)(TAny*, TCellType, TAny*, TInt);
1.299 +
1.300 public:
1.301 UIMPORT_C virtual TAny* Alloc(TInt aSize);
1.302 UIMPORT_C virtual void Free(TAny* aPtr);
1.303 @@ -2968,7 +3069,8 @@
1.304 inline void ClientL(RThread& aClient, TOwnerType aOwnerType=EOwnerProcess) const;
1.305 IMPORT_C TUint ClientProcessFlags() const;
1.306 IMPORT_C const TRequestStatus* ClientStatus() const;
1.307 -
1.308 + IMPORT_C TBool ClientIsRealtime() const;
1.309 +
1.310 /**
1.311 Return the Secure ID of the process which sent this message.
1.312
1.313 @@ -2986,7 +3088,7 @@
1.314 @code
1.315 RMessagePtr2& message;
1.316 static _LIT_SECURITY_POLICY_S0(mySidPolicy, KRequiredSecureId);
1.317 - TInt error = mySidPolicy().CheckPolicy(message);
1.318 + TBool pass = mySidPolicy().CheckPolicy(message);
1.319 @endcode
1.320
1.321 This has the benefit that the TSecurityPolicy::CheckPolicy methods are
1.322 @@ -3021,7 +3123,7 @@
1.323 @code
1.324 RMessagePtr2& message;
1.325 static _LIT_SECURITY_POLICY_V0(myVidPolicy, KRequiredVendorId);
1.326 - TInt error = myVidPolicy().CheckPolicy(message);
1.327 + TBool pass = myVidPolicy().CheckPolicy(message);
1.328 @endcode
1.329
1.330 This has the benefit that the TSecurityPolicy::CheckPolicy methods are
1.331 @@ -3299,32 +3401,6 @@
1.332 };
1.333
1.334
1.335 -/** Default value to clear all data to committed to a chunk to.
1.336 -@see TChunkCreateInfo::SetClearByte()
1.337 -@see RChunk::Create()
1.338 -@internalComponent
1.339 -*/
1.340 -const TUint8 KChunkClearByteDefault = 0x3;
1.341 -
1.342 -/**
1.343 -Values that specify the attributes of a chunk to be created.
1.344 -
1.345 -@see RChunk::Create()
1.346 -@internalComponent
1.347 -*/
1.348 -enum TChunkCreateAttributes
1.349 - {
1.350 - /** Force local chunk to be named. Internal as only required for
1.351 - thread heap chunks, all other local chunks should be nameless.
1.352 - */
1.353 - EChunkAttLocalNamed = 0x400,
1.354 -
1.355 - EChunkAttMask = EChunkAttLocalNamed,
1.356 - };
1.357 -
1.358 -/**@internalComponent */
1.359 -const TUint32 KEmulatorImageFlagAllowDllData = 0x01;
1.360 -
1.361 /** Maximum size of capability set
1.362
1.363 @internalTechnology
1.364 @@ -3337,6 +3413,7 @@
1.365 */
1.366 const TInt KMaxSecurityPolicySize = KCapabilitySetMaxSize + 3*sizeof(TUint32);
1.367
1.368 +
1.369 /** Class representing an arbitrary set of capabilities.
1.370
1.371 This class can only contain capabilities supported by the current OS version.
1.372 @@ -3371,6 +3448,7 @@
1.373 @internalComponent
1.374 */
1.375 TBool NotEmpty() const;
1.376 +
1.377 private:
1.378 TUint32 iCaps[KCapabilitySetMaxSize / sizeof(TUint32)];
1.379 };
1.380 @@ -3453,7 +3531,10 @@
1.381 {
1.382 public:
1.383 inline TSecurityInfo();
1.384 -#ifndef __KERNEL_MODE__
1.385 +#ifdef __KERNEL_MODE__
1.386 + IMPORT_C TSecurityInfo(DProcess* aProcess);
1.387 + IMPORT_C TSecurityInfo(DThread* aThread);
1.388 +#else
1.389 IMPORT_C TSecurityInfo(RProcess aProcess);
1.390 IMPORT_C TSecurityInfo(RThread aThread);
1.391 IMPORT_C TSecurityInfo(RMessagePtr2 aMesPtr);
1.392 @@ -3632,7 +3713,7 @@
1.393 ETypeV3=5, /**< Vendor ID and up to 3 capabilities*/
1.394
1.395 /** The number of possible TSecurityPolicy types
1.396 - This is intended of internal Symbian use only.
1.397 + This is intended for internal Symbian use only.
1.398 @internalTechnology
1.399 */
1.400 ETypeLimit
1.401 @@ -4744,12 +4825,10 @@
1.402 #endif //__KERNEL_MODE__
1.403
1.404 private:
1.405 - /** @internalTechnology */
1.406 UIMPORT_C static TInt EmitDiagnostic(TPlatSecDiagnostic& aDiagnostic, const char* aContextText);
1.407 #else //__REMOVE_PLATSEC_DIAGNOSTICS__
1.408 #ifndef __KERNEL_MODE__
1.409 private:
1.410 - /** @internalTechnology */
1.411 IMPORT_C static TInt EmitDiagnostic(TPlatSecDiagnostic& aDiagnostic, const char* aContextText);
1.412 #endif // !__KERNEL_MODE__
1.413 #endif // !__REMOVE_PLATSEC_DIAGNOSTICS__
1.414 @@ -4760,22 +4839,8 @@
1.415 };
1.416
1.417
1.418 -
1.419 -/**
1.420 -@internalTechnology
1.421 - */
1.422 -struct TEmulatorImageHeader
1.423 - {
1.424 - TUid iUids[KMaxCheckedUid];
1.425 - TProcessPriority iPriority;
1.426 - SSecurityInfo iS;
1.427 - TUint32 iSpare1;
1.428 - TUint32 iSpare2;
1.429 - TUint32 iModuleVersion;
1.430 - TUint32 iFlags;
1.431 - };
1.432 -
1.433 -
1.434 +#define KMaxSerialNumLength 64
1.435 +typedef TBuf8<KMaxSerialNumLength> TMediaSerialNumber;
1.436
1.437
1.438 /**
1.439 @@ -4974,9 +5039,12 @@
1.440 class TIdentityRelation
1.441 {
1.442 public:
1.443 + inline TIdentityRelation();
1.444 inline TIdentityRelation( TBool (*anIdentity)(const T&, const T&) );
1.445 inline operator TGeneralIdentityRelation() const;
1.446 private:
1.447 + inline static TBool EqualityOperatorCompare(const T& aLeft, const T& aRight);
1.448 +private:
1.449 TGeneralIdentityRelation iIdentity;
1.450 };
1.451
1.452 @@ -6145,6 +6213,24 @@
1.453
1.454 #endif //__LEAVE_EQUALS_THROW__
1.455
1.456 +/* The macro __SYMBIAN_STDCPP_SUPPORT__ is defined when building a StdC++ target.
1.457 + * In this case, operator new and operator delete below should not be declared
1.458 + * to avoid clashing with StdC++ declarations.
1.459 + */
1.460 +
1.461 +#ifndef __SYMBIAN_STDCPP_SUPPORT__
1.462 +
1.463 +#ifndef __OPERATOR_NEW_DECLARED__
1.464 +
1.465 +/* Some operator new and operator delete overloads may be declared in compiler
1.466 + * pre-include files.
1.467 + *
1.468 + * __OPERATOR_NEW_DECLARED__ is #defined if they are, so that we can avoid
1.469 + * re-declaring them here.
1.470 + */
1.471 +
1.472 +#define __OPERATOR_NEW_DECLARED__
1.473 +
1.474 /**
1.475 @publishedAll
1.476 @released
1.477 @@ -6163,42 +6249,43 @@
1.478 */
1.479 GLREF_C void operator delete(TAny* aPtr) __NO_THROW;
1.480
1.481 +#ifndef __OMIT_VEC_OPERATOR_NEW_DECL__
1.482 +/**
1.483 +@publishedAll
1.484 +@released
1.485 +*/
1.486 +GLREF_C TAny* operator new[](TUint aSize) __NO_THROW;
1.487 +
1.488 +/**
1.489 +@publishedAll
1.490 +@released
1.491 +*/
1.492 +GLREF_C void operator delete[](TAny* aPtr) __NO_THROW;
1.493 +#endif // !__OMIT_VEC_OPERATOR_NEW_DECL__
1.494 +
1.495 +#endif // !__OPERATOR_NEW_DECLARED__
1.496 +
1.497 +#endif // !__SYMBIAN_STDCPP_SUPPORT__
1.498 +
1.499 +/**
1.500 +@publishedAll
1.501 +@released
1.502 +*/
1.503 +inline TAny* operator new(TUint aSize, TAny* aBase) __NO_THROW;
1.504 +
1.505 +/**
1.506 +@publishedAll
1.507 +@released
1.508 +*/
1.509 +inline void operator delete(TAny* aPtr, TAny* aBase) __NO_THROW;
1.510 +
1.511 #ifndef __PLACEMENT_VEC_NEW_INLINE
1.512 /**
1.513 @publishedAll
1.514 @released
1.515 */
1.516 -GLREF_C TAny* operator new[](TUint aSize) __NO_THROW;
1.517 -
1.518 -/**
1.519 -@publishedAll
1.520 -@released
1.521 -*/
1.522 -GLREF_C void operator delete[](TAny* aPtr) __NO_THROW;
1.523 -#endif
1.524 -
1.525 -/**
1.526 -@publishedAll
1.527 -@released
1.528 -*/
1.529 -inline TAny* operator new(TUint aSize, TAny* aBase) __NO_THROW;
1.530 -
1.531 -#ifndef __PLACEMENT_VEC_NEW_INLINE
1.532 -/**
1.533 -@publishedAll
1.534 -@released
1.535 -*/
1.536 inline TAny* operator new[](TUint aSize, TAny* aBase) __NO_THROW;
1.537
1.538 -#endif // !__PLACEMENT_VEC_NEW_INLINE
1.539 -
1.540 -/**
1.541 -@publishedAll
1.542 -@released
1.543 -*/
1.544 -inline void operator delete(TAny* aPtr, TAny* aBase) __NO_THROW;
1.545 -
1.546 -#ifndef __PLACEMENT_VEC_NEW_INLINE
1.547 /**
1.548 @publishedAll
1.549 @released
1.550 @@ -6280,12 +6367,17 @@
1.551
1.552 /**
1.553 @internalComponent
1.554 -
1.555 - Bit width of type information.
1.556 */
1.557 - enum {
1.558 - KBitsPerType=3 /** Number of bits of type information used for each of the 4 arguments. */
1.559 - };
1.560 + enum
1.561 + {
1.562 + KBitsPerType = 3, /**< Number of bits of type information used for each of the 4 arguments.*/
1.563 + KPinArgShift = KBitsPerType*KMaxMessageArguments, /**< Bit number of the start of the pin flags. */
1.564 + KPinArg0 = 1<<(KPinArgShift+0), /**< Set to pin argument at index 0.*/
1.565 + KPinArg1 = 1<<(KPinArgShift+1), /**< Set to pin argument at index 1.*/
1.566 + KPinArg2 = 1<<(KPinArgShift+2), /**< Set to pin argument at index 2.*/
1.567 + KPinArg3 = 1<<(KPinArgShift+3), /**< Set to pin argument at index 3.*/
1.568 + KPinMask = 0xf<<KPinArgShift, /**< The bits used for the pinning attributes of each argument.*/
1.569 + };
1.570
1.571
1.572 /**
1.573 @@ -6407,6 +6499,8 @@
1.574 #ifndef __KERNEL_MODE__
1.575 inline void Set(TInt aIndex,TDes16* aValue);
1.576 #endif
1.577 +
1.578 + inline TIpcArgs& PinArgs(TBool aPinArg0=ETrue, TBool aPinArg1=ETrue, TBool aPinArg2=ETrue, TBool aPinArg3=ETrue);
1.579 private:
1.580 inline static TArgType Type(TNothing);
1.581 inline static TArgType Type(TInt);
1.582 @@ -6566,11 +6660,21 @@
1.583
1.584 // The standard header file <exception> defines the following guard macro for EDG and CW, VC++, GCC respectively.
1.585 // The guard below is ugly. It will surely come back and bite us unless we resolve the whole issue of standard headers
1.586 -// when we move to supporting Standard C++.
1.587 -#if !defined(_EXCEPTION) && !defined(_EXCEPTION_) && !defined(__EXCEPTION__)
1.588 +// when we move to supporting Standard C++.
1.589 +
1.590 +// The macro __SYMBIAN_STDCPP_SUPPORT__ is defined when building a StdC++ target.
1.591 +// In this case, we include the StdC++ specification <exception> rather than declaring uncaught_exception.
1.592 +
1.593 +#ifdef __SYMBIAN_STDCPP_SUPPORT__
1.594 + #include <stdapis/stlportv5/exception>
1.595 +#elif !defined(_EXCEPTION) && !defined(_EXCEPTION_) && !defined(__EXCEPTION__)
1.596 // Declare standard C++ functions relating to exceptions here
1.597 namespace std {
1.598 - bool uncaught_exception(void);
1.599 +#if defined(__VC32__) || defined(__CW32__)
1.600 + bool uncaught_exception();
1.601 +#else
1.602 + IMPORT_C bool uncaught_exception();
1.603 +#endif
1.604 void terminate(void);
1.605 void unexpected(void);
1.606 typedef void (*terminate_handler)();
1.607 @@ -6668,6 +6772,28 @@
1.608 #endif //__X86__
1.609 #endif //__WINS__
1.610
1.611 +/**
1.612 +@internalTechnology
1.613 + */
1.614 +struct TEmulatorImageHeader
1.615 + {
1.616 + TUid iUids[KMaxCheckedUid];
1.617 + TProcessPriority iPriority;
1.618 + SSecurityInfo iS;
1.619 + TUint32 iSpare1;
1.620 + TUint32 iSpare2;
1.621 + TUint32 iModuleVersion;
1.622 + TUint32 iFlags;
1.623 + };
1.624 +
1.625 +// forward declaration of shareable data buffers pool infomation
1.626 +class TShPoolInfo;
1.627 +
1.628 #include <e32cmn.inl>
1.629
1.630 +#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
1.631 +#include <e32cmn_private.h>
1.632 +#endif
1.633 +
1.634 #endif //__E32CMN_H__
1.635 +