diff -r 657f875b013e -r 73ea206103e6 userlibandfileserver/fileserver/sfile/sf_std.h --- a/userlibandfileserver/fileserver/sfile/sf_std.h Fri Jun 11 15:02:23 2010 +0300 +++ b/userlibandfileserver/fileserver/sfile/sf_std.h Wed Jun 23 19:44:53 2010 +0300 @@ -114,6 +114,8 @@ #define __PLUGIN_PRINT3(t,a,b,c) #endif +#define _LOFF(p,T,f) ((T*)(((TUint8*)(p))-_FOFF(T,f))) + const TInt KMaxTotalDriveReserved =0x100000; const TInt KMaxSessionDriveReserved =0x10000; @@ -807,7 +809,7 @@ NONSHARABLE_CLASS(CPluginThread) : public CRequestThread { public: - CPluginThread(CFsPlugin& aPlugin); + CPluginThread(CFsPlugin& aPlugin, RLibrary aLibrary); ~CPluginThread(); void CompleteSessionRequests(CSessionFs* aSession, TInt aValue); @@ -819,7 +821,7 @@ void OperationLockSignal(); private: - static CPluginThread* NewL(CFsPlugin& aPlugin); + static CPluginThread* NewL(CFsPlugin& aPlugin, RLibrary aLibrary); TUint StartL(); virtual TInt DoThreadInitialise(); private: @@ -828,6 +830,7 @@ /** @prototype */ RSemaphore iOperationLock; + RLibrary iLib; // contains a handle to the library which created the plugin friend class FsPluginManager; }; @@ -1311,6 +1314,7 @@ inline void Init(); void ReStart(); TBool IsPluginRequest(); + static inline CFsMessageRequest* RequestFromMessage(const RMessagePtr2& aMessage); // UID of the process to touching the file. (To be used in notification framework). // TUid iUID;