diff -r 000000000000 -r bde4ae8d615e os/kernelhwsrv/userlibandfileserver/fileserver/inc/f32file_private.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/os/kernelhwsrv/userlibandfileserver/fileserver/inc/f32file_private.h Fri Jun 15 03:10:57 2012 +0200 @@ -0,0 +1,320 @@ +// Copyright (c) 1995-2009 Nokia Corporation and/or its subsidiary(-ies). +// All rights reserved. +// This component and the accompanying materials are made available +// under the terms of the License "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: +// +// WARNING: This file contains some APIs which are internal and are subject +// to change without notice. Such APIs should therefore not be used +// outside the Kernel and Hardware Services package. +// + +/** + @file + @internalTechnology + @released +*/ + +#if !defined(__F32FILE_PRIVATE_H__) +#define __F32FILE_PRIVATE_H__ + +#include +#include +#include +#include + + +/** +@publishedPartner +@released + +Bit mask used when evaluating whether or not a session gets notified of a +debug event. + +@see DebugNotifySessions +*/ +const TUint KDebugNotifyMask=0xFF000000; // Reserved for debug notification + + +/** +@publishedPartner +@released + +The default blocksize value. + +This value is returned when you query the blocksize for a media type that does not +support the concept of 'block' (e.g. NOR flash media). + +@see TVolumeIOParamInfo +*/ +const TUint KDefaultVolumeBlockSize = 512; + + +/** +@internalTechnology + +Indicates that a TIpcArg slot 0 contains a descriptor. +This shall be ORed with the file server request aFunction. +Server should read from the location accordingly. + +@note This constant is intended for use inside Kernel and Hardware Services only. +*/ +const TUint KIpcArgSlot0Desc = 0x00010000; + +/** +@internalTechnology + +Indicates that a TIpcArg slot 1 contains a descriptor. +This shall be ORed with the file server request aFunction. +Server should read from the location accordingly. + +@note This constant is intended for use inside Kernel and Hardware Services only. +*/ +const TUint KIpcArgSlot1Desc = 0x00020000; + +/** +@internalTechnology + +Indicates that a TIpcArg slot 2 contains a descriptor. +This shall be ORed with the file server request aFunction. +Server should read from the location accordingly. + +@note This constant is intended for use inside Kernel and Hardware Services only. +*/ +const TUint KIpcArgSlot2Desc = 0x00040000; + + +/** +@internalTechnology + +Flag to indicate that the Adopt request is from RFile::Adopt or from RFile::AdoptFromXXX functions + +@note This constant is intended for use inside Kernel and Hardware Services only. +*/ +const TInt KFileAdopt32 = 0; + + +/** +@internalTechnology + +Flag to indicates that the Adopt request is from RFile::Duplicate. + +@note This constant is intended for use inside Kernel and Hardware Services only. +*/ +const TInt KFileDuplicate = 1; + + +/** +@internalTechnology + +Flag to indicates that the Adopt request is from RFile64::AdoptFromXXX functions + +@note This constant is intended for use inside Kernel and Hardware Services only. +*/ +const TInt KFileAdopt64 = 2; + + + +enum TStartupConfigurationCmd +/** +@publishedPartner +@released + +Command used to set file server configuration at startup. + +@see RFs::SetStartupConfiguration() +*/ + { + /** + Set loader thread priority + */ + ELoaderPriority, + + /** + Set TDrive flags. Value should be ETrue or EFalse + */ + ESetRugged, + /** + Command upper boundary + */ + EMaxStartupConfigurationCmd + }; + + +/** +Local drive mapping list - passed as argument to RFs::SetLocalDriveMapping(). + +@publishedPartner +@released +*/ +class TLocalDriveMappingInfo + { +public: + enum TDrvMapOperation {EWriteMappingsAndSet=0,EWriteMappingsNoSet=1,ESwapIntMappingAndSet=2}; +public: + TInt iDriveMapping[KMaxLocalDrives]; + TDrvMapOperation iOperation; + }; + + +/** +@internalTechnology +@released + +@note This class is intended for use inside Kernel and Hardware Services only. +*/ +typedef TPckgBuf TLocalDriveMappingInfoBuf; + + +/** +Client side plugin API. + +@publishedPartner +@released +*/ +class RPlugin : public RSubSessionBase + { +public: + IMPORT_C TInt Open(RFs& aFs, TInt aPos); + IMPORT_C void Close(); +protected: + IMPORT_C void DoRequest(TInt aReqNo,TRequestStatus& aStatus) const; + IMPORT_C void DoRequest(TInt aReqNo,TRequestStatus& aStatus,TDes8& a1) const; + IMPORT_C void DoRequest(TInt aReqNo,TRequestStatus& aStatus,TDes8& a1,TDes8& a2) const; + IMPORT_C TInt DoControl(TInt aFunction) const; + IMPORT_C TInt DoControl(TInt aFunction,TDes8& a1) const; + IMPORT_C TInt DoControl(TInt aFunction,TDes8& a1,TDes8& a2) const; + IMPORT_C void DoCancel(TUint aReqMask) const; + }; + +/** +@publishedPartner +@released + +Specifies that a plugin should determine for itself which drives it attaches to. + +@see RFs::MountPlugin +@see RFs::DismountPlugin +*/ +const TInt KPluginAutoAttach = 0x19; + +/** +@publishedPartner +@released + +Specifies that a plugin should mount on drive Z. + +@see RFs::MountPlugin +@see RFs::DismountPlugin +*/ +const TInt KPluginMountDriveZ = 0x1A; + + +/** +@publishedPartner +@released + +Specifies that a plugin should be mounted on all drives. + +@see RFs::MountPlugin +@see RFs::DismountPlugin +*/ +const TInt KPluginSupportAllDrives = 0x3FFFFFF; //All 26 bits (each corrosponding to a drive) are set to one. + +/** +@publishedPartner +@released + +Used to determine if a plugin is of version 2, meaning it can support drive Z. + +*/ +const TInt KPluginVersionTwo = 0x4000000; //bit 27 is set to one. + +/** +@publishedPartner +@released + +Specifies that a plugin should determine its own position in the plugin stack. + +@see RFs::MountPlugin +@see RFs::DismountPlugin +*/ +const TInt KPluginAutoLocate = 0xC8; + + +enum TSessionFlags +/** +@internalTechnology + +A set of session specific configuration flags. + +@note This enum definition is intended for use inside Kernel and Hardware Services only. +*/ + { + /** + Notify the user or write failures + */ + EFsSessionNotifyUser = KBit0, + + /** + Notify clients registered for change notification + */ + EFsSessionNotifyChange = KBit1, + + /** + Enables all session flags + */ + EFsSessionFlagsAll = KSet32, + }; + +/** +@internalTechnology + +@note This structure is intended for use inside Kernel and Hardware Services only. +*/ +struct SBlockMapArgs + { + TInt64 iStartPos; + TInt64 iEndPos; + }; + + +/** +@internalTechnology + +Validates the mask used to match drive attributes. + +@note This function is intended for use inside Kernel and Hardware Services only. + +@see RFs::DriveList +@see TFindFile::SetFindMask +*/ +TInt ValidateMatchMask( TUint aMask); + + +/** +Returns the entire size of the TEntry, including the valid portion of the name string. +The returned value is aligned to 4-byte boundary. +@param aPacked If ETrue, returns the length including packed iSizeHigh and iReserved. + If EFalse, returns the length including only the name. + +@note This function is intended for use inside Kernel and Hardware Services only. + +@internalTechnology +*/ +inline TInt EntrySize(const TEntry& anEntry, TBool aPacked = EFalse) + { + return(sizeof(TUint)+sizeof(TInt)+sizeof(TTime)+sizeof(TInt)+sizeof(TUidType)+Align4(anEntry.iName.Size()) + (aPacked ? (2*sizeof(TInt)) : 0)); + } + + + +#endif //__F32FILE_PRIVATE_H__