--- a/userlibandfileserver/fileserver/inc/f32file.h Wed May 05 05:11:16 2010 +0100
+++ b/userlibandfileserver/fileserver/inc/f32file.h Mon May 10 11:40:53 2010 +0100
@@ -680,6 +680,15 @@
ETrue value means that the drive is finalised
*/
EIsDriveFinalised,
+
+ /**
+ Query the volume to ascertain whether File system extensions
+ are supported on this volume.
+ A boolean value is returned within the buffer defined as TPckgBuf<TBool>.
+ ETrue value means that extensions are supported.
+ EFalse means they are not supported.
+ */
+ EFSysExtensionsSupported,
};
/**
@@ -699,27 +708,28 @@
{
public:
/**
- The size of a block in bytes.
-
- Reads and writes that are aligned on block boundaries are up to twice as fast as when
- mis-aligned.
-
- Read and write operations on certain underlying media is done in blocks.
- A write operation that modifies only part of a block is less efficient, in general, than
- one that modifies an entire block. Data throughput degrades linearly for reads and writes in smaller
- sized units.
+ The size of a media block in bytes. This is a physical property of a media and returned by the corresponding media driver.
+ This value is usually at least 512 bytes and always a power of 2. For some media types the meaning of this value is
+ "the min. size of the aligned data buffer which write onto the media doesn't lead to read-modify-write operation."
+ Therefore, reads and writes that are aligned on block boundaries and with lenght of a multiple block size can be much faster.
+ Read and write operations on certain underlying media is done in blocks. A write operation that modifies only part of a block is less efficient,
+ in general, than one that modifies an entire block. Data throughput degrades linearly for reads and writes in smaller sized units.
*/
TInt iBlockSize;
+
/**
- The size in bytes of a single disk cluster.
-
- Read and write operations that are aligned on cluster boundaries are more efficient.
-
- The file system organises and allocates the file data on the disk in clusters where each cluster is
- one or more blocks. Files that are not zero length occupy at least one cluster of the disk,
- so large numbers of very small files use up more disk space than expected.
+ The size in bytes of a single file system cluster. This is a logical property of the file system.
+ The file system organises and allocates the data on the disk in clusters where each cluster usually consists of one or more blocks.
+ Cluster is a minimal unit that the file system allocates on the volume. Thus, a file of 1 byte length occupies 1 cluster.
+
+ Read and write operations that are aligned on cluster boundaries are more efficient from the file system point of view.
+ In some circumstances cluster size can be less than a block size, but it is very inefficient.
+
+ This value is reported by a file system. The value less than 0 indicates a error.
*/
TInt iClusterSize;
+
+
/**
The recommended buffer size for optimised reading performance.
@@ -754,7 +764,7 @@
/**
The maximum file size that is supported by the file system mounted on this volume.
- Not all file system may provide this parameter; The value KMaxTUint64 (0xffffffffffffffff) means that this particular file system hasn't
+ Not all file system may report this parameter; The value KMaxTUint64 (0xffffffffffffffff) means that this particular file system hasn't
provided this information.
*/
TUint64 iMaxSupportedFileSize;
@@ -1140,7 +1150,32 @@
@internalTechnology
*/
- EFileBigFile =0x00040000
+ EFileBigFile =0x00040000,
+
+ /**
+ Using this flag implies that the client is making large sequential reads and/or writes
+ and it is interested in maximising the performance of the large reads and/or writes.
+
+ The flag gives a hint to the file server and filesystem to adjust to a streaming
+ data pattern and try their best to make it optimal.
+
+ Some conditions apply:
+ - This does not guarantee that the performance of read/write operations will increase.
+ - Using this flag for other purposes other than data streaming may lead to performance degradation.
+ - This may sacrifice user data integrity for the sake of performance.
+
+ If a file is opened by Client A with EFileSequential, and the file is then opened
+ without EFileSequential by Client B, then this file mode will be disabled.
+ When the file handle is closed by Client B, then the EFileSequential file mode
+ will be enabled again.
+ Therefore, this mode will only be enabled if all clients set the file as such,
+ otherwise the file mode will be disabled.
+
+ FAT file system specific information:
+ This flag improves write and file expansion performance whilst decreasing robustness
+ on a "Rugged-FAT" file system, which is applicable to internal non-removable drives.
+ */
+ EFileSequential =0x00080000
};