1.1 --- a/epoc32/include/f32file.h Wed Mar 31 12:27:01 2010 +0100
1.2 +++ b/epoc32/include/f32file.h Wed Mar 31 12:33:34 2010 +0100
1.3 @@ -1,9 +1,9 @@
1.4 // Copyright (c) 1995-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 @@ -13,8 +13,6 @@
1.16 // Description:
1.17 //
1.18
1.19 -
1.20 -
1.21 /**
1.22 @file
1.23 @publishedAll
1.24 @@ -28,11 +26,21 @@
1.25 #include <e32base.h>
1.26 #endif
1.27
1.28 +#ifndef SYMBIAN_ENABLE_PUBLIC_PLATFORM_HEADER_SPLIT
1.29 +// Old implementation including platform e32svr.h (which includes the several other platform headers)...
1.30 #if !defined(__E32SVR_H__)
1.31 #include <e32svr.h>
1.32 #endif
1.33 -
1.34 #include <e32ldr.h>
1.35 +#else
1.36 +// New implementation including only the public headers needed for f32file.h...
1.37 +#include <e32ldr.h>
1.38 +// And the public headers previously included via e32svr.h but otherwise not needed for f32file.h...
1.39 +#include <e32def.h>
1.40 +#include <e32event.h>
1.41 +#include <e32debug.h>
1.42 +#include <e32keys.h>
1.43 +#endif
1.44
1.45
1.46 /**
1.47 @@ -132,6 +140,15 @@
1.48 @publishedAll
1.49 @released
1.50
1.51 +The maximum number of available proxy drives.
1.52 +*/
1.53 +const TInt KMaxProxyDrives=KMaxDrives-KMaxLocalDrives;
1.54 +
1.55 +
1.56 +/**
1.57 +@publishedAll
1.58 +@released
1.59 +
1.60 Defines a modifiable buffer descriptor to contain a drive list.
1.61
1.62 The descriptor has maximum length KMaxDrives, sufficient to contain
1.63 @@ -347,7 +364,7 @@
1.64 22 - File System Specific
1.65 23 - File System Specific
1.66
1.67 - 24 - Reserved
1.68 + 24 - KEntryAttPacked
1.69 25 - Reserved
1.70 26 - Reserved
1.71 27 - KEntryAttMatchExclude
1.72 @@ -479,40 +496,27 @@
1.73
1.74
1.75 /**
1.76 -@publishedPartner
1.77 +@publishedAll
1.78 @released
1.79
1.80 -Bit mask used when evaluating whether or not a session gets notified of a
1.81 -debug event.
1.82 -
1.83 -@see DebugNotifySessions
1.84 +Indicates that a TEntry (that is generally returned from a TEntryArray) is
1.85 +stored in packed format where the iSizeHigh and iReserved fields follow the
1.86 +valid characters of the name string. Before accessing the aforementioned
1.87 +members, the entry must be unpacked.
1.88 +
1.89 */
1.90 -const TUint KDebugNotifyMask=0xFF000000; // Reserved for debug notification
1.91 +const TUint KEntryAttPacked = 0x01000000;
1.92 +
1.93
1.94 /**
1.95 -
1.96 +@publishedAll
1.97 +@released
1.98 */
1.99 const TUint KMaxMapsPerCall = 0x8;
1.100
1.101
1.102
1.103
1.104 -/**
1.105 -@publishedPartner
1.106 -@released
1.107 -
1.108 -The default blocksize value.
1.109 -
1.110 -This value is returned when you query the blocksize for a media type that does not
1.111 -support the concept of 'block' (e.g. NOR flash media).
1.112 -
1.113 -@see TVolumeIOParamInfo
1.114 -*/
1.115 -const TUint KDefaultVolumeBlockSize = 512;
1.116 -
1.117 -
1.118 -
1.119 -
1.120 enum TNotifyType
1.121 /**
1.122 @publishedAll
1.123 @@ -577,39 +581,35 @@
1.124 ENotifyDisk=0x40
1.125 };
1.126
1.127 +/**
1.128 + @publishedAll
1.129 + @released
1.130 +
1.131 + Notification modes for safe media removal notification API
1.132 +
1.133 + @see RFs::NotifyDismount
1.134 +*/
1.135 enum TNotifyDismountMode
1.136 + {
1.137 + /** Used by a client to register for notification of pending dismount. This is the default behaviour for RFs::NotifyDismount*/
1.138 + EFsDismountRegisterClient=0x01,
1.139 +
1.140 + /**
1.141 + Used for graceful file system dismounting with notifying clients of a pending dismount.
1.142 + If all clients have responded by RFs::AllowDismount(), the file system will be dismounted.
1.143 + */
1.144 + EFsDismountNotifyClients=0x02,
1.145 +
1.146 + /** Used to forcibly dismount the file system without notifying clients. */
1.147 + EFsDismountForceDismount=0x03,
1.148 + };
1.149 +
1.150 +
1.151 +enum TFileCacheFlags
1.152 /**
1.153 @publishedAll
1.154 @released
1.155
1.156 -Notification modes for safe media removal notification API
1.157 -
1.158 -@see RFs::NotifyDismount
1.159 -*/
1.160 - {
1.161 - /**
1.162 - Used by a client to register for notification of pending dismount.
1.163 - - This is the default behaviour for RFs::NotifyDismount
1.164 - */
1.165 - EFsDismountRegisterClient=0x01,
1.166 -
1.167 - /**
1.168 - Used to notify clients of a pending dismount.
1.169 - */
1.170 - EFsDismountNotifyClients=0x02,
1.171 -
1.172 - /**
1.173 - Used to forcibly dismount the file system without notifying clients.
1.174 - */
1.175 - EFsDismountForceDismount=0x03,
1.176 - };
1.177 -
1.178 -
1.179 -enum TFileCacheFlags
1.180 -/**
1.181 -@publishedPartner
1.182 -@released
1.183 -
1.184 Flags used to enable file server drive-specific caching
1.185 */
1.186 {
1.187 @@ -644,34 +644,8 @@
1.188 EFileCacheWriteOn = 0x20,
1.189 };
1.190
1.191 -
1.192 -enum TStartupConfigurationCmd
1.193 /**
1.194 -@publishedPartner
1.195 -@released
1.196 -
1.197 -Command used to set file server configuration at startup.
1.198 -
1.199 -@see RFs::SetStartupConfiguration()
1.200 -*/
1.201 - {
1.202 - /**
1.203 - Set loader thread priority
1.204 - */
1.205 - ELoaderPriority,
1.206 -
1.207 - /**
1.208 - Set TDrive flags. Value should be ETrue or EFalse
1.209 - */
1.210 - ESetRugged,
1.211 - /**
1.212 - Command upper boundary
1.213 - */
1.214 - EMaxStartupConfigurationCmd
1.215 - };
1.216 -
1.217 -/**
1.218 -@publishedPartner
1.219 +@publishedAll
1.220 @released
1.221
1.222 Commands to query specific volume information.
1.223 @@ -777,11 +751,19 @@
1.224 */
1.225 TInt iRecWriteBufSize;
1.226
1.227 +
1.228 + /**
1.229 + The maximum file size that is supported by the file system mounted on this volume.
1.230 + Not all file system may provide this parameter; The value KMaxTUint64 (0xffffffffffffffff) means that this particular file system hasn't
1.231 + provided this information.
1.232 + */
1.233 + TUint64 iMaxSupportedFileSize;
1.234 +
1.235 private:
1.236 /*
1.237 Reserved space for future use
1.238 */
1.239 - TInt iReserved[4];
1.240 + TInt iReserved[2];
1.241 };
1.242
1.243 enum TDriveNumber
1.244 @@ -1145,7 +1127,21 @@
1.245 /**
1.246 Disables read ahead.
1.247 */
1.248 - EFileReadAheadOff =0x00010000
1.249 + EFileReadAheadOff =0x00010000,
1.250 +
1.251 + /**
1.252 + Enable delete on close
1.253 + */
1.254 + EDeleteOnClose =0x00020000,
1.255 +
1.256 + /**
1.257 + Enables operations on large files.
1.258 +
1.259 + @internalTechnology
1.260 +
1.261 + */
1.262 + EFileBigFile =0x00040000
1.263 +
1.264 };
1.265
1.266
1.267 @@ -1174,43 +1170,67 @@
1.268 {
1.269 /**
1.270 Indicates a high density floppy disk to be formatted.
1.271 +
1.272 + Obsolete.
1.273 +
1.274 + Can be ORed with EFullFormat or EQuickFormat, but does not
1.275 + have any effect.
1.276 */
1.277 EHighDensity,
1.278
1.279
1.280 /**
1.281 - Indicates a standard floppy disk to be formatted.
1.282 + Indicates a low density floppy disk to be formatted.
1.283 +
1.284 + Obsolete.
1.285 +
1.286 + Can be ORed with EFullFormat or EQuickFormat, but does not
1.287 + have any effect.
1.288 */
1.289 ELowDensity,
1.290
1.291
1.292 /**
1.293 - Performs a full format, erasing existing content and resetting the FAT
1.294 - and root directory.
1.295 + Performs a full format, erasing whole media content and creating
1.296 + new file system layout.
1.297
1.298 - This is the default, and can be ORed with bit EHighDensity or ELowDensity.
1.299 + This is the default mode.
1.300 */
1.301 EFullFormat=0,
1.302
1.303
1.304 /**
1.305 - Does the minimum required to format the device, only resetting the FAT
1.306 - and root directory.
1.307 -
1.308 - This is the default, and can be ORed with bit EHighDensity or ELowDensity.
1.309 + Performs a quick media format, erasing only required minimum media content.
1.310 + For example, for FAT file system it resets FAT and root directory content.
1.311 + Also preserves bad sectors if there are some on the volume.
1.312 */
1.313 EQuickFormat=0x100,
1.314
1.315
1.316 /**
1.317 - Indicates a custom formatting mode.
1.318 + Indicates a custom formatting mode. In this mode some optional file system
1.319 + specific parameters may be passed to RFormat::Open().
1.320 +
1.321 + @see TLDFormatInfo
1.322 + @see TInt RFormat::Open(RFs &aFs, const TDesC &aName, TUint aFormatMode, TInt &aCount, const TDesC8 &anInfo);
1.323 */
1.324 ESpecialFormat=0x200,
1.325
1.326 /**
1.327 Forced erase of locked media
1.328 */
1.329 - EForceErase=0x400
1.330 + EForceErase=0x400,
1.331 +
1.332 + /**
1.333 + This flag enables formatting the volume even if it has files or directories opened on it.
1.334 + If this flag is specified, the volume will be forcedly dismounted before performing media formatting.
1.335 +
1.336 + Even with this flag the RFormat::Open() can fail with KErrInUse in following cases:
1.337 + 1. if there are clamped files on the volume.
1.338 + 2. there are opened "disk access" objects, like RFormat or RRawDisk on the volume.
1.339 + */
1.340 + EForceFormat = 0x800,
1.341 +
1.342 };
1.343
1.344
1.345 @@ -1256,6 +1276,8 @@
1.346 };
1.347
1.348 /**
1.349 +@publishedAll
1.350 +@released
1.351
1.352 */
1.353 class TBlockMapEntry : public TBlockMapEntryBase
1.354 @@ -1267,7 +1289,9 @@
1.355 };
1.356
1.357 /**
1.358 -
1.359 +@publishedAll
1.360 +@released
1.361 +
1.362 */
1.363 typedef TBuf8<KMaxMapsPerCall*sizeof(TBlockMapEntry)> TBlockArrayDes;
1.364
1.365 @@ -1277,7 +1301,8 @@
1.366 };
1.367
1.368 /**
1.369 -
1.370 +@publishedAll
1.371 +@released
1.372 */
1.373 enum TBlockMapUsage
1.374 {
1.375 @@ -1327,6 +1352,13 @@
1.376 inline TBool IsUidPresent(TUid aUid) const;
1.377 inline TBool IsTypeValid() const;
1.378 inline TUid MostDerivedUid() const;
1.379 + IMPORT_C TInt64 FileSize() const;
1.380 + inline void SetFileSize(TInt64 aFileSize);
1.381 +
1.382 +private:
1.383 + inline void Copy(const TEntry& aEntry);
1.384 + inline void Unpack();
1.385 +
1.386 public:
1.387 /**
1.388 The individual bits within this byte indicate which attributes
1.389 @@ -1368,10 +1400,11 @@
1.390 TBufC<KMaxFileName> iName;
1.391
1.392 private:
1.393 + TUint32 iSizeHigh;
1.394 /**
1.395 Reserved for future expansion
1.396 */
1.397 - TUint32 iReserved[2];
1.398 + TUint32 iReserved;
1.399 };
1.400
1.401
1.402 @@ -1404,6 +1437,7 @@
1.403 TBuf8<KEntryArraySize> iBuf;
1.404 friend class RDir;
1.405 friend class RFs;
1.406 + friend class TRawEntryArray;
1.407 };
1.408
1.409
1.410 @@ -1424,14 +1458,14 @@
1.411 The type of media mounted on the drive.
1.412 */
1.413 TMediaType iType;
1.414 -
1.415 -
1.416 +
1.417 +
1.418 /**
1.419 Indicates whether the drive supports a battery, and if so, its state.
1.420 */
1.421 TBatteryState iBattery;
1.422 -
1.423 -
1.424 +
1.425 +
1.426 /**
1.427 The drive attributes.
1.428
1.429 @@ -1440,7 +1474,8 @@
1.430 @see KDriveAttRedirected
1.431 @see KDriveAttSubsted
1.432 @see KDriveAttInternal
1.433 - @see KDriveAttRemovable
1.434 + @see KDriveAttRemovable
1.435 + @see KDriveAttExternal
1.436 */
1.437 TUint iDriveAtt;
1.438
1.439 @@ -1456,11 +1491,12 @@
1.440 @see KMediaAttLocked
1.441 */
1.442 TUint iMediaAtt;
1.443 -private:
1.444 +
1.445 +
1.446 /**
1.447 - Reserved for future expansion
1.448 + The type of interface used to connect to the media.
1.449 */
1.450 - TUint32 iReserved;
1.451 + TConnectionBusType iConnectionBusType;
1.452 };
1.453
1.454
1.455 @@ -1531,7 +1567,7 @@
1.456 @see TFileCacheFlags
1.457 */
1.458 TFileCacheFlags iFileCacheFlags;
1.459 -
1.460 +
1.461 /**
1.462 @prototype
1.463 @internalTechnology
1.464 @@ -1786,7 +1822,16 @@
1.465 };
1.466
1.467
1.468 +#if defined SYMBIAN_PRIVATE_EFSRV
1.469 + #define EFSRV_EXPORT_C
1.470 + #define EFSRV_IMPORT_C
1.471 +#else
1.472 + #define EFSRV_EXPORT_C EXPORT_C
1.473 + #define EFSRV_IMPORT_C IMPORT_C
1.474 +#endif
1.475
1.476 +// forward declarations from e32ldr_private.h
1.477 +class RFileClamp;
1.478
1.479 class RFs : public RSessionBase
1.480 /**
1.481 @@ -1860,103 +1905,106 @@
1.482 */
1.483 {
1.484 public:
1.485 - IMPORT_C TInt Connect(TInt aMessageSlots=KFileServerDefaultMessageSlots);
1.486 - IMPORT_C TVersion Version() const;
1.487 - IMPORT_C TInt AddFileSystem(const TDesC& aFileName) const;
1.488 - IMPORT_C TInt MountFileSystem(const TDesC& aFileSystemName,TInt aDrive) const;
1.489 - IMPORT_C TInt MountFileSystem(const TDesC& aFileSystemName,TInt aDrive, TBool aIsSync) const;
1.490 - IMPORT_C TInt MountFileSystemAndScan(const TDesC& aFileSystemName,TInt aDrive,TBool& aIsMountSuccess) const;
1.491 - IMPORT_C TInt MountFileSystem(const TDesC& aFileSystemName,const TDesC& aExtensionName,TInt aDrive);
1.492 - IMPORT_C TInt MountFileSystem(const TDesC& aFileSystemName,const TDesC& aExtensionName,TInt aDrive, TBool aIsSync);
1.493 - IMPORT_C TInt MountFileSystemAndScan(const TDesC& aFileSystemName,const TDesC& aExtensionName,TInt aDrive,TBool& aIsMountSuccess) const;
1.494 - IMPORT_C TInt DismountFileSystem(const TDesC& aFileSystemName,TInt aDrive) const;
1.495 - IMPORT_C TInt RemoveFileSystem(const TDesC& aFileSystemName) const;
1.496 - IMPORT_C TInt FileSystemName(TDes& aName,TInt aDrive) const;
1.497 - IMPORT_C TInt AddExtension(const TDesC& aFileName);
1.498 - IMPORT_C TInt MountExtension(const TDesC& aExtensionName,TInt aDrive);
1.499 - IMPORT_C TInt DismountExtension(const TDesC& aExtensionName,TInt aDrive);
1.500 - IMPORT_C TInt RemoveExtension(const TDesC& aExtensionName);
1.501 - IMPORT_C TInt ExtensionName(TDes& aExtensionName,TInt aDrive,TInt aPos);
1.502 - IMPORT_C TInt RemountDrive(TInt aDrive,const TDesC8* aMountInfo=NULL,TUint aFlags=0);
1.503 - IMPORT_C void NotifyChange(TNotifyType aType,TRequestStatus& aStat);
1.504 - IMPORT_C void NotifyChange(TNotifyType aType,TRequestStatus& aStat,const TDesC& aPathName);
1.505 - IMPORT_C void NotifyChangeCancel();
1.506 - IMPORT_C void NotifyChangeCancel(TRequestStatus& aStat);
1.507 - IMPORT_C void NotifyDiskSpace(TInt64 aThreshold,TInt aDrive,TRequestStatus& aStat);
1.508 - IMPORT_C void NotifyDiskSpaceCancel(TRequestStatus& aStat);
1.509 - IMPORT_C void NotifyDiskSpaceCancel();
1.510 - IMPORT_C TInt DriveList(TDriveList& aList) const;
1.511 - IMPORT_C TInt DriveList(TDriveList& aList, TUint aFlags) const;
1.512 - IMPORT_C TInt Drive(TDriveInfo& anInfo,TInt aDrive=KDefaultDrive) const;
1.513 - IMPORT_C TInt Volume(TVolumeInfo& aVol,TInt aDrive=KDefaultDrive) const;
1.514 - IMPORT_C void Volume(TVolumeInfo& aVol,TInt aDrive, TRequestStatus& aStat) const;
1.515 - IMPORT_C TInt SetVolumeLabel(const TDesC& aName,TInt aDrive=KDefaultDrive);
1.516 - IMPORT_C TInt Subst(TDes& aPath,TInt aDrive=KDefaultDrive) const;
1.517 - IMPORT_C TInt SetSubst(const TDesC& aPath,TInt aDrive=KDefaultDrive);
1.518 - IMPORT_C TInt RealName(const TDesC& aName,TDes& aResult) const;
1.519 - IMPORT_C TInt GetMediaSerialNumber(TMediaSerialNumber& aSerialNum, TInt aDrive);
1.520 - IMPORT_C TInt SessionPath(TDes& aPath) const;
1.521 - IMPORT_C TInt SetSessionPath(const TDesC& aPath);
1.522 - IMPORT_C TInt Parse(const TDesC& aName,TParse& aParse) const;
1.523 - IMPORT_C TInt Parse(const TDesC& aName,const TDesC& aRelated,TParse& aParse) const;
1.524 - IMPORT_C TInt MkDir(const TDesC& aPath);
1.525 - IMPORT_C TInt MkDirAll(const TDesC& aPath);
1.526 - IMPORT_C TInt RmDir(const TDesC& aPath);
1.527 - IMPORT_C TInt GetDir(const TDesC& aName,TUint anEntryAttMask,TUint anEntrySortKey,CDir*& anEntryList) const;
1.528 - IMPORT_C TInt GetDir(const TDesC& aName,TUint anEntryAttMask,TUint anEntrySortKey,CDir*& anEntryList,CDir*& aDirList) const;
1.529 - IMPORT_C TInt GetDir(const TDesC& aName,const TUidType& anEntryUid,TUint anEntrySortKey,CDir*& aFileList) const;
1.530 - IMPORT_C TInt Delete(const TDesC& aName);
1.531 - IMPORT_C TInt Rename(const TDesC& anOldName,const TDesC& aNewName);
1.532 - IMPORT_C TInt Replace(const TDesC& anOldName,const TDesC& aNewName);
1.533 - IMPORT_C TInt Att(const TDesC& aName,TUint& aAttValue) const;
1.534 - IMPORT_C TInt SetAtt(const TDesC& aName,TUint aSetAttMask,TUint aClearAttMask);
1.535 - IMPORT_C TInt Modified(const TDesC& aName,TTime& aTime) const;
1.536 - IMPORT_C TInt SetModified(const TDesC& aName,const TTime& aTime);
1.537 - IMPORT_C TInt Entry(const TDesC& aName,TEntry& anEntry) const;
1.538 - IMPORT_C TInt SetEntry(const TDesC& aName,const TTime& aTime,TUint aSetAttMask,TUint aClearAttMask);
1.539 - IMPORT_C TInt ReadFileSection(const TDesC& aName,TInt aPos,TDes8& aDes,TInt aLength) const;
1.540 - IMPORT_C static TBool IsValidDrive(TInt aDrive);
1.541 - IMPORT_C static TInt CharToDrive(TChar aChar,TInt& aDrive);
1.542 - IMPORT_C static TInt DriveToChar(TInt aDrive,TChar& aChar);
1.543 - IMPORT_C static TBool IsRomAddress(TAny* aAny);
1.544 - IMPORT_C static TDriveNumber GetSystemDrive();
1.545 - IMPORT_C static TChar GetSystemDriveChar();
1.546 - IMPORT_C TInt SetSystemDrive(TDriveNumber aSystemDrive);
1.547 - IMPORT_C void ResourceCountMarkStart() const;
1.548 - IMPORT_C void ResourceCountMarkEnd() const;
1.549 - IMPORT_C TInt ResourceCount() const;
1.550 - IMPORT_C TInt IsFileOpen(const TDesC& aFile,TBool& anAnswer) const;
1.551 - IMPORT_C TInt CheckDisk(const TDesC& aDrive) const;
1.552 - IMPORT_C TInt ScanDrive(const TDesC& aDrive) const;
1.553 - IMPORT_C TInt GetShortName(const TDesC& aLongName,TDes& aShortName) const;
1.554 - IMPORT_C TInt GetLongName(const TDesC& aShortName,TDes& aLongName) const;
1.555 - IMPORT_C TBool GetNotifyUser();
1.556 - IMPORT_C void SetNotifyUser(TBool aValue);
1.557 - IMPORT_C TUint8* IsFileInRom(const TDesC& aFileName) const;
1.558 - IMPORT_C TBool IsValidName(const TDesC& anEntryName) const;
1.559 - IMPORT_C TBool IsValidName(const TDesC& aFileName,TText& aBadChar) const;
1.560 - IMPORT_C TInt GetDriveName(TInt aDrive,TDes& aDriveName) const;
1.561 - IMPORT_C TInt SetDriveName(TInt aDrive,const TDesC& aDriveName);
1.562 - IMPORT_C TInt LoaderHeapFunction(TInt aFunction, TAny *aArg1=NULL, TAny *aArg2=NULL);
1.563 + EFSRV_IMPORT_C TInt Connect(TInt aMessageSlots=KFileServerDefaultMessageSlots);
1.564 + EFSRV_IMPORT_C void Close();
1.565 + EFSRV_IMPORT_C TVersion Version() const;
1.566 + EFSRV_IMPORT_C TInt AddFileSystem(const TDesC& aFileName) const;
1.567 + EFSRV_IMPORT_C TInt MountFileSystem(const TDesC& aFileSystemName,TInt aDrive) const;
1.568 + EFSRV_IMPORT_C TInt MountFileSystem(const TDesC& aFileSystemName,TInt aDrive, TBool aIsSync) const;
1.569 + EFSRV_IMPORT_C TInt MountFileSystemAndScan(const TDesC& aFileSystemName,TInt aDrive,TBool& aIsMountSuccess) const;
1.570 + EFSRV_IMPORT_C TInt MountFileSystem(const TDesC& aFileSystemName,const TDesC& aExtensionName,TInt aDrive);
1.571 + EFSRV_IMPORT_C TInt MountFileSystem(const TDesC& aFileSystemName,const TDesC& aExtensionName,TInt aDrive, TBool aIsSync);
1.572 + EFSRV_IMPORT_C TInt MountFileSystemAndScan(const TDesC& aFileSystemName,const TDesC& aExtensionName,TInt aDrive,TBool& aIsMountSuccess) const;
1.573 + EFSRV_IMPORT_C TInt DismountFileSystem(const TDesC& aFileSystemName,TInt aDrive) const;
1.574 + EFSRV_IMPORT_C TInt RemoveFileSystem(const TDesC& aFileSystemName) const;
1.575 + EFSRV_IMPORT_C TInt FileSystemName(TDes& aName,TInt aDrive) const;
1.576 + EFSRV_IMPORT_C TInt AddExtension(const TDesC& aFileName);
1.577 + EFSRV_IMPORT_C TInt MountExtension(const TDesC& aExtensionName,TInt aDrive);
1.578 + EFSRV_IMPORT_C TInt DismountExtension(const TDesC& aExtensionName,TInt aDrive);
1.579 + EFSRV_IMPORT_C TInt RemoveExtension(const TDesC& aExtensionName);
1.580 + EFSRV_IMPORT_C TInt ExtensionName(TDes& aExtensionName,TInt aDrive,TInt aPos);
1.581 + EFSRV_IMPORT_C TInt RemountDrive(TInt aDrive,const TDesC8* aMountInfo=NULL,TUint aFlags=0);
1.582 + EFSRV_IMPORT_C void NotifyChange(TNotifyType aType,TRequestStatus& aStat);
1.583 + EFSRV_IMPORT_C void NotifyChange(TNotifyType aType,TRequestStatus& aStat,const TDesC& aPathName);
1.584 + EFSRV_IMPORT_C void NotifyChangeCancel();
1.585 + EFSRV_IMPORT_C void NotifyChangeCancel(TRequestStatus& aStat);
1.586 + EFSRV_IMPORT_C void NotifyDiskSpace(TInt64 aThreshold,TInt aDrive,TRequestStatus& aStat);
1.587 + EFSRV_IMPORT_C void NotifyDiskSpaceCancel(TRequestStatus& aStat);
1.588 + EFSRV_IMPORT_C void NotifyDiskSpaceCancel();
1.589 + EFSRV_IMPORT_C TInt DriveList(TDriveList& aList) const;
1.590 + EFSRV_IMPORT_C TInt DriveList(TDriveList& aList, TUint aFlags) const;
1.591 + EFSRV_IMPORT_C TInt Drive(TDriveInfo& anInfo,TInt aDrive=KDefaultDrive) const;
1.592 + EFSRV_IMPORT_C TInt Volume(TVolumeInfo& aVol,TInt aDrive=KDefaultDrive) const;
1.593 + EFSRV_IMPORT_C void Volume(TVolumeInfo& aVol,TInt aDrive, TRequestStatus& aStat) const;
1.594 + EFSRV_IMPORT_C TInt SetVolumeLabel(const TDesC& aName,TInt aDrive=KDefaultDrive);
1.595 + EFSRV_IMPORT_C TInt Subst(TDes& aPath,TInt aDrive=KDefaultDrive) const;
1.596 + EFSRV_IMPORT_C TInt SetSubst(const TDesC& aPath,TInt aDrive=KDefaultDrive);
1.597 + EFSRV_IMPORT_C TInt RealName(const TDesC& aName,TDes& aResult) const;
1.598 + EFSRV_IMPORT_C TInt GetMediaSerialNumber(TMediaSerialNumber& aSerialNum, TInt aDrive);
1.599 + EFSRV_IMPORT_C TInt SessionPath(TDes& aPath) const;
1.600 + EFSRV_IMPORT_C TInt SetSessionPath(const TDesC& aPath);
1.601 + EFSRV_IMPORT_C TInt Parse(const TDesC& aName,TParse& aParse) const;
1.602 + EFSRV_IMPORT_C TInt Parse(const TDesC& aName,const TDesC& aRelated,TParse& aParse) const;
1.603 + EFSRV_IMPORT_C TInt MkDir(const TDesC& aPath);
1.604 + EFSRV_IMPORT_C TInt MkDirAll(const TDesC& aPath);
1.605 + EFSRV_IMPORT_C TInt RmDir(const TDesC& aPath);
1.606 + EFSRV_IMPORT_C TInt GetDir(const TDesC& aName,TUint anEntryAttMask,TUint anEntrySortKey,CDir*& anEntryList) const;
1.607 + EFSRV_IMPORT_C TInt GetDir(const TDesC& aName,TUint anEntryAttMask,TUint anEntrySortKey,CDir*& anEntryList,CDir*& aDirList) const;
1.608 + EFSRV_IMPORT_C TInt GetDir(const TDesC& aName,const TUidType& anEntryUid,TUint anEntrySortKey,CDir*& aFileList) const;
1.609 + EFSRV_IMPORT_C TInt Delete(const TDesC& aName);
1.610 + EFSRV_IMPORT_C TInt Rename(const TDesC& anOldName,const TDesC& aNewName);
1.611 + EFSRV_IMPORT_C TInt Replace(const TDesC& anOldName,const TDesC& aNewName);
1.612 + EFSRV_IMPORT_C TInt Att(const TDesC& aName,TUint& aAttValue) const;
1.613 + EFSRV_IMPORT_C TInt SetAtt(const TDesC& aName,TUint aSetAttMask,TUint aClearAttMask);
1.614 + EFSRV_IMPORT_C TInt Modified(const TDesC& aName,TTime& aTime) const;
1.615 + EFSRV_IMPORT_C TInt SetModified(const TDesC& aName,const TTime& aTime);
1.616 + EFSRV_IMPORT_C TInt Entry(const TDesC& aName,TEntry& anEntry) const;
1.617 + EFSRV_IMPORT_C TInt SetEntry(const TDesC& aName,const TTime& aTime,TUint aSetAttMask,TUint aClearAttMask);
1.618 +private:
1.619 + EFSRV_IMPORT_C TInt ReadFileSection_RESERVED(const TDesC& aName,TInt aPos,TDes8& aDes,TInt aLength) const;
1.620 +public:
1.621 + EFSRV_IMPORT_C static TBool IsValidDrive(TInt aDrive);
1.622 + EFSRV_IMPORT_C static TInt CharToDrive(TChar aChar,TInt& aDrive);
1.623 + EFSRV_IMPORT_C static TInt DriveToChar(TInt aDrive,TChar& aChar);
1.624 + EFSRV_IMPORT_C static TBool IsRomAddress(TAny* aAny);
1.625 + EFSRV_IMPORT_C static TDriveNumber GetSystemDrive();
1.626 + EFSRV_IMPORT_C static TChar GetSystemDriveChar();
1.627 + EFSRV_IMPORT_C TInt SetSystemDrive(TDriveNumber aSystemDrive);
1.628 + EFSRV_IMPORT_C void ResourceCountMarkStart() const;
1.629 + EFSRV_IMPORT_C void ResourceCountMarkEnd() const;
1.630 + EFSRV_IMPORT_C TInt ResourceCount() const;
1.631 + EFSRV_IMPORT_C TInt IsFileOpen(const TDesC& aFile,TBool& anAnswer) const;
1.632 + EFSRV_IMPORT_C TInt CheckDisk(const TDesC& aDrive) const;
1.633 + EFSRV_IMPORT_C TInt ScanDrive(const TDesC& aDrive) const;
1.634 + EFSRV_IMPORT_C TInt GetShortName(const TDesC& aLongName,TDes& aShortName) const;
1.635 + EFSRV_IMPORT_C TInt GetLongName(const TDesC& aShortName,TDes& aLongName) const;
1.636 + EFSRV_IMPORT_C TBool GetNotifyUser();
1.637 + EFSRV_IMPORT_C void SetNotifyUser(TBool aValue);
1.638 + EFSRV_IMPORT_C TUint8* IsFileInRom(const TDesC& aFileName) const;
1.639 + EFSRV_IMPORT_C TBool IsValidName(const TDesC& anEntryName) const;
1.640 + EFSRV_IMPORT_C TBool IsValidName(const TDesC& aFileName,TText& aBadChar) const;
1.641 + EFSRV_IMPORT_C TInt GetDriveName(TInt aDrive,TDes& aDriveName) const;
1.642 + EFSRV_IMPORT_C TInt SetDriveName(TInt aDrive,const TDesC& aDriveName);
1.643 + EFSRV_IMPORT_C TInt LoaderHeapFunction(TInt aFunction, TAny *aArg1=NULL, TAny *aArg2=NULL);
1.644 IMPORT_C TInt SetErrorCondition(TInt anError,TInt aCount=0);
1.645 - IMPORT_C TInt SetDebugRegister(TInt aVal);
1.646 - IMPORT_C TInt SetAllocFailure(TInt aAllocNum);
1.647 - IMPORT_C void DebugNotify(TInt aDrive,TUint aNotifyType,TRequestStatus& aStat);
1.648 - IMPORT_C TInt ControlIo(TInt aDrive,TInt aCommand);
1.649 - IMPORT_C TInt ControlIo(TInt aDrive,TInt aCommand,TDes8& aParam1);
1.650 - IMPORT_C TInt ControlIo(TInt aDrive,TInt aCommand,TDes8& aParam1,TDes8& aParam2);
1.651 - IMPORT_C TInt ControlIo(TInt aDrive,TInt aCommand,TAny* aParam1,TAny* aParam2);
1.652 - IMPORT_C TInt LockDrive(TInt aDrv, const TMediaPassword &aOld, const TMediaPassword &aNew, TBool aStr);
1.653 - IMPORT_C TInt UnlockDrive(TInt aDrv, const TMediaPassword &Pswd, TBool aStr);
1.654 - IMPORT_C TInt ClearPassword(TInt aDrv, const TMediaPassword &aPswd);
1.655 - IMPORT_C TInt ErasePassword(TInt aDrv);
1.656 - IMPORT_C TInt SetSessionToPrivate(TInt aDrive);
1.657 - IMPORT_C TInt PrivatePath(TDes& aPath);
1.658 - IMPORT_C TInt CreatePrivatePath(TInt aDrive);
1.659 - IMPORT_C void StartupInitComplete(TRequestStatus& aStat);
1.660 - IMPORT_C TInt SetLocalDriveMapping(const TDesC8& aMapping);
1.661 -
1.662 - IMPORT_C TInt FinaliseDrives();
1.663 + EFSRV_IMPORT_C TInt SetDebugRegister(TInt aVal);
1.664 + EFSRV_IMPORT_C TInt SetAllocFailure(TInt aAllocNum);
1.665 + EFSRV_IMPORT_C void DebugNotify(TInt aDrive,TUint aNotifyType,TRequestStatus& aStat);
1.666 + EFSRV_IMPORT_C TInt ControlIo(TInt aDrive,TInt aCommand);
1.667 + EFSRV_IMPORT_C TInt ControlIo(TInt aDrive,TInt aCommand,TDes8& aParam1);
1.668 + EFSRV_IMPORT_C TInt ControlIo(TInt aDrive,TInt aCommand,TDes8& aParam1,TDes8& aParam2);
1.669 + EFSRV_IMPORT_C TInt ControlIo(TInt aDrive,TInt aCommand,TAny* aParam1,TAny* aParam2);
1.670 + EFSRV_IMPORT_C TInt LockDrive(TInt aDrv, const TMediaPassword &aOld, const TMediaPassword &aNew, TBool aStr);
1.671 + EFSRV_IMPORT_C TInt UnlockDrive(TInt aDrv, const TMediaPassword &Pswd, TBool aStr);
1.672 + EFSRV_IMPORT_C TInt ClearPassword(TInt aDrv, const TMediaPassword &aPswd);
1.673 + EFSRV_IMPORT_C TInt ErasePassword(TInt aDrv);
1.674 + EFSRV_IMPORT_C TInt SetSessionToPrivate(TInt aDrive);
1.675 + EFSRV_IMPORT_C TInt PrivatePath(TDes& aPath);
1.676 + EFSRV_IMPORT_C TInt CreatePrivatePath(TInt aDrive);
1.677 + EFSRV_IMPORT_C void StartupInitComplete(TRequestStatus& aStat);
1.678 + EFSRV_IMPORT_C TInt SetLocalDriveMapping(const TDesC8& aMapping);
1.679 +
1.680 + EFSRV_IMPORT_C TInt FinaliseDrives();
1.681
1.682 /** specifies drive finalisation modes */
1.683 enum TFinaliseDrvMode
1.684 @@ -1966,38 +2014,89 @@
1.685 EForceUnfinalise///< @internalComponent mark the drive as "not finalised" can result in KErrAbort if the dive is in inconsistent state.
1.686 };
1.687
1.688 - IMPORT_C TInt FinaliseDrive(TInt aDriveNo, TFinaliseDrvMode aMode) const;
1.689 -
1.690 - IMPORT_C TInt SwapFileSystem(const TDesC& aOldFileSystemName,const TDesC& aNewFileSystemName,TInt aDrive) const;
1.691 - IMPORT_C TInt ReserveDriveSpace(TInt aDriveNo, TInt aSpace);
1.692 - IMPORT_C TInt GetReserveAccess(TInt aDriveNo);
1.693 - IMPORT_C TInt ReleaseReserveAccess(TInt aDriveNo);
1.694 -
1.695 - IMPORT_C TInt AddPlugin(const TDesC& aFileName) const;
1.696 - IMPORT_C TInt RemovePlugin(const TDesC& aPluginName) const;
1.697 - IMPORT_C TInt PluginName(TDes& aPluginName,TInt aDrive,TInt aPos);
1.698 -
1.699 - IMPORT_C TInt MountPlugin(const TDesC& aPluginName) const;
1.700 - IMPORT_C TInt MountPlugin(const TDesC& aPluginName,TInt aDrive) const;
1.701 - IMPORT_C TInt MountPlugin(const TDesC& aPluginName,TInt aDrive, TInt aPos) const;
1.702 + EFSRV_IMPORT_C TInt FinaliseDrive(TInt aDriveNo, TFinaliseDrvMode aMode) const;
1.703 +
1.704 + EFSRV_IMPORT_C TInt SwapFileSystem(const TDesC& aOldFileSystemName,const TDesC& aNewFileSystemName,TInt aDrive) const;
1.705 + EFSRV_IMPORT_C TInt ReserveDriveSpace(TInt aDriveNo, TInt aSpace);
1.706 + EFSRV_IMPORT_C TInt GetReserveAccess(TInt aDriveNo);
1.707 + EFSRV_IMPORT_C TInt ReleaseReserveAccess(TInt aDriveNo);
1.708 +
1.709 + EFSRV_IMPORT_C TInt AddPlugin(const TDesC& aFileName) const;
1.710 + EFSRV_IMPORT_C TInt RemovePlugin(const TDesC& aPluginName) const;
1.711 + EFSRV_IMPORT_C TInt PluginName(TDes& aPluginName,TInt aDrive,TInt aPos);
1.712 +
1.713 + EFSRV_IMPORT_C TInt MountPlugin(const TDesC& aPluginName) const;
1.714 + EFSRV_IMPORT_C TInt MountPlugin(const TDesC& aPluginName,TInt aDrive) const;
1.715 + EFSRV_IMPORT_C TInt MountPlugin(const TDesC& aPluginName,TInt aDrive, TInt aPos) const;
1.716
1.717 - IMPORT_C TInt DismountPlugin(const TDesC& aPluginName) const;
1.718 - IMPORT_C TInt DismountPlugin(const TDesC& aPluginName,TInt aDrive) const;
1.719 - IMPORT_C TInt DismountPlugin(const TDesC& aPluginName,TInt aDrive,TInt aPos) const;
1.720 -
1.721 - IMPORT_C void NotifyDismount(TInt aDrive, TRequestStatus& aStat, TNotifyDismountMode aMode=EFsDismountRegisterClient) const;
1.722 - IMPORT_C void NotifyDismountCancel(TRequestStatus& aStat) const;
1.723 - IMPORT_C void NotifyDismountCancel() const;
1.724 - IMPORT_C TInt AllowDismount(TInt aDrive) const;
1.725 - IMPORT_C TInt SetStartupConfiguration(TInt aCommand,TAny* aParam1,TAny* aParam2) const;
1.726 - IMPORT_C TInt AddCompositeMount(const TDesC& aFileSystemName,TInt aLocalDriveToMount,TInt aCompositeDrive, TBool aSync) const;
1.727 - IMPORT_C TInt SetNotifyChange(TBool aNotifyChange);
1.728 - IMPORT_C TInt QueryVolumeInfoExt(TInt aDrive, TQueryVolumeInfoExtCmd aCommand, TDes8& aInfo) const;
1.729 - IMPORT_C TInt VolumeIOParam(TInt aDriveNo, TVolumeIOParamInfo& aParamInfo) const;
1.730 - IMPORT_C TInt FileSystemSubType(TInt aDriveNo, TDes& aName) const;
1.731 - IMPORT_C TInt InitialisePropertiesFile(const TPtrC8& aPtr) const;
1.732 -
1.733 + EFSRV_IMPORT_C TInt DismountPlugin(const TDesC& aPluginName) const;
1.734 + EFSRV_IMPORT_C TInt DismountPlugin(const TDesC& aPluginName,TInt aDrive) const;
1.735 + EFSRV_IMPORT_C TInt DismountPlugin(const TDesC& aPluginName,TInt aDrive,TInt aPos) const;
1.736 +
1.737 + EFSRV_IMPORT_C void NotifyDismount(TInt aDrive, TRequestStatus& aStat, TNotifyDismountMode aMode=EFsDismountRegisterClient) const;
1.738 + EFSRV_IMPORT_C void NotifyDismountCancel(TRequestStatus& aStat) const;
1.739 + EFSRV_IMPORT_C void NotifyDismountCancel() const;
1.740 + EFSRV_IMPORT_C TInt AllowDismount(TInt aDrive) const;
1.741 + EFSRV_IMPORT_C TInt SetStartupConfiguration(TInt aCommand,TAny* aParam1,TAny* aParam2) const;
1.742 + EFSRV_IMPORT_C TInt AddCompositeMount(const TDesC& aFileSystemName,TInt aLocalDriveToMount,TInt aCompositeDrive, TBool aSync) const;
1.743 + EFSRV_IMPORT_C TInt SetNotifyChange(TBool aNotifyChange);
1.744 + EFSRV_IMPORT_C TInt QueryVolumeInfoExt(TInt aDrive, TQueryVolumeInfoExtCmd aCommand, TDes8& aInfo) const;
1.745 + EFSRV_IMPORT_C TInt VolumeIOParam(TInt aDriveNo, TVolumeIOParamInfo& aParamInfo) const;
1.746 + EFSRV_IMPORT_C TInt FileSystemSubType(TInt aDriveNo, TDes& aName) const;
1.747 + EFSRV_IMPORT_C TInt InitialisePropertiesFile(const TPtrC8& aPtr) const;
1.748 +
1.749 + IMPORT_C TInt AddProxyDrive(const TDesC& aFileName);
1.750 + IMPORT_C TInt RemoveProxyDrive(const TDesC& aDriveName);
1.751 +
1.752 + template <class T0,class T1> inline TInt MountProxyDrive(const TUint aDrive, const TDesC& aName, T0 a0, T1 a1)
1.753 + { return(DoMountProxyDrive(TIpcArgs(aDrive, &aName, a0, a1))); };
1.754 + IMPORT_C TInt DismountProxyDrive(const TUint aDrive);
1.755 +
1.756 TInt Unclamp(const RFileClamp& aHandle);
1.757 +
1.758 + EFSRV_IMPORT_C TInt ReadFileSection(const TDesC& aName,TInt64 aPos,TDes8& aDes,TInt aLength) const;
1.759 +
1.760 + /**
1.761 + This class is used to for returning meaningful error code values to users of RFs::IsValidName(const TDesC& ,TNameValidParam& )
1.762 + @see TError
1.763 + */
1.764 + class TNameValidParam
1.765 + {
1.766 + public:
1.767 + /** Initialises the members of the class. By default iUseSessionPath is set to EFalse, however one could set it to ETrue.*/
1.768 + inline TNameValidParam(TBool aUseSessionPath = EFalse);
1.769 +
1.770 + /** possible error codes */
1.771 + enum TError
1.772 + {
1.773 + ErrNone, ///< no error.
1.774 + ErrBadCharacter, ///< aName contains a bad character; and its position is in iInvalidCharPos.
1.775 + ErrBadName, ///< aName isn't a valid file or directory name.
1.776 + ErrNameTooLong ///< aName length or aName + session path length (see iUseSessionPath) is longer than 256 characters.
1.777 + };
1.778 +
1.779 + inline TError ErrorCode() const;
1.780 + inline void UseSessionPath(TBool aUseSessionPath);
1.781 + inline TUint InvalidCharPos() const;
1.782 + friend class TFsIsValidName;
1.783 + private:
1.784 + TError iError; ///< the reason why aName is invalid, see TError
1.785 + TBool iUseSessionPath; ///< if ETrue, and if aName isn't fully specified, missing parts will be taken from the session path
1.786 + TUint iInvalidCharPos; ///< may contain invalid character position if error is ErrBadCharacter,else 0.
1.787 + };
1.788 + EFSRV_IMPORT_C TBool IsValidName(const TDesC& aName, TNameValidParam& aParam );
1.789 +
1.790 + /** Special enumerator values for the SupportedFileSystemName() API */
1.791 + enum
1.792 + {
1.793 + KRootFileSystem = 0x00800000, ///< specifies "root" file system. The result will be the same as for FileSystemName() API call
1.794 + KFirstChildFileSystem = 0 ///< specifies the first child file system number, the second will be KFirstChildFileSystem+1 etc.
1.795 + };
1.796 +
1.797 + EFSRV_IMPORT_C TInt SupportedFileSystemName(TDes& aName, TInt aDrive, TInt aFsEnumerator) const;
1.798 +
1.799 +protected:
1.800 + TInt SendReceive(TInt aFunction,const TIpcArgs& aArgs) const;
1.801
1.802 private:
1.803 void GetDirL(const TDesC& aMatchName,TUint anEntryAttMask,TUint anEntrySortKey,CDir*& anEntryList,CDir*& aDirList,RDir& aDir) const;
1.804 @@ -2005,15 +2104,80 @@
1.805 void GetDirL(const TDesC& aMatchName,const TUidType& aUidType,TUint anEntrySortKey,CDir*& anEntryList,RDir& aDir) const;
1.806 void DoGetDirL(TUint anEntrySortKey,CDir*& anEntryList,RDir& aDir) const;
1.807 TInt GetOpenFileList(TInt& aSessionNum,TInt& aLocalPos,TThreadId& aThreadId,TEntryArray& anArray) const;
1.808 +
1.809 + IMPORT_C TInt DoMountProxyDrive(const TIpcArgs& ipcArgs);
1.810 +
1.811 friend class TOpenFileScan;
1.812 + friend class RFsPlugin;
1.813 };
1.814
1.815
1.816 -
1.817 -
1.818 -
1.819 -
1.820 -
1.821 +//-------------------------------------------------------------------------------------------------------------------
1.822 +
1.823 +/**
1.824 +
1.825 + Base class for volume formatting parameters. This class package buffer, TVolFormatParamBuf or
1.826 + packaged buffer of the derived class can be passed to the RFormat::Open() in order to provide
1.827 + file system-specific formatting parameters.
1.828 + Each file system that supports such formatting parameters shall have this class specialisation (e.g. TVolFormatParam_FAT)
1.829 + All classes, derived from this one must have the same size as the base class.
1.830 + In order to use formatting parameters the format mode shall have ESpecialFormat bit flag set.
1.831 +
1.832 +
1.833 + @see RFormat::Open(RFs&,const TDesC&,TUint,TInt& ,const TDesC8& anInfo);
1.834 + @see TVolFormatParamBuf
1.835 +
1.836 + @publishedAll
1.837 + @released
1.838 +*/
1.839 +class TVolFormatParam
1.840 + {
1.841 +public:
1.842 + inline TVolFormatParam();
1.843 + inline void Init();
1.844 +
1.845 + inline void SetFileSystemName(const TDesC& aFsName);
1.846 +
1.847 + static inline TUint32 CalcFSNameHash(const TDesC& aFsName);
1.848 + inline TUint32 FSNameHash() const;
1.849 +
1.850 + inline TBool SomeParamsSet() const;
1.851 +
1.852 +
1.853 +protected:
1.854 +
1.855 +
1.856 + enum {KMaxDataSlots = 64}; ///< the size of data array iData
1.857 +
1.858 + inline void SetVal(TUint aIndex, TUint32 aVal);
1.859 + inline TUint32 GetVal(TUint aIndex) const;
1.860 +
1.861 +
1.862 +public:
1.863 + enum {KUId = 0x820116A2}; ///< this value shell be in iUid field to identify this class object
1.864 +
1.865 + /**
1.866 + This class tree UID. Used to distinguish the object of this class from TLDFormatInfo and other possible data structures.
1.867 + For this and derived classes this field must be KUId. This field offset in the class must be 0
1.868 + */
1.869 + const TUint32 iUId;
1.870 +
1.871 +private:
1.872 + TUint32 iFSysNameHash; ///< Up-cased file system name hash (crc32) used to designate the file system. 0 means "not set"
1.873 + TBool iParamsSet : 1; ///< ETrue if any parameter was set (SetVal() called). Gets reset to EFalse by Init()
1.874 + TUint32 iData[KMaxDataSlots]; ///< used as a pool for various data. The derived classes are free to use it by SetVal()/GetVal()
1.875 + };
1.876 +
1.877 +__ASSERT_COMPILE(_FOFF(TVolFormatParam, iUId) == 0);
1.878 +
1.879 +
1.880 +/** package buffer for the objects of class TVolFormatParamBuf */
1.881 +typedef TPckgBuf<TVolFormatParam> TVolFormatParamBuf;
1.882 +
1.883 +
1.884 +
1.885 +
1.886 +#ifndef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
1.887 /**
1.888 @publishedAll
1.889 @released
1.890 @@ -2069,66 +2233,154 @@
1.891 @see TDes8
1.892 @see TDesC8
1.893 */
1.894 +#else
1.895 +/**
1.896 +@publishedAll
1.897 +@released
1.898 +
1.899 +Creates and opens a file, and performs all operations on a single open file.
1.900 +
1.901 +These include:
1.902 +
1.903 +- reading from and writing to the file
1.904 +
1.905 +- seeking to a position within the file
1.906 +
1.907 +- locking and unlocking within the file
1.908 +
1.909 +- setting file attributes
1.910 +
1.911 +Before using any of these services, a connection to a file server session must
1.912 +have been made, and the file must be open.
1.913 +
1.914 +Opening Files:
1.915 +
1.916 +- use Open() to open an existing file for reading or writing; an error is
1.917 + returned if it does not already exist.
1.918 + To open an existing file for reading only, use Open() with an access mode of
1.919 + EFileRead, and a share mode of EFileShareReadersOnly.
1.920 +
1.921 +- use Create() to create and open a new file for writing; an error is returned
1.922 + if it already exists.
1.923 +
1.924 +- use Replace() to open a file for writing, replacing any existing file of
1.925 + the same name if one exists, or creating a new file if one does not exist.
1.926 + Note that if a file exists, its length is reset to zero.
1.927 +
1.928 +- use Temp() to create and open a temporary file with a unique name,
1.929 + for writing and reading.
1.930 +
1.931 +When opening a file, you must specify the file server session to use for
1.932 +operations with that file. If you do not close the file explicitly, it is
1.933 +closed when the server session associated with it is closed.
1.934 +
1.935 +Reading and Writing:
1.936 +
1.937 +There are several variants of both Read() and Write().
1.938 +The basic Read(TDes8& aDes) and Write(const TDesC8& aDes) are supplemented
1.939 +by variants allowing the descriptor length to be overridden, or the seek
1.940 +position of the first byte to be specified, or asynchronous completion,
1.941 +or any combination.
1.942 +
1.943 +Reading transfers data from a file to a descriptor, and writing transfers
1.944 +data from a descriptor to a file. In all cases, the file data is treated
1.945 +as binary and byte descriptors are used (TDes8, TDesC8).
1.946 +
1.947 +RFile class supports operations on files of size less than or equal to 2GB - 1.
1.948 +If the file size is greater than 2GB - 1 (large file), use of class RFile64 is
1.949 +recommended for following operations:
1.950 + 1. Opening a large file
1.951 + 2. Creating a file which can grow beyond 2GB - 1 by size
1.952 + 3. Creating a temporary file which can grow beyond 2GB - 1 by size
1.953 + 4. Replacing an existing file after which it can grow beyond 2GB - 1 by size
1.954 + 5. Adopting a large file handle from client
1.955 + 6. Adopting a large file handle from server
1.956 + 7. Adopting a large file handle from another process
1.957 + 8. Read from a position greater than 2GB - 1
1.958 + 9. Writing to a file by which the size can grow beyond 2GB - 1
1.959 + 10. Seek to a position greater than 2GB - 1
1.960 + 11. Setting a size greater than 2GB - 1
1.961 + 12. Querying the file size (greater than 2GB - 1)
1.962 + 13. Locking and unlocking a position and length that is beyond 2GB - 1
1.963 +
1.964 +@see TDes8
1.965 +@see TDesC8
1.966 +
1.967 +@see RFile64
1.968 +
1.969 +*/
1.970 +
1.971 +#endif
1.972 +
1.973 +
1.974 class RFile : public RSubSessionBase
1.975 {
1.976 public:
1.977 - IMPORT_C TInt Open(RFs& aFs,const TDesC& aName,TUint aFileMode);
1.978 - IMPORT_C void Close();
1.979 - IMPORT_C TInt Create(RFs& aFs,const TDesC& aName,TUint aFileMode);
1.980 - IMPORT_C TInt Replace(RFs& aFs,const TDesC& aName,TUint aFileMode);
1.981 - IMPORT_C TInt Temp(RFs& aFs,const TDesC& aPath,TFileName& aName,TUint aFileMode);
1.982 - IMPORT_C TInt Read(TDes8& aDes) const;
1.983 - IMPORT_C void Read(TDes8& aDes,TRequestStatus& aStatus) const;
1.984 - IMPORT_C TInt Read(TDes8& aDes,TInt aLength) const;
1.985 - IMPORT_C void Read(TDes8& aDes,TInt aLength,TRequestStatus& aStatus) const;
1.986 - IMPORT_C TInt Read(TInt aPos,TDes8& aDes) const;
1.987 - IMPORT_C void Read(TInt aPos,TDes8& aDes,TRequestStatus& aStatus) const;
1.988 - IMPORT_C TInt Read(TInt aPos,TDes8& aDes,TInt aLength) const;
1.989 - IMPORT_C void Read(TInt aPos,TDes8& aDes,TInt aLength,TRequestStatus& aStatus) const;
1.990 - IMPORT_C void ReadCancel(TRequestStatus& aStatus) const;
1.991 - IMPORT_C void ReadCancel() const;
1.992 - IMPORT_C TInt Write(const TDesC8& aDes);
1.993 - IMPORT_C void Write(const TDesC8& aDes,TRequestStatus& aStatus);
1.994 - IMPORT_C TInt Write(const TDesC8& aDes,TInt aLength);
1.995 - IMPORT_C void Write(const TDesC8& aDes,TInt aLength,TRequestStatus& aStatus);
1.996 - IMPORT_C TInt Write(TInt aPos,const TDesC8& aDes);
1.997 - IMPORT_C void Write(TInt aPos,const TDesC8& aDes,TRequestStatus& aStatus);
1.998 - IMPORT_C TInt Write(TInt aPos,const TDesC8& aDes,TInt aLength);
1.999 - IMPORT_C void Write(TInt aPos,const TDesC8& aDes,TInt aLength,TRequestStatus& aStatus);
1.1000 - IMPORT_C TInt Lock(TInt aPos,TInt aLength) const;
1.1001 - IMPORT_C TInt UnLock(TInt aPos,TInt aLength) const;
1.1002 - IMPORT_C TInt Seek(TSeek aMode,TInt& aPos) const;
1.1003 - IMPORT_C TInt Flush();
1.1004 - IMPORT_C void Flush(TRequestStatus& aStatus);
1.1005 - IMPORT_C TInt Size(TInt& aSize) const;
1.1006 - IMPORT_C TInt SetSize(TInt aSize);
1.1007 - IMPORT_C TInt Att(TUint& aAttValue) const;
1.1008 - IMPORT_C TInt SetAtt(TUint aSetAttMask,TUint aClearAttMask);
1.1009 - IMPORT_C TInt Modified(TTime& aTime) const;
1.1010 - IMPORT_C TInt SetModified(const TTime& aTime);
1.1011 - IMPORT_C TInt Set(const TTime& aTime,TUint aSetAttMask,TUint aClearAttMask);
1.1012 - IMPORT_C TInt ChangeMode(TFileMode aNewMode);
1.1013 - IMPORT_C TInt Rename(const TDesC& aNewName);
1.1014 - IMPORT_C TInt Drive(TInt &aDriveNumber, TDriveInfo &aDriveInfo) const;
1.1015 - IMPORT_C TInt Adopt(RFs& aFs, TInt aHandle);
1.1016 - IMPORT_C TInt AdoptFromClient(const RMessage2& aMsg, TInt aFsHandleIndex, TInt aFileHandleIndex);
1.1017 - IMPORT_C TInt AdoptFromServer(TInt aFsHandle, TInt aFileHandle);
1.1018 - IMPORT_C TInt AdoptFromCreator(TInt aFsIndex, TInt aFileHandleIndex);
1.1019 - IMPORT_C TInt Name(TDes& aName) const;
1.1020 - IMPORT_C TInt TransferToServer(TIpcArgs& aIpcArgs, TInt aFsHandleIndex, TInt aFileHandleIndex) const;
1.1021 - IMPORT_C TInt TransferToClient(const RMessage2& aMsg, TInt aFileHandleIndex) const;
1.1022 - IMPORT_C TInt TransferToProcess(RProcess& aProcess, TInt aFsHandleIndex, TInt aFileHandleIndex) const;
1.1023 - IMPORT_C TInt Duplicate(const RFile& aFile, TOwnerType aType=EOwnerProcess);
1.1024 - IMPORT_C TInt FullName(TDes& aName) const;
1.1025 - IMPORT_C TInt BlockMap(SBlockMapInfo& aInfo, TInt64& aStartPos, TInt64 aEndPos=-1, TInt aBlockMapusage=EBlockMapUsagePaging) const;
1.1026 -// IMPORT_C TInt Clamp(RFileClamp& aHandle);
1.1027 + EFSRV_IMPORT_C TInt Open(RFs& aFs,const TDesC& aName,TUint aFileMode);
1.1028 + EFSRV_IMPORT_C void Close();
1.1029 + EFSRV_IMPORT_C TInt Create(RFs& aFs,const TDesC& aName,TUint aFileMode);
1.1030 + EFSRV_IMPORT_C TInt Replace(RFs& aFs,const TDesC& aName,TUint aFileMode);
1.1031 + EFSRV_IMPORT_C TInt Temp(RFs& aFs,const TDesC& aPath,TFileName& aName,TUint aFileMode);
1.1032 + EFSRV_IMPORT_C TInt Read(TDes8& aDes) const;
1.1033 + EFSRV_IMPORT_C void Read(TDes8& aDes,TRequestStatus& aStatus) const;
1.1034 + EFSRV_IMPORT_C TInt Read(TDes8& aDes,TInt aLength) const;
1.1035 + EFSRV_IMPORT_C void Read(TDes8& aDes,TInt aLength,TRequestStatus& aStatus) const;
1.1036 + EFSRV_IMPORT_C TInt Read(TInt aPos,TDes8& aDes) const;
1.1037 + EFSRV_IMPORT_C void Read(TInt aPos,TDes8& aDes,TRequestStatus& aStatus) const;
1.1038 + EFSRV_IMPORT_C TInt Read(TInt aPos,TDes8& aDes,TInt aLength) const;
1.1039 + EFSRV_IMPORT_C void Read(TInt aPos,TDes8& aDes,TInt aLength,TRequestStatus& aStatus) const;
1.1040 + EFSRV_IMPORT_C void ReadCancel(TRequestStatus& aStatus) const;
1.1041 + EFSRV_IMPORT_C void ReadCancel() const;
1.1042 + EFSRV_IMPORT_C TInt Write(const TDesC8& aDes);
1.1043 + EFSRV_IMPORT_C void Write(const TDesC8& aDes,TRequestStatus& aStatus);
1.1044 + EFSRV_IMPORT_C TInt Write(const TDesC8& aDes,TInt aLength);
1.1045 + EFSRV_IMPORT_C void Write(const TDesC8& aDes,TInt aLength,TRequestStatus& aStatus);
1.1046 + EFSRV_IMPORT_C TInt Write(TInt aPos,const TDesC8& aDes);
1.1047 + EFSRV_IMPORT_C void Write(TInt aPos,const TDesC8& aDes,TRequestStatus& aStatus);
1.1048 + EFSRV_IMPORT_C TInt Write(TInt aPos,const TDesC8& aDes,TInt aLength);
1.1049 + EFSRV_IMPORT_C void Write(TInt aPos,const TDesC8& aDes,TInt aLength,TRequestStatus& aStatus);
1.1050 + EFSRV_IMPORT_C TInt Lock(TInt aPos,TInt aLength) const;
1.1051 + EFSRV_IMPORT_C TInt UnLock(TInt aPos,TInt aLength) const;
1.1052 + EFSRV_IMPORT_C TInt Seek(TSeek aMode,TInt& aPos) const;
1.1053 + EFSRV_IMPORT_C TInt Flush();
1.1054 + EFSRV_IMPORT_C void Flush(TRequestStatus& aStatus);
1.1055 + EFSRV_IMPORT_C TInt Size(TInt& aSize) const;
1.1056 + EFSRV_IMPORT_C TInt SetSize(TInt aSize);
1.1057 + EFSRV_IMPORT_C TInt Att(TUint& aAttValue) const;
1.1058 + EFSRV_IMPORT_C TInt SetAtt(TUint aSetAttMask,TUint aClearAttMask);
1.1059 + EFSRV_IMPORT_C TInt Modified(TTime& aTime) const;
1.1060 + EFSRV_IMPORT_C TInt SetModified(const TTime& aTime);
1.1061 + EFSRV_IMPORT_C TInt Set(const TTime& aTime,TUint aSetAttMask,TUint aClearAttMask);
1.1062 + EFSRV_IMPORT_C TInt ChangeMode(TFileMode aNewMode);
1.1063 + EFSRV_IMPORT_C TInt Rename(const TDesC& aNewName);
1.1064 + EFSRV_IMPORT_C TInt Drive(TInt &aDriveNumber, TDriveInfo &aDriveInfo) const;
1.1065 + EFSRV_IMPORT_C TInt Adopt(RFs& aFs, TInt aHandle);
1.1066 + EFSRV_IMPORT_C TInt AdoptFromClient(const RMessage2& aMsg, TInt aFsHandleIndex, TInt aFileHandleIndex);
1.1067 + EFSRV_IMPORT_C TInt AdoptFromServer(TInt aFsHandle, TInt aFileHandle);
1.1068 + EFSRV_IMPORT_C TInt AdoptFromCreator(TInt aFsIndex, TInt aFileHandleIndex);
1.1069 + EFSRV_IMPORT_C TInt Name(TDes& aName) const;
1.1070 + EFSRV_IMPORT_C TInt TransferToServer(TIpcArgs& aIpcArgs, TInt aFsHandleIndex, TInt aFileHandleIndex) const;
1.1071 + EFSRV_IMPORT_C TInt TransferToClient(const RMessage2& aMsg, TInt aFileHandleIndex) const;
1.1072 + EFSRV_IMPORT_C TInt TransferToProcess(RProcess& aProcess, TInt aFsHandleIndex, TInt aFileHandleIndex) const;
1.1073 + EFSRV_IMPORT_C TInt Duplicate(const RFile& aFile, TOwnerType aType=EOwnerProcess);
1.1074 + EFSRV_IMPORT_C TInt FullName(TDes& aName) const;
1.1075 + EFSRV_IMPORT_C TInt BlockMap(SBlockMapInfo& aInfo, TInt64& aStartPos, TInt64 aEndPos=-1, TInt aBlockMapusage=EBlockMapUsagePaging) const;
1.1076 TInt Clamp(RFileClamp& aHandle);
1.1077
1.1078 -private:
1.1079 +protected:
1.1080 + // RSubSessionBase overrides
1.1081 + TInt CreateSubSession(const RSessionBase& aSession,TInt aFunction,const TIpcArgs& aArgs);
1.1082 + void CloseSubSession(TInt aFunction);
1.1083 + TInt SendReceive(TInt aFunction,const TIpcArgs& aArgs) const;
1.1084 +
1.1085 TInt DuplicateHandle(TInt& aSubSessionHandle) const;
1.1086 +
1.1087 + friend class RFilePlugin;
1.1088 };
1.1089
1.1090 -
1.1091 +#ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
1.1092 +#include <f32file64.h>
1.1093 +#endif
1.1094
1.1095 class RDir : public RSubSessionBase
1.1096 /**
1.1097 @@ -2162,13 +2414,19 @@
1.1098 */
1.1099 {
1.1100 public:
1.1101 - IMPORT_C TInt Open(RFs& aFs,const TDesC& aMatchName,const TUidType& aUidType);
1.1102 - IMPORT_C TInt Open(RFs& aFs,const TDesC& aMatchName,TUint anAttMask);
1.1103 - IMPORT_C void Close();
1.1104 - IMPORT_C TInt Read(TEntryArray& anArray) const;
1.1105 - IMPORT_C void Read(TEntryArray& anArray,TRequestStatus& aStatus) const;
1.1106 - IMPORT_C TInt Read(TEntry& anEntry) const;
1.1107 - IMPORT_C void Read(TPckg<TEntry>& anEntry,TRequestStatus& aStatus) const;
1.1108 + EFSRV_IMPORT_C TInt Open(RFs& aFs,const TDesC& aMatchName,const TUidType& aUidType);
1.1109 + EFSRV_IMPORT_C TInt Open(RFs& aFs,const TDesC& aMatchName,TUint anAttMask);
1.1110 + EFSRV_IMPORT_C void Close();
1.1111 + EFSRV_IMPORT_C TInt Read(TEntryArray& anArray) const;
1.1112 + EFSRV_IMPORT_C void Read(TEntryArray& anArray,TRequestStatus& aStatus) const;
1.1113 + EFSRV_IMPORT_C TInt Read(TEntry& anEntry) const;
1.1114 + EFSRV_IMPORT_C void Read(TPckg<TEntry>& anEntry,TRequestStatus& aStatus) const;
1.1115 +
1.1116 +private:
1.1117 + // RSubSessionBase overrides
1.1118 + TInt SendReceive(TInt aFunction,const TIpcArgs& aArgs) const;
1.1119 +
1.1120 + friend class RDirPlugin;
1.1121 };
1.1122
1.1123
1.1124 @@ -2524,6 +2782,18 @@
1.1125
1.1126 This class is not intended for user derivation.
1.1127
1.1128 +Note:
1.1129 +
1.1130 +To support wildcard, CFileMan needs to store the entire directory entry
1.1131 +information. Therefore, in a extreme condition, if a directory contains
1.1132 +a huge number of files (e.g. more than 15000 files with 10 characters' long file
1.1133 +names), user may encounter KErrNoMemory errors. Developers who have a need to handle
1.1134 +this rare case should increase the heap size limitation of their applications.
1.1135 +
1.1136 +For more information about heap size configuration, please refer following
1.1137 +section in Symbian Developer Library:
1.1138 +Symbian OS build guide >> Build Tools Reference >> MMP file syntax >> epocheapsize
1.1139 +
1.1140 @see MFileManObserver
1.1141 */
1.1142 {
1.1143 @@ -2722,7 +2992,7 @@
1.1144 TInt SetupMoveAcrossDrives(TUint aSwitches);
1.1145 TInt SetupTargetDirectory(TBool aOverWrite, TBool& aComplete);
1.1146 TBool SrcTrgDrivesIdentical();
1.1147 - TBool SetupDirectoryForMove();
1.1148 + TInt SetupDirectoryForMove(TBool& aSrcIsDir);
1.1149 private:
1.1150 void DoAttribsL();
1.1151 void DoCopyOrMoveL();
1.1152 @@ -2730,7 +3000,11 @@
1.1153 void DoRenameL();
1.1154 void DoRmDirL();
1.1155 void DoCopyFromHandleL();
1.1156 +#ifndef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
1.1157 TInt DoCopy(const RFile& aSrcFile, RFile& aDstFile, TInt& aRet);
1.1158 +#else
1.1159 + TInt DoCopy(const RFile64& aSrcFile, RFile64& aDstFile, TInt& aRet);
1.1160 +#endif
1.1161 private:
1.1162 TParse iTrgFile;
1.1163 TInternalAction iAction;
1.1164 @@ -2738,7 +3012,11 @@
1.1165 TUint iClearMask;
1.1166 TTime iTime;
1.1167 TInt iBytesTransferred;
1.1168 +#ifndef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
1.1169 RFile iSrcFileHandle;
1.1170 +#else
1.1171 + RFile64 iSrcFileHandle;
1.1172 +#endif
1.1173 TBool iMovingContents;
1.1174 TEntry iTmpEntry;
1.1175 TParse iTmpParse;
1.1176 @@ -2861,10 +3139,7 @@
1.1177 Reads and writes single lines of text to or from a Unicode file.
1.1178 */
1.1179 {
1.1180 -public:
1.1181 - /**
1.1182 - @internalComponent
1.1183 - */
1.1184 +private:
1.1185 enum TFileState
1.1186 {
1.1187 EStartOfFile,
1.1188 @@ -2885,7 +3160,11 @@
1.1189 const TText* iNext;
1.1190 const TText* iEnd;
1.1191 TFileState iState;
1.1192 +#ifndef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
1.1193 RFile iFile;
1.1194 +#else
1.1195 + RFile64 iFile;
1.1196 +#endif
1.1197 TBuf8<0x100> iReadBuf;
1.1198 };
1.1199
1.1200 @@ -2898,67 +3177,6 @@
1.1201 */
1.1202 IMPORT_C TBool FileNamesIdentical(const TDesC& aFileName1,const TDesC& aFileName2);
1.1203
1.1204 -
1.1205 -
1.1206 -/**
1.1207 -Local drive mapping list - passed as argument to RFs::SetLocalDriveMapping().
1.1208 -
1.1209 -@publishedPartner
1.1210 -@released
1.1211 -*/
1.1212 -class TLocalDriveMappingInfo
1.1213 - {
1.1214 -public:
1.1215 - enum TDrvMapOperation {EWriteMappingsAndSet=0,EWriteMappingsNoSet=1,ESwapIntMappingAndSet=2};
1.1216 -public:
1.1217 - TInt iDriveMapping[KMaxLocalDrives];
1.1218 - TDrvMapOperation iOperation;
1.1219 - };
1.1220 -typedef TPckgBuf<TLocalDriveMappingInfo> TLocalDriveMappingInfoBuf;
1.1221 -
1.1222 -/**
1.1223 -Client side plugin API.
1.1224 -
1.1225 -@publishedPartner
1.1226 -@released
1.1227 -*/
1.1228 -class RPlugin : public RSubSessionBase
1.1229 - {
1.1230 -public:
1.1231 - IMPORT_C TInt Open(RFs& aFs, TInt aPos);
1.1232 - IMPORT_C void Close();
1.1233 -protected:
1.1234 - IMPORT_C void DoRequest(TInt aReqNo,TRequestStatus& aStatus) const;
1.1235 - IMPORT_C void DoRequest(TInt aReqNo,TRequestStatus& aStatus,TDes8& a1) const;
1.1236 - IMPORT_C void DoRequest(TInt aReqNo,TRequestStatus& aStatus,TDes8& a1,TDes8& a2) const;
1.1237 - IMPORT_C TInt DoControl(TInt aFunction) const;
1.1238 - IMPORT_C TInt DoControl(TInt aFunction,TDes8& a1) const;
1.1239 - IMPORT_C TInt DoControl(TInt aFunction,TDes8& a1,TDes8& a2) const;
1.1240 - IMPORT_C void DoCancel(TUint aReqMask) const;
1.1241 - };
1.1242 -
1.1243 -/**
1.1244 -@publishedPartner
1.1245 -@released
1.1246 -
1.1247 -Specifies that a plugin should determine for itself which drives it attaches to.
1.1248 -
1.1249 -@see RFs::MountPlugin
1.1250 -@see RFs::DismountPlugin
1.1251 -*/
1.1252 -const TInt KPluginAutoAttach = 0x19;
1.1253 -
1.1254 -/**
1.1255 -@publishedPartner
1.1256 -@released
1.1257 -
1.1258 -Specifies that a plugin should determine its own position in the plugin stack.
1.1259 -
1.1260 -@see RFs::MountPlugin
1.1261 -@see RFs::DismountPlugin
1.1262 -*/
1.1263 -const TInt KPluginAutoLocate = 0xC8;
1.1264 -
1.1265 /**
1.1266 @publishedAll
1.1267 @released
1.1268 @@ -2967,51 +3185,18 @@
1.1269 */
1.1270 const TInt KFileServerUidValue = 0x100039e3;
1.1271
1.1272 -enum TSessionFlags
1.1273 -/**
1.1274 -@internalTechnology
1.1275 -
1.1276 -A set of session specific configuration flags.
1.1277 -*/
1.1278 - {
1.1279 - /**
1.1280 - Notify the user or write failures
1.1281 - */
1.1282 - EFsSessionNotifyUser = KBit0,
1.1283 -
1.1284 - /**
1.1285 - Notify clients registered for change notification
1.1286 - */
1.1287 - EFsSessionNotifyChange = KBit1,
1.1288 -
1.1289 - /**
1.1290 - Enables all session flags
1.1291 - */
1.1292 - EFsSessionFlagsAll = KSet32,
1.1293 - };
1.1294 -
1.1295 -/**
1.1296 -@internalTechnology
1.1297 -*/
1.1298 -struct SBlockMapArgs
1.1299 - {
1.1300 - TInt64 iStartPos;
1.1301 - TInt64 iEndPos;
1.1302 - };
1.1303 -
1.1304 -
1.1305 -/**
1.1306 -@internalTechnology
1.1307 -
1.1308 -Validates the mask used to match drive attributes.
1.1309 -
1.1310 -@see RFs::DriveList
1.1311 -@see TFindFile::SetFindMask
1.1312 -*/
1.1313 -TInt ValidateMatchMask( TUint aMask);
1.1314 -
1.1315 -
1.1316 -
1.1317 -
1.1318 -#include "f32file.inl"
1.1319 +
1.1320 +#include <f32file.inl>
1.1321 +#ifdef SYMBIAN_ENABLE_64_BIT_FILE_SERVER_API
1.1322 +#include <f32file64.inl>
1.1323 #endif
1.1324 +
1.1325 +#ifdef SYMBIAN_F32_ENHANCED_CHANGE_NOTIFICATION
1.1326 +#include <f32notification.h>
1.1327 +#endif
1.1328 +
1.1329 +#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS
1.1330 +#include <f32file_private.h>
1.1331 +#endif
1.1332 +
1.1333 +#endif